summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--COPYING674
-rw-r--r--Makefile.am18
-rw-r--r--Makefile.in788
-rw-r--r--NEWS495
-rw-r--r--README.md115
-rw-r--r--aclocal.m42041
-rwxr-xr-xautogen.sh21
-rwxr-xr-xcompile347
-rwxr-xr-xconfigure7287
-rw-r--r--configure.ac66
-rw-r--r--data/Makefile.am25
-rw-r--r--data/Makefile.in749
-rw-r--r--data/icons/Makefile.am28
-rw-r--r--data/icons/Makefile.in447
-rw-r--r--data/icons/hicolor_actions_16x16_object-crop.pngbin0 -> 789 bytes
-rw-r--r--data/icons/hicolor_actions_22x22_object-crop.pngbin0 -> 1132 bytes
-rw-r--r--data/icons/hicolor_actions_24x24_object-crop.pngbin0 -> 1171 bytes
-rw-r--r--data/icons/hicolor_actions_32x32_object-crop.pngbin0 -> 1909 bytes
-rw-r--r--data/icons/hicolor_actions_48x48_object-crop.pngbin0 -> 3271 bytes
-rw-r--r--data/icons/hicolor_actions_scalable_object-crop.svg826
-rw-r--r--data/org.gnome.SimpleScan.gschema.xml.in70
-rw-r--r--data/simple-scan.163
-rw-r--r--data/simple-scan.appdata.xml16
-rw-r--r--data/simple-scan.desktop.in10
-rw-r--r--data/simple-scan.gresource.xml6
-rw-r--r--data/simple-scan.ui1401
-rw-r--r--debian/changelog384
-rw-r--r--debian/compat1
-rw-r--r--debian/control58
-rw-r--r--debian/copyright32
-rw-r--r--debian/gbp.conf3
-rw-r--r--debian/patches/005-keywords_desktop.patch15
-rw-r--r--debian/patches/01-zlib.patch28
-rw-r--r--debian/patches/series2
-rwxr-xr-xdebian/rules55
-rw-r--r--debian/simple-scan.bug-script28
-rw-r--r--debian/simple-scan.install3
-rw-r--r--debian/source/format1
-rw-r--r--debian/source/options2
-rw-r--r--debian/source_simple-scan.py23
-rw-r--r--debian/watch2
-rwxr-xr-xdepcomp791
-rw-r--r--help/C/adf.page52
-rw-r--r--help/C/crop.page45
-rw-r--r--help/C/dpi.page57
-rw-r--r--help/C/email.page24
-rw-r--r--help/C/figures/icon.pngbin0 -> 1559 bytes
-rw-r--r--help/C/figures/preferences.pngbin0 -> 14340 bytes
-rw-r--r--help/C/figures/scan_toolbar.pngbin0 -> 11975 bytes
-rw-r--r--help/C/index.page34
-rw-r--r--help/C/legal.xml9
-rw-r--r--help/C/print.page30
-rw-r--r--help/C/reorder.page21
-rw-r--r--help/C/rotate.page57
-rw-r--r--help/C/save.page68
-rw-r--r--help/C/scanner.page20
-rw-r--r--help/C/scanning.page35
-rw-r--r--help/Makefile.am27
-rw-r--r--help/Makefile.in445
-rw-r--r--help/de/adf.page51
-rw-r--r--help/de/crop.page44
-rw-r--r--help/de/de.po449
-rw-r--r--help/de/de.stamp0
-rw-r--r--help/de/dpi.page56
-rw-r--r--help/de/email.page21
-rw-r--r--help/de/index.page33
-rw-r--r--help/de/legal.xml9
-rw-r--r--help/de/print.page29
-rw-r--r--help/de/reorder.page20
-rw-r--r--help/de/rotate.page56
-rw-r--r--help/de/save.page67
-rw-r--r--help/de/scanner.page19
-rw-r--r--help/de/scanning.page32
-rwxr-xr-xinstall-sh527
-rwxr-xr-xmissing215
-rw-r--r--po/LINGUAS65
-rw-r--r--po/Makefile.in.in222
-rw-r--r--po/POTFILES.in13
-rw-r--r--po/POTFILES.skip7
-rw-r--r--po/af.po764
-rw-r--r--po/ar.po791
-rw-r--r--po/ast.po768
-rw-r--r--po/az.po709
-rw-r--r--po/bg.po850
-rw-r--r--po/bo.po818
-rw-r--r--po/ca.po861
-rw-r--r--po/ca@valencia.po854
-rw-r--r--po/ce.po704
-rw-r--r--po/cs.po855
-rw-r--r--po/da.po855
-rw-r--r--po/de.po892
-rw-r--r--po/el.po864
-rw-r--r--po/en_GB.po850
-rw-r--r--po/eo.po851
-rw-r--r--po/es.po874
-rw-r--r--po/et.po838
-rw-r--r--po/eu.po852
-rw-r--r--po/fi.po850
-rw-r--r--po/fr.po891
-rw-r--r--po/gd.po795
-rw-r--r--po/gl.po850
-rw-r--r--po/he.po847
-rw-r--r--po/hr.po850
-rw-r--r--po/hu.po855
-rw-r--r--po/hy.po706
-rw-r--r--po/id.po785
-rw-r--r--po/it.po873
-rw-r--r--po/ja.po768
-rw-r--r--po/kk.po707
-rw-r--r--po/km.po790
-rw-r--r--po/ky.po706
-rw-r--r--po/lt.po720
-rw-r--r--po/lv.po777
-rw-r--r--po/mhr.po710
-rw-r--r--po/ms.po847
-rw-r--r--po/my.po778
-rw-r--r--po/nb.po848
-rw-r--r--po/nl.po870
-rw-r--r--po/oc.po854
-rw-r--r--po/pa.po728
-rw-r--r--po/pl.po868
-rw-r--r--po/pt.po878
-rw-r--r--po/pt_BR.po873
-rw-r--r--po/ro.po858
-rw-r--r--po/ru.po871
-rw-r--r--po/sd.po712
-rw-r--r--po/se.po706
-rw-r--r--po/shn.po704
-rw-r--r--po/sk.po830
-rw-r--r--po/sl.po850
-rw-r--r--po/sq.po811
-rw-r--r--po/sr.po857
-rw-r--r--po/sv.po856
-rw-r--r--po/ta.po709
-rw-r--r--po/te.po839
-rw-r--r--po/th.po843
-rw-r--r--po/tr.po866
-rw-r--r--po/ug.po851
-rw-r--r--po/uk.po852
-rw-r--r--po/ur.po711
-rw-r--r--po/uz.po714
-rw-r--r--po/vi.po766
-rw-r--r--po/zh_CN.po834
-rw-r--r--po/zh_TW.po825
-rw-r--r--simple-scan.doap21
-rw-r--r--src/Makefile.am58
-rw-r--r--src/Makefile.in851
-rw-r--r--src/autosave-manager.c2721
-rw-r--r--src/autosave-manager.vala361
-rw-r--r--src/book-view.c3891
-rw-r--r--src/book-view.vala610
-rw-r--r--src/book.c5628
-rw-r--r--src/book.vala633
-rw-r--r--src/colord.vapi17
-rw-r--r--src/config.vapi7
-rw-r--r--src/page-view.c6910
-rw-r--r--src/page-view.vala1021
-rw-r--r--src/page.c4863
-rw-r--r--src/page.vala711
-rw-r--r--src/resources.c6477
-rw-r--r--src/sane.vapi754
-rw-r--r--src/scanner.c13352
-rw-r--r--src/scanner.vala1599
-rw-r--r--src/simple-scan.c3965
-rw-r--r--src/simple-scan.vala601
-rw-r--r--src/simple_scan_vala.stamp1
-rw-r--r--src/ui.c11701
-rw-r--r--src/ui.vala2177
169 files changed, 141451 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c6795b5
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+.bzr
+.bzrignore
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..94a9ed0
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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 3 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, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..3bb2654
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,18 @@
+SUBDIRS = src data help po
+
+EXTRA_DIST = \
+ README.md \
+ autogen.sh \
+ simple-scan.doap
+
+DISTCLEANFILES = \
+ Makefile.in \
+ aclocal.m4 \
+ compile \
+ configure \
+ depcomp \
+ install-sh \
+ missing \
+ mkinstalldirs \
+ omf.make \
+ xmldocs.make
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 0000000..de88b6f
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,788 @@
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = .
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/configure $(am__configure_deps) COPYING NEWS \
+ compile depcomp install-sh missing
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+CSCOPE = cscope
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ if test -d "$(distdir)"; then \
+ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -rf "$(distdir)" \
+ || { sleep 5 && rm -rf "$(distdir)"; }; \
+ else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+GZIP_ENV = --best
+DIST_ARCHIVES = $(distdir).tar.xz
+DIST_TARGETS = dist-xz
+distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COLORD_CFLAGS = @COLORD_CFLAGS@
+COLORD_LIBS = @COLORD_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+HELP_DIR = @HELP_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+ITSTOOL = @ITSTOOL@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIMPLE_SCAN_CFLAGS = @SIMPLE_SCAN_CFLAGS@
+SIMPLE_SCAN_LIBS = @SIMPLE_SCAN_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+YELP_LC_DIST = @YELP_LC_DIST@
+YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = src data help po
+EXTRA_DIST = \
+ README.md \
+ autogen.sh \
+ simple-scan.doap
+
+DISTCLEANFILES = \
+ Makefile.in \
+ aclocal.m4 \
+ compile \
+ configure \
+ depcomp \
+ install-sh \
+ missing \
+ mkinstalldirs \
+ omf.make \
+ xmldocs.make
+
+all: all-recursive
+
+.SUFFIXES:
+am--refresh: Makefile
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+ test ! -s cscope.files \
+ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+ -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+distdir: $(DISTFILES)
+ $(am__remove_distdir)
+ test -d "$(distdir)" || mkdir "$(distdir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ -test -n "$(am__skip_mode_fix)" \
+ || find "$(distdir)" -type d ! -perm -755 \
+ -exec chmod u+rwx,go+rx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__post_remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ $(am__post_remove_distdir)
+
+dist-lzip: distdir
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+ $(am__post_remove_distdir)
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+ $(am__post_remove_distdir)
+
+dist-tarZ: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__post_remove_distdir)
+
+dist-shar: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__post_remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__post_remove_distdir)
+
+dist dist-all:
+ $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+ $(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lz*) \
+ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+ *.tar.xz*) \
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
+ chmod -R a-w $(distdir)
+ chmod u+w $(distdir)
+ mkdir $(distdir)/_build $(distdir)/_inst
+ chmod a-w $(distdir)
+ test -d $(distdir)/_build || exit 0; \
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build \
+ && ../configure \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ --srcdir=.. --prefix="$$dc_install_base" \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+ && cd "$$am__cwd" \
+ || exit 1
+ $(am__post_remove_distdir)
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+ @test -n '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: trying to run $@ with an empty' \
+ '$$(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ $(am__cd) '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+ am--refresh check check-am clean clean-cscope clean-generic \
+ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
+ dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
+ distcheck distclean distclean-generic distclean-tags \
+ distcleancheck distdir distuninstallcheck dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags tags-am uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..fb49ea0
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,495 @@
+Overview of changes in simple-scan 3.14.0
+
+ * No change version bump
+
+Overview of changes in simple-scan 3.13.92
+
+ * Updated translations
+
+Overview of changes in simple-scan 3.13.91
+
+ * Updated translations
+
+Overview of changes in simple-scan 3.13.90
+
+ * Add non-standard option names for duplex scanning on HP And Brother scanners
+
+Overview of changes in simple-scan 3.13.4.2
+
+ * Fix scan menu not working in toolbar
+ * Fix warning about button that was trying to set both a label and an image
+ * Stop warning when no autosave information
+
+Overview of changes in simple-scan 3.13.4.1
+
+ * Don't access a variable after ownership is transferred - was breaking scans
+ * Fix some UI objects not being accessed since GtkTemplate changes
+ * Correct method signature for delete-event
+
+Overview of changes in simple-scan 3.13.4
+
+ * Stop configure if vala not found
+ * Make conditions where traditional menubar is shown more contrained so it
+ shows in elementary
+ * Use GtkTemplate (requires Vala 0.22)
+
+Overview of changes in simple-scan 3.13.3
+
+ * Use GtkHeaderbar on systems that support it
+
+Overview of changes in simple-scan 3.13.1
+
+ * Correct generation of PDF trailer to conform to the PDF standard
+ * Add options to reorder pages
+
+Overview of changes in simple-scan 3.12.0
+
+ * Updated translations
+
+Overview of changes in simple-scan 3.11.92
+
+ * Updated translations
+
+Overview of changes in simple-scan 3.11.91
+
+ * Updated translations
+
+Overview of changes in simple-scan 3.11.5
+
+ * Only update gsettings when they change. Move application state from
+ gsettings to ~/.cache
+
+Overview of changes in simple-scan 3.11.4
+
+ * Use AppMenu in GNOME Shell
+
+Overview of changes in simple-scan 3.11.3
+
+ * Remove deprecated Gtk.Stock items and Gtk widgets (GtkVBox, GtkTable, GtkHButtonBox)
+ * Stop using sqlite package
+ * Update .ui file to work with recent Glade version
+
+Overview of changes in simple-scan 3.11.1.1
+
+ * Fix regression where quality and contrast can be reset to minimum
+ * Install missing help images
+ * Mark autosaved books as needs saving
+
+Overview of changes in simple-scan 3.11.1
+
+ * Fix page size not being applied on some drivers
+ * Rewrite autosaving. Now uses files for scan data, is more efficient in
+ writing to disk and drops dependency on sqlite.
+
+Overview of changes in simple-scan 3.10.0
+
+ * Fix --fix-pdf not working due to attempting to treat binary data as UTF-8
+
+Overview of changes in simple-scan 3.9.91
+
+ * Add appdata file
+
+Overview of changes in simple-scan 3.9.90
+
+ * Only autosave after a timeout
+
+Overview of changes in simple-scan 3.9.4.1
+
+ * Add missing gresource file to tarball
+
+Overview of changes in simple-scan 3.9.4
+
+ * Add support for Samsung devices that don't use the standard SANE
+ field names
+
+Overview of changes in simple-scan 3.9.3
+
+ * Update README to mention git mirror
+ * Hide C warnings
+ * Compile with Vala debugging information
+
+Overview of changes in simple-scan 3.9.2
+
+ * Force an extension when saving if one not provided
+ * Zero pad numbering when saving multiple files
+ * Add JPEG quality settings
+ * Set ICC profile and density units for JPEG files
+ * Use gdk-pixbuf instead of libjpeg when writing PDF files
+
+Overview of changes in simple-scan 3.9.1
+
+ * Add copy to clipboard function
+ * Compile UI files into binary
+ * Update build instructions
+
+Overview of changes in simple-scan 3.8.0
+
+ * Updated version
+
+Overview of changes in simple-scan 3.7.1
+
+ * Autosave document and restore on quit
+ * Add controls for brightness and contrast
+ * Fix scan no longer working after an ADF scan completes
+ * Use GLib 2.32 threading API
+ * Fix erroneous warning about failing to set ADF source
+ * Updated help
+ * Simplify build system
+
+Overview of changes in simple-scan 3.6.0
+
+ * No change version bump
+
+Overview of changes in simple-scan 3.5.90
+
+ * Remove drag and drop support - it breaks the cropping
+ * Fix crash caused by signal being emitted in scan thread
+ * Fix crash when starting a new document during a scan
+ * Fix --debug not working
+
+Overview of changes in simple-scan 3.5.3
+
+ * Always set scanner options in the same order to avoid options resetting
+ options already set.
+ * Number multiple page documents from 1
+ * Commit help .pot file so can be translated from Launchpad
+ * Fix help not working
+ * Show progress dialog when saving files
+ * Support drag and drop
+
+Overview of changes in simple-scan 3.4.0
+
+ * No change version bump
+
+Overview of changes in simple-scan 3.3.92
+
+ * Fix buffer overrun writing black and white PDFs
+ * Build help with yelp-tools instead of gnome-doc-utils
+
+Overview of changes in simple-scan 3.2.1
+
+ * Fix JPEG compression not working in PDF files
+
+Overview of changes in simple-scan 3.2.0
+
+ * Version number change only
+
+Overview of changes in simple-scan 3.1.91
+
+ * Fix compilation with latest Vala
+
+Overview of changes in simple-scan 3.1.90
+
+ * Fix incorrect PDF generation, and add a --fix-pdf command line to fix broken
+ files generated by older versions
+
+Overview of changes in simple-scan 3.1.5
+
+ * Fix compile warnings
+
+Overview of changes in simple-scan 3.1.3
+
+ * Port to Vala
+ * Port to GTK3
+ * Port to GDBus
+ * Port to GSettings
+ * Port to colord
+
+Overview of changes in simple-scan 2.32.0.2
+
+ * Add binary comment as recommended in PDF spec
+ * Add comments about other PDF/A features
+ * Updated translations
+
+Overview of changes in simple-scan 2.32.0.1
+
+ * Fix crash when pages not scanned top to bottom
+ * Fix PDF output in locales that use ',' for a decimal point
+ * Handle grayscale mode in brother3 driver
+ * Fix wrong size crop when saving
+
+Overview of changes in simple-scan 2.32.0
+
+ * Updated translations
+
+Overview of changes in simple-scan 2.31.91
+
+ * Allow pages to be reordered
+
+Overview of changes in simple-scan 2.31.90.2
+
+ * Fix crash saving cropped pages
+
+Overview of changes in simple-scan 2.31.90.1
+
+ * Store scanned pages in raw format, not converted to 8 bit RGB. This uses
+ less memory and allows higher bit images to be used in the future.
+ * Fix scaling in output PDF
+ * Use 4 gray levels for text scanned documents
+
+Overview of changes in simple-scan 2.31.90
+
+ * Updated translations
+
+Overview of changes in simple-scan 2.31.5
+
+ * Prompt user to save if they are quitting/starting a new document and have
+ unsaved changes.
+ * Save button only sensitive if have unsaved data
+ * Add save as button
+
+Overview of changes in simple-scan 2.31.4
+
+ * Implement PDF writer, no longer require ImageMagick and about twice as
+ compressed as old method.
+
+Overview of changes in simple-scan 2.31.3
+
+ * Use GtkInfoBar for errors/warnings
+
+Overview of changes in simple-scan 2.31.1
+
+ * Compile with -DGSEAL_ENABLE
+ * Fix crash setting automatic source on some drivers
+ * Set resolution on ImageMagick generated PDFs
+ * Set "duplex" and "batch-scan" flags if supported by driver
+
+Overview of changes in simple-scan 1.0.0
+
+ * Don't put dashes in temporary filenames used when emailing to workaround a
+ Thunderbird bug
+ * Add 32x32 crop icon
+ * Don't replace scanner provided on the command-line with detected devices
+ * Handle ImageMagick process failing
+ * Fix incorrect dimensions for A4 and A6 paper
+
+Overview of changes in simple-scan 0.9.10
+
+ * Change default scan direction to top-to-bottom
+ * Call sane_cancel after each document, not duing multi page scans
+ * Set X-GNOME-Gettext-Domain in .desktop file
+ * Fix memory leak in page_set_scan_area()
+ * Fix read buffering when reading large images
+ * Fix moving crop on pages after first
+ * Load color profiles for scanner and save them in output files
+ * Fix broken logic in picking nearest supported scan resolution
+ * Add save button back into toolbar
+ * Put text beside crop toolbutton
+ * Merge document type into scan menu
+
+Overview of changes in simple-scan 0.9.9
+
+ * Fix crop rotation
+ * Improve crop outline so visible on more scanned documents
+ * Make preferences window fixed size
+ * Add page size selection
+
+Overview of changes in simple-scan 0.9.8
+
+ * Open page in image viewer when double clicking on it
+ * Use custom crop icon for crop toolbutton
+ * Use Gtk theme when painting focus on selected page
+ * Added scan sources seen on propietary brother3 driver
+ * Explicitly set flatbed source as not all drivers support automatic sources
+ * Add preferences options for which page side to scan
+ * Reduce shading on crop overlay
+ * Remove save and preferences buttons from toolbar
+ * Make crop toolbar button a toggle
+ * Fix bugs in crop resizing
+ * Compress PDF images
+
+Overview of changes in simple-scan 0.9.7
+
+ * Fix crash when deleting page from multi-page document
+ * Add icon into help dialog
+ * Update misleading description of PNG in help file
+
+Overview of changes in simple-scan 0.9.6
+
+ * Show PDF files by default in save dialog
+ * Set default save location to Documents directory
+ * Remember save location
+ * Attach JPEG files when emailing photos
+ * Make stop button only sensitive when scanning
+ * Correctly store default page orientation for first page
+ * Optimise rendering
+ * Show page throbber for pages following the first one
+ * Fix bug where selecting scan before devices are detected would sometime fail
+ * Don't move focus to selected page when moving the scrollbar
+ * Make sure USB scanners are automatically selected when plugging in
+
+Overview of changes in simple-scan 0.9.5
+
+ * Fix crash when scanning with no detected scanners
+ * Make Ctrl+N shortcut for New Document
+ * Made Help>Contents menu translatable
+ * Change resolution options in settings to 75, 150, 300, 600, 1200, 2400 dpi
+ * Change text default resolution to 150 dpi, photo to 300 dpi
+ * Set minimum window document display height
+ * Pick nearest available DPI setting for drivers that only support fixed DPIs
+ * Fix crash selecting scanner from command line
+ * Scale pages in preview so they match physical size, not pixel size
+
+Overview of changes in simple-scan 0.9.4
+
+ * Disable compression in scanner when supported
+ * Improved scan mode tooltip (Jeroen Hoek)
+ * Log to ~/.cache/simple-scan/simple-scan.log
+
+Overview of changes in simple-scan 0.9.3
+
+ * Default to photo scanning mode
+ * Rotate crop with page
+ * Clip crop when rotating it
+ * Set crop menu radio buttons when enabling crop from the toolbar
+ * Add tooltips for preference,rotate,crop toolbar buttons
+ * Added a stop toolbutton
+
+Overview of changes in simple-scan 0.9.2
+
+ * Add "ADF Front" to the list of possible ADF sources
+ * Always scan using maximum available area
+ * Call sane_cancel() after each page
+ * Don't start new pages when already scanning
+
+Overview of changes in simple-scan 0.9.1
+
+ * Fix distorted scans when require more than one read per line
+
+Overview of changes in simple-scan 0.9.0
+
+ * Fixed some bugs where blank pages were left after failed scans, pages
+ were incorrectly replaced
+ * Removed replace document on each scan from preferences (always append)
+ * Make scan resolution configurable in preferences dialog
+ * Show list of supported formats in save dialog and update extension based on
+ them
+ * Add Document>Email menuitem (Ctrl+E)
+ * Add Ctrl+F short cut to scan from feeder
+ * Added help
+
+Overview of changes in simple-scan 0.8.2
+
+ * Make toolbar scan button "important" so it shows button text
+ * Add crop toolbar button
+ * Compile with standard SANE, not Debian modified SANE
+ * Select ADF source when doing ADF scan
+ * Only rescan for devices when USB add/remove events occur
+ * Don't cache list of devices (can lead to duplicate entries as devices can
+ change names as they change USB ports)
+ * Remember page dimensions between application instances
+ * Improved debug logging
+ * Make build process use AM_SILENT_RULES
+ * Added man page from Alessio Treglia
+
+Overview of changes in simple-scan 0.8.1
+
+ * Connect scan from feeder button in toolbar
+ * Support custom crop
+ * Show page with animation while waiting for scan data
+ * Fix scrolling to new page when page added
+ * Save JPEG images as foo.jpg not foo.jpeg
+ * Check for libsane in build system
+ * Added Launchpad translations: eu, fi, gl, he, pt, te, uk, vi
+ * Updated Luanchpad translations: (many)
+
+Overview of changes in simple-scan 0.8.0
+
+ * Remember page rotation
+ * Add new document button
+ * Added Launchpad translations: af, ar, cs, da, el, en_GB, es, hr, hu, it, ja,
+ lt, ms, nb, pl, pt_BR, ru, sk, sl, sr, sv, tr,
+ zh_CN
+ * Updated Launchpad translations: fr, ro
+ * Added scrollbar for page navigation
+ * Try alternative names for scan mode to handle non-standard drivers
+
+Overview of changes in simple-scan 0.7.6
+
+ * Remember window size
+ * Made .desktop file translatable
+ * Added gconf schema
+ * Added Launchpad translations: ast, nl
+
+Overview of changes in simple-scan 0.7.5
+
+ * When displaying a scan error have a button to open preferences to change
+ scanner
+ * Connect both Ctrl+Q and Ctrl+W to close window
+ * Add tooltips to the menubar
+ * Install translations correctly
+
+Overview of changes in simple-scan 0.7.4
+
+ * Connect toolbar scan button
+ * Save multi page documents as multiple jpeg or png images
+ * Move document type into menubar
+ * Add cancel scan menu item (escape key)
+ * Add shortcut for single page scan (ctrl+1)
+ * Disable debugging by default, run with --debug to see the messages
+ * Pick locally connected scanners by default (and only use webcams as a last
+ resort)
+ * Added Launchpad translations: bg, ca, de
+ * Updated Launchpad translations: fr, ro
+
+Overview of changes in simple-scan 0.7.3
+
+ * Redesigned UI
+ * Removed test code that triggered authorization on each scan
+ * Add email action
+ * Added Launchpad translations: ro, fr
+
+Overview of changes in simple-scan 0.7.2
+
+ * Detect remote scanners
+ * Show authorization dialog for scanners
+
+Overview of changes in simple-scan 0.7.1
+
+ * Fix rotation and scaling when printing
+
+Overview of changes in simple-scan 0.7.0
+
+ * Scan text document in "Lineart" mode
+ * Add crop support
+ * Make default window larger
+ * Add page navigation buttons
+ * Zooming disabled - needs more work
+
+Overview of changes in simple-scan 0.6.4
+
+ * Support multi-pass scanners
+ * Show white page on startup
+ * Add border around scanned page
+ * Add menu bar
+ * Support multiple page scanning
+ * Allow page deletion
+ * Add page zooming and panning
+ * Use standard scanner icon
+
+Overview of changes in simple-scan 0.6.3
+
+ * Support non-8 bit scanners
+ * Fix DPI setting for various scanner types
+ * Center non-scaled scans
+ * Abort if cannot load UI
+
+Overview of changes in simple-scan 0.6.2
+
+ * Add command-line arguments
+ * Warn if no scanners detected on startup
+ * Report errors when failing to scan
+ * Support .ps output format
+ * Choose dpi and default output format based on document type
+ * Remember document type setting
+ * Make translatable
+
+Overview of changes in simple-scan 0.6.1
+
+ * Install .desktop file
+ * Close output streams when finished writing
+ * Handle not being able to open scan device
+
+Overview of changes in simple-scan 0.6.0
+
+ * Initial release
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..416f0f7
--- /dev/null
+++ b/README.md
@@ -0,0 +1,115 @@
+# SIMPLE SCAN
+
+This is the source code to "Simple Scan" a simple GNOME scanning application,
+using the sane scanning libraries.
+
+The Simple Scan homepage with further information is located at:
+https://launchpad.net/simple-scan
+
+
+
+## BUILDING
+
+Unfortunatly Simple Scan is a little bit picky about dependencies when building.
+The latest version of Simple Scan is primarily developed on
+
+* Ubuntu 12.04 LTS
+
+and know to successfully build using the following commands:
+
+```
+sudo apt-get install bzr
+bzr branch lp:simple-scan simple-scan && cd simple-scan
+sudo apt-get build-dep simple-scan
+sudo apt-get install libsqlite3-dev
+sudo apt-get install valac-0.22 vala-0.22
+sudo update-alternatives --config valac # select vala-0.22
+
+# one of the follwing
+./autogen.sh # system-wide installation
+./autogen.sh --prefix=`pwd`/install # for development purposes
+
+make
+make install
+./install/bin/simple-scan
+```
+
+Due to popular demand we have an experimental git mirror at
+https://github.com/mnagel/simple-scan
+You can clone from there should you prefer git over bzr.
+Please keep in mind that the sync bzr->git is done manually.
+
+
+
+## DEBUGGING
+
+The following tips might be helpful when debugging.
+
+There is a --debug command line switch to enable more verbose logging:
+```
+./install/bin/simple-scan --debug
+```
+
+Log messages can also be found in the $HOME/.cache/simple-scan folder.
+
+Simple Scan config goes to $HOME/.gconf/apps/simple-scan/%gconf.xml
+and that file is best edited with the gconf-editor tool.
+
+If you don't have a scanner ready, you can use a virtual "test" scanner:
+```
+./install/bin/simple-scan --debug test
+```
+
+When debugging hardware issues always check xsane and especially scanimage.
+
+* http://xsane.org/
+* http://www.sane-project.org/man/scanimage.1.html
+
+
+
+## CONTRIBUTING
+
+The preferred way to contribute code to Simple Scan is
+to create a merge request on Launchpad.
+
+* Creating a merge request on Launchpad involves creating an account:
+https://login.launchpad.net/+new_account
+* You need set up a SSH key with Launchpad:
+https://launchpad.net/~/+editsshkeys
+* How to configure bazaar (whoami) and create commits:
+http://doc.bazaar.canonical.com/latest/en/mini-tutorial/
+* Push the changes to a personal repository on Launchpad:
+bzr push lp:~$USER/simple-scan/$BRANCHNAME
+where $USER is your Launchpad Id and $COMMENT is a newly created branch name.
+* Propose merging your new branch to the master branch on:
+https://code.launchpad.net/~
+
+If everything is set up correctly the following should work:
+```
+FEATURE="foobar"
+LAUNCHPADID="name"
+bzr branch lp:simple-scan simple-scan-$FEATURE && cd simple-scan-$FEATURE
+bzr add .
+bzr commit -m "add $FEATURE"
+bzr push lp:~$LAUNCHPADID/simple-scan/$FEATURE
+xdg-open "https://code.launchpad.net/~"
+```
+
+If this does not work for you, feel free to contact us
+via one of the channels listed below.
+
+
+
+## CONTACT
+
+### Websites
+* https://launchpad.net/simple-scan
+* https://bugs.launchpad.net/simple-scan
+* https://answers.launchpad.net/simple-scan
+
+### Mailing Lists
+* https://launchpad.net/~simple-scan-users
+* https://launchpad.net/~simple-scan-team
+
+### IRC
+* Freenode (irc.ubuntu.com): #simple-scan
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644
index 0000000..69979aa
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,2041 @@
+# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+
+# gnome-common.m4
+#
+# serial 3
+#
+
+dnl GNOME_COMMON_INIT
+
+AU_DEFUN([GNOME_COMMON_INIT],
+[
+ dnl this macro should come after AC_CONFIG_MACRO_DIR
+ AC_BEFORE([AC_CONFIG_MACRO_DIR], [$0])
+
+ dnl ensure that when the Automake generated makefile calls aclocal,
+ dnl it honours the $ACLOCAL_FLAGS environment variable
+ ACLOCAL_AMFLAGS="\${ACLOCAL_FLAGS}"
+ if test -n "$ac_macro_dir"; then
+ ACLOCAL_AMFLAGS="-I $ac_macro_dir $ACLOCAL_AMFLAGS"
+ fi
+
+ AC_SUBST([ACLOCAL_AMFLAGS])
+],
+[[$0: This macro is deprecated. You should set put "ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}"
+in your top-level Makefile.am, instead, where "m4" is the macro directory set
+with AC_CONFIG_MACRO_DIR() in your configure.ac]])
+
+AC_DEFUN([GNOME_DEBUG_CHECK],
+[
+ AC_ARG_ENABLE([debug],
+ AC_HELP_STRING([--enable-debug],
+ [turn on debugging]),,
+ [enable_debug=no])
+
+ if test x$enable_debug = xyes ; then
+ AC_DEFINE(GNOME_ENABLE_DEBUG, 1,
+ [Enable additional debugging at the expense of performance and size])
+ fi
+])
+
+dnl GNOME_MAINTAINER_MODE_DEFINES ()
+dnl define DISABLE_DEPRECATED
+dnl
+AC_DEFUN([GNOME_MAINTAINER_MODE_DEFINES],
+[
+ AC_REQUIRE([AM_MAINTAINER_MODE])
+
+ DISABLE_DEPRECATED=""
+ if test $USE_MAINTAINER_MODE = yes; then
+ DOMAINS="GCONF BONOBO BONOBO_UI GNOME LIBGLADE GNOME_VFS WNCK LIBSOUP"
+ for DOMAIN in $DOMAINS; do
+ DISABLE_DEPRECATED="$DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_SINGLE_INCLUDES"
+ done
+ fi
+
+ AC_SUBST(DISABLE_DEPRECATED)
+])
+
+dnl GLIB_GSETTINGS
+dnl Defines GSETTINGS_SCHEMAS_INSTALL which controls whether
+dnl the schema should be compiled
+dnl
+
+AC_DEFUN([GLIB_GSETTINGS],
+[
+ m4_pattern_allow([AM_V_GEN])
+ AC_ARG_ENABLE(schemas-compile,
+ AS_HELP_STRING([--disable-schemas-compile],
+ [Disable regeneration of gschemas.compiled on install]),
+ [case ${enableval} in
+ yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;;
+ no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;;
+ *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-compile]) ;;
+ esac])
+ AC_SUBST([GSETTINGS_DISABLE_SCHEMAS_COMPILE])
+ PKG_PROG_PKG_CONFIG([0.16])
+ AC_SUBST(gsettingsschemadir, [${datadir}/glib-2.0/schemas])
+ if test x$cross_compiling != xyes; then
+ GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0`
+ else
+ AC_PATH_PROG(GLIB_COMPILE_SCHEMAS, glib-compile-schemas)
+ fi
+ AC_SUBST(GLIB_COMPILE_SCHEMAS)
+ if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then
+ ifelse([$2],,[AC_MSG_ERROR([glib-compile-schemas not found.])],[$2])
+ else
+ ifelse([$1],,[:],[$1])
+ fi
+
+ GSETTINGS_RULES='
+.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas
+
+mostlyclean-am: clean-gsettings-schemas
+
+gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE))
+
+%.gschema.valid: %.gschema.xml $(gsettings__enum_file)
+ $(AM_V_GEN) $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$< && mkdir -p [$](@D) && touch [$]@
+
+all-am: $(gsettings_SCHEMAS:.xml=.valid)
+uninstall-am: uninstall-gsettings-schemas
+install-data-am: install-gsettings-schemas
+
+.SECONDARY: $(gsettings_SCHEMAS)
+
+install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file)
+ @$(NORMAL_INSTALL)
+ if test -n "$^"; then \
+ test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \
+ $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \
+ test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \
+ fi
+
+uninstall-gsettings-schemas:
+ @$(NORMAL_UNINSTALL)
+ @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files
+ test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir)
+
+clean-gsettings-schemas:
+ rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file)
+
+ifdef gsettings_ENUM_NAMESPACE
+$(gsettings__enum_file): $(gsettings_ENUM_FILES)
+ $(AM_V_GEN) glib-mkenums --comments '\''<!-- @comment@ -->'\'' --fhead "<schemalist>" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " <value nick='\''@valuenick@'\'' value='\''@valuenum@'\''/>" --vtail " </@type@>" --ftail "</schemalist>" [$]^ > [$]@.tmp && mv [$]@.tmp [$]@
+endif
+'
+ _GSETTINGS_SUBST(GSETTINGS_RULES)
+])
+
+dnl _GSETTINGS_SUBST(VARIABLE)
+dnl Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST
+AC_DEFUN([_GSETTINGS_SUBST],
+[
+AC_SUBST([$1])
+m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])])
+]
+)
+
+
+dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
+# serial 42 IT_PROG_INTLTOOL
+AC_DEFUN([IT_PROG_INTLTOOL], [
+AC_PREREQ([2.50])dnl
+AC_REQUIRE([AM_NLS])dnl
+
+case "$am__api_version" in
+ 1.[01234])
+ AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool])
+ ;;
+ *)
+ ;;
+esac
+
+INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3`
+INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+if test -n "$1"; then
+ AC_MSG_CHECKING([for intltool >= $1])
+ AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
+ test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
+ AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.])
+fi
+
+AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update])
+AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge])
+AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract])
+if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then
+ AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.])
+fi
+
+if test -z "$AM_DEFAULT_VERBOSITY"; then
+ AM_DEFAULT_VERBOSITY=1
+fi
+AC_SUBST([AM_DEFAULT_VERBOSITY])
+
+INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))'
+INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))'
+INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;'
+AC_SUBST(INTLTOOL_V_MERGE)
+AC_SUBST(INTLTOOL__v_MERGE_)
+AC_SUBST(INTLTOOL__v_MERGE_0)
+
+INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))'
+intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))'
+intltool__v_merge_options_0='-q'
+AC_SUBST(INTLTOOL_V_MERGE_OPTIONS)
+AC_SUBST(intltool__v_merge_options_)
+AC_SUBST(intltool__v_merge_options_0)
+
+ INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@'
+ INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then
+ INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@'
+else
+ INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir'
+fi
+ INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+
+_IT_SUBST(INTLTOOL_DESKTOP_RULE)
+_IT_SUBST(INTLTOOL_DIRECTORY_RULE)
+_IT_SUBST(INTLTOOL_KEYS_RULE)
+_IT_SUBST(INTLTOOL_PROP_RULE)
+_IT_SUBST(INTLTOOL_OAF_RULE)
+_IT_SUBST(INTLTOOL_PONG_RULE)
+_IT_SUBST(INTLTOOL_SERVER_RULE)
+_IT_SUBST(INTLTOOL_SHEET_RULE)
+_IT_SUBST(INTLTOOL_SOUNDLIST_RULE)
+_IT_SUBST(INTLTOOL_UI_RULE)
+_IT_SUBST(INTLTOOL_XAM_RULE)
+_IT_SUBST(INTLTOOL_KBD_RULE)
+_IT_SUBST(INTLTOOL_XML_RULE)
+_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE)
+_IT_SUBST(INTLTOOL_CAVES_RULE)
+_IT_SUBST(INTLTOOL_SCHEMAS_RULE)
+_IT_SUBST(INTLTOOL_THEME_RULE)
+_IT_SUBST(INTLTOOL_SERVICE_RULE)
+_IT_SUBST(INTLTOOL_POLICY_RULE)
+
+# Check the gettext tools to make sure they are GNU
+AC_PATH_PROG(XGETTEXT, xgettext)
+AC_PATH_PROG(MSGMERGE, msgmerge)
+AC_PATH_PROG(MSGFMT, msgfmt)
+AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then
+ AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
+fi
+xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`"
+mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`"
+mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`"
+if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then
+ AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
+fi
+
+AC_PATH_PROG(INTLTOOL_PERL, perl)
+if test -z "$INTLTOOL_PERL"; then
+ AC_MSG_ERROR([perl not found])
+fi
+AC_MSG_CHECKING([for perl >= 5.8.1])
+$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1
+if test $? -ne 0; then
+ AC_MSG_ERROR([perl 5.8.1 is required for intltool])
+else
+ IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"`
+ AC_MSG_RESULT([$IT_PERL_VERSION])
+fi
+if test "x$2" != "xno-xml"; then
+ AC_MSG_CHECKING([for XML::Parser])
+ if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
+ AC_MSG_RESULT([ok])
+ else
+ AC_MSG_ERROR([XML::Parser perl module is required for intltool])
+ fi
+fi
+
+# Substitute ALL_LINGUAS so we can use it in po/Makefile
+AC_SUBST(ALL_LINGUAS)
+
+# Set DATADIRNAME correctly if it is not set yet
+# (copied from glib-gettext.m4)
+if test -z "$DATADIRNAME"; then
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[]],
+ [[extern int _nl_msg_cat_cntr;
+ return _nl_msg_cat_cntr]])],
+ [DATADIRNAME=share],
+ [case $host in
+ *-*-solaris*)
+ dnl On Solaris, if bind_textdomain_codeset is in libc,
+ dnl GNU format message catalog is always supported,
+ dnl since both are added to the libc all together.
+ dnl Hence, we'd like to go with DATADIRNAME=share
+ dnl in this case.
+ AC_CHECK_FUNC(bind_textdomain_codeset,
+ [DATADIRNAME=share], [DATADIRNAME=lib])
+ ;;
+ *)
+ [DATADIRNAME=lib]
+ ;;
+ esac])
+fi
+AC_SUBST(DATADIRNAME)
+
+IT_PO_SUBDIR([po])
+
+])
+
+
+# IT_PO_SUBDIR(DIRNAME)
+# ---------------------
+# All po subdirs have to be declared with this macro; the subdir "po" is
+# declared by IT_PROG_INTLTOOL.
+#
+AC_DEFUN([IT_PO_SUBDIR],
+[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS.
+dnl
+dnl The following CONFIG_COMMANDS should be executed at the very end
+dnl of config.status.
+AC_CONFIG_COMMANDS_PRE([
+ AC_CONFIG_COMMANDS([$1/stamp-it], [
+ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then
+ AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.])
+ fi
+ rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp"
+ >"$1/stamp-it.tmp"
+ [sed '/^#/d
+ s/^[[].*] *//
+ /^[ ]*$/d
+ '"s|^| $ac_top_srcdir/|" \
+ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES"
+ ]
+ [sed '/^POTFILES =/,/[^\\]$/ {
+ /^POTFILES =/!d
+ r $1/POTFILES
+ }
+ ' "$1/Makefile.in" >"$1/Makefile"]
+ rm -f "$1/Makefile.tmp"
+ mv "$1/stamp-it.tmp" "$1/stamp-it"
+ ])
+])dnl
+])
+
+# _IT_SUBST(VARIABLE)
+# -------------------
+# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST
+#
+AC_DEFUN([_IT_SUBST],
+[
+AC_SUBST([$1])
+m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])])
+]
+)
+
+# deprecated macros
+AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL])
+# A hint is needed for aclocal from Automake <= 1.9.4:
+# AC_DEFUN([AC_PROG_INTLTOOL], ...)
+
+
+# nls.m4 serial 5 (gettext-0.18)
+dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014 Free Software Foundation,
+dnl Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_PREREQ([2.50])
+
+AC_DEFUN([AM_NLS],
+[
+ AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE([nls],
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+ AC_MSG_RESULT([$USE_NLS])
+ AC_SUBST([USE_NLS])
+])
+
+# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+# serial 1 (pkg-config-0.24)
+#
+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+#
+# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_default([$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists. Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+# only at the first occurence in configure.ac, so if the first place
+# it's called might be skipped (such as if it is within an "if", you
+# have to call PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+ m4_default([$2], [:])
+m4_ifvaln([$3], [else
+ $3])dnl
+fi])
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+ pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+ PKG_CHECK_EXISTS([$3],
+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ],
+ [pkg_failed=yes])
+ else
+ pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+ AC_MSG_RESULT([no])
+ _PKG_SHORT_ERRORS_SUPPORTED
+ if test $_pkg_short_errors_supported = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+ m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+ ])
+elif test $pkg_failed = untried; then
+ AC_MSG_RESULT([no])
+ m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+ ])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ AC_MSG_RESULT([yes])
+ $3
+fi[]dnl
+])# PKG_CHECK_MODULES
+
+
+# PKG_INSTALLDIR(DIRECTORY)
+# -------------------------
+# Substitutes the variable pkgconfigdir as the location where a module
+# should install pkg-config .pc files. By default the directory is
+# $libdir/pkgconfig, but the default can be changed by passing
+# DIRECTORY. The user can override through the --with-pkgconfigdir
+# parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+ [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+ [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+]) dnl PKG_INSTALLDIR
+
+
+# PKG_NOARCH_INSTALLDIR(DIRECTORY)
+# -------------------------
+# Substitutes the variable noarch_pkgconfigdir as the location where a
+# module should install arch-independent pkg-config .pc files. By
+# default the directory is $datadir/pkgconfig, but the default can be
+# changed by passing DIRECTORY. The user can override through the
+# --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+ [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+ [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+]) dnl PKG_NOARCH_INSTALLDIR
+
+
+# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# -------------------------------------------
+# Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])# PKG_CHECK_VAR
+
+AC_DEFUN([YELP_HELP_INIT],
+[
+AC_REQUIRE([AC_PROG_LN_S])
+m4_pattern_allow([AM_V_at])
+m4_pattern_allow([AM_V_GEN])
+m4_pattern_allow([AM_DEFAULT_VERBOSITY])
+
+YELP_LC_MEDIA_LINKS=true
+YELP_LC_DIST=true
+
+for yelpopt in [$1]; do
+ case $yelpopt in
+ lc-media-links) YELP_LC_MEDIA_LINKS=true ;;
+ no-lc-media-links) YELP_LC_MEDIA_LINKS= ;;
+ lc-dist) YELP_LC_DIST=true ;;
+ no-lc-dist) YELP_LC_DIST= ;;
+ *) AC_MSG_ERROR([Unrecognized [YELP_HELP_INIT] option $yelpopt"]) ;;
+ esac
+done;
+AC_SUBST([YELP_LC_MEDIA_LINKS])
+AC_SUBST([YELP_LC_DIST])
+
+AC_ARG_WITH([help-dir],
+ AS_HELP_STRING([--with-help-dir=DIR],
+ [path where help files are installed]),,
+ [with_help_dir='${datadir}/help'])
+HELP_DIR="$with_help_dir"
+AC_SUBST(HELP_DIR)
+
+AC_ARG_VAR([ITSTOOL], [Path to the `itstool` command])
+AC_CHECK_PROG([ITSTOOL], [itstool], [itstool])
+if test x"$ITSTOOL" = x; then
+ AC_MSG_ERROR([itstool not found])
+fi
+
+AC_ARG_VAR([XMLLINT], [Path to the `xmllint` command])
+AC_CHECK_PROG([XMLLINT], [xmllint], [xmllint])
+if test x"$XMLLINT" = x; then
+ AC_MSG_ERROR([xmllint not found])
+fi
+
+YELP_HELP_RULES='
+HELP_ID ?=
+HELP_POT ?=
+HELP_FILES ?=
+HELP_EXTRA ?=
+HELP_MEDIA ?=
+HELP_LINGUAS ?=
+
+_HELP_LINGUAS = $(if $(filter environment,$(origin LINGUAS)),$(filter $(LINGUAS),$(HELP_LINGUAS)),$(HELP_LINGUAS))
+_HELP_POTFILE = $(if $(HELP_POT),$(HELP_POT),$(if $(HELP_ID),$(HELP_ID).pot))
+_HELP_POFILES = $(if $(HELP_ID),$(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).po))
+_HELP_MOFILES = $(patsubst %.po,%.mo,$(_HELP_POFILES))
+_HELP_C_FILES = $(foreach f,$(HELP_FILES),C/$(f))
+_HELP_C_EXTRA = $(foreach f,$(HELP_EXTRA),C/$(f))
+_HELP_C_MEDIA = $(foreach f,$(HELP_MEDIA),C/$(f))
+_HELP_LC_FILES = $(foreach lc,$(_HELP_LINGUAS),$(foreach f,$(HELP_FILES),$(lc)/$(f)))
+_HELP_LC_STAMPS = $(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).stamp)
+
+_HELP_DEFAULT_V = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1)
+_HELP_V = $(if $(V),$(V),$(_HELP_DEFAULT_V))
+_HELP_LC_VERBOSE = $(_HELP_LC_VERBOSE_$(_HELP_V))
+_HELP_LC_VERBOSE_ = $(_HELP_LC_VERBOSE_$(_HELP_DEFAULT_V))
+_HELP_LC_VERBOSE_0 = @echo " GEN "$(dir [$]@);
+
+all: $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) $(_HELP_LC_FILES) $(_HELP_POFILES)
+
+.PHONY: pot
+pot: $(_HELP_POTFILE)
+$(_HELP_POTFILE): $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA)
+ $(AM_V_GEN)if test -d "C"; then d=; else d="$(srcdir)/"; fi; \
+ $(ITSTOOL) -o "[$]@" $(foreach f,$(_HELP_C_FILES),"$${d}$(f)")
+
+.PHONY: repo
+repo: $(_HELP_POTFILE)
+ $(AM_V_at)for po in $(_HELP_POFILES); do \
+ if test "x[$](_HELP_V)" = "x0"; then echo " GEN $${po}"; fi; \
+ msgmerge -q -o "$${po}" "$${po}" "$(_HELP_POTFILE)"; \
+ done
+
+$(_HELP_POFILES):
+ $(AM_V_at)if ! test -d "$(dir [$]@)"; then mkdir "$(dir [$]@)"; fi
+ $(AM_V_at)if test ! -f "[$]@" -a -f "$(srcdir)/[$]@"; then cp "$(srcdir)/[$]@" "[$]@"; fi
+ $(AM_V_GEN)if ! test -f "[$]@"; then \
+ (cd "$(dir [$]@)" && \
+ $(ITSTOOL) -o "$(notdir [$]@).tmp" $(_HELP_C_FILES) && \
+ mv "$(notdir [$]@).tmp" "$(notdir [$]@)"); \
+ else \
+ (cd "$(dir [$]@)" && \
+ $(ITSTOOL) -o "$(notdir [$]@).tmp" $(_HELP_C_FILES) && \
+ msgmerge -o "$(notdir [$]@)" "$(notdir [$]@)" "$(notdir [$]@).tmp" && \
+ rm "$(notdir [$]@).tmp"); \
+ fi
+
+$(_HELP_MOFILES): %.mo: %.po
+ $(AM_V_at)if ! test -d "$(dir [$]@)"; then mkdir "$(dir [$]@)"; fi
+ $(AM_V_GEN)msgfmt -o "[$]@" "$<"
+
+$(_HELP_LC_FILES): $(_HELP_LINGUAS)
+$(_HELP_LINGUAS): $(_HELP_LC_STAMPS)
+$(_HELP_LC_STAMPS): %.stamp: %.mo
+$(_HELP_LC_STAMPS): $(_HELP_C_FILES) $(_HELP_C_EXTRA)
+ $(AM_V_at)if ! test -d "$(dir [$]@)"; then mkdir "$(dir [$]@)"; fi
+ $(_HELP_LC_VERBOSE)if test -d "C"; then d="../"; else d="$(abs_srcdir)/"; fi; \
+ mo="$(dir [$]@)$(patsubst %/$(notdir [$]@),%,[$]@).mo"; \
+ if test -f "$${mo}"; then mo="../$${mo}"; else mo="$(abs_srcdir)/$${mo}"; fi; \
+ (cd "$(dir [$]@)" && $(ITSTOOL) -m "$${mo}" $(foreach f,$(_HELP_C_FILES),$${d}/$(f))) && \
+ touch "[$]@"
+
+.PHONY: clean-help
+mostlyclean-am: $(if $(HELP_ID),clean-help)
+clean-help:
+ rm -f $(_HELP_LC_FILES) $(_HELP_LC_STAMPS) $(_HELP_MOFILES)
+
+EXTRA_DIST ?=
+EXTRA_DIST += $(_HELP_C_EXTRA) $(_HELP_C_MEDIA)
+EXTRA_DIST += $(if $(YELP_LC_DIST),$(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).stamp))
+EXTRA_DIST += $(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).po)
+EXTRA_DIST += $(foreach f,$(HELP_MEDIA),$(foreach lc,$(HELP_LINGUAS),$(wildcard $(lc)/$(f))))
+
+distdir: distdir-help-files
+distdir-help-files:
+ @for lc in C $(if $(YELP_LC_DIST),$(HELP_LINGUAS)) ; do \
+ $(MKDIR_P) "$(distdir)/$$lc"; \
+ for file in $(HELP_FILES); do \
+ if test -f "$$lc/$$file"; then d=./; else d=$(srcdir)/; fi; \
+ cp -p "$$d$$lc/$$file" "$(distdir)/$$lc/" || exit 1; \
+ done; \
+ done; \
+
+.PHONY: check-help
+check: check-help
+check-help:
+ for lc in C $(_HELP_LINGUAS); do \
+ if test -d "$$lc"; \
+ then d=; \
+ xmlpath="$$lc"; \
+ else \
+ d="$(srcdir)/"; \
+ xmlpath="$$lc:$(srcdir)/$$lc"; \
+ fi; \
+ for page in $(HELP_FILES); do \
+ echo "$(XMLLINT) --noout --noent --path $$xmlpath --xinclude $$d$$lc/$$page"; \
+ $(XMLLINT) --noout --noent --path "$$xmlpath" --xinclude "$$d$$lc/$$page"; \
+ done; \
+ done
+
+
+.PHONY: install-help
+install-data-am: $(if $(HELP_ID),install-help)
+install-help:
+ @for lc in C $(_HELP_LINGUAS); do \
+ $(mkinstalldirs) "$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)" || exit 1; \
+ done
+ @for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \
+ if test -f "$$lc/$$f"; then d=; else d="$(srcdir)/"; fi; \
+ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+ if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \
+ echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir`basename $$f`"; \
+ $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir`basename $$f`" || exit 1; \
+ done; done
+ @for f in $(_HELP_C_EXTRA); do \
+ lc=`dirname "$$f"`; lc=`basename "$$lc"`; \
+ if test -f "$$f"; then d=; else d="$(srcdir)/"; fi; \
+ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+ if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \
+ echo "$(INSTALL_DATA) $$d$$f $$helpdir`basename $$f`"; \
+ $(INSTALL_DATA) "$$d$$f" "$$helpdir`basename $$f`" || exit 1; \
+ done
+ @for f in $(HELP_MEDIA); do \
+ for lc in C $(_HELP_LINGUAS); do \
+ if test -f "$$lc$$f"; then d=; else d="$(srcdir)/"; fi; \
+ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+ mdir=`dirname "$$f"`; \
+ if test "x$mdir" = "x."; then mdir=""; fi; \
+ if ! test -d "$$helpdir$$mdir"; then $(mkinstalldirs) "$$helpdir$$mdir"; fi; \
+ if test -f "$$d$$lc/$$f"; then \
+ echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir$$f"; \
+ $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir$$f" || exit 1; \
+ elif test "x$$lc" != "xC"; then \
+ if test "x$(YELP_LC_MEDIA_LINKS)" != "x"; then \
+ echo "$(LN_S) -f $(HELP_DIR)/C/$(HELP_ID)/$$f $$helpdir$$f"; \
+ $(LN_S) -f "$(HELP_DIR)/C/$(HELP_ID)/$$f" "$$helpdir$$f" || exit 1; \
+ fi; \
+ fi; \
+ done; \
+ done
+
+.PHONY: uninstall-help
+uninstall-am: $(if $(HELP_ID),uninstall-help)
+uninstall-help:
+ for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \
+ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+ echo "rm -f $$helpdir`basename $$f`"; \
+ rm -f "$$helpdir`basename $$f`"; \
+ done; done
+ @for f in $(_HELP_C_EXTRA); do \
+ lc=`dirname "$$f"`; lc=`basename "$$lc"`; \
+ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+ echo "rm -f $$helpdir`basename $$f`"; \
+ rm -f "$$helpdir`basename $$f`"; \
+ done
+ @for f in $(HELP_MEDIA); do \
+ for lc in C $(_HELP_LINGUAS); do \
+ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+ echo "rm -f $$helpdir$$f"; \
+ rm -f "$$helpdir$$f"; \
+ done; \
+ done;
+'
+AC_SUBST([YELP_HELP_RULES])
+m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([YELP_HELP_RULES])])
+])
+
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.14'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.14.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.14.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is '.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
+ [$1], [CXX], [depcc="$CXX" am_compiler_list=],
+ [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+ [$1], [UPC], [depcc="$UPC" am_compiler_list=],
+ [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok '-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+ [--enable-dependency-tracking],
+ [do not reject slow dependency extractors])
+AS_HELP_STRING(
+ [--disable-dependency-tracking],
+ [speeds up one-time build])])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+ # Older Autoconf quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named 'Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`AS_DIRNAME("$mf")`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running 'make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "$am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`AS_DIRNAME(["$file"])`
+ AS_MKDIR_P([$dirpart/$fdir])
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each '.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.65])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[AC_DIAGNOSE([obsolete],
+ [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(
+ m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+ [ok:ok],,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES([CC])],
+ [m4_define([AC_PROG_CC],
+ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES([CXX])],
+ [m4_define([AC_PROG_CXX],
+ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES([OBJC])],
+ [m4_define([AC_PROG_OBJC],
+ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+ [_AM_DEPENDENCIES([OBJCXX])],
+ [m4_define([AC_PROG_OBJCXX],
+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+ fi
+fi
+])
+
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST([install_sh])])
+
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless 'enable' is passed literally.
+# For symmetry, 'disable' may be passed as well. Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+ [enable], [m4_define([am_maintainer_other], [disable])],
+ [disable], [m4_define([am_maintainer_other], [enable])],
+ [m4_define([am_maintainer_other], [enable])
+ m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+ AC_ARG_ENABLE([maintainer-mode],
+ [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+ am_maintainer_other[ make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer])],
+ [USE_MAINTAINER_MODE=$enableval],
+ [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST([MAINT])dnl
+]
+)
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from 'make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ AC_MSG_WARN(['missing' script is too old or missing])
+fi
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# --------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+ [whether $CC understands -c and -o together],
+ [am_cv_prog_cc_c_o],
+ [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+ alias in your environment])
+ fi
+ if test "$[2]" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+ [AC_MSG_CHECKING([that generated files are newer than configure])
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
+
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# ("yes" being less verbose, "no" or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+ [--enable-silent-rules],
+ [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+ [--disable-silent-rules],
+ [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+ [am_cv_make_support_nested_variables],
+ [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+ dnl Using '$V' instead of '$(V)' breaks IRIX make.
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor 'install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in "make install-strip", and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+#
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+
+m4_if([$1], [v7],
+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+ [m4_case([$1],
+ [ustar],
+ [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+ # There is notably a 21 bits limit for the UID and the GID. In fact,
+ # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+ # and bug#13588).
+ am_max_uid=2097151 # 2^21 - 1
+ am_max_gid=$am_max_uid
+ # The $UID and $GID variables are not portable, so we need to resort
+ # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
+ # below are definitely unexpected, so allow the users to see them
+ # (that is, avoid stderr redirection).
+ am_uid=`id -u || echo unknown`
+ am_gid=`id -g || echo unknown`
+ AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+ if test $am_uid -le $am_max_uid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi
+ AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+ if test $am_gid -le $am_max_gid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi],
+
+ [pax],
+ [],
+
+ [m4_fatal([Unknown tar format])])
+
+ AC_MSG_CHECKING([how to create a $1 tar archive])
+
+ # Go ahead even if we have the value already cached. We do so because we
+ # need to set the values for the 'am__tar' and 'am__untar' variables.
+ _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+ for _am_tool in $_am_tools; do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar; do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works.
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ AM_RUN_LOG([cat conftest.dir/file])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+ done
+ rm -rf conftest.dir
+
+ AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+ AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+# Autoconf support for the Vala compiler
+
+# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the Vala compiler exists in $PATH. If it is found, the
+# variable VALAC is set pointing to its absolute path. Otherwise, it is
+# simply set to 'valac'.
+# Optionally a minimum release number of the compiler can be requested.
+# If the ACTION-IF-FOUND parameter is given, it will be run if a proper
+# Vala compiler is found.
+# Similarly, if the ACTION-IF-FOUND is given, it will be run if no proper
+# Vala compiler is found. It defaults to simply print a warning about the
+# situation, but otherwise proceeding with the configuration.
+#
+# AM_PROG_VALAC([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# --------------------------------------------------------------------------
+AC_DEFUN([AM_PROG_VALAC],
+ [AC_PATH_PROG([VALAC], [valac], [valac])
+ AS_IF([test "$VALAC" != valac && test -n "$1"],
+ [AC_MSG_CHECKING([whether $VALAC is at least version $1])
+ am__vala_version=`$VALAC --version | sed 's/Vala *//'`
+ AS_VERSION_COMPARE([$1], ["$am__vala_version"],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])
+ VALAC=valac])])
+ if test "$VALAC" = valac; then
+ m4_default([$3],
+ [AC_MSG_WARN([no proper vala compiler found])
+ AC_MSG_WARN([you will not be able to compile vala source files])])
+ else
+ m4_default([$2], [:])
+ fi])
+
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..8f3fc0d
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+PKG_NAME="simple_scan"
+REQUIRED_AUTOMAKE_VERSION=1.7
+
+(test -f $srcdir/configure.ac \
+ && test -d $srcdir/src) || {
+ echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
+ echo " top-level simple-scan directory"
+ exit 1
+}
+
+which gnome-autogen.sh || {
+ echo "You need to install gnome-common from the GNOME CVS"
+ exit 1
+}
+USE_GNOME2_MACROS=1 USE_COMMON_DOC_BUILD=yes . gnome-autogen.sh
diff --git a/compile b/compile
new file mode 100755
index 0000000..531136b
--- /dev/null
+++ b/compile
@@ -0,0 +1,347 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# 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, 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, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" "" $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN*)
+ file_conv=cygwin
+ ;;
+ *)
+ file_conv=wine
+ ;;
+ esac
+ fi
+ case $file_conv/,$2, in
+ *,$file_conv,*)
+ ;;
+ mingw/*)
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+ ;;
+ cygwin/*)
+ file=`cygpath -m "$file" || echo "$file"`
+ ;;
+ wine/*)
+ file=`winepath -w "$file" || echo "$file"`
+ ;;
+ esac
+ ;;
+ esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+ func_file_conv "$1"
+ if test -z "$lib_path"; then
+ lib_path=$file
+ else
+ lib_path="$lib_path;$file"
+ fi
+ linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+ lib=$1
+ found=no
+ save_IFS=$IFS
+ IFS=';'
+ for dir in $lib_path $LIB
+ do
+ IFS=$save_IFS
+ if $shared && test -f "$dir/$lib.dll.lib"; then
+ found=yes
+ lib=$dir/$lib.dll.lib
+ break
+ fi
+ if test -f "$dir/$lib.lib"; then
+ found=yes
+ lib=$dir/$lib.lib
+ break
+ fi
+ if test -f "$dir/lib$lib.a"; then
+ found=yes
+ lib=$dir/lib$lib.a
+ break
+ fi
+ done
+ IFS=$save_IFS
+
+ if test "$found" != yes; then
+ lib=$lib.lib
+ fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+ # Assume a capable shell
+ lib_path=
+ shared=:
+ linker_opts=
+ for arg
+ do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ eat=1
+ case $2 in
+ *.o | *.[oO][bB][jJ])
+ func_file_conv "$2"
+ set x "$@" -Fo"$file"
+ shift
+ ;;
+ *)
+ func_file_conv "$2"
+ set x "$@" -Fe"$file"
+ shift
+ ;;
+ esac
+ ;;
+ -I)
+ eat=1
+ func_file_conv "$2" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -I*)
+ func_file_conv "${1#-I}" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -l)
+ eat=1
+ func_cl_dashl "$2"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -l*)
+ func_cl_dashl "${1#-l}"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -L)
+ eat=1
+ func_cl_dashL "$2"
+ ;;
+ -L*)
+ func_cl_dashL "${1#-L}"
+ ;;
+ -static)
+ shared=false
+ ;;
+ -Wl,*)
+ arg=${1#-Wl,}
+ save_ifs="$IFS"; IFS=','
+ for flag in $arg; do
+ IFS="$save_ifs"
+ linker_opts="$linker_opts $flag"
+ done
+ IFS="$save_ifs"
+ ;;
+ -Xlinker)
+ eat=1
+ linker_opts="$linker_opts $2"
+ ;;
+ -*)
+ set x "$@" "$1"
+ shift
+ ;;
+ *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+ func_file_conv "$1"
+ set x "$@" -Tp"$file"
+ shift
+ ;;
+ *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+ func_file_conv "$1" mingw
+ set x "$@" "$file"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+ done
+ if test -n "$linker_opts"; then
+ linker_opts="-link$linker_opts"
+ fi
+ exec "$@" $linker_opts
+ exit 1
+}
+
+eat=
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+ func_cl_wrapper "$@" # Doesn't return...
+ ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ # So we strip '-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+ # If no '-o' option was seen then we might have been invoked from a
+ # pattern rule where we don't need one. That is ok -- this is a
+ # normal compilation that the losing compiler can handle. If no
+ # '.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file. Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+ test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/configure b/configure
new file mode 100755
index 0000000..70b17af
--- /dev/null
+++ b/configure
@@ -0,0 +1,7287 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69 for simple-scan 3.14.0.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+as_awk_strverscmp='
+ # Use only awk features that work with 7th edition Unix awk (1978).
+ # My, what an old awk you have, Mr. Solaris!
+ END {
+ while (length(v1) && length(v2)) {
+ # Set d1 to be the next thing to compare from v1, and likewise for d2.
+ # Normally this is a single character, but if v1 and v2 contain digits,
+ # compare them as integers and fractions as strverscmp does.
+ if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) {
+ # Split v1 and v2 into their leading digit string components d1 and d2,
+ # and advance v1 and v2 past the leading digit strings.
+ for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue
+ for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue
+ d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1)
+ d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1)
+ if (d1 ~ /^0/) {
+ if (d2 ~ /^0/) {
+ # Compare two fractions.
+ while (d1 ~ /^0/ && d2 ~ /^0/) {
+ d1 = substr(d1, 2); len1--
+ d2 = substr(d2, 2); len2--
+ }
+ if (len1 != len2 && ! (len1 && len2 && substr(d1, 1, 1) == substr(d2, 1, 1))) {
+ # The two components differ in length, and the common prefix
+ # contains only leading zeros. Consider the longer to be less.
+ d1 = -len1
+ d2 = -len2
+ } else {
+ # Otherwise, compare as strings.
+ d1 = "x" d1
+ d2 = "x" d2
+ }
+ } else {
+ # A fraction is less than an integer.
+ exit 1
+ }
+ } else {
+ if (d2 ~ /^0/) {
+ # An integer is greater than a fraction.
+ exit 2
+ } else {
+ # Compare two integers.
+ d1 += 0
+ d2 += 0
+ }
+ }
+ } else {
+ # The normal case, without worrying about digits.
+ d1 = substr(v1, 1, 1); v1 = substr(v1, 2)
+ d2 = substr(v2, 1, 1); v2 = substr(v2, 2)
+ }
+ if (d1 < d2) exit 1
+ if (d1 > d2) exit 2
+ }
+ # Beware Solaris /usr/xgp4/bin/awk (at least through Solaris 10),
+ # which mishandles some comparisons of empty strings to integers.
+ if (length(v2)) exit 1
+ if (length(v1)) exit 2
+ }
+'
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='simple-scan'
+PACKAGE_TARNAME='simple-scan'
+PACKAGE_VERSION='3.14.0'
+PACKAGE_STRING='simple-scan 3.14.0'
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
+
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIBOBJS
+GETTEXT_PACKAGE
+DATADIRNAME
+ALL_LINGUAS
+INTLTOOL_PERL
+GMSGFMT
+MSGFMT
+MSGMERGE
+XGETTEXT
+INTLTOOL_POLICY_RULE
+INTLTOOL_SERVICE_RULE
+INTLTOOL_THEME_RULE
+INTLTOOL_SCHEMAS_RULE
+INTLTOOL_CAVES_RULE
+INTLTOOL_XML_NOMERGE_RULE
+INTLTOOL_XML_RULE
+INTLTOOL_KBD_RULE
+INTLTOOL_XAM_RULE
+INTLTOOL_UI_RULE
+INTLTOOL_SOUNDLIST_RULE
+INTLTOOL_SHEET_RULE
+INTLTOOL_SERVER_RULE
+INTLTOOL_PONG_RULE
+INTLTOOL_OAF_RULE
+INTLTOOL_PROP_RULE
+INTLTOOL_KEYS_RULE
+INTLTOOL_DIRECTORY_RULE
+INTLTOOL_DESKTOP_RULE
+intltool__v_merge_options_0
+intltool__v_merge_options_
+INTLTOOL_V_MERGE_OPTIONS
+INTLTOOL__v_MERGE_0
+INTLTOOL__v_MERGE_
+INTLTOOL_V_MERGE
+INTLTOOL_EXTRACT
+INTLTOOL_MERGE
+INTLTOOL_UPDATE
+USE_NLS
+YELP_HELP_RULES
+XMLLINT
+ITSTOOL
+HELP_DIR
+YELP_LC_DIST
+YELP_LC_MEDIA_LINKS
+LN_S
+EGREP
+GREP
+CPP
+HAVE_COLORD_FALSE
+HAVE_COLORD_TRUE
+COLORD_LIBS
+COLORD_CFLAGS
+SIMPLE_SCAN_LIBS
+SIMPLE_SCAN_CFLAGS
+GLIB_COMPILE_RESOURCES
+GSETTINGS_RULES
+GLIB_COMPILE_SCHEMAS
+gsettingsschemadir
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
+GSETTINGS_DISABLE_SCHEMAS_COMPILE
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+VALAC
+DISABLE_DEPRECATED
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_silent_rules
+enable_maintainer_mode
+enable_dependency_tracking
+enable_schemas_compile
+with_help_dir
+enable_nls
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
+SIMPLE_SCAN_CFLAGS
+SIMPLE_SCAN_LIBS
+COLORD_CFLAGS
+COLORD_LIBS
+CPP
+ITSTOOL
+XMLLINT'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures simple-scan 3.14.0 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/simple-scan]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of simple-scan 3.14.0:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-silent-rules less verbose build output (undo: "make V=1")
+ --disable-silent-rules verbose build output (undo: "make V=0")
+ --enable-maintainer-mode
+ enable make rules and dependencies not useful (and
+ sometimes confusing) to the casual installer
+ --enable-dependency-tracking
+ do not reject slow dependency extractors
+ --disable-dependency-tracking
+ speeds up one-time build
+ --disable-schemas-compile
+ Disable regeneration of gschemas.compiled on install
+ --disable-nls do not use Native Language Support
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-help-dir=DIR path where help files are installed
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ PKG_CONFIG path to pkg-config utility
+ PKG_CONFIG_PATH
+ directories to add to pkg-config's search path
+ PKG_CONFIG_LIBDIR
+ path overriding pkg-config's built-in search path
+ SIMPLE_SCAN_CFLAGS
+ C compiler flags for SIMPLE_SCAN, overriding pkg-config
+ SIMPLE_SCAN_LIBS
+ linker flags for SIMPLE_SCAN, overriding pkg-config
+ COLORD_CFLAGS
+ C compiler flags for COLORD, overriding pkg-config
+ COLORD_LIBS linker flags for COLORD, overriding pkg-config
+ CPP C preprocessor
+ ITSTOOL Path to the `itstool` command
+ XMLLINT Path to the `xmllint` command
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+simple-scan configure 3.14.0
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if eval \${$3+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ test -x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by simple-scan $as_me 3.14.0, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+am__api_version='1.14'
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+ alias in your environment" "$LINENO" 5
+ fi
+ if test "$2" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='simple-scan'
+ VERSION='3.14.0'
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+ fi
+fi
+
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=0;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+ # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+
+
+
+ DISABLE_DEPRECATED=""
+ if test $USE_MAINTAINER_MODE = yes; then
+ DOMAINS="GCONF BONOBO BONOBO_UI GNOME LIBGLADE GNOME_VFS WNCK LIBSOUP"
+ for DOMAIN in $DOMAINS; do
+ DISABLE_DEPRECATED="$DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_SINGLE_INCLUDES"
+ done
+ fi
+
+
+
+
+# Extract the first word of "valac", so it can be a program name with args.
+set dummy valac; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_VALAC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $VALAC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_VALAC="$VALAC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_VALAC="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_VALAC" && ac_cv_path_VALAC="valac"
+ ;;
+esac
+fi
+VALAC=$ac_cv_path_VALAC
+if test -n "$VALAC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VALAC" >&5
+$as_echo "$VALAC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "$VALAC" != valac && test -n "0.22.0"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $VALAC is at least version 0.22.0" >&5
+$as_echo_n "checking whether $VALAC is at least version 0.22.0... " >&6; }
+ am__vala_version=`$VALAC --version | sed 's/Vala *//'`
+ as_arg_v1=0.22.0
+as_arg_v2="$am__vala_version"
+awk "$as_awk_strverscmp" v1="$as_arg_v1" v2="$as_arg_v2" /dev/null
+case $? in #(
+ 1) :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; } ;; #(
+ 0) :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; } ;; #(
+ 2) :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ VALAC=valac ;; #(
+ *) :
+ ;;
+esac
+fi
+ if test "$VALAC" = valac; then
+ as_fn_error $? "Vala compiler not found" "$LINENO" 5
+ else
+ :
+ fi
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from 'make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok '-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+
+
+
+
+ # Check whether --enable-schemas-compile was given.
+if test "${enable_schemas_compile+set}" = set; then :
+ enableval=$enable_schemas_compile; case ${enableval} in
+ yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;;
+ no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-schemas-compile" "$LINENO" 5 ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.16
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
+fi
+ gsettingsschemadir=${datadir}/glib-2.0/schemas
+
+ if test x$cross_compiling != xyes; then
+ GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0`
+ else
+ # Extract the first word of "glib-compile-schemas", so it can be a program name with args.
+set dummy glib-compile-schemas; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GLIB_COMPILE_SCHEMAS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GLIB_COMPILE_SCHEMAS in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GLIB_COMPILE_SCHEMAS="$GLIB_COMPILE_SCHEMAS" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GLIB_COMPILE_SCHEMAS="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GLIB_COMPILE_SCHEMAS=$ac_cv_path_GLIB_COMPILE_SCHEMAS
+if test -n "$GLIB_COMPILE_SCHEMAS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_COMPILE_SCHEMAS" >&5
+$as_echo "$GLIB_COMPILE_SCHEMAS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+
+ if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then
+ as_fn_error $? "glib-compile-schemas not found." "$LINENO" 5
+ else
+ :
+ fi
+
+ GSETTINGS_RULES='
+.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas
+
+mostlyclean-am: clean-gsettings-schemas
+
+gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE))
+
+%.gschema.valid: %.gschema.xml $(gsettings__enum_file)
+ $(AM_V_GEN) $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$< && mkdir -p $(@D) && touch $@
+
+all-am: $(gsettings_SCHEMAS:.xml=.valid)
+uninstall-am: uninstall-gsettings-schemas
+install-data-am: install-gsettings-schemas
+
+.SECONDARY: $(gsettings_SCHEMAS)
+
+install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file)
+ @$(NORMAL_INSTALL)
+ if test -n "$^"; then \
+ test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \
+ $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \
+ test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \
+ fi
+
+uninstall-gsettings-schemas:
+ @$(NORMAL_UNINSTALL)
+ @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files
+ test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir)
+
+clean-gsettings-schemas:
+ rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file)
+
+ifdef gsettings_ENUM_NAMESPACE
+$(gsettings__enum_file): $(gsettings_ENUM_FILES)
+ $(AM_V_GEN) glib-mkenums --comments '\''<!-- @comment@ -->'\'' --fhead "<schemalist>" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " <value nick='\''@valuenick@'\'' value='\''@valuenum@'\''/>" --vtail " </@type@>" --ftail "</schemalist>" $^ > $@.tmp && mv $@.tmp $@
+endif
+'
+
+
+
+
+
+
+# Extract the first word of "glib-compile-resources", so it can be a program name with args.
+set dummy glib-compile-resources; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GLIB_COMPILE_RESOURCES+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GLIB_COMPILE_RESOURCES in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GLIB_COMPILE_RESOURCES="$GLIB_COMPILE_RESOURCES" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GLIB_COMPILE_RESOURCES="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GLIB_COMPILE_RESOURCES=$ac_cv_path_GLIB_COMPILE_RESOURCES
+if test -n "$GLIB_COMPILE_RESOURCES"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_COMPILE_RESOURCES" >&5
+$as_echo "$GLIB_COMPILE_RESOURCES" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIMPLE_SCAN" >&5
+$as_echo_n "checking for SIMPLE_SCAN... " >&6; }
+
+if test -n "$SIMPLE_SCAN_CFLAGS"; then
+ pkg_cv_SIMPLE_SCAN_CFLAGS="$SIMPLE_SCAN_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+ glib-2.0 >= 2.32
+ gtk+-3.0
+ gmodule-export-2.0
+ gthread-2.0
+ zlib
+ cairo
+ gdk-pixbuf-2.0
+ gudev-1.0
+\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "
+ glib-2.0 >= 2.32
+ gtk+-3.0
+ gmodule-export-2.0
+ gthread-2.0
+ zlib
+ cairo
+ gdk-pixbuf-2.0
+ gudev-1.0
+") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SIMPLE_SCAN_CFLAGS=`$PKG_CONFIG --cflags "
+ glib-2.0 >= 2.32
+ gtk+-3.0
+ gmodule-export-2.0
+ gthread-2.0
+ zlib
+ cairo
+ gdk-pixbuf-2.0
+ gudev-1.0
+" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$SIMPLE_SCAN_LIBS"; then
+ pkg_cv_SIMPLE_SCAN_LIBS="$SIMPLE_SCAN_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+ glib-2.0 >= 2.32
+ gtk+-3.0
+ gmodule-export-2.0
+ gthread-2.0
+ zlib
+ cairo
+ gdk-pixbuf-2.0
+ gudev-1.0
+\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "
+ glib-2.0 >= 2.32
+ gtk+-3.0
+ gmodule-export-2.0
+ gthread-2.0
+ zlib
+ cairo
+ gdk-pixbuf-2.0
+ gudev-1.0
+") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SIMPLE_SCAN_LIBS=`$PKG_CONFIG --libs "
+ glib-2.0 >= 2.32
+ gtk+-3.0
+ gmodule-export-2.0
+ gthread-2.0
+ zlib
+ cairo
+ gdk-pixbuf-2.0
+ gudev-1.0
+" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ SIMPLE_SCAN_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+ glib-2.0 >= 2.32
+ gtk+-3.0
+ gmodule-export-2.0
+ gthread-2.0
+ zlib
+ cairo
+ gdk-pixbuf-2.0
+ gudev-1.0
+" 2>&1`
+ else
+ SIMPLE_SCAN_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+ glib-2.0 >= 2.32
+ gtk+-3.0
+ gmodule-export-2.0
+ gthread-2.0
+ zlib
+ cairo
+ gdk-pixbuf-2.0
+ gudev-1.0
+" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$SIMPLE_SCAN_PKG_ERRORS" >&5
+
+ as_fn_error $? "Package requirements (
+ glib-2.0 >= 2.32
+ gtk+-3.0
+ gmodule-export-2.0
+ gthread-2.0
+ zlib
+ cairo
+ gdk-pixbuf-2.0
+ gudev-1.0
+) were not met:
+
+$SIMPLE_SCAN_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables SIMPLE_SCAN_CFLAGS
+and SIMPLE_SCAN_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables SIMPLE_SCAN_CFLAGS
+and SIMPLE_SCAN_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ SIMPLE_SCAN_CFLAGS=$pkg_cv_SIMPLE_SCAN_CFLAGS
+ SIMPLE_SCAN_LIBS=$pkg_cv_SIMPLE_SCAN_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for COLORD" >&5
+$as_echo_n "checking for COLORD... " >&6; }
+
+if test -n "$COLORD_CFLAGS"; then
+ pkg_cv_COLORD_CFLAGS="$COLORD_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+ colord
+\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "
+ colord
+") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_COLORD_CFLAGS=`$PKG_CONFIG --cflags "
+ colord
+" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$COLORD_LIBS"; then
+ pkg_cv_COLORD_LIBS="$COLORD_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+ colord
+\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "
+ colord
+") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_COLORD_LIBS=`$PKG_CONFIG --libs "
+ colord
+" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ COLORD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+ colord
+" 2>&1`
+ else
+ COLORD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+ colord
+" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$COLORD_PKG_ERRORS" >&5
+
+ have_colord=no
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ have_colord=no
+else
+ COLORD_CFLAGS=$pkg_cv_COLORD_CFLAGS
+ COLORD_LIBS=$pkg_cv_COLORD_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_colord=yes
+fi
+ if test $have_colord = yes; then
+ HAVE_COLORD_TRUE=
+ HAVE_COLORD_FALSE='#'
+else
+ HAVE_COLORD_TRUE='#'
+ HAVE_COLORD_FALSE=
+fi
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if ${ac_cv_prog_CPP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in sane/sane.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sane/sane.h" "ac_cv_header_sane_sane_h" "$ac_includes_default"
+if test "x$ac_cv_header_sane_sane_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SANE_SANE_H 1
+_ACEOF
+
+else
+ as_fn_error $? "SANE not found" "$LINENO" 5
+fi
+
+done
+
+for ac_header in sane/saneopts.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sane/saneopts.h" "ac_cv_header_sane_saneopts_h" "$ac_includes_default"
+if test "x$ac_cv_header_sane_saneopts_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SANE_SANEOPTS_H 1
+_ACEOF
+
+else
+ as_fn_error $? "SANE not found" "$LINENO" 5
+fi
+
+done
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+
+
+
+
+
+
+YELP_LC_MEDIA_LINKS=true
+YELP_LC_DIST=true
+
+for yelpopt in ; do
+ case $yelpopt in
+ lc-media-links) YELP_LC_MEDIA_LINKS=true ;;
+ no-lc-media-links) YELP_LC_MEDIA_LINKS= ;;
+ lc-dist) YELP_LC_DIST=true ;;
+ no-lc-dist) YELP_LC_DIST= ;;
+ *) as_fn_error $? "Unrecognized YELP_HELP_INIT option $yelpopt\"" "$LINENO" 5 ;;
+ esac
+done;
+
+
+
+
+# Check whether --with-help-dir was given.
+if test "${with_help_dir+set}" = set; then :
+ withval=$with_help_dir;
+else
+ with_help_dir='${datadir}/help'
+fi
+
+HELP_DIR="$with_help_dir"
+
+
+
+# Extract the first word of "itstool", so it can be a program name with args.
+set dummy itstool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ITSTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ITSTOOL"; then
+ ac_cv_prog_ITSTOOL="$ITSTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ITSTOOL="itstool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ITSTOOL=$ac_cv_prog_ITSTOOL
+if test -n "$ITSTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ITSTOOL" >&5
+$as_echo "$ITSTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test x"$ITSTOOL" = x; then
+ as_fn_error $? "itstool not found" "$LINENO" 5
+fi
+
+
+# Extract the first word of "xmllint", so it can be a program name with args.
+set dummy xmllint; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_XMLLINT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$XMLLINT"; then
+ ac_cv_prog_XMLLINT="$XMLLINT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_XMLLINT="xmllint"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+XMLLINT=$ac_cv_prog_XMLLINT
+if test -n "$XMLLINT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5
+$as_echo "$XMLLINT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test x"$XMLLINT" = x; then
+ as_fn_error $? "xmllint not found" "$LINENO" 5
+fi
+
+YELP_HELP_RULES='
+HELP_ID ?=
+HELP_POT ?=
+HELP_FILES ?=
+HELP_EXTRA ?=
+HELP_MEDIA ?=
+HELP_LINGUAS ?=
+
+_HELP_LINGUAS = $(if $(filter environment,$(origin LINGUAS)),$(filter $(LINGUAS),$(HELP_LINGUAS)),$(HELP_LINGUAS))
+_HELP_POTFILE = $(if $(HELP_POT),$(HELP_POT),$(if $(HELP_ID),$(HELP_ID).pot))
+_HELP_POFILES = $(if $(HELP_ID),$(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).po))
+_HELP_MOFILES = $(patsubst %.po,%.mo,$(_HELP_POFILES))
+_HELP_C_FILES = $(foreach f,$(HELP_FILES),C/$(f))
+_HELP_C_EXTRA = $(foreach f,$(HELP_EXTRA),C/$(f))
+_HELP_C_MEDIA = $(foreach f,$(HELP_MEDIA),C/$(f))
+_HELP_LC_FILES = $(foreach lc,$(_HELP_LINGUAS),$(foreach f,$(HELP_FILES),$(lc)/$(f)))
+_HELP_LC_STAMPS = $(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).stamp)
+
+_HELP_DEFAULT_V = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1)
+_HELP_V = $(if $(V),$(V),$(_HELP_DEFAULT_V))
+_HELP_LC_VERBOSE = $(_HELP_LC_VERBOSE_$(_HELP_V))
+_HELP_LC_VERBOSE_ = $(_HELP_LC_VERBOSE_$(_HELP_DEFAULT_V))
+_HELP_LC_VERBOSE_0 = @echo " GEN "$(dir $@);
+
+all: $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) $(_HELP_LC_FILES) $(_HELP_POFILES)
+
+.PHONY: pot
+pot: $(_HELP_POTFILE)
+$(_HELP_POTFILE): $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA)
+ $(AM_V_GEN)if test -d "C"; then d=; else d="$(srcdir)/"; fi; \
+ $(ITSTOOL) -o "$@" $(foreach f,$(_HELP_C_FILES),"$${d}$(f)")
+
+.PHONY: repo
+repo: $(_HELP_POTFILE)
+ $(AM_V_at)for po in $(_HELP_POFILES); do \
+ if test "x$(_HELP_V)" = "x0"; then echo " GEN $${po}"; fi; \
+ msgmerge -q -o "$${po}" "$${po}" "$(_HELP_POTFILE)"; \
+ done
+
+$(_HELP_POFILES):
+ $(AM_V_at)if ! test -d "$(dir $@)"; then mkdir "$(dir $@)"; fi
+ $(AM_V_at)if test ! -f "$@" -a -f "$(srcdir)/$@"; then cp "$(srcdir)/$@" "$@"; fi
+ $(AM_V_GEN)if ! test -f "$@"; then \
+ (cd "$(dir $@)" && \
+ $(ITSTOOL) -o "$(notdir $@).tmp" $(_HELP_C_FILES) && \
+ mv "$(notdir $@).tmp" "$(notdir $@)"); \
+ else \
+ (cd "$(dir $@)" && \
+ $(ITSTOOL) -o "$(notdir $@).tmp" $(_HELP_C_FILES) && \
+ msgmerge -o "$(notdir $@)" "$(notdir $@)" "$(notdir $@).tmp" && \
+ rm "$(notdir $@).tmp"); \
+ fi
+
+$(_HELP_MOFILES): %.mo: %.po
+ $(AM_V_at)if ! test -d "$(dir $@)"; then mkdir "$(dir $@)"; fi
+ $(AM_V_GEN)msgfmt -o "$@" "$<"
+
+$(_HELP_LC_FILES): $(_HELP_LINGUAS)
+$(_HELP_LINGUAS): $(_HELP_LC_STAMPS)
+$(_HELP_LC_STAMPS): %.stamp: %.mo
+$(_HELP_LC_STAMPS): $(_HELP_C_FILES) $(_HELP_C_EXTRA)
+ $(AM_V_at)if ! test -d "$(dir $@)"; then mkdir "$(dir $@)"; fi
+ $(_HELP_LC_VERBOSE)if test -d "C"; then d="../"; else d="$(abs_srcdir)/"; fi; \
+ mo="$(dir $@)$(patsubst %/$(notdir $@),%,$@).mo"; \
+ if test -f "$${mo}"; then mo="../$${mo}"; else mo="$(abs_srcdir)/$${mo}"; fi; \
+ (cd "$(dir $@)" && $(ITSTOOL) -m "$${mo}" $(foreach f,$(_HELP_C_FILES),$${d}/$(f))) && \
+ touch "$@"
+
+.PHONY: clean-help
+mostlyclean-am: $(if $(HELP_ID),clean-help)
+clean-help:
+ rm -f $(_HELP_LC_FILES) $(_HELP_LC_STAMPS) $(_HELP_MOFILES)
+
+EXTRA_DIST ?=
+EXTRA_DIST += $(_HELP_C_EXTRA) $(_HELP_C_MEDIA)
+EXTRA_DIST += $(if $(YELP_LC_DIST),$(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).stamp))
+EXTRA_DIST += $(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).po)
+EXTRA_DIST += $(foreach f,$(HELP_MEDIA),$(foreach lc,$(HELP_LINGUAS),$(wildcard $(lc)/$(f))))
+
+distdir: distdir-help-files
+distdir-help-files:
+ @for lc in C $(if $(YELP_LC_DIST),$(HELP_LINGUAS)) ; do \
+ $(MKDIR_P) "$(distdir)/$$lc"; \
+ for file in $(HELP_FILES); do \
+ if test -f "$$lc/$$file"; then d=./; else d=$(srcdir)/; fi; \
+ cp -p "$$d$$lc/$$file" "$(distdir)/$$lc/" || exit 1; \
+ done; \
+ done; \
+
+.PHONY: check-help
+check: check-help
+check-help:
+ for lc in C $(_HELP_LINGUAS); do \
+ if test -d "$$lc"; \
+ then d=; \
+ xmlpath="$$lc"; \
+ else \
+ d="$(srcdir)/"; \
+ xmlpath="$$lc:$(srcdir)/$$lc"; \
+ fi; \
+ for page in $(HELP_FILES); do \
+ echo "$(XMLLINT) --noout --noent --path $$xmlpath --xinclude $$d$$lc/$$page"; \
+ $(XMLLINT) --noout --noent --path "$$xmlpath" --xinclude "$$d$$lc/$$page"; \
+ done; \
+ done
+
+
+.PHONY: install-help
+install-data-am: $(if $(HELP_ID),install-help)
+install-help:
+ @for lc in C $(_HELP_LINGUAS); do \
+ $(mkinstalldirs) "$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)" || exit 1; \
+ done
+ @for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \
+ if test -f "$$lc/$$f"; then d=; else d="$(srcdir)/"; fi; \
+ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+ if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \
+ echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir`basename $$f`"; \
+ $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir`basename $$f`" || exit 1; \
+ done; done
+ @for f in $(_HELP_C_EXTRA); do \
+ lc=`dirname "$$f"`; lc=`basename "$$lc"`; \
+ if test -f "$$f"; then d=; else d="$(srcdir)/"; fi; \
+ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+ if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \
+ echo "$(INSTALL_DATA) $$d$$f $$helpdir`basename $$f`"; \
+ $(INSTALL_DATA) "$$d$$f" "$$helpdir`basename $$f`" || exit 1; \
+ done
+ @for f in $(HELP_MEDIA); do \
+ for lc in C $(_HELP_LINGUAS); do \
+ if test -f "$$lc$$f"; then d=; else d="$(srcdir)/"; fi; \
+ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+ mdir=`dirname "$$f"`; \
+ if test "x$mdir" = "x."; then mdir=""; fi; \
+ if ! test -d "$$helpdir$$mdir"; then $(mkinstalldirs) "$$helpdir$$mdir"; fi; \
+ if test -f "$$d$$lc/$$f"; then \
+ echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir$$f"; \
+ $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir$$f" || exit 1; \
+ elif test "x$$lc" != "xC"; then \
+ if test "x$(YELP_LC_MEDIA_LINKS)" != "x"; then \
+ echo "$(LN_S) -f $(HELP_DIR)/C/$(HELP_ID)/$$f $$helpdir$$f"; \
+ $(LN_S) -f "$(HELP_DIR)/C/$(HELP_ID)/$$f" "$$helpdir$$f" || exit 1; \
+ fi; \
+ fi; \
+ done; \
+ done
+
+.PHONY: uninstall-help
+uninstall-am: $(if $(HELP_ID),uninstall-help)
+uninstall-help:
+ for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \
+ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+ echo "rm -f $$helpdir`basename $$f`"; \
+ rm -f "$$helpdir`basename $$f`"; \
+ done; done
+ @for f in $(_HELP_C_EXTRA); do \
+ lc=`dirname "$$f"`; lc=`basename "$$lc"`; \
+ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+ echo "rm -f $$helpdir`basename $$f`"; \
+ rm -f "$$helpdir`basename $$f`"; \
+ done
+ @for f in $(HELP_MEDIA); do \
+ for lc in C $(_HELP_LINGUAS); do \
+ helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+ echo "rm -f $$helpdir$$f"; \
+ rm -f "$$helpdir$$f"; \
+ done; \
+ done;
+'
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
+$as_echo_n "checking whether NLS is requested... " >&6; }
+ # Check whether --enable-nls was given.
+if test "${enable_nls+set}" = set; then :
+ enableval=$enable_nls; USE_NLS=$enableval
+else
+ USE_NLS=yes
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
+
+
+
+
+case "$am__api_version" in
+ 1.01234)
+ as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5
+ ;;
+ *)
+ ;;
+esac
+
+INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.35.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3`
+INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+if test -n "0.35.0"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.35.0" >&5
+$as_echo_n "checking for intltool >= 0.35.0... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5
+$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; }
+ test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
+ as_fn_error $? "Your intltool is too old. You need intltool 0.35.0 or later." "$LINENO" 5
+fi
+
+# Extract the first word of "intltool-update", so it can be a program name with args.
+set dummy intltool-update; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $INTLTOOL_UPDATE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE
+if test -n "$INTLTOOL_UPDATE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5
+$as_echo "$INTLTOOL_UPDATE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "intltool-merge", so it can be a program name with args.
+set dummy intltool-merge; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_INTLTOOL_MERGE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $INTLTOOL_MERGE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE
+if test -n "$INTLTOOL_MERGE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5
+$as_echo "$INTLTOOL_MERGE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "intltool-extract", so it can be a program name with args.
+set dummy intltool-extract; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $INTLTOOL_EXTRACT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT
+if test -n "$INTLTOOL_EXTRACT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5
+$as_echo "$INTLTOOL_EXTRACT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then
+ as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5
+fi
+
+if test -z "$AM_DEFAULT_VERBOSITY"; then
+ AM_DEFAULT_VERBOSITY=1
+fi
+
+
+INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))'
+INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))'
+INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;'
+
+
+
+
+INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))'
+intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))'
+intltool__v_merge_options_0='-q'
+
+
+
+
+ INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@'
+ INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then
+ INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@'
+else
+ INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir'
+fi
+ INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check the gettext tools to make sure they are GNU
+# Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XGETTEXT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $XGETTEXT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+XGETTEXT=$ac_cv_path_XGETTEXT
+if test -n "$XGETTEXT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
+$as_echo "$XGETTEXT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "msgmerge", so it can be a program name with args.
+set dummy msgmerge; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGMERGE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MSGMERGE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+MSGMERGE=$ac_cv_path_MSGMERGE
+if test -n "$MSGMERGE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
+$as_echo "$MSGMERGE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGFMT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MSGFMT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+MSGFMT=$ac_cv_path_MSGFMT
+if test -n "$MSGFMT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
+$as_echo "$MSGFMT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GMSGFMT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GMSGFMT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+ ;;
+esac
+fi
+GMSGFMT=$ac_cv_path_GMSGFMT
+if test -n "$GMSGFMT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
+$as_echo "$GMSGFMT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then
+ as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5
+fi
+xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`"
+mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`"
+mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`"
+if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then
+ as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5
+fi
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_INTLTOOL_PERL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $INTLTOOL_PERL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL
+if test -n "$INTLTOOL_PERL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5
+$as_echo "$INTLTOOL_PERL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test -z "$INTLTOOL_PERL"; then
+ as_fn_error $? "perl not found" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5
+$as_echo_n "checking for perl >= 5.8.1... " >&6; }
+$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1
+if test $? -ne 0; then
+ as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5
+else
+ IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5
+$as_echo "$IT_PERL_VERSION" >&6; }
+fi
+if test "x" != "xno-xml"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5
+$as_echo_n "checking for XML::Parser... " >&6; }
+ if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+ else
+ as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5
+ fi
+fi
+
+# Substitute ALL_LINGUAS so we can use it in po/Makefile
+
+
+# Set DATADIRNAME correctly if it is not set yet
+# (copied from glib-gettext.m4)
+if test -z "$DATADIRNAME"; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+extern int _nl_msg_cat_cntr;
+ return _nl_msg_cat_cntr
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ DATADIRNAME=share
+else
+ case $host in
+ *-*-solaris*)
+ ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
+ DATADIRNAME=share
+else
+ DATADIRNAME=lib
+fi
+
+ ;;
+ *)
+ DATADIRNAME=lib
+ ;;
+ esac
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+
+
+
+
+
+GETTEXT_PACKAGE=simple-scan
+
+
+
+ac_config_files="$ac_config_files Makefile data/Makefile data/icons/Makefile help/Makefile po/Makefile.in src/Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then branch to the quote section. Otherwise,
+# look for a macro that doesn't take arguments.
+ac_script='
+:mline
+/\\$/{
+ N
+ s,\\\n,,
+ b mline
+}
+t clear
+:clear
+s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+b any
+:quote
+s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
+s/\[/\\&/g
+s/\]/\\&/g
+s/\$/$$/g
+H
+:any
+${
+ g
+ s/^\n//
+ s/\n/ /g
+ p
+}
+'
+DEFS=`sed -n "$ac_script" confdefs.h`
+
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ if test -n "$EXEEXT"; then
+ am__EXEEXT_TRUE=
+ am__EXEEXT_FALSE='#'
+else
+ am__EXEEXT_TRUE='#'
+ am__EXEEXT_FALSE=
+fi
+
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_COLORD_TRUE}" && test -z "${HAVE_COLORD_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_COLORD\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+ ac_config_commands="$ac_config_commands po/stamp-it"
+
+
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by simple-scan $as_me 3.14.0, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+
+Configuration files:
+$config_files
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+simple-scan config.status 3.14.0
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h | --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;;
+ "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;;
+ "help/Makefile") CONFIG_FILES="$CONFIG_FILES help/Makefile" ;;
+ "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
+ "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+ "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+
+eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Older Autoconf quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named 'Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running 'make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "$am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+ ;;
+ "po/stamp-it":C)
+ if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then
+ as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5
+ fi
+ rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp"
+ >"po/stamp-it.tmp"
+ sed '/^#/d
+ s/^[[].*] *//
+ /^[ ]*$/d
+ '"s|^| $ac_top_srcdir/|" \
+ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES"
+
+ sed '/^POTFILES =/,/[^\\]$/ {
+ /^POTFILES =/!d
+ r po/POTFILES
+ }
+ ' "po/Makefile.in" >"po/Makefile"
+ rm -f "po/Makefile.tmp"
+ mv "po/stamp-it.tmp" "po/stamp-it"
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..5a0ee36
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,66 @@
+dnl Process this file with autoconf to produce a configure script.
+
+AC_INIT(simple-scan, 3.14.0)
+AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz foreign])
+AM_SILENT_RULES([yes])
+AM_MAINTAINER_MODE
+GNOME_MAINTAINER_MODE_DEFINES
+
+AM_PROG_VALAC([0.22.0], [], [AC_MSG_ERROR([Vala compiler not found])])
+AM_PROG_CC_C_O
+
+GLIB_GSETTINGS
+AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources)
+
+dnl ###########################################################################
+dnl Dependencies
+dnl ###########################################################################
+
+dnl Run-time dependencies:
+dnl * gnome-icon-theme
+dnl * xdg-utils (for xdg-email)
+
+PKG_CHECK_MODULES(SIMPLE_SCAN, [
+ glib-2.0 >= 2.32
+ gtk+-3.0
+ gmodule-export-2.0
+ gthread-2.0
+ zlib
+ cairo
+ gdk-pixbuf-2.0
+ gudev-1.0
+])
+
+PKG_CHECK_MODULES(COLORD, [
+ colord
+], have_colord=yes, have_colord=no)
+AM_CONDITIONAL(HAVE_COLORD, test $have_colord = yes)
+
+AC_CHECK_HEADERS([sane/sane.h],[],[AC_MSG_ERROR([SANE not found])])
+AC_CHECK_HEADERS([sane/saneopts.h],[],[AC_MSG_ERROR([SANE not found])])
+
+dnl ###########################################################################
+dnl Documentation
+dnl ###########################################################################
+
+YELP_HELP_INIT
+
+dnl ###########################################################################
+dnl Internationalization
+dnl ###########################################################################
+
+IT_PROG_INTLTOOL([0.35.0])
+AC_SUBST(GETTEXT_PACKAGE, simple-scan)
+
+dnl ###########################################################################
+dnl Files to generate
+dnl ###########################################################################
+
+AC_OUTPUT([
+Makefile
+data/Makefile
+data/icons/Makefile
+help/Makefile
+po/Makefile.in
+src/Makefile
+])
diff --git a/data/Makefile.am b/data/Makefile.am
new file mode 100644
index 0000000..b436f12
--- /dev/null
+++ b/data/Makefile.am
@@ -0,0 +1,25 @@
+SUBDIRS = icons
+
+desktopdir = $(datadir)/applications
+desktop_DATA = simple-scan.desktop
+@INTLTOOL_DESKTOP_RULE@
+
+appdatadir = $(datadir)/appdata
+dist_appdata_DATA = simple-scan.appdata.xml
+
+gsettings_SCHEMAS = org.gnome.SimpleScan.gschema.xml
+@INTLTOOL_XML_NOMERGE_RULE@
+@GSETTINGS_RULES@
+
+dist_man1_MANS = simple-scan.1
+
+EXTRA_DIST = simple-scan.desktop.in \
+ org.gnome.SimpleScan.gschema.xml.in \
+ simple-scan.ui \
+ simple-scan.gresource.xml
+
+DISTCLEANFILES = \
+ Makefile.in \
+ $(schema_DATA) \
+ $(desktop_DATA) \
+ $(gsettings_SCHEMAS)
diff --git a/data/Makefile.in b/data/Makefile.in
new file mode 100644
index 0000000..100a61c
--- /dev/null
+++ b/data/Makefile.in
@@ -0,0 +1,749 @@
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = data
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(dist_man1_MANS) $(dist_appdata_DATA)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+man1dir = $(mandir)/man1
+am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)" \
+ "$(DESTDIR)$(appdatadir)"
+NROFF = nroff
+MANS = $(dist_man1_MANS)
+DATA = $(desktop_DATA) $(dist_appdata_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COLORD_CFLAGS = @COLORD_CFLAGS@
+COLORD_LIBS = @COLORD_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+HELP_DIR = @HELP_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+ITSTOOL = @ITSTOOL@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIMPLE_SCAN_CFLAGS = @SIMPLE_SCAN_CFLAGS@
+SIMPLE_SCAN_LIBS = @SIMPLE_SCAN_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+YELP_LC_DIST = @YELP_LC_DIST@
+YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = icons
+desktopdir = $(datadir)/applications
+desktop_DATA = simple-scan.desktop
+appdatadir = $(datadir)/appdata
+dist_appdata_DATA = simple-scan.appdata.xml
+gsettings_SCHEMAS = org.gnome.SimpleScan.gschema.xml
+dist_man1_MANS = simple-scan.1
+EXTRA_DIST = simple-scan.desktop.in \
+ org.gnome.SimpleScan.gschema.xml.in \
+ simple-scan.ui \
+ simple-scan.gresource.xml
+
+DISTCLEANFILES = \
+ Makefile.in \
+ $(schema_DATA) \
+ $(desktop_DATA) \
+ $(gsettings_SCHEMAS)
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign data/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-man1: $(dist_man1_MANS)
+ @$(NORMAL_INSTALL)
+ @list1='$(dist_man1_MANS)'; \
+ list2=''; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_man1_MANS)'; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+install-desktopDATA: $(desktop_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
+ done
+
+uninstall-desktopDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir)
+install-dist_appdataDATA: $(dist_appdata_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(dist_appdata_DATA)'; test -n "$(appdatadir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(appdatadir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(appdatadir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(appdatadir)" || exit $$?; \
+ done
+
+uninstall-dist_appdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_appdata_DATA)'; test -n "$(appdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(appdatadir)'; $(am__uninstall_files_from_dir)
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(MANS) $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(appdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-desktopDATA install-dist_appdataDATA \
+ install-man
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man: install-man1
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-desktopDATA uninstall-dist_appdataDATA \
+ uninstall-man
+
+uninstall-man: uninstall-man1
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+ check-am clean clean-generic cscopelist-am ctags ctags-am \
+ distclean distclean-generic distclean-tags distdir dvi dvi-am \
+ html html-am info info-am install install-am install-data \
+ install-data-am install-desktopDATA install-dist_appdataDATA \
+ install-dvi install-dvi-am install-exec install-exec-am \
+ install-html install-html-am install-info install-info-am \
+ install-man install-man1 install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+ uninstall-desktopDATA uninstall-dist_appdataDATA uninstall-man \
+ uninstall-man1
+
+@INTLTOOL_DESKTOP_RULE@
+@INTLTOOL_XML_NOMERGE_RULE@
+@GSETTINGS_RULES@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am
new file mode 100644
index 0000000..b098011
--- /dev/null
+++ b/data/icons/Makefile.am
@@ -0,0 +1,28 @@
+icons = \
+ hicolor_actions_16x16_object-crop.png \
+ hicolor_actions_22x22_object-crop.png \
+ hicolor_actions_24x24_object-crop.png \
+ hicolor_actions_32x32_object-crop.png \
+ hicolor_actions_48x48_object-crop.png \
+ hicolor_actions_scalable_object-crop.svg
+
+install-data-local:
+ for icon in $(icons); do \
+ THEME=`echo $$icon | cut -d_ -f1`; \
+ CONTEXT=`echo $$icon | cut -d_ -f2`; \
+ SIZE=`echo $$icon | cut -d_ -f3`; \
+ ICONFILE=`echo $$icon | cut -d_ -f4`; \
+ $(MKDIR_P) $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \
+ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \
+ done
+
+uninstall-local:
+ for icon in $(icons); do \
+ THEME=`echo $$icon | cut -d_ -f1`; \
+ CONTEXT=`echo $$icon | cut -d_ -f2`; \
+ SIZE=`echo $$icon | cut -d_ -f3`; \
+ ICONFILE=`echo $$icon | cut -d_ -f4`; \
+ rm -f $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \
+ done
+
+EXTRA_DIST = $(icons)
diff --git a/data/icons/Makefile.in b/data/icons/Makefile.in
new file mode 100644
index 0000000..cc1b06b
--- /dev/null
+++ b/data/icons/Makefile.in
@@ -0,0 +1,447 @@
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = data/icons
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COLORD_CFLAGS = @COLORD_CFLAGS@
+COLORD_LIBS = @COLORD_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+HELP_DIR = @HELP_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+ITSTOOL = @ITSTOOL@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIMPLE_SCAN_CFLAGS = @SIMPLE_SCAN_CFLAGS@
+SIMPLE_SCAN_LIBS = @SIMPLE_SCAN_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+YELP_LC_DIST = @YELP_LC_DIST@
+YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+icons = \
+ hicolor_actions_16x16_object-crop.png \
+ hicolor_actions_22x22_object-crop.png \
+ hicolor_actions_24x24_object-crop.png \
+ hicolor_actions_32x32_object-crop.png \
+ hicolor_actions_48x48_object-crop.png \
+ hicolor_actions_scalable_object-crop.svg
+
+EXTRA_DIST = $(icons)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign data/icons/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-local
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
+ ctags-am distclean distclean-generic distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-data-local install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags-am uninstall uninstall-am uninstall-local
+
+
+install-data-local:
+ for icon in $(icons); do \
+ THEME=`echo $$icon | cut -d_ -f1`; \
+ CONTEXT=`echo $$icon | cut -d_ -f2`; \
+ SIZE=`echo $$icon | cut -d_ -f3`; \
+ ICONFILE=`echo $$icon | cut -d_ -f4`; \
+ $(MKDIR_P) $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \
+ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \
+ done
+
+uninstall-local:
+ for icon in $(icons); do \
+ THEME=`echo $$icon | cut -d_ -f1`; \
+ CONTEXT=`echo $$icon | cut -d_ -f2`; \
+ SIZE=`echo $$icon | cut -d_ -f3`; \
+ ICONFILE=`echo $$icon | cut -d_ -f4`; \
+ rm -f $(DESTDIR)$(pkgdatadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \
+ done
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/icons/hicolor_actions_16x16_object-crop.png b/data/icons/hicolor_actions_16x16_object-crop.png
new file mode 100644
index 0000000..48bcd12
--- /dev/null
+++ b/data/icons/hicolor_actions_16x16_object-crop.png
Binary files differ
diff --git a/data/icons/hicolor_actions_22x22_object-crop.png b/data/icons/hicolor_actions_22x22_object-crop.png
new file mode 100644
index 0000000..4dedd93
--- /dev/null
+++ b/data/icons/hicolor_actions_22x22_object-crop.png
Binary files differ
diff --git a/data/icons/hicolor_actions_24x24_object-crop.png b/data/icons/hicolor_actions_24x24_object-crop.png
new file mode 100644
index 0000000..0e46708
--- /dev/null
+++ b/data/icons/hicolor_actions_24x24_object-crop.png
Binary files differ
diff --git a/data/icons/hicolor_actions_32x32_object-crop.png b/data/icons/hicolor_actions_32x32_object-crop.png
new file mode 100644
index 0000000..b169fb7
--- /dev/null
+++ b/data/icons/hicolor_actions_32x32_object-crop.png
Binary files differ
diff --git a/data/icons/hicolor_actions_48x48_object-crop.png b/data/icons/hicolor_actions_48x48_object-crop.png
new file mode 100644
index 0000000..e410183
--- /dev/null
+++ b/data/icons/hicolor_actions_48x48_object-crop.png
Binary files differ
diff --git a/data/icons/hicolor_actions_scalable_object-crop.svg b/data/icons/hicolor_actions_scalable_object-crop.svg
new file mode 100644
index 0000000..42c4605
--- /dev/null
+++ b/data/icons/hicolor_actions_scalable_object-crop.svg
@@ -0,0 +1,826 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="90.000000"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-filename="/home/andreas/projekt/bild/tango/scalable/draw-pencil3.png"
+ width="48px"
+ height="48px"
+ id="svg9121"
+ sodipodi:version="0.32"
+ inkscape:version="0.43+devel"
+ sodipodi:docbase="/home/jimmac/src/cvs/tango-art-libre/scalable/transformations"
+ sodipodi:docname="transform-crop-and-resize.svg">
+ <defs
+ id="defs3">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2309">
+ <stop
+ style="stop-color:#686b65;stop-opacity:1;"
+ offset="0"
+ id="stop2311" />
+ <stop
+ style="stop-color:#686b65;stop-opacity:0;"
+ offset="1"
+ id="stop2313" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2301">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2303" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2305" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2287">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2289" />
+ <stop
+ style="stop-color:#cdcdcd;stop-opacity:0.77319586;"
+ offset="1"
+ id="stop2291" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2224">
+ <stop
+ style="stop-color:#32342f;stop-opacity:0.54639173;"
+ offset="0.0000000"
+ id="stop2226" />
+ <stop
+ style="stop-color:#32342f;stop-opacity:0;"
+ offset="1"
+ id="stop2228" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2224"
+ id="radialGradient2230"
+ cx="24.041630"
+ cy="42.242130"
+ fx="24.041630"
+ fy="42.242130"
+ r="17.576654"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.304598,1.552820e-15,29.37527)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient3441">
+ <stop
+ style="stop-color:#888a85;stop-opacity:1;"
+ offset="0"
+ id="stop3443" />
+ <stop
+ style="stop-color:#fcfff6;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop3445" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2655">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop2657" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop2659" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6157">
+ <stop
+ id="stop6159"
+ offset="0"
+ style="stop-color:#babdb6;stop-opacity:1;" />
+ <stop
+ id="stop6165"
+ offset="0.50000000"
+ style="stop-color:#dfe2da;stop-opacity:1.0000000;" />
+ <stop
+ id="stop6161"
+ offset="1.0000000"
+ style="stop-color:#babdb6;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10677">
+ <stop
+ style="stop-color:#6f4501;stop-opacity:1;"
+ offset="0"
+ id="stop10679" />
+ <stop
+ style="stop-color:#6f4501;stop-opacity:0;"
+ offset="1"
+ id="stop10681" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8391">
+ <stop
+ style="stop-color:#8f5902;stop-opacity:1;"
+ offset="0"
+ id="stop8393" />
+ <stop
+ style="stop-color:#8f5902;stop-opacity:0;"
+ offset="1"
+ id="stop8395" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7625">
+ <stop
+ style="stop-color:#505b5f;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop7627" />
+ <stop
+ style="stop-color:#2e3436;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop7629" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5333">
+ <stop
+ style="stop-color:#555753;stop-opacity:0.0000000;"
+ offset="0.0000000"
+ id="stop5335" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1.0000000;"
+ offset="0.50000000"
+ id="stop5341" />
+ <stop
+ style="stop-color:#555753;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop5337" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5325">
+ <stop
+ style="stop-color:#555753;stop-opacity:1;"
+ offset="0"
+ id="stop5327" />
+ <stop
+ style="stop-color:#555753;stop-opacity:0;"
+ offset="1"
+ id="stop5329" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5229">
+ <stop
+ id="stop5231"
+ offset="0.0000000"
+ style="stop-color:#969993;stop-opacity:1.0000000;" />
+ <stop
+ id="stop5237"
+ offset="0.50000000"
+ style="stop-color:#d4d8d0;stop-opacity:1.0000000;" />
+ <stop
+ id="stop5233"
+ offset="1.0000000"
+ style="stop-color:#abaea7;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11940">
+ <stop
+ id="stop11942"
+ offset="0"
+ style="stop-color:#fcf18f;stop-opacity:1;" />
+ <stop
+ id="stop11944"
+ offset="1"
+ style="stop-color:#fcf18f;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11932">
+ <stop
+ id="stop11934"
+ offset="0"
+ style="stop-color:#b59300;stop-opacity:1;" />
+ <stop
+ id="stop11936"
+ offset="1"
+ style="stop-color:#b59300;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11924"
+ inkscape:collect="always">
+ <stop
+ id="stop11926"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop11928"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11916">
+ <stop
+ id="stop11918"
+ offset="0.0000000"
+ style="stop-color:#8b7200;stop-opacity:1.0000000;" />
+ <stop
+ id="stop11920"
+ offset="1"
+ style="stop-color:#544500;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11124">
+ <stop
+ id="stop11126"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop11128"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient19124">
+ <stop
+ style="stop-color:#fcf18f;stop-opacity:1;"
+ offset="0"
+ id="stop19126" />
+ <stop
+ style="stop-color:#fcf8ce;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop19128" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient19116">
+ <stop
+ style="stop-color:#987c00;stop-opacity:1;"
+ offset="0"
+ id="stop19118" />
+ <stop
+ style="stop-color:#5f4d00;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop19120" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient19108">
+ <stop
+ style="stop-color:#edd400;stop-opacity:0.0000000;"
+ offset="0.0000000"
+ id="stop19110" />
+ <stop
+ style="stop-color:#b8a500;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop19112" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient18320">
+ <stop
+ style="stop-color:#e9b96e;stop-opacity:1;"
+ offset="0"
+ id="stop18322" />
+ <stop
+ style="stop-color:#b88433;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop18324" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient14520">
+ <stop
+ style="stop-color:#fcfae2;stop-opacity:0.0000000;"
+ offset="0.0000000"
+ id="stop14522" />
+ <stop
+ style="stop-color:#b8ab27;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop14524" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14520"
+ id="linearGradient14526"
+ gradientTransform="scale(0.831950,1.201995)"
+ x1="23.411154"
+ y1="0.82209921"
+ x2="21.684671"
+ y2="6.4114828"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient18320"
+ id="linearGradient18326"
+ gradientTransform="matrix(1.228073,0.000000,0.000000,1.407676,-1.888866,-14.16649)"
+ x1="11.711685"
+ y1="31.134253"
+ x2="15.543560"
+ y2="33.482140"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient19108"
+ id="linearGradient19114"
+ gradientTransform="scale(0.827650,1.208240)"
+ x1="31.654196"
+ y1="3.4796145"
+ x2="28.394352"
+ y2="12.564109"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="29.502863"
+ x2="24.769884"
+ y1="11.246989"
+ x1="15.750742"
+ gradientTransform="matrix(0.831950,0.000000,0.000000,1.201995,100.1096,-33.10918)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11152"
+ xlink:href="#linearGradient14520"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="33.482140"
+ x2="15.543560"
+ y1="31.134253"
+ x1="11.711685"
+ gradientTransform="matrix(0.934030,0.000000,0.000000,1.070630,100.1096,-33.10918)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11154"
+ xlink:href="#linearGradient18320"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="19.211454"
+ x2="29.475761"
+ y1="13.215685"
+ x1="20.190006"
+ gradientTransform="matrix(0.827650,0.000000,0.000000,1.208240,100.1096,-33.10918)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11156"
+ xlink:href="#linearGradient19108"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="4.8820314"
+ x2="33.964863"
+ y1="35.224327"
+ x1="8.1650734"
+ gradientTransform="scale(0.824694,1.212571)"
+ id="linearGradient11930"
+ xlink:href="#linearGradient11924"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="2.7806931"
+ x2="34.060062"
+ y1="16.266647"
+ x1="27.062229"
+ gradientTransform="scale(0.800741,1.248844)"
+ id="linearGradient11938"
+ xlink:href="#linearGradient11932"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-0.48521933"
+ x2="16.707243"
+ y1="4.4311285"
+ x1="14.394565"
+ gradientTransform="scale(0.838071,1.193216)"
+ id="linearGradient11946"
+ xlink:href="#linearGradient11940"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="4.8820314"
+ x2="33.964863"
+ y1="35.224327"
+ x1="8.1650734"
+ gradientTransform="matrix(0.824694,0.000000,0.000000,1.212571,17.09202,-2.523485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient13466"
+ xlink:href="#linearGradient11924"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="2.6501136"
+ x2="24.141811"
+ y1="7.2559285"
+ x1="22.480724"
+ gradientTransform="scale(0.826560,1.209833)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient13472"
+ xlink:href="#linearGradient11916"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="12.564109"
+ x2="28.394352"
+ y1="3.4796145"
+ x1="31.654196"
+ gradientTransform="scale(0.827650,1.208240)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1949"
+ xlink:href="#linearGradient19108"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="33.482140"
+ x2="15.543560"
+ y1="31.134253"
+ x1="11.711685"
+ gradientTransform="matrix(1.228073,4.302344e-17,-4.316300e-17,1.407676,-1.888866,-14.16649)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1951"
+ xlink:href="#linearGradient18320"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-0.48521933"
+ x2="16.707243"
+ y1="4.4311285"
+ x1="14.394565"
+ gradientTransform="scale(0.838071,1.193216)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1953"
+ xlink:href="#linearGradient11940"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="2.7806931"
+ x2="34.060062"
+ y1="16.266647"
+ x1="27.062229"
+ gradientTransform="scale(0.800741,1.248844)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1955"
+ xlink:href="#linearGradient11932"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="6.4114828"
+ x2="21.684671"
+ y1="0.82209921"
+ x1="23.411154"
+ gradientTransform="scale(0.831950,1.201995)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1957"
+ xlink:href="#linearGradient14520"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="2.6501136"
+ x2="24.141811"
+ y1="7.2559285"
+ x1="22.480724"
+ gradientTransform="scale(0.826560,1.209833)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1959"
+ xlink:href="#linearGradient11916"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11916"
+ id="linearGradient4295"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.810222,0.163528,-0.239356,1.185920,0.000000,0.000000)"
+ x1="32.368496"
+ y1="6.0591717"
+ x2="35.239323"
+ y2="-3.6642039" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14520"
+ id="linearGradient4300"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.815505,0.164595,-0.237805,1.178235,8.297767,0.197690)"
+ x1="23.411154"
+ y1="0.82209921"
+ x2="21.684671"
+ y2="6.4114828" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11932"
+ id="linearGradient4303"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.784913,0.158420,-0.247074,1.224159,0.000000,0.000000)"
+ x1="43.604591"
+ y1="9.6609612"
+ x2="48.134148"
+ y2="1.5751816" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11940"
+ id="linearGradient4306"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.821506,0.165806,-0.236068,1.169631,0.000000,0.000000)"
+ x1="28.250944"
+ y1="1.5502936"
+ x2="29.906208"
+ y2="-2.3372657" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient18320"
+ id="linearGradient4309"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.203798,0.242964,-0.278497,1.379850,9.248965,-14.06247)"
+ x1="11.711685"
+ y1="31.134253"
+ x2="15.543560"
+ y2="33.482140" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient19108"
+ id="linearGradient4312"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.811291,0.163744,-0.239041,1.184358,0.000000,0.000000)"
+ x1="41.323280"
+ y1="-3.1978326"
+ x2="38.269123"
+ y2="11.365776" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5229"
+ id="linearGradient3805"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.821255,0.715182,-0.603048,0.692490,0.000000,0.000000)"
+ x1="24.742752"
+ y1="2.3111212"
+ x2="31.589277"
+ y2="2.4383495" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5333"
+ id="linearGradient5339"
+ gradientTransform="scale(1.064121,0.939743)"
+ x1="21.868711"
+ y1="15.557981"
+ x2="30.635437"
+ y2="24.778368"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5333"
+ id="linearGradient6107"
+ gradientTransform="scale(1.061798,0.941799)"
+ x1="15.356030"
+ y1="27.317253"
+ x2="20.829000"
+ y2="33.497402"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7625"
+ id="radialGradient7631"
+ gradientTransform="matrix(1.130280,0.000000,0.000000,0.884737,0.902354,-0.427463)"
+ cx="8.9124269"
+ cy="34.747555"
+ fx="9.0367527"
+ fy="34.482697"
+ r="7.9984083"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8391"
+ id="linearGradient8397"
+ gradientTransform="scale(1.013347,0.986829)"
+ x1="32.138252"
+ y1="14.785198"
+ x2="38.881176"
+ y2="6.9174280"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10677"
+ id="linearGradient10683"
+ gradientTransform="scale(0.941920,1.061662)"
+ x1="32.457001"
+ y1="16.203007"
+ x2="41.377167"
+ y2="5.4044285"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10677"
+ id="linearGradient10685"
+ gradientTransform="scale(0.941920,1.061662)"
+ x1="32.457001"
+ y1="16.203007"
+ x2="41.377167"
+ y2="5.4044285"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="7.8440785"
+ x2="-38.256573"
+ y1="17.157629"
+ x1="-31.074017"
+ gradientTransform="scale(0.765250,1.306762)"
+ id="linearGradient6163"
+ xlink:href="#linearGradient6157"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="7.8440785"
+ x2="-38.256573"
+ y1="17.157629"
+ x1="-31.074017"
+ gradientTransform="matrix(0.603485,0.470548,-0.803519,1.030527,48.59133,29.97432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient7714"
+ xlink:href="#linearGradient6157"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2655"
+ id="linearGradient2661"
+ gradientTransform="scale(0.954299,1.047890)"
+ x1="34.563408"
+ y1="12.489259"
+ x2="40.103199"
+ y2="5.6996894"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3441"
+ id="linearGradient3452"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.527682,3.007844e-9,-1.465781e-8,1.395766,0.274469,-0.380594)"
+ x1="54.225159"
+ y1="-3.4504862"
+ x2="64.746307"
+ y2="-2.537426" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2287"
+ id="linearGradient2293"
+ x1="17.66604"
+ y1="30.501617"
+ x2="19.180296"
+ y2="22.001617"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2224"
+ id="radialGradient2297"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.304598,2.474554e-15,29.37527)"
+ cx="24.041630"
+ cy="42.242130"
+ fx="24.041630"
+ fy="42.242130"
+ r="17.576654" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2301"
+ id="linearGradient2307"
+ x1="25.728207"
+ y1="12.759781"
+ x2="27.500931"
+ y2="14.134781"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.902575,0.000000,0.000000,0.902575,2.604411,1.752083)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2309"
+ id="linearGradient2315"
+ x1="32.983826"
+ y1="13.087369"
+ x2="38.270443"
+ y2="5.9726477"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="0.22745098"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="30.522044"
+ inkscape:cy="36.26787"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="915"
+ inkscape:window-height="852"
+ inkscape:window-x="365"
+ inkscape:window-y="58"
+ inkscape:showpageshadow="false" />
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>Crop Tool</dc:title>
+ <dc:date>2005-10-12</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Andreas Nilsson</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>crop</rdf:li>
+ <rdf:li>cut</rdf:li>
+ <rdf:li>divide</rdf:li>
+ <rdf:li>split</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Attribution" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.48295455;fill:url(#radialGradient2230);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.07686412;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path2222"
+ sodipodi:cx="24.04163"
+ sodipodi:cy="42.24213"
+ sodipodi:rx="17.576654"
+ sodipodi:ry="5.3538084"
+ d="M 41.618284 42.24213 A 17.576654 5.3538084 0 1 1 6.4649754,42.24213 A 17.576654 5.3538084 0 1 1 41.618284 42.24213 z"
+ transform="matrix(0.673638,0.000000,0.000000,0.430086,-0.605052,20.90465)" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path7706"
+ d="M 2.8839231,40.604807 C 2.8289019,40.675373 16.747691,40.499044 28.467196,32.686242 L 25.880399,30.669273 L 28.874256,26.8296 L 19.439728,19.473343 L 2.8839231,40.604807 z "
+ style="fill:url(#linearGradient7714);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#686b65;stroke-width:1.0000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path7708"
+ d="M 5.4018936,39.015942 C 9.8468723,38.336507 18.489609,36.512606 26.767934,32.643585 L 24.476866,30.857202 L 29.930295,23.863084 L 22.072991,17.736614 L 5.4018936,39.015942 z "
+ style="stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0000007;stroke:url(#linearGradient2293);fill-rule:evenodd;fill-opacity:1.0000000;fill:none" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path7710"
+ d="M 25.184875,30.813965 C 16.717482,37.347736 5.8763072,37.531471 5.9121195,37.508799 L 4.1515976,39.859872 C 4.1959591,39.943637 16.629555,39.727546 27.636682,32.738124 L 25.184875,30.813965 z "
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path7712"
+ d="M 33.128941,0.021384731 L 18.603207,18.650892 C 21.372977,21.055374 22.372377,22.637098 20.25171,25.552907 L 23.708442,28.248177 C 25.447618,25.865954 27.221201,25.210765 30.296105,27.96658 L 45.12593,9.5458368"
+ style="fill:url(#linearGradient2661);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2315);stroke-width:1.00000072;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;opacity:1;color:#000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-dasharray:none;stroke-dashoffset:0;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ style="fill:#eeeeec;fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#linearGradient3452);stroke-width:1.0000583;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+ id="rect3450"
+ width="4.5955172"
+ height="14.063637"
+ x="31.493130"
+ y="-11.785673"
+ rx="1.6161331"
+ ry="1.4138852"
+ transform="matrix(0.794294,0.607534,-0.619919,0.784665,0.000000,0.000000)" />
+ <path
+ transform="matrix(1.281689,0.000000,0.000000,1.098472,-7.036086,-7.532814)"
+ d="M 41.618284 42.24213 A 17.576654 5.3538084 0 1 1 6.4649754,42.24213 A 17.576654 5.3538084 0 1 1 41.618284 42.24213 z"
+ sodipodi:ry="5.3538084"
+ sodipodi:rx="17.576654"
+ sodipodi:cy="42.24213"
+ sodipodi:cx="24.04163"
+ id="path2295"
+ style="opacity:0.32954544;fill:url(#radialGradient2297);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.07686412;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ style="opacity:1;color:#000000;fill:url(#linearGradient2307);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 32.505759,1.7713847 L 19.395197,18.585909 C 21.895122,20.756134 22.797155,22.183758 20.883095,24.815494 L 24.003054,27.248177 C 25.57279,25.098042 27.173582,24.506685 29.948913,26.994015 L 43.33394,10.367915"
+ id="path2299"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="opacity:0.48295456;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 43.125,11 L 30.25,27.25 C 27.25,25.5 26.375,24.75 23.625,27.5 L 20.875,25.375 L 23.625,26.5 C 25.875,24.375 27.625,24.25 29.75,26.375 L 43.125,11 z "
+ id="path2317"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="opacity:0.11363636;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000072;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 20,26.0625 L 23.6875,30.25 C 26.0625,26.875 26.75,27.3125 27.625,27.5625 L 28.1875,27.0625 C 26.6875,26.25 25.25,26.6875 23.75,28.875 L 20,26.0625 z "
+ id="path2319"
+ sodipodi:nodetypes="cccccc" />
+ </g>
+</svg>
diff --git a/data/org.gnome.SimpleScan.gschema.xml.in b/data/org.gnome.SimpleScan.gschema.xml.in
new file mode 100644
index 0000000..3ce3d12
--- /dev/null
+++ b/data/org.gnome.SimpleScan.gschema.xml.in
@@ -0,0 +1,70 @@
+<schemalist>
+ <enum id="org.gnome.SimpleScan.PageSide">
+ <value value="1" nick="front"/>
+ <value value="2" nick="back"/>
+ <value value="3" nick="both"/>
+ </enum>
+
+ <schema id="org.gnome.SimpleScan" path="/org/gnome/simple-scan/" gettext-domain="simple-scan">
+ <key name="selected-device" type="s">
+ <default>''</default>
+ <_summary>Device to scan from</_summary>
+ <_description>SANE device to acquire images from.</_description>
+ </key>
+ <key name="document-type" type="s">
+ <default>'photo'</default>
+ <choices>
+ <choice value="text"/>
+ <choice value="photo"/>
+ </choices>
+ <_summary>Type of document being scanned</_summary>
+ <_description>Type of document being scanned. This setting decides on the scan resolution, colors and post-processing.</_description>
+ </key>
+ <key name="paper-width" type="i">
+ <default>0</default>
+ <_summary>Width of paper in tenths of a mm</_summary>
+ <_description>The width of the paper in tenths of a mm (or 0 for automatic paper detection).</_description>
+ </key>
+ <key name="paper-height" type="i">
+ <default>0</default>
+ <_summary>Height of paper in tenths of a mm</_summary>
+ <_description>The height of the paper in tenths of a mm (or 0 for automatic paper detection).</_description>
+ </key>
+ <key name="brightness" type="i">
+ <default>0</default>
+ <_summary>Brightness of scan</_summary>
+ <_description>The brightness adjustment from -100 to 100 (0 being none).</_description>
+ </key>
+ <key name="contrast" type="i">
+ <default>0</default>
+ <_summary>Contrast of scan</_summary>
+ <_description>The contrast adjustment from -100 to 100 (0 being none).</_description>
+ </key>
+ <key name="text-dpi" type="i">
+ <default>150</default>
+ <_summary>Resolution for text scans</_summary>
+ <_description>The resolution in dots-per-inch to use when scanning text.</_description>
+ </key>
+ <key name="photo-dpi" type="i">
+ <default>300</default>
+ <_summary>Resolution for photo scans</_summary>
+ <_description>The resolution in dots-per-inch to use when scanning photos.</_description>
+ </key>
+ <key name="page-side" enum="org.gnome.SimpleScan.PageSide">
+ <default>'both'</default>
+ <_summary>Page side to scan</_summary>
+ <_description>The page side to scan.</_description>
+ </key>
+ <key name="save-directory" type="s">
+ <default>''</default>
+ <_summary>Directory to save files to</_summary>
+ <_description>The directory to save files to. Defaults to the documents directory if unset.</_description>
+ </key>
+ <key name="jpeg-quality" type="i">
+ <range min="0" max="100"/>
+ <default>75</default>
+ <_summary>Quality value to use for JPEG compression</_summary>
+ <_description>Quality value to use for JPEG compression.</_description>
+ </key>
+ </schema>
+</schemalist>
diff --git a/data/simple-scan.1 b/data/simple-scan.1
new file mode 100644
index 0000000..d562b97
--- /dev/null
+++ b/data/simple-scan.1
@@ -0,0 +1,63 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH SIMPLE-SCAN 1 "December 21, 2009"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+simple-scan \- Scanning utility
+.SH SYNOPSIS
+.BI "simple-scan [" DEVICE "]"
+.SH DESCRIPTION
+This manual page documents briefly the
+.B simple-scan
+command.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
+.\" respectively.
+.B Simple Scan
+is an easy-to-use application, designed to let users connect their
+scanner and quickly have the image/document in an appropriate format.
+.PP
+.B Simple Scan
+has been written with GTK+ libraries, and after installing the
+application you can run it from the
+.B Applications
+menu.
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of options is included below.
+For a complete description, see the Info files.
+.TP
+.B \-d, \-\-debug
+Print debugging messages.
+.TP
+.B \-v, \-\-version
+Show release version.
+.TP
+.B \-?, \-\-help
+Show help options.
+.TP
+.B \-\-help-all
+Show all help options.
+.TP
+.B \-d, \-\-help-gtk
+Show GTK+ options.
+.SH AUTHOR
+simple-scan was written by Robert Ancell <robert.ancell@canonical.com>.
+.PP
+This manual page was written by Alessio Treglia <quadrispro@ubuntu.com>,
+for the Debian project (and may be used by others).
diff --git a/data/simple-scan.appdata.xml b/data/simple-scan.appdata.xml
new file mode 100644
index 0000000..dd57ff6
--- /dev/null
+++ b/data/simple-scan.appdata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application>
+ <id type="desktop">simple-scan.desktop</id>
+ <licence>CC0</licence>
+ <description>
+ <p>
+ A really easy way to scan both documents and photos.
+ You can crop out the bad parts of a photo and rotate it if it is the wrong way round.
+ You can print your scans, export them to pdf, or save them in a range of image formats.
+ </p>
+ <p>
+ Simple Scan uses the SANE framework to support most existing scanners.
+ </p>
+ </description>
+ <url type="homepage">https://launchpad.net/simple-scan</url>
+</application>
diff --git a/data/simple-scan.desktop.in b/data/simple-scan.desktop.in
new file mode 100644
index 0000000..cc1864f
--- /dev/null
+++ b/data/simple-scan.desktop.in
@@ -0,0 +1,10 @@
+[Desktop Entry]
+_Name=Simple Scan
+_Comment=Scan Documents
+Exec=simple-scan
+Icon=scanner
+Terminal=false
+Type=Application
+StartupNotify=true
+Categories=GNOME;GTK;Graphics;Scanning;
+X-GNOME-Gettext-Domain=simple-scan
diff --git a/data/simple-scan.gresource.xml b/data/simple-scan.gresource.xml
new file mode 100644
index 0000000..b6fe6a6
--- /dev/null
+++ b/data/simple-scan.gresource.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/gnome/SimpleScan">
+ <file preprocess="xml-stripblanks">simple-scan.ui</file>
+ </gresource>
+</gresources>
diff --git a/data/simple-scan.ui b/data/simple-scan.ui
new file mode 100644
index 0000000..d610c2e
--- /dev/null
+++ b/data/simple-scan.ui
@@ -0,0 +1,1401 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.10 -->
+ <object class="GtkDialog" id="authorize_dialog">
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="resizable">False</property>
+ <property name="modal">True</property>
+ <property name="type_hint">normal</property>
+ <property name="urgency_hint">True</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="authorize_button">
+ <property name="label" translatable="yes" comments="Button to submit authorization dialog">_Authorize</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="vbox5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="authorize_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" comments="This label is set dynamically and is not translated">To connect to ? you need to authorize</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">6</property>
+ <child>
+ <object class="GtkEntry" id="username_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="invisible_char">●</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="password_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="visibility">False</property>
+ <property name="invisible_char">●</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="username_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Label beside username entry">_Username for resource:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">username_entry</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="password_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Label beside password entry">_Password:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">password_entry</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="0">authorize_button</action-widget>
+ </action-widgets>
+ </object>
+ <object class="GtkAdjustment" id="brightness_adjustment">
+ <property name="lower">-100</property>
+ <property name="upper">100</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="contrast_adjustment">
+ <property name="lower">-100</property>
+ <property name="upper">100</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkListStore" id="device_model">
+ <columns>
+ <!-- column-name device_name -->
+ <column type="gchararray"/>
+ <!-- column-name label -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkImage" id="email_image">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="icon_name">mail-send</property>
+ </object>
+ <object class="GtkImage" id="help_image">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-help</property>
+ </object>
+ <object class="GtkListStore" id="page_side_model">
+ <columns>
+ <!-- column-name side -->
+ <column type="gint"/>
+ <!-- column-name label -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0">3</col>
+ <col id="1" translatable="yes" comments="Combo box label for scanning both sides of a page">Front and Back</col>
+ </row>
+ <row>
+ <col id="0">1</col>
+ <col id="1" translatable="yes" comments="Combo box label for scanning the front side of a page">Front</col>
+ </row>
+ <row>
+ <col id="0">2</col>
+ <col id="1" translatable="yes" comments="Combo box label for scanning the back side of a page">Back</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="paper_size_model">
+ <columns>
+ <!-- column-name width -->
+ <column type="gint"/>
+ <!-- column-name height -->
+ <column type="gint"/>
+ <!-- column-name label -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkListStore" id="photo_dpi_model">
+ <columns>
+ <!-- column-name dpi -->
+ <column type="gint"/>
+ <!-- column-name label -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkAdjustment" id="quality_adjustment">
+ <property name="upper">100</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <template class="UserInterface" parent="GtkApplicationWindow">
+ <property name="can_focus">False</property>
+ <property name="title" translatable="yes" comments="Title of scan window">Simple Scan</property>
+ <property name="icon_name">scanner</property>
+ <signal name="configure-event" handler="simple_scan_window_configure_event_cb" swapped="no"/>
+ <signal name="delete-event" handler="window_delete_event_cb" swapped="no"/>
+ <signal name="window-state-event" handler="simple_scan_window_window_state_event_cb" swapped="no"/>
+ <child>
+ <object class="GtkBox" id="main_vbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkMenuBar" id="menubar">
+ <property name="visible">False</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkMenuItem" id="document_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Label on document menu (contains actions for this document, e.g. save, print)">_Document</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="document_menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkImageMenuItem" id="new_menuitem">
+ <property name="label">gtk-new</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <accelerator key="n" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+ <signal name="activate" handler="new_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="scan_menuitem">
+ <property name="label" translatable="yes" comments="Scan menu item">Sc_an</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">False</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="scan_menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkMenuItem" id="scan_single_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Scan menu item to scan a single page from the scanner">Single _Page</property>
+ <property name="use_underline">True</property>
+ <accelerator key="1" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+ <signal name="activate" handler="scan_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="scan_all_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Scan menu item to scan all pages from a document feeder">All Pages From _Feeder</property>
+ <property name="use_underline">True</property>
+ <accelerator key="f" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+ <signal name="activate" handler="continuous_scan_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="stop_scan_menuitem">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Menu entry to stop current scan">_Stop Scan</property>
+ <property name="use_underline">True</property>
+ <accelerator key="Escape" signal="activate"/>
+ <signal name="activate" handler="stop_scan_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="menuitem2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="text_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Text</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <signal name="toggled" handler="text_menuitem_toggled_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="photo_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Photo</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">text_menuitem</property>
+ <signal name="toggled" handler="photo_menuitem_toggled_cb" swapped="no"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="reorder_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Menu item to reorder pages">Reorder Pages</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="reorder_menuitem_activate_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="save_menuitem">
+ <property name="label">gtk-save</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">False</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <accelerator key="s" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+ <signal name="activate" handler="save_file_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="save_as_menuitem">
+ <property name="label">gtk-save-as</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">False</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <accelerator key="s" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
+ <signal name="activate" handler="save_as_file_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="email_menuitem">
+ <property name="label" translatable="yes" comments="Label on email menu item">_Email</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="use_underline">True</property>
+ <property name="image">email_image</property>
+ <property name="use_stock">False</property>
+ <accelerator key="e" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+ <signal name="activate" handler="email_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="print_menuitem">
+ <property name="label">gtk-print</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <accelerator key="p" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+ <signal name="activate" handler="print_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="document_sep_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="preferences_menuitem">
+ <property name="label">gtk-preferences</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <signal name="activate" handler="preferences_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="separatormenuitem1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="quit_menuitem">
+ <property name="label">gtk-quit</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <accelerator key="w" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+ <accelerator key="q" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+ <signal name="activate" handler="quit_menuitem_activate_cb" swapped="no"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="page_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Page menu (contains action for each page, e.g. delete, crop)">_Page</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="page_menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkMenuItem" id="rotate_left_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Menu item to rotate page to left (anti-clockwise)">Rotate _Left</property>
+ <property name="use_underline">True</property>
+ <accelerator key="bracketleft" signal="activate"/>
+ <signal name="activate" handler="rotate_left_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="rotate_right_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Menu item to rotate page to right (clockwise)">Rotate _Right</property>
+ <property name="use_underline">True</property>
+ <accelerator key="bracketright" signal="activate"/>
+ <signal name="activate" handler="rotate_right_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="crop_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Label for page crop submenu">_Crop</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="crop_menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkRadioMenuItem" id="no_crop_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Radio button for no crop">_None</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_as_radio">True</property>
+ <signal name="toggled" handler="no_crop_menuitem_toggled_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="a4_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Radio button for cropping page to A4 size">A_4</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">no_crop_menuitem</property>
+ <signal name="toggled" handler="a4_menuitem_toggled_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="a5_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Radio button for cropping page to A5 size">A_5</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">no_crop_menuitem</property>
+ <signal name="toggled" handler="a5_menuitem_toggled_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="a6_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Radio button for cropping page to A6 size">A_6</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">no_crop_menuitem</property>
+ <signal name="toggled" handler="a6_menuitem_toggled_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="letter_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Radio button for cropping page to US letter size">_Letter</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">no_crop_menuitem</property>
+ <signal name="toggled" handler="letter_menuitem_toggled_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="legal_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Radio button for cropping to page to US legal size">Le_gal</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">no_crop_menuitem</property>
+ <signal name="toggled" handler="legal_menuitem_toggled_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="four_by_six_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Radio button for cropping page to 4x6 inch">4×6</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">no_crop_menuitem</property>
+ <signal name="toggled" handler="four_by_six_menuitem_toggled_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="custom_crop_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Radio button for cropping to custom page size">_Custom</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">no_crop_menuitem</property>
+ <signal name="toggled" handler="custom_crop_menuitem_toggled_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="crop_sep_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="crop_rotate_menuitem">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Menu item to rotate the crop area">_Rotate Crop</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="crop_rotate_menuitem_activate_cb" swapped="no"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="page_move_left_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Menu item to move the selected page to the left">Move Left</property>
+ <accelerator key="less" signal="activate"/>
+ <signal name="activate" handler="page_move_left_menuitem_activate_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="page_move_right_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Menu item to move the selected page to the right">Move Right</property>
+ <property name="use_underline">True</property>
+ <accelerator key="greater" signal="activate"/>
+ <signal name="activate" handler="page_move_right_menuitem_activate_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="copy_to_clipboard_menuitem">
+ <property name="label">gtk-copy</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">False</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <accelerator key="c" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+ <signal name="activate" handler="copy_to_clipboard_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="page_delete_menuitem">
+ <property name="label">gtk-delete</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <accelerator key="Delete" signal="activate"/>
+ <signal name="activate" handler="page_delete_menuitem_activate_cb" swapped="no"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="help_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Label on help menu">_Help</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="help_menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkImageMenuItem" id="help_contents_menuitem">
+ <property name="label" translatable="yes" comments="Help|Contents menu">_Contents</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="use_underline">True</property>
+ <property name="image">help_image</property>
+ <property name="use_stock">False</property>
+ <accelerator key="F1" signal="activate"/>
+ <signal name="activate" handler="help_contents_menuitem_activate_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="about_menuitem">
+ <property name="label">gtk-about</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <signal name="activate" handler="about_menuitem_activate_cb" swapped="no"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolbar" id="toolbar">
+ <property name="visible">False</property>
+ <property name="can_focus">False</property>
+ <style>
+ <class name="primary-toolbar"/>
+ </style>
+ <child>
+ <object class="GtkToolButton" id="new_toolbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes" comments="Tooltip for new document button">Start a new document</property>
+ <property name="label" translatable="yes">New</property>
+ <property name="use_underline">True</property>
+ <property name="stock_id">gtk-new</property>
+ <signal name="clicked" handler="new_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkMenuToolButton" id="scan_toolbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes" comments="Tooltip for scan toolbar button">Scan a single page from the scanner</property>
+ <property name="is_important">True</property>
+ <property name="label" translatable="yes" comments="Label on scan toolbar item">Scan</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">scanner</property>
+ <property name="menu">scan_button_menu</property>
+ <signal name="clicked" handler="scan_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="save_toolbutton">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes" comments="Tooltip for save toolbar button">Save document to a file</property>
+ <property name="is_important">True</property>
+ <property name="label" translatable="yes">Save</property>
+ <property name="use_underline">True</property>
+ <property name="stock_id">gtk-save</property>
+ <signal name="clicked" handler="save_file_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="stop_toolbutton">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes" comments="Tooltip for stop button">Stop the current scan</property>
+ <property name="label" translatable="yes">Stop</property>
+ <property name="use_underline">True</property>
+ <property name="stock_id">gtk-stop</property>
+ <signal name="clicked" handler="stop_scan_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparatorToolItem" id="toolbutton2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="rotate_left_toolbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes" comments="Tooltip for rotate left (counter-clockwise) button">Rotate the page to the left (counter-clockwise)</property>
+ <property name="label" translatable="yes" comments="Label on rotate page left (anti-clockwise) item">Rotate Left</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">object-rotate-left</property>
+ <signal name="clicked" handler="rotate_left_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="rotate_right_toolbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes" comments="Tooltip for rotate right (clockwise) button">Rotate the page to the right (clockwise)</property>
+ <property name="label" translatable="yes" comments="Label on rotate page right (clockwise) item">Rotate Right</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">object-rotate-right</property>
+ <signal name="clicked" handler="rotate_right_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleToolButton" id="crop_toolbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Crop the selected page</property>
+ <property name="is_important">True</property>
+ <property name="label" translatable="yes">Crop</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">object-crop</property>
+ <signal name="toggled" handler="crop_toolbutton_toggled_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ <child type="titlebar">
+ <object class="GtkHeaderBar" id="headerbar">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="vexpand">True</property>
+ <property name="show_close_button">True</property>
+ <property name="title" translatable="yes" comments="Title of scan window">Simple Scan</property>
+ <style>
+ <class name="titlebar"/>
+ </style>
+ <child>
+ <object class="GtkBox" id="open_box">
+ <property name="visible">True</property>
+ <property name="orientation">horizontal</property>
+ <property name="valign">center</property>
+ <style>
+ <class name="linked"/>
+ </style>
+ <child>
+ <object class="GtkButton" id="stop_button">
+ <property name="visible">False</property>
+ <property name="tooltip_text" translatable="yes" comments="Tooltip for stop button">Stop the current scan</property>
+ <property name="label" translatable="yes">Stop</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked" handler="stop_scan_button_clicked_cb" swapped="no"/>
+ <style>
+ <class name="text-button"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="scan_button">
+ <property name="visible">True</property>
+ <property name="tooltip_text" translatable="yes" comments="Tooltip for scan toolbar button">Scan a single page from the scanner</property>
+ <property name="label" translatable="yes" comments="Label on scan toolbar item">Scan</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked" handler="scan_button_clicked_cb" swapped="no"/>
+ <style>
+ <class name="text-button"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="open_button">
+ <property name="visible">True</property>
+ <property name="popup">scan_button_hb_menu</property>
+ <style>
+ <class name="text-button"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="pack_type">start</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="save_button">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes" comments="Tooltip for save toolbar button">Save document to a file</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked" handler="save_file_button_clicked_cb" swapped="no"/>
+ <style>
+ <class name="image-button"/>
+ </style>
+ <child>
+ <object class="GtkImage" id="save_image">
+ <property name="visible">True</property>
+ <property name="icon_size">1</property>
+ <property name="icon_name">document-save-symbolic</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="new_button">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes" comments="Tooltip for new document button">Start a new document</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked" handler="new_button_clicked_cb" swapped="no"/>
+ <style>
+ <class name="image-button"/>
+ </style>
+ <child>
+ <object class="GtkImage" id="new_image">
+ <property name="visible">True</property>
+ <property name="icon_size">1</property>
+ <property name="icon_name">document-new-symbolic</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="rotate_box">
+ <property name="visible">True</property>
+ <property name="orientation">horizontal</property>
+ <property name="valign">center</property>
+ <style>
+ <class name="linked"/>
+ </style>
+ <child>
+ <object class="GtkButton" id="rotate_right_button">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes" comments="Tooltip for rotate right (clockwise) button">Rotate the page to the right (clockwise)</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked" handler="rotate_right_button_clicked_cb" swapped="no"/>
+ <style>
+ <class name="image-button"/>
+ </style>
+ <child>
+ <object class="GtkImage" id="objectrotateright-button">
+ <property name="visible">True</property>
+ <property name="icon_size">1</property>
+ <property name="icon_name">object-rotate-right-symbolic</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="pack_type">end</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="rotate_left_button">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes" comments="Tooltip for rotate left (counter-clockwise) button">Rotate the page to the left (counter-clockwise)</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked" handler="rotate_left_button_clicked_cb" swapped="no"/>
+ <style>
+ <class name="image-button"/>
+ </style>
+ <child>
+ <object class="GtkImage" id="objectrotateleft-button">
+ <property name="visible">True</property>
+ <property name="icon_size">1</property>
+ <property name="icon_name">object-rotate-left-symbolic</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="pack_type">end</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="pack_type">end</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="crop_button">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Crop the selected page</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="crop_button_toggled_cb" swapped="no"/>
+ <style>
+ <class name="image-button"/>
+ </style>
+ <child>
+ <object class="GtkImage" id="objectcrop-button">
+ <property name="visible">True</property>
+ <property name="icon_size">1</property>
+ <property name="icon_name">edit-cut-symbolic</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="pack_type">end</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ </packing>
+ </child>
+ </template>
+ <object class="GtkListStore" id="text_dpi_model">
+ <columns>
+ <!-- column-name dpi -->
+ <column type="gint"/>
+ <!-- column-name label -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkDialog" id="preferences_dialog">
+ <property name="can_focus">False</property>
+ <property name="border_width">7</property>
+ <property name="title" translatable="yes" comments="Title of preferences dialog">Preferences</property>
+ <property name="resizable">False</property>
+ <property name="icon_name">scanner</property>
+ <property name="type_hint">normal</property>
+ <signal name="delete-event" handler="preferences_dialog_delete_event_cb" swapped="no"/>
+ <signal name="response" handler="preferences_dialog_response_cb" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="preferences_close_button">
+ <property name="label">gtk-close</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="source_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes" comments="Label beside scan source combo box">Scan S_ource:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">device_combo</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="device_combo">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="model">device_model</property>
+ <signal name="changed" handler="device_combo_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="text_dpi_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes" comments="Label beside scan source combo box">_Text Resolution:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">text_dpi_combo</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="photo_dpi_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes" comments="Label beside scan source combo box">_Photo Resolution:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">photo_dpi_combo</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="text_dpi_combo">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="model">text_dpi_model</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="photo_dpi_combo">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="model">photo_dpi_model</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="page_side_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes" comments="Label beside scan side combo box">Scan Side:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">photo_dpi_combo</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="page_side_combo">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="model">page_side_model</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">3</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="paper_size_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes" comments="Label beside page size combo box">Page Size:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">photo_dpi_combo</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">4</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="paper_size_combo">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="model">paper_size_model</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">4</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="brightness_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes" comments="Label beside brightness scale">Brightness:</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">5</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScale" id="brightness_scale">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="adjustment">brightness_adjustment</property>
+ <property name="draw_value">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">5</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="contrast_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes" comments="Label beside contrast scale">Contrast:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">contrast_scale</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">6</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScale" id="contrast_scale">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="adjustment">contrast_adjustment</property>
+ <property name="draw_value">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">6</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="quality_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes" comments="Label beside quality scale">Quality:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">quality_scale</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">7</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScale" id="quality_scale">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="adjustment">quality_adjustment</property>
+ <property name="draw_value">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">7</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="1">preferences_close_button</action-widget>
+ </action-widgets>
+ </object>
+ <object class="GtkMenu" id="scan_button_menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkMenuItem" id="scan_single_button_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Toolbar scan menu item to scan a single page from the scanner">Single _Page</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="scan_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="scan_all_button_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Toolbar scan menu item to scan all pages from a document feeder">All Pages From _Feeder</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="continuous_scan_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="menuitem1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="text_button_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Text</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <signal name="toggled" handler="text_menuitem_toggled_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="photo_button_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Photo</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">text_button_menuitem</property>
+ <signal name="toggled" handler="photo_menuitem_toggled_cb" swapped="no"/>
+ </object>
+ </child>
+ </object>
+ <object class="GtkMenu" id="scan_button_hb_menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkMenuItem" id="scan_single_button_hb_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Toolbar scan menu item to scan a single page from the scanner">Single _Page</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="scan_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="scan_all_button_hb_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="Toolbar scan menu item to scan all pages from a document feeder">All Pages From _Feeder</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="continuous_scan_button_clicked_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="menuitem3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="text_button_hb_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Text</property>
+ <property name="use_underline">True</property>
+ <property name="draw_as_radio">True</property>
+ <signal name="toggled" handler="text_menuitem_toggled_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRadioMenuItem" id="photo_button_hb_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Photo</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_as_radio">True</property>
+ <property name="group">text_button_hb_menuitem</property>
+ <signal name="toggled" handler="photo_menuitem_toggled_cb" swapped="no"/>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..f798c3e
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,384 @@
+simple-scan (3.13.92-1) UNRELEASED; urgency=medium
+
+ * New upstream release.
+ - Updated translations.
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Tue, 16 Sep 2014 11:38:05 +0200
+
+simple-scan (3.13.91-1) unstable; urgency=medium
+
+ * New upstream release.
+ - Updated translations.
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Sun, 31 Aug 2014 08:37:44 +0200
+
+simple-scan (3.13.90-1) unstable; urgency=medium
+
+ * New upstream release.
+ * debian/control:
+ - Change Vcs-Browser to cgit.
+ * New debian/patches/015-keywords_desktop.patch:
+ - Add missing Keywords entry to the .desktop file.
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Mon, 18 Aug 2014 19:42:34 +0200
+
+simple-scan (3.13.4.2-1) unstable; urgency=medium
+
+ * New maintainer (Closes: #720540).
+ * New upstream release:
+ - Refresh debian/patches/01-zlib.patch
+ * debian/control:
+ - Set myself as maintainer.
+ - Bump Standards-Version to 3.9.5 (no changes required).
+ - Update Build-Depends:
+ + valac <= 0.16 will be removed. Therefore change
+ valac release to >= 0.22 (Closes: #739167, #755204).
+ + Remove unused lsb-release (Closes: #737536).
+ - Add dbus-x11 to Depends for package simple-scan since simple-scan
+ needs dbus even on headless systems (Closes: #750392).
+ - Remove the upstream Vcs-Bzr.
+ * Add debian/source/options:
+ - Set compression to xz & compression-level to 9 to save space.
+ * Add debian/simple-scan.bug-script to automatically add logfiles to
+ bug reports.
+ * debian/copyright:
+ - Add myself to the list of authors for debian/*.
+ - Update copyright years for 2014.
+ * debian/rules:
+ - Enable hardening.
+ - Install NEWS as upstream changelog.
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Sat, 19 Jul 2014 11:08:59 +0200
+
+simple-scan (3.12.0-1) unstable; urgency=low
+
+ * QA upload.
+ * Set Maintainer to Debian QA Group.
+ * New upstream release.
+ * Refresh patches.
+ * Drop build dependency on sqlite3, no longer needed.
+
+ -- Alessio Treglia <alessio@debian.org> Thu, 10 Apr 2014 15:39:34 +0100
+
+simple-scan (3.10.0-1) unstable; urgency=low
+
+ * New upstream release.
+ * Refresh patches.
+ * Build-depend on libsqlite3-dev.
+ * Update debian/watch as latest release is being published as XZ file.
+
+ -- Alessio Treglia <alessio@debian.org> Sat, 05 Oct 2013 15:33:01 +0100
+
+simple-scan (3.6.1-1) unstable; urgency=low
+
+ * Upload to unstable.
+ * New upstream release:
+ - Fix scan no longer working after an ADF scan completes.
+ - Fix erroneous warning about failing to set ADF source.
+
+ -- Alessio Treglia <alessio@debian.org> Mon, 13 May 2013 08:59:05 +0100
+
+simple-scan (3.6.0-2) experimental; urgency=low
+
+ * Drop build-depend on gconf2. (Closes: #698251)
+ * Use dh_autoreconf instead of calling autoreconf before the configure.
+ * Properly purge the symlink to gnome-doc-utils.make once the build's
+ completed.
+
+ -- Alessio Treglia <alessio@debian.org> Wed, 16 Jan 2013 00:03:37 +0000
+
+simple-scan (3.6.0-1) experimental; urgency=low
+
+ * New upstream release.
+ * Add -DBG package. (Closes: #687213)
+ * Fix Vcs tags.
+ * Bump debhelper compatibility.
+ * Bump Standards.
+
+ -- Alessio Treglia <alessio@debian.org> Tue, 15 Jan 2013 00:51:40 +0000
+
+simple-scan (3.4.2-1) unstable; urgency=low
+
+ * New upstream bugfix release.
+ * Remove 02-file-filter-labels.patch, applied upstream.
+ * Generate with Vala 0.16. (Closes: #675664)
+ * Enable hardening flags.
+
+ -- Alessio Treglia <alessio@debian.org> Sun, 03 Jun 2012 01:01:58 +0200
+
+simple-scan (3.4.1-3) unstable; urgency=low
+
+ * Drop 20-lpi.patch as launchpad-integration has been removed from Ubuntu.
+ Thanks to Jeremy Bicha for the great work. (Closes: #673780)
+
+ -- Alessio Treglia <alessio@debian.org> Mon, 21 May 2012 14:48:40 +0200
+
+simple-scan (3.4.1-2) unstable; urgency=low
+
+ * Fix save dialog filter incorrect names. Thanks to Jeremy Bicha
+ for reporting this. (Closes: #673593) (LP: #876135)
+
+ -- Alessio Treglia <alessio@debian.org> Mon, 21 May 2012 01:33:47 +0200
+
+simple-scan (3.4.1-1) unstable; urgency=low
+
+ * New upstream bugfix release.
+ * Install apport file on Debian systems too.
+
+ -- Alessio Treglia <alessio@debian.org> Fri, 20 Apr 2012 12:08:03 +0200
+
+simple-scan (3.4.0-1) unstable; urgency=low
+
+ * New upstream release.
+ * Refresh patches.
+ * Build-dep on libcolord-dev.
+ * Replace gnome-doc-utils build-dependency with yelp-tool.
+ * Update debian/watch.
+ * Refresh debian/copyright.
+ * Bump Standards.
+
+ -- Alessio Treglia <alessio@debian.org> Wed, 04 Apr 2012 21:14:45 +0200
+
+simple-scan (3.2.1-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Alessio Treglia <alessio@debian.org> Wed, 07 Dec 2011 12:49:05 +0100
+
+simple-scan (3.2.0-1) unstable; urgency=low
+
+ * Upload to unstable.
+ * New upstream release
+ * Fix watch file.
+
+ -- Alessio Treglia <alessio@debian.org> Fri, 07 Oct 2011 18:14:05 +0200
+
+simple-scan (3.1.5-1) experimental; urgency=low
+
+ * New upstream release:
+ - Fix compile warnings
+ - Port to Vala
+ - Port to GTK3
+ - Port to GDBus
+ - Port to GSettings
+ - Port to colord
+ * debian/control:
+ - Port build-deps to Vala.
+ * Refresh patches.
+ * debian/watch: Look for *.bz2 tarballs.
+
+ -- Alessio Treglia <alessio@debian.org> Tue, 30 Aug 2011 12:58:27 +0200
+
+simple-scan (2.32.0.2-2) unstable; urgency=low
+
+ * Build-depend on libjpeg-dev instead of libjpeg62-dev (Closes: #634633).
+ * Bump Standards.
+
+ -- Alessio Treglia <alessio@debian.org> Tue, 19 Jul 2011 13:14:46 +0200
+
+simple-scan (2.32.0.2-1) unstable; urgency=low
+
+ * New upstream release:
+ - Add binary comment as recommended in PDF spec.
+ - Add comments about other PDF/A features.
+ - Update translations.
+ * debian/gbp.conf: Set compression to bzip2.
+ * Add debian/source/local-options file.
+
+ -- Alessio Treglia <alessio@debian.org> Thu, 21 Apr 2011 16:38:02 +0200
+
+simple-scan (2.32.0.1-2) unstable; urgency=low
+
+ * Upload to unstable.
+ * Set 3.0 (quilt) as packaging definitive format.
+ * Handle distribution specific patches.
+ * Revert previous changes in debian/rules,
+ Ubuntu-specific patches are now properly handled.
+ * Build with scour for SVG optimization.
+ * Build-depend on autotools-dev.
+ * On Ubuntu, install the apport package hook.
+
+ -- Alessio Treglia <alessio@debian.org> Wed, 16 Mar 2011 12:50:20 +0100
+
+simple-scan (2.32.0.1-1) experimental; urgency=low
+
+ * New upstream release.
+ * Update debian/gbp.conf.
+
+ -- Alessio Treglia <alessio@debian.org> Tue, 26 Oct 2010 17:18:13 +0200
+
+simple-scan (2.32.0-1) experimental; urgency=low
+
+ * New upstream release.
+ * Add Vcs-Bzr field to make Robert Ancell happy.
+ * Switch back to format 1.0
+ * Change tarball compression.
+
+ -- Alessio Treglia <alessio@debian.org> Thu, 30 Sep 2010 11:21:17 +0200
+
+simple-scan (2.31.91-1) experimental; urgency=low
+
+ * Imported Upstream version 2.31.91
+ * Refresh 01_lpi.patch.
+
+ -- Alessio Treglia <alessio@debian.org> Tue, 31 Aug 2010 01:03:07 +0200
+
+simple-scan (2.31.90.2-1) unstable; urgency=low
+
+ * New upstream bugfix release.
+
+ -- Alessio Treglia <alessio@debian.org> Tue, 17 Aug 2010 11:02:56 +0200
+
+simple-scan (2.31.90.1-1) unstable; urgency=low
+
+ * New upstream release.
+ * Remove DMUA field.
+ * Update Standards to 3.9.1.
+ * Drop Recommends on imagemagick.
+ * Build-Depends on zlib2g-dev, libjpeg62-dev.
+ * Update watch file.
+ * Refresh 01_lpi.patch patch.
+ * Switch to 3.0 (quilt) format.
+ * Add debian/gbp.conf,.gitignore files.
+ * Update changelog.
+ * Fix debian/control.
+ * Install gnome-doc-utils.make.
+ * Add zlib patch.
+ * debian/gbp.conf: Set tarball compression to bzip2.
+ * Change my email address.
+
+ -- Alessio Treglia <alessio@debian.org> Sun, 15 Aug 2010 12:45:16 +0200
+
+simple-scan (2.31.1-1) unstable; urgency=low
+
+ * New upstream release.
+ * All patches have been applied upstream.
+ * debian/source_simple-scan.py: Sync with Ubuntu.
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Thu, 13 May 2010 20:42:09 +0200
+
+simple-scan (1.0.3-1) unstable; urgency=low
+
+ * New upstream release.
+ - Set resolution on ImageMagick generated PDFs (LP: #564106).
+ * debian/patches/10-set_supported_flags.patch:
+ - Set duplex and batch-scan flags if supported by driver (LP: #566759).
+ * Set format to 1.0.
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Thu, 22 Apr 2010 15:18:11 +0200
+
+simple-scan (1.0.2-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Fri, 16 Apr 2010 17:45:41 +0200
+
+simple-scan (1.0.0-2) unstable; urgency=low
+
+ * debian/control: Revert last change of Build-Depends field, the previous
+ situation was preferable and even correct (Closes: #577821).
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Wed, 14 Apr 2010 23:55:43 +0200
+
+simple-scan (1.0.0-1) unstable; urgency=low
+
+ * New upstream stable release.
+ * debian/rules:
+ - Call intltool-update to generate a PO template (LP: #551470).
+ * Drop debian/patches/11_thunderbird_workaround.patch patch, applied
+ upstream.
+ * Refresh 01_lpi.patch patch.
+ * debian/control:
+ - udev is not available on kfreebsd-*,hurd architectures.
+ - Add Vcs-{Git,Browser} tags.
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Wed, 14 Apr 2010 12:54:33 +0200
+
+simple-scan (0.9.10-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/control:
+ - Build-depend on libdbus-glib-1-dev.
+ - Recommend imagemagick.
+ * debian/patches/11_thunderbird_workaround.patch:
+ - Workaround Thunderbird/Icedove mail bug.
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Fri, 09 Apr 2010 12:41:39 +0200
+
+simple-scan (0.9.9-1) unstable; urgency=low
+
+ * New upstream release.
+ * Refresh patches.
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Mon, 15 Mar 2010 17:32:51 +0100
+
+simple-scan (0.9.7-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Tue, 09 Mar 2010 07:25:04 +0100
+
+simple-scan (0.9.6-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/rules: Call autoreconf before calling the configure script.
+ * Bump versioned build-dep on debhelper.
+ * Remove 99_autotools.patch.
+ * Build-Depends on gnome-common.
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Mon, 08 Mar 2010 14:58:35 +0100
+
+simple-scan (0.9.5-1) unstable; urgency=low
+
+ * New upstream release.
+ * Include apport hook without installing it in order to mimize the delta
+ between Debian and Ubuntu.
+ * Add README.source to document how-to patch the sources.
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Thu, 18 Feb 2010 11:38:37 +0100
+
+simple-scan (0.9.3-1) unstable; urgency=low
+
+ * New upstream release.
+ * Bump standards.
+ * Build-depend on libgudev-1.0-dev,gnome-doc-utils.
+ * Drop manpages from the packaging, upstream now provides them.
+ * Add quilt support.
+ * Provide ubuntu-specific patches without applying them in order to
+ minimze the delta.
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Tue, 16 Feb 2010 00:46:46 +0100
+
+simple-scan (0.8.1-3) unstable; urgency=low
+
+ * Append --as-needed to LDFLAGS to avoid excessive dependencies;
+ thanks to Martin Pitt for reporting this (LP: #512048).
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Mon, 25 Jan 2010 00:49:34 +0100
+
+simple-scan (0.8.1-2) unstable; urgency=low
+
+ * Update debian/copyright.
+ * debian/control:
+ - No need to build-depend on debhelper >= 7.0.50.
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Wed, 20 Jan 2010 11:26:17 +0100
+
+simple-scan (0.8.1-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Wed, 20 Jan 2010 10:59:36 +0100
+
+simple-scan (0.8.0-1) unstable; urgency=low
+
+ * New upstream release.
+ * Allow DM uploads.
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Wed, 23 Dec 2009 11:26:30 +0100
+
+simple-scan (0.7.6-1) unstable; urgency=low
+
+ * Initial release (Closes: #561790).
+
+ -- Alessio Treglia <quadrispro@ubuntu.com> Mon, 21 Dec 2009 00:31:16 +0100
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..1e2dc70
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,58 @@
+Source: simple-scan
+Section: gnome
+Priority: optional
+Maintainer: Jörg Frings-Fürst <debian@jff-webhosting.net>
+Standards-Version: 3.9.5
+Build-Depends:
+ debhelper (>= 9),
+ dh-autoreconf,
+ gnome-common,
+ gnome-pkg-tools (>= 0.10),
+ intltool,
+ libcairo2-dev,
+ libcolord-dev,
+ libdbus-glib-1-dev,
+ libglib2.0-dev (>= 2.32),
+ libgtk-3-dev,
+ libgudev-1.0-dev,
+ libjpeg-dev,
+ libsane-dev,
+ python-scour,
+ libsqlite3-dev,
+ valac (>= 0.22),
+ yelp-tools,
+ zlib1g-dev (>= 1.2.7)
+Homepage: https://launchpad.net/simple-scan
+Vcs-Git: git://anonscm.debian.org/collab-maint/simple-scan.git
+Vcs-Browser: http://anonscm.debian.org/cgit/collab-maint/simple-scan.git
+
+Package: simple-scan
+Architecture: any
+Depends:
+ dbus-x11 (>= 1.6),
+ gnome-icon-theme,
+ xdg-utils,
+ ${misc:Depends},
+ ${shlibs:Depends}
+Description: Simple Scanning Utility
+ Simple Scan is an easy-to-use application, designed to let users
+ connect their scanner and quickly have the image/document in an
+ appropriate format.
+ .
+ Simple Scan is basically a frontend for SANE - which is the same
+ backend as XSANE uses. This means that all existing scanners will
+ work and the interface is well tested.
+
+Package: simple-scan-dbg
+Section: debug
+Priority: extra
+Architecture: any
+Depends:
+ simple-scan (= ${binary:Version}),
+ ${misc:Depends}
+Description: Simple Scanning Utility - debugging symbols
+ Simple Scan is an easy-to-use application, designed to let users
+ connect their scanner and quickly have the image/document in an
+ appropriate format.
+ .
+ This package provides the debugging symbols for simple-scan.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..28e96e4
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,32 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: Simple Scan
+Upstream-Contact: Robert Ancell <robert.ancell@canonical.com>
+Source: https://launchpad.net/simple-scan/+download
+
+Files: *
+Copyright: 2009-2014 Canonical Ltd
+License: GPL-3+
+
+Files: debian/*
+Copyright:
+ 2009-2012 Alessio Treglia <alessio@debian.org>
+ 2009 Robert Ancell <robert.ancell@canonical.com>
+ 2014 Jörg Frings-Fürst <debian@jff-webhosting.net>
+License: GPL-3+
+
+License: GPL-3+
+ 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 3 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.
+Comment:
+ On Debian systems, the complete text of the GNU General
+ Public License can be found in `/usr/share/common-licenses/GPL-3’.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
diff --git a/debian/gbp.conf b/debian/gbp.conf
new file mode 100644
index 0000000..d0c1355
--- /dev/null
+++ b/debian/gbp.conf
@@ -0,0 +1,3 @@
+[DEFAULT]
+pristine-tar = True
+compression = xz
diff --git a/debian/patches/005-keywords_desktop.patch b/debian/patches/005-keywords_desktop.patch
new file mode 100644
index 0000000..02cb317
--- /dev/null
+++ b/debian/patches/005-keywords_desktop.patch
@@ -0,0 +1,15 @@
+Description: Add _Keywords to .desktop file
+Author: Jörg Frings-Fürst <debian@jff-webhosting.net>
+Forwarded: not-needed
+Last-Update: 2014-08-18
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: trunk/data/simple-scan.desktop.in
+===================================================================
+--- trunk.orig/data/simple-scan.desktop.in 2013-06-05 08:21:08.000000000 +0200
++++ trunk/data/simple-scan.desktop.in 2014-08-18 19:31:47.717829473 +0200
+@@ -8,3 +8,4 @@
+ StartupNotify=true
+ Categories=GNOME;GTK;Graphics;Scanning;
+ X-GNOME-Gettext-Domain=simple-scan
++Keywords=scan;simple;sane;documents;
diff --git a/debian/patches/01-zlib.patch b/debian/patches/01-zlib.patch
new file mode 100644
index 0000000..0656f92
--- /dev/null
+++ b/debian/patches/01-zlib.patch
@@ -0,0 +1,28 @@
+Description: add zlib
+Last-Update: 2014-07-19
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: trunk/configure.ac
+===================================================================
+--- trunk.orig/configure.ac 2014-07-19 15:43:15.000000000 +0200
++++ trunk/configure.ac 2014-07-19 15:48:14.745109540 +0200
+@@ -38,6 +38,7 @@
+
+ AC_CHECK_HEADERS([sane/sane.h],[],[AC_MSG_ERROR([SANE not found])])
+ AC_CHECK_HEADERS([sane/saneopts.h],[],[AC_MSG_ERROR([SANE not found])])
++AC_CHECK_HEADERS([zlib.h],[],[AC_MSG_ERROR([ZLib not found])])
+
+ dnl ###########################################################################
+ dnl Documentation
+Index: trunk/src/Makefile.am
+===================================================================
+--- trunk.orig/src/Makefile.am 2014-07-19 15:43:15.000000000 +0200
++++ trunk/src/Makefile.am 2014-07-19 15:47:51.812626560 +0200
+@@ -46,6 +46,7 @@
+ $(SIMPLE_SCAN_LIBS) \
+ $(COLORD_LIBS) \
+ -lsane \
++ -lz \
+ -lm
+
+ CLEANFILES = \
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..32af344
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,2 @@
+005-keywords_desktop.patch
+01-zlib.patch
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..66ff5ec
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,55 @@
+#!/usr/bin/make -f
+
+#
+# 2014-07-22 Jörg Frings-Fürst <debian@jff-webhosting.net>
+#
+# - enable hardening
+# - install NEWS as upstream changelog
+#
+#
+
+
+#
+# Hardening
+#
+#
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/buildflags.mk
+
+#export CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS)
+#export CFLAGS:=$(shell dpkg-buildflags --get CFLAGS)
+#export CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS)
+#export LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS)
+
+#LDFLAGS+=-Wl,--as-needed
+
+%:
+ dh $@ --with=autoreconf,scour
+
+# Fixes FTBFS
+override_dh_auto_test:
+
+# Autoreconf due to 01_lpi.patch
+override_dh_autoreconf:
+ [ -e gnome-doc-utils.make ] || \
+ ln -s /usr/share/gnome-doc-utils/gnome-doc-utils.make
+ dh_autoreconf
+
+override_dh_auto_clean:
+ dh_auto_clean
+ [ ! -h gnome-doc-utils.make ] || \
+ rm gnome-doc-utils.make
+
+override_dh_auto_build:
+ cd po; intltool-update -p
+ dh_auto_build
+
+override_dh_strip:
+ dh_strip -psimple-scan --dbg-package=simple-scan-dbg
+
+override_dh_installdocs:
+ dh_installdocs --link-doc=simple-scan
+
+override_dh_installchangelogs:
+ dh_installchangelogs NEWS
diff --git a/debian/simple-scan.bug-script b/debian/simple-scan.bug-script
new file mode 100644
index 0000000..87ce84a
--- /dev/null
+++ b/debian/simple-scan.bug-script
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+REPORTBUG_VERSION=$(dpkg-query -f '${source:Version}' -W reportbug)
+LOG_FILE = '~/.cache/simple-scan/simple-scan.log'
+
+# Depending on whether reportbug is new enough, we either write the output of
+# our various commands to a file and attach them to the report (this needs
+# reportbug ≥ 6.5.0) or just write them to the body of the bug report.
+if dpkg --compare-versions "$REPORTBUG_VERSION" ge "6.5.0"; then
+
+ # We don’t clean up this directory because there is no way to know when
+ # reportbug finished running, and reportbug needs the files around.
+ # Given that those are just a couple of kilobytes in size and people
+ # generally don’t file a lot of bugs, I don’t think it’s a big deal.
+ DIR=$(mktemp -d)
+
+ echo "-- BEGIN ATTACHMENTS --" >&3
+
+ #
+ # logfile
+ #
+ if [ -f ${LOG_FILE} ]; then
+ cat ${LOG_FILE} >$DIR/logfile.user
+ echo $DIR/logfile.user >&3
+ fi
+
+ echo "-- END ATTACHMENTS --" >&3
+fi
diff --git a/debian/simple-scan.install b/debian/simple-scan.install
new file mode 100644
index 0000000..b7d9a09
--- /dev/null
+++ b/debian/simple-scan.install
@@ -0,0 +1,3 @@
+debian/source_simple-scan.py usr/share/apport/package-hooks/
+usr/bin
+usr/share
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/source/options b/debian/source/options
new file mode 100644
index 0000000..22a4de9
--- /dev/null
+++ b/debian/source/options
@@ -0,0 +1,2 @@
+compression = xz
+compression-level = 9
diff --git a/debian/source_simple-scan.py b/debian/source_simple-scan.py
new file mode 100644
index 0000000..6fab46c
--- /dev/null
+++ b/debian/source_simple-scan.py
@@ -0,0 +1,23 @@
+'''apport package hook for simple-scan
+
+(c) 2010 Canonical Ltd.
+Author: Robert Ancell <robert.ancell@canonical.com>
+'''
+
+import os.path
+from apport.hookutils import *
+
+LOG_FILE = os.path.expanduser('~/.cache/simple-scan/simple-scan.log')
+driver_packages = ['libsane', 'libsane-extras', 'hplip', 'hpoj']
+
+def add_info(report):
+ attach_hardware(report)
+ versions = ''
+ for package in driver_packages:
+ try:
+ version = packaging.get_version(package)
+ except ValueError:
+ version = 'N/A'
+ versions += '%s %s\n' % (package, version)
+ report['DriverPackageVersions'] = versions
+ attach_file_if_exists(report, LOG_FILE, 'SimpleScanLog')
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..9d546c6
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,2 @@
+version=3
+https://launchpad.net/simple-scan/+download .*/simple-scan-([0-9.]+)\.tar\.xz
diff --git a/depcomp b/depcomp
new file mode 100755
index 0000000..4ebd5b3
--- /dev/null
+++ b/depcomp
@@ -0,0 +1,791 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2013-05-30.07; # UTC
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+
+# 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, 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, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+ depmode Dependency tracking mode.
+ source Source file read by 'PROGRAMS ARGS'.
+ object Object file output by 'PROGRAMS ARGS'.
+ DEPDIR directory where to store dependencies.
+ depfile Dependency file to output.
+ tmpdepfile Temporary file to use when outputting dependencies.
+ libtool Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "depcomp $scriptversion"
+ exit $?
+ ;;
+esac
+
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'. Note that this directory component will
+# be either empty or ending with a '/' character. This is deliberate.
+set_dir_from ()
+{
+ case $1 in
+ */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+ *) dir=;;
+ esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+ base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+ echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+ # If the compiler actually managed to produce a dependency file,
+ # post-process it.
+ if test -f "$tmpdepfile"; then
+ # Each line is of the form 'foo.o: dependency.h'.
+ # Do two passes, one to just change these to
+ # $object: dependency.h
+ # and one to simply output
+ # dependency.h:
+ # which is needed to avoid the deleted-header problem.
+ { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+ sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+ } > "$depfile"
+ rm -f "$tmpdepfile"
+ else
+ make_dummy_depfile
+ fi
+}
+
+# A tabulation character.
+tab=' '
+# A newline character.
+nl='
+'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
+ exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
+# Some modes work just like other modes, but use different flags. We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write. Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+ # HP compiler uses -M and no extra arg.
+ gccflag=-M
+ depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+ # This is just like dashmstdout with a different argument.
+ dashmflag=-xM
+ depmode=dashmstdout
+fi
+
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+ # This is just like msvisualcpp but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvisualcpp
+fi
+
+if test "$depmode" = msvc7msys; then
+ # This is just like msvc7 but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvc7
+fi
+
+if test "$depmode" = xlc; then
+ # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+ gccflag=-qmakedep=gcc,-MF
+ depmode=gcc
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want. Yay! Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff. Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am. Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+ for arg
+ do
+ case $arg in
+ -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+ *) set fnord "$@" "$arg" ;;
+ esac
+ shift # fnord
+ shift # $arg
+ done
+ "$@"
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ mv "$tmpdepfile" "$depfile"
+ ;;
+
+gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
+## There are various ways to get dependency output from gcc. Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+## up in a subdir. Having to rename by hand is ugly.
+## (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+## -MM, not -M (despite what the docs say). Also, it might not be
+## supported by the other compilers which use the 'gcc' depmode.
+## - Using -M directly means running the compiler twice (even worse
+## than renaming).
+ if test -z "$gccflag"; then
+ gccflag=-MD,
+ fi
+ "$@" -Wp,"$gccflag$tmpdepfile"
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ # The second -e expression handles DOS-style file names with drive
+ # letters.
+ sed -e 's/^[^:]*: / /' \
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the "deleted header file" problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header). We avoid this by adding
+## dummy dependencies for each header file. Too bad gcc doesn't do
+## this for us directly.
+## Some versions of gcc put a space before the ':'. On the theory
+## that the space means something, we add a space to the output as
+## well. hp depmode also adds that space, but also prefixes the VPATH
+## to the object. Take care to not repeat it in the output.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+sgi)
+ if test "$libtool" = yes; then
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
+ else
+ "$@" -MDupdate "$tmpdepfile"
+ fi
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
+ echo "$object : \\" > "$depfile"
+ # Clip off the initial element (the dependent). Don't try to be
+ # clever and replace this with sed code, as IRIX sed won't handle
+ # lines with more than a fixed number of characters (4096 in
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
+ # the IRIX cc adds comments like '#:fec' to the end of the
+ # dependency line.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+ | tr "$nl" ' ' >> "$depfile"
+ echo >> "$depfile"
+ # The second pass generates a dummy entry for each header file.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+ >> "$depfile"
+ else
+ make_dummy_depfile
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+xlc)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+aix)
+ # The C for AIX Compiler uses -M and outputs the dependencies
+ # in a .u file. In older versions, this file always lives in the
+ # current directory. Also, the AIX compiler puts '$object:' at the
+ # start of each line; $object doesn't have directory information.
+ # Version 6 uses the directory in both cases.
+ set_dir_from "$object"
+ set_base_from "$object"
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$base.u
+ tmpdepfile3=$dir.libs/$base.u
+ "$@" -Wc,-M
+ else
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$dir$base.u
+ tmpdepfile3=$dir$base.u
+ "$@" -M
+ fi
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ aix_post_process_depfile
+ ;;
+
+tcc)
+ # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+ # FIXME: That version still under development at the moment of writing.
+ # Make that this statement remains true also for stable, released
+ # versions.
+ # It will wrap lines (doesn't matter whether long or short) with a
+ # trailing '\', as in:
+ #
+ # foo.o : \
+ # foo.c \
+ # foo.h \
+ #
+ # It will put a trailing '\' even on the last line, and will use leading
+ # spaces rather than leading tabs (at least since its commit 0394caf7
+ # "Emit spaces for -MD").
+ "$@" -MD -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+ # We have to change lines of the first kind to '$object: \'.
+ sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+ # And for each line of the second kind, we have to emit a 'dep.h:'
+ # dummy dependency, to avoid the deleted-header problem.
+ sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file. A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+ # Portland's C compiler understands '-MD'.
+ # Will always output deps to 'file.d' where file is the root name of the
+ # source file under compilation, even if file resides in a subdirectory.
+ # The object file name does not affect the name of the '.d' file.
+ # pgcc 10.2 will output
+ # foo.o: sub/foo.c sub/foo.h
+ # and will wrap long lines using '\' :
+ # foo.o: sub/foo.c ... \
+ # sub/foo.h ... \
+ # ...
+ set_dir_from "$object"
+ # Use the source, not the object, to determine the base name, since
+ # that's sadly what pgcc will do too.
+ set_base_from "$source"
+ tmpdepfile=$base.d
+
+ # For projects that build the same source file twice into different object
+ # files, the pgcc approach of using the *source* file root name can cause
+ # problems in parallel builds. Use a locking strategy to avoid stomping on
+ # the same $tmpdepfile.
+ lockdir=$base.d-lock
+ trap "
+ echo '$0: caught signal, cleaning up...' >&2
+ rmdir '$lockdir'
+ exit 1
+ " 1 2 13 15
+ numtries=100
+ i=$numtries
+ while test $i -gt 0; do
+ # mkdir is a portable test-and-set.
+ if mkdir "$lockdir" 2>/dev/null; then
+ # This process acquired the lock.
+ "$@" -MD
+ stat=$?
+ # Release the lock.
+ rmdir "$lockdir"
+ break
+ else
+ # If the lock is being held by a different process, wait
+ # until the winning process is done or we timeout.
+ while test -d "$lockdir" && test $i -gt 0; do
+ sleep 1
+ i=`expr $i - 1`
+ done
+ fi
+ i=`expr $i - 1`
+ done
+ trap - 1 2 13 15
+ if test $i -le 0; then
+ echo "$0: failed to acquire lock after $numtries attempts" >&2
+ echo "$0: check lockdir '$lockdir'" >&2
+ exit 1
+ fi
+
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ # Each line is of the form `foo.o: dependent.h',
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp2)
+ # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+ # compilers, which have integrated preprocessors. The correct option
+ # to use with these is +Maked; it writes dependencies to a file named
+ # 'foo.d', which lands next to the object file, wherever that
+ # happens to be.
+ # Much of this is similar to the tru64 case; see comments there.
+ set_dir_from "$object"
+ set_base_from "$object"
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir.libs/$base.d
+ "$@" -Wc,+Maked
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ "$@" +Maked
+ fi
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
+ # Add 'dependent.h:' lines.
+ sed -ne '2,${
+ s/^ *//
+ s/ \\*$//
+ s/$/:/
+ p
+ }' "$tmpdepfile" >> "$depfile"
+ else
+ make_dummy_depfile
+ fi
+ rm -f "$tmpdepfile" "$tmpdepfile2"
+ ;;
+
+tru64)
+ # The Tru64 compiler uses -MD to generate dependencies as a side
+ # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+ # dependencies in 'foo.d' instead, so we check for that too.
+ # Subdirectories are respected.
+ set_dir_from "$object"
+ set_base_from "$object"
+
+ if test "$libtool" = yes; then
+ # Libtool generates 2 separate objects for the 2 libraries. These
+ # two compilations output dependencies in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir$base.o.d # libtool 1.5
+ tmpdepfile2=$dir.libs/$base.o.d # Likewise.
+ tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
+ "$@" -Wc,-MD
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ # Same post-processing that is required for AIX mode.
+ aix_post_process_depfile
+ ;;
+
+msvc7)
+ if test "$libtool" = yes; then
+ showIncludes=-Wc,-showIncludes
+ else
+ showIncludes=-showIncludes
+ fi
+ "$@" $showIncludes > "$tmpdepfile"
+ stat=$?
+ grep -v '^Note: including file: ' "$tmpdepfile"
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ # The first sed program below extracts the file names and escapes
+ # backslashes for cygpath. The second sed program outputs the file
+ # name when reading, but also accumulates all include files in the
+ # hold buffer in order to output them again at the end. This only
+ # works with sed implementations that can handle large buffers.
+ sed < "$tmpdepfile" -n '
+/^Note: including file: *\(.*\)/ {
+ s//\1/
+ s/\\/\\\\/g
+ p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/'"$tab"'\1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+ s/.*/'"$tab"'/
+ G
+ p
+}' >> "$depfile"
+ echo >> "$depfile" # make sure the fragment doesn't end with a backslash
+ rm -f "$tmpdepfile"
+ ;;
+
+msvc7msys)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+#nosideeffect)
+ # This comment above is used by automake to tell side-effect
+ # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout, regardless of -o.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove '-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ test -z "$dashmflag" && dashmflag=-M
+ # Require at least two characters before searching for ':'
+ # in the target name. This is to cope with DOS-style filenames:
+ # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
+ "$@" $dashmflag |
+ sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this sed invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+dashXmstdout)
+ # This case only exists to satisfy depend.m4. It is never actually
+ # run, as this mode is specially recognized in the preamble.
+ exit 1
+ ;;
+
+makedepend)
+ "$@" || exit $?
+ # Remove any Libtool call
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+ # X makedepend
+ shift
+ cleared=no eat=no
+ for arg
+ do
+ case $cleared in
+ no)
+ set ""; shift
+ cleared=yes ;;
+ esac
+ if test $eat = yes; then
+ eat=no
+ continue
+ fi
+ case "$arg" in
+ -D*|-I*)
+ set fnord "$@" "$arg"; shift ;;
+ # Strip any option that makedepend may not understand. Remove
+ # the object too, otherwise makedepend will parse it as a source file.
+ -arch)
+ eat=yes ;;
+ -*|$object)
+ ;;
+ *)
+ set fnord "$@" "$arg"; shift ;;
+ esac
+ done
+ obj_suffix=`echo "$object" | sed 's/^.*\././'`
+ touch "$tmpdepfile"
+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+ rm -f "$depfile"
+ # makedepend may prepend the VPATH from the source file name to the object.
+ # No need to regex-escape $object, excess matching of '.' is harmless.
+ sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process the last invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed '1,2d' "$tmpdepfile" \
+ | tr ' ' "$nl" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
+ ;;
+
+cpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove '-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ "$@" -E \
+ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ | sed '$ s: \\$::' > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ cat < "$tmpdepfile" >> "$depfile"
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvisualcpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ IFS=" "
+ for arg
+ do
+ case "$arg" in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+ set fnord "$@"
+ shift
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift
+ shift
+ ;;
+ esac
+ done
+ "$@" -E 2>/dev/null |
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+ echo "$tab" >> "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvcmsys)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+none)
+ exec "$@"
+ ;;
+
+*)
+ echo "Unknown depmode $depmode" 1>&2
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/help/C/adf.page b/help/C/adf.page
new file mode 100644
index 0000000..91886ce
--- /dev/null
+++ b/help/C/adf.page
@@ -0,0 +1,52 @@
+<page xmlns="http://projectmallard.org/1.0/"
+ type="guide"
+ id="adf">
+
+ <info>
+ <link type="guide" xref="index#acquire"/>
+ </info>
+
+ <title>Using an Automatic Document Feeder</title>
+
+ <p>
+ If your scanner features an Automatic Document Feeder (ADF)
+ you can scan all the pages from the feeder via one of following methods:
+ </p>
+ <steps>
+ <title></title>
+ <title>Use a Keyboard Shortcut</title>
+ <item>
+ <p>Press <keyseq><key>Ctrl</key><key>F</key></keyseq></p>
+ </item>
+ </steps>
+
+ <steps>
+ <title>Use a Menu</title>
+ <item>
+ <p>Navigate to <guiseq><gui>Document</gui>
+ <gui>Scan</gui><gui>All Pages From Feeder</gui></guiseq>.
+ </p>
+ </item>
+ </steps>
+
+ <steps>
+ <title>Use the Toolbar Buttons</title>
+ <item>
+ <p>Click on the arrow to the right of the "Scan" button.</p>
+ </item>
+ <item>
+ <p>Choose "All Pages From Feeder".</p>
+ <media type="image" src="figures/scan_toolbar.png"/>
+ </item>
+ </steps>
+
+
+ <note style="tip">
+ <p>
+ By default, both sides of a sheet will scan if your scanner has this capability.
+ You can choose single side scanning from the <guiseq><gui>Document</gui><gui>Preferences</gui></guiseq> menu.
+ </p>
+ <media type="image" src="figures/preferences.png"/>
+ </note>
+
+</page>
diff --git a/help/C/crop.page b/help/C/crop.page
new file mode 100644
index 0000000..b65893e
--- /dev/null
+++ b/help/C/crop.page
@@ -0,0 +1,45 @@
+<page xmlns="http://projectmallard.org/1.0/"
+ type="guide"
+ id="crop">
+
+ <info>
+ <link type="guide" xref="index#modify"/>
+ </info>
+
+ <title>Cropping</title>
+
+ <p>
+ The cropping feature in <app>Simple Scan</app> allows you to use only a part of a scanned image. You can
+ enable crop either before or after scanning a page, and you can always change the dimensions of the crop
+ frame. When crop is enabled, a mask will apper over the current page with the area not being used shown
+ in gray. You can enable crop and choose the desired dimensions via one of the following methods:
+ </p>
+
+ <steps>
+ <title>Use a Right Click</title>
+ <item><p>Right click anywhere on the image area and select "Crop".</p></item>
+ <item><p>Choose one of the fixed crop frames, or select "Custom" to manually
+ set the crop frame's dimensions by dragging its borders.</p></item>
+ <item><p>Click and hold the frame, then move it to the desired position.</p></item>
+ </steps>
+
+ <steps>
+ <title>Use a Menu</title>
+ <item><p>Navigate to the <guiseq><gui>Page</gui><gui>Crop</gui></guiseq> menu.</p></item>
+ <item><p>Choose one of the fixed crop frames, or select "Custom" to manually adjust the frame's dimensions by dragging its borders.</p></item>
+ <item><p>Click and hold the frame, then move it to the desired position.</p></item>
+ </steps>
+
+ <steps>
+ <title>Use the Toolbar</title>
+ <item><p>Click the "<gui>Crop</gui>" button in the toolbar.</p>
+ <note style="tip"><p>This is the same as choosing "Custom" in step 2 of the
+ aforementioned methods.</p></note></item>
+ <item><p>Drag the borders of the frame to set the desired dimensions and position.</p></item>
+
+ </steps>
+
+ <note><p>
+ Each new scanned page will use the previous crop.
+ </p></note>
+</page>
diff --git a/help/C/dpi.page b/help/C/dpi.page
new file mode 100644
index 0000000..ea8deeb
--- /dev/null
+++ b/help/C/dpi.page
@@ -0,0 +1,57 @@
+<page xmlns="http://projectmallard.org/1.0/"
+ type="guide"
+ id="dpi">
+
+ <info>
+ <link type="guide" xref="index#acquire"/>
+ </info>
+
+ <title>Setting the Scan Resolution</title>
+
+ <p>
+ The default resolution for document type <gui><em>Text</em></gui> is 150 dpi (dots per inch)
+ and for document type <gui><em>Photo</em></gui> is 300 dpi. You can change these settings
+ from the <guiseq><gui>Document</gui><gui>Preferences</gui></guiseq> menu.
+ </p>
+ <media type="image" src="figures/preferences.png"/>
+
+ <p>The available scanning resolutions for both document types (Text and Photo) are the same
+ and are listed in the following table:</p>
+
+ <table frame="bottom left right" rules="rows cols" shade="rows">
+ <tr>
+ <td><p><em>Text Resolution</em></p></td>
+ <td><p><em>Photo Resolution</em></p></td>
+ </tr>
+ <tr>
+ <td><p>75 dpi (draft)</p></td>
+ <td><p>75 dpi (draft)</p></td>
+ </tr>
+ <tr>
+ <td><p>150 dpi (default)</p></td>
+ <td><p>150 dpi</p></td>
+ </tr>
+ <tr>
+ <td><p>300 dpi</p></td>
+ <td><p>300 dpi (default)</p></td>
+ </tr>
+ <tr>
+ <td><p>600 dpi</p></td>
+ <td><p>600 dpi</p></td>
+ </tr>
+ <tr>
+ <td><p>1200 dpi (high resolution)</p></td>
+ <td><p>1200 dpi (high resolution)</p></td>
+ </tr>
+ <tr>
+ <td><p>2400 dpi</p></td>
+ <td><p>2400 dpi</p></td>
+ </tr>
+ </table>
+
+ <note style="important"><p><gui><em>Text</em></gui> documents are always scanned in black
+ and white, while <gui><em>Photo</em></gui> documents are always scanned in color, at any
+ resolution!</p>
+ </note>
+
+</page>
diff --git a/help/C/email.page b/help/C/email.page
new file mode 100644
index 0000000..e918e84
--- /dev/null
+++ b/help/C/email.page
@@ -0,0 +1,24 @@
+<page xmlns="http://projectmallard.org/1.0/"
+ type="guide"
+ id="email">
+
+ <info>
+ <link type="guide" xref="index#use"/>
+ </info>
+
+ <title>Sending via Email</title>
+
+ <p>
+ To email the current document use the <guiseq><gui>Document</gui><gui>Email</gui></guiseq>
+ menu (<keyseq><key>Ctrl</key><key>E</key></keyseq>). Your email program will be opened with
+ a new message containing the scanned document as an attachment.
+ </p>
+ <p>
+ If the document type was set to "Text" the email will have a PDF attachment for each page.
+ Conversely, if the document type was set to "Photo", the email will have a JPEG
+ attachment for each page.
+ </p>
+ <p>
+ See <link xref="save"/> for more information about file formats.
+ </p>
+</page>
diff --git a/help/C/figures/icon.png b/help/C/figures/icon.png
new file mode 100644
index 0000000..8cfefc1
--- /dev/null
+++ b/help/C/figures/icon.png
Binary files differ
diff --git a/help/C/figures/preferences.png b/help/C/figures/preferences.png
new file mode 100644
index 0000000..fe3bbe1
--- /dev/null
+++ b/help/C/figures/preferences.png
Binary files differ
diff --git a/help/C/figures/scan_toolbar.png b/help/C/figures/scan_toolbar.png
new file mode 100644
index 0000000..7736d68
--- /dev/null
+++ b/help/C/figures/scan_toolbar.png
Binary files differ
diff --git a/help/C/index.page b/help/C/index.page
new file mode 100644
index 0000000..c9d8425
--- /dev/null
+++ b/help/C/index.page
@@ -0,0 +1,34 @@
+<page xmlns="http://projectmallard.org/1.0/"
+ type="guide"
+ id="index">
+
+ <info>
+ <credit type="author">
+ <name>Robert Ancell</name>
+ <email>robert.ancell@gmail.com</email>
+ </credit>
+ <credit type="author">
+ <name>Ali Shtarbanov</name>
+ <email>ametedinov@gmail.com</email>
+ </credit>
+ <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude" />
+ </info>
+
+ <title><media type="image" src="figures/icon.png"/> Simple Scan Manual</title>
+
+ <section id="acquire" style="2column">
+ <title>Scanning Pages</title>
+ </section>
+
+ <section id="modify" style="2column">
+ <title>Modifying the Document</title>
+ </section>
+
+ <section id="use" style="2column">
+ <title>Using the Document</title>
+ </section>
+
+ <section id="shortcuts" style="2column">
+ <title>Simple Scan Shortcuts</title>
+ </section>
+</page>
diff --git a/help/C/legal.xml b/help/C/legal.xml
new file mode 100644
index 0000000..86d6173
--- /dev/null
+++ b/help/C/legal.xml
@@ -0,0 +1,9 @@
+<license xmlns="http://projectmallard.org/1.0/"
+ href="http://creativecommons.org/licenses/by-sa/3.0/">
+<p>This work is licensed under a
+<link href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons
+Attribution-Share Alike 3.0 Unported License</link>.</p>
+<p>As a special exception, the copyright holders give you permission to copy,
+modify, and distribute the example code contained in this document under the
+terms of your choosing, without restriction.</p>
+</license>
diff --git a/help/C/print.page b/help/C/print.page
new file mode 100644
index 0000000..5c7794a
--- /dev/null
+++ b/help/C/print.page
@@ -0,0 +1,30 @@
+<page xmlns="http://projectmallard.org/1.0/"
+ type="guide"
+ id="print">
+
+ <info>
+ <link type="guide" xref="index#use"/>
+ </info>
+
+ <title>Printing</title>
+
+ <p>
+ <app>Simple Scan</app> allows you print a scanned document directly from the its
+ interface, without having to save the document first. This feature makes <app>Simple
+ Scan</app> a very convenient tool for making copies of documents or photos.
+ </p>
+ <steps>
+ <title>To Print a Document</title>
+ <item>
+ <p>Go to the <guiseq><gui>Document</gui><gui>Print</gui>
+ </guiseq> menu or use the keyboard shortcut <keyseq><key>Ctrl</key><key>P</key></keyseq>.
+ This will open the "Print" dialog box.
+ </p>
+ </item>
+ <item>
+ <p>From the "Print" dialog box choose your desired printing settings and/or Print Preview
+ the document, then press the "Print" button.
+ </p>
+ </item>
+ </steps>
+</page>
diff --git a/help/C/reorder.page b/help/C/reorder.page
new file mode 100644
index 0000000..f816acb
--- /dev/null
+++ b/help/C/reorder.page
@@ -0,0 +1,21 @@
+<page xmlns="http://projectmallard.org/1.0/"
+ type="guide"
+ id="reorder">
+
+ <info>
+ <link type="guide" xref="index#modify"/>
+ </info>
+
+ <title>Reordering Pages</title>
+
+ <p>
+ To move a page, right click on it and choose <gui><em>Move Left</em></gui> or
+ <gui><em>Move Right</em></gui>.
+ </p>
+
+ <p>
+ Alternatively, you can move a page by first selecting it and then choosing
+ <gui><em>Move Left</em></gui> or <gui><em>Move Right</em></gui> from the "Page" menu.
+ </p>
+
+</page>
diff --git a/help/C/rotate.page b/help/C/rotate.page
new file mode 100644
index 0000000..b64c69f
--- /dev/null
+++ b/help/C/rotate.page
@@ -0,0 +1,57 @@
+<page xmlns="http://projectmallard.org/1.0/"
+ type="guide"
+ id="rotate">
+
+ <info>
+ <link type="guide" xref="index#modify"/>
+ </info>
+
+ <title>Rotating a Page</title>
+
+ <p>
+ In <app>Simple Scan</app>, you can change the rotation of a page either before or after scanning the page.
+ Currently, there are four ways to rotate a page:
+ </p>
+
+ <steps>
+ <title>Use Toolbar Buttons</title>
+ <item><p>Select the page you want to rotate by clicking on it once.</p></item>
+ <item><p>Press one of the arrows on the toolbar to rotate the page in the desired direction.</p></item>
+ </steps>
+ <steps>
+ <title>Use Right Click</title>
+ <item><p>Right click on the page you want to rotate.</p></item>
+ <item><p>From the context menu choose "Rotate Left" or "Rotate Right".</p></item>
+ </steps>
+
+ <steps>
+ <title>Use a Menu</title>
+ <item><p>Select the page you want to rotate by clicking on it once.</p></item>
+ <item><p>Click the "Page" menu and select "Rotate Left" or "Rotate Right".</p></item>
+ </steps>
+
+ <steps>
+ <title>Use Shortcuts</title>
+ <item><p>Select the page you want to rotate by clicking on it once.</p></item>
+ <item><p>Press one of the following shortcut keys:</p>
+ <table frame="bottom left right" rules="rows cols" shade="rows">
+ <tr>
+ <td><p><em>Command</em></p></td>
+ <td><p><em>Shortcut Key</em></p></td>
+ </tr>
+ <tr>
+ <td><p>Rotate Left</p></td>
+ <td><p><key>[</key> (left bracket)</p></td>
+ </tr>
+ <tr>
+ <td><p>Rotate Right</p></td>
+ <td><p><key>]</key> (right bracket)</p></td>
+ </tr>
+ </table>
+ </item>
+ </steps>
+
+ <note><p>
+ Each new scanned page will use the previous rotation.
+ </p></note>
+</page>
diff --git a/help/C/save.page b/help/C/save.page
new file mode 100644
index 0000000..575c36a
--- /dev/null
+++ b/help/C/save.page
@@ -0,0 +1,68 @@
+<page xmlns="http://projectmallard.org/1.0/"
+ type="guide"
+ id="save">
+
+ <info>
+ <link type="guide" xref="index#use"/>
+ </info>
+
+ <title>Saving to a File</title>
+
+ <steps>
+ <item>
+ <p>Navigate to the <guiseq><gui>Document</gui><gui>Save As</gui></guiseq> menu
+ (or press <keyseq><key>Shift</key><key>Ctrl</key><key>S</key></keyseq>).
+ </p>
+ </item>
+ <item>
+ <p>From the "Save As" dialog box, choose one of the supported file
+ types, or simply change the extension in the "Name" field.
+ </p>
+ </item>
+ <item>
+ <p>Press the "Save" button.</p>
+ </item>
+ </steps>
+
+
+<table frame="bottom left right top" rules="rows cols" shade="rows">
+ <title>Supported File Types</title>
+ <tr>
+ <td><p><em>Type</em></p></td>
+ <td><p><em>Brief Description</em></p></td>
+ </tr>
+ <tr>
+ <td><p>PDF</p></td>
+ <td><p>A PDF can contain multiple pages, like a book, and is easy to distribute. Only a small number
+ of linux programs can modify PDF documents, so this format is recommended primarily for archiving.
+ See the <link href="http://en.wikipedia.org/wiki/pdf">PDF Wiki page</link> for more information.
+ </p></td>
+ </tr>
+ <tr>
+ <td><p>JPEG</p></td>
+ <td><p>JPEG is the file format used by digital cameras to save pictures. A JPEG file is relatively
+ small, very easy to distribute, and suitable for uploading to social networking sites. Most operating
+ systems come with a JPEG editor by default. If you have scanned multiple pages, a JPEG file will be
+ created for each page. Use this file type if you want to modify or upload the scanned images.
+ See the <link href="http://en.wikipedia.org/wiki/jpeg">JPEG Wiki page</link> for more information.
+ </p></td>
+ </tr>
+ <tr>
+ <td><p>PNG</p></td>
+ <td><p>PNG files contain the raw data from the scanner. This makes them very large and not suitable
+ for distributing. If you have scanned multiple pages, a PNG file will be created for each page.
+ See the <link href="http://en.wikipedia.org/wiki/Portable_Network_Graphics">PNG Wiki page</link>
+ for more information.
+ </p></td>
+ </tr>
+ <tr>
+ <td><p>TIFF</p></td>
+ <td><p>TIFF files contain the raw data from the scanner. This makes them very large and not suitable
+ for distributing. If you have scanned multipe pages, a TIFF file will be created for each page.
+ See the <link href="http://en.wikipedia.org/wiki/Tagged_Image_File_Format">TIFF Wiki page</link>
+ for more information.
+ </p></td>
+ </tr>
+
+</table>
+</page>
diff --git a/help/C/scanner.page b/help/C/scanner.page
new file mode 100644
index 0000000..3762cc1
--- /dev/null
+++ b/help/C/scanner.page
@@ -0,0 +1,20 @@
+<page xmlns="http://projectmallard.org/1.0/"
+ type="guide"
+ id="scanner">
+
+ <info>
+ <link type="guide" xref="index#acquire"/>
+ </info>
+
+ <title>Selecting a Scanner</title>
+
+ <p>
+ If you have multiple scanning devices you can change the selected device from the <guiseq><gui>Document</gui><gui>Preferences</gui></guiseq> menu.
+ </p>
+ <media type="image" src="figures/preferences.png"/>
+ <p>
+ Your local scanners are automatically detected each time you start <app>Simple Scan</app>
+ and each time you plug in a USB scanner. If you connect a network scanner while <app>Simple Scan</app>
+ is running, you will need to restart <app>Simple Scan</app> for the scanner to be detected.
+ </p>
+</page>
diff --git a/help/C/scanning.page b/help/C/scanning.page
new file mode 100644
index 0000000..c48a99d
--- /dev/null
+++ b/help/C/scanning.page
@@ -0,0 +1,35 @@
+<page xmlns="http://projectmallard.org/1.0/"
+ type="guide"
+ id="scanning">
+
+ <info>
+ <title type="sort">0</title>
+ <link type="guide" xref="index#acquire"/>
+ </info>
+
+ <title>Scanning a Page</title>
+
+ <p>
+ To scan a document from your scanner:
+ </p>
+ <steps>
+ <item><p>Connect the scanner to your computer and power it on.</p></item>
+ <item><p>Open <app>Simple Scan</app>.</p></item>
+ <item><p>Click the arrow to the right of the "Scan" button and choose the type
+ of document you are scanning: <em>Photo</em> or <em>Text</em>.</p>
+ <media type="image" src="figures/scan_toolbar.png"/></item>
+ <item><p>Click the "Scan" button on the toolbar (or press <keyseq><key>Ctrl</key><key>1</key></keyseq>).</p></item>
+ </steps>
+
+ <note><p>
+ The page will be shown as it is scanned. To stop the scan at any time press the <key>Esc</key>
+ key on the keyboard. Each page you scan is placed at the end of the document.
+ </p></note>
+
+ <p>
+ The document type can be also be changed from the <guiseq><gui>Document</gui>
+ <gui>Scan</gui></guiseq> menu. Choose <gui><em>Text</em></gui> if you want the document
+ to be quickly scanned in black and white; choose <gui><em>Photo</em></gui> for a high
+ resolution color scan. See <link xref="dpi"/> for more details and more options.
+ </p>
+</page>
diff --git a/help/Makefile.am b/help/Makefile.am
new file mode 100644
index 0000000..fd8d7e8
--- /dev/null
+++ b/help/Makefile.am
@@ -0,0 +1,27 @@
+@YELP_HELP_RULES@
+
+HELP_ID = simple-scan
+HELP_POT = simple-scan-help.pot
+
+HELP_MEDIA = \
+ figures/icon.png \
+ figures/preferences.png \
+ figures/scan_toolbar.png
+
+HELP_FILES = index.page \
+ adf.page \
+ crop.page \
+ dpi.page \
+ email.page \
+ legal.xml \
+ print.page \
+ reorder.page \
+ rotate.page \
+ save.page \
+ scanner.page \
+ scanning.page
+
+HELP_LINGUAS = de
+
+DISTCLEANFILES = \
+ Makefile.in
diff --git a/help/Makefile.in b/help/Makefile.in
new file mode 100644
index 0000000..b3798e7
--- /dev/null
+++ b/help/Makefile.in
@@ -0,0 +1,445 @@
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = help
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COLORD_CFLAGS = @COLORD_CFLAGS@
+COLORD_LIBS = @COLORD_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+HELP_DIR = @HELP_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+ITSTOOL = @ITSTOOL@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIMPLE_SCAN_CFLAGS = @SIMPLE_SCAN_CFLAGS@
+SIMPLE_SCAN_LIBS = @SIMPLE_SCAN_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+YELP_LC_DIST = @YELP_LC_DIST@
+YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+HELP_ID = simple-scan
+HELP_POT = simple-scan-help.pot
+HELP_MEDIA = \
+ figures/icon.png \
+ figures/preferences.png \
+ figures/scan_toolbar.png
+
+HELP_FILES = index.page \
+ adf.page \
+ crop.page \
+ dpi.page \
+ email.page \
+ legal.xml \
+ print.page \
+ reorder.page \
+ rotate.page \
+ save.page \
+ scanner.page \
+ scanning.page
+
+HELP_LINGUAS = de
+DISTCLEANFILES = \
+ Makefile.in
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign help/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign help/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
+ ctags-am distclean distclean-generic distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags-am uninstall uninstall-am
+
+@YELP_HELP_RULES@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/help/de/adf.page b/help/de/adf.page
new file mode 100644
index 0000000..5a23e9f
--- /dev/null
+++ b/help/de/adf.page
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="guide" id="adf" xml:lang="de">
+
+ <info>
+ <link type="guide" xref="index#acquire"/>
+ </info>
+
+ <title>Verwendung eines automatischen Dokumenteneinzugs</title>
+
+ <p>
+ If your scanner features an Automatic Document Feeder (ADF)
+ you can scan all the pages from the feeder via one of following methods:
+ </p>
+ <steps>
+ <title/>
+ <title>Use a Keyboard Shortcut</title>
+ <item>
+ <p>Press <keyseq><key>Ctrl</key><key>F</key></keyseq></p>
+ </item>
+ </steps>
+
+ <steps>
+ <title>Use a Menu</title>
+ <item>
+ <p>Navigate to <guiseq><gui>Document</gui>
+ <gui>Scan</gui><gui>All Pages From Feeder</gui></guiseq>.
+ </p>
+ </item>
+ </steps>
+
+ <steps>
+ <title>Use the Toolbar Buttons</title>
+ <item>
+ <p>Click on the arrow to the right of the "Scan" button.</p>
+ </item>
+ <item>
+ <p>Choose "All Pages From Feeder".</p>
+ <media type="image" src="figures/scan_toolbar.png"/>
+ </item>
+ </steps>
+
+
+ <note style="tip">
+ <p>
+ By default, both sides of a sheet will scan if your scanner has this capability.
+ You can choose single side scanning from the <guiseq><gui>Document</gui><gui>Preferences</gui></guiseq> menu.
+ </p>
+ <media type="image" src="figures/preferences.png"/>
+ </note>
+
+</page>
diff --git a/help/de/crop.page b/help/de/crop.page
new file mode 100644
index 0000000..c344ab7
--- /dev/null
+++ b/help/de/crop.page
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="guide" id="crop" xml:lang="de">
+
+ <info>
+ <link type="guide" xref="index#modify"/>
+ </info>
+
+ <title>Zuschneiden</title>
+
+ <p>
+ The cropping feature in <app>Simple Scan</app> allows you to use only a part of a scanned image. You can
+ enable crop either before or after scanning a page, and you can always change the dimensions of the crop
+ frame. When crop is enabled, a mask will apper over the current page with the area not being used shown
+ in gray. You can enable crop and choose the desired dimensions via one of the following methods:
+ </p>
+
+ <steps>
+ <title>Use a Right Click</title>
+ <item><p>Right click anywhere on the image area and select "Crop".</p></item>
+ <item><p>Choose one of the fixed crop frames, or select "Custom" to manually
+ set the crop frame's dimensions by dragging its borders.</p></item>
+ <item><p>Click and hold the frame, then move it to the desired position.</p></item>
+ </steps>
+
+ <steps>
+ <title>Use a Menu</title>
+ <item><p>Navigate to the <guiseq><gui>Page</gui><gui>Crop</gui></guiseq> menu.</p></item>
+ <item><p>Choose one of the fixed crop frames, or select "Custom" to manually adjust the frame's dimensions by dragging its borders.</p></item>
+ <item><p>Click and hold the frame, then move it to the desired position.</p></item>
+ </steps>
+
+ <steps>
+ <title>Use the Toolbar</title>
+ <item><p>Click the "<gui>Crop</gui>" button in the toolbar.</p>
+ <note style="tip"><p>This is the same as choosing "Custom" in step 2 of the
+ aforementioned methods.</p></note></item>
+ <item><p>Drag the borders of the frame to set the desired dimensions and position.</p></item>
+
+ </steps>
+
+ <note><p>
+ Each new scanned page will use the previous crop.
+ </p></note>
+</page>
diff --git a/help/de/de.po b/help/de/de.po
new file mode 100644
index 0000000..40b36d7
--- /dev/null
+++ b/help/de/de.po
@@ -0,0 +1,449 @@
+# German translation of the Simple Scan manual.
+# Mario Blättermann <mariobl@gnome.org>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple scan docs\n"
+"POT-Creation-Date: 2010-10-10 21:55+0200\n"
+"PO-Revision-Date: 2010-10-11 20:17+0100\n"
+"Last-Translator: Mario Blättermann <mariobl@gnome.org>\n"
+"Language-Team: German <gnome-de@gnome.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+
+#: scanning.page:6(title)
+msgid "0"
+msgstr "0"
+
+#: scanning.page:10(title)
+msgid "Scanning a Page"
+msgstr "Scannen einer Seite"
+
+#: scanning.page:12(p)
+msgid "To scan a document from your scanner:"
+msgstr "So scannen Sie ein Dokument mit ihrem Scanner ein:"
+
+#: scanning.page:17(p)
+msgid "Connect the scanner to your computer."
+msgstr "Schließen Sie den Scanner an Ihren Rechner an."
+
+#: scanning.page:23(app) scanner.page:16(app) scanner.page:17(app)
+msgid "Simple Scan"
+msgstr "Simple Scan"
+
+#: scanning.page:22(p)
+msgid "Open <placeholder-1/>."
+msgstr "Öffnen Sie <placeholder-1/>."
+
+#: scanning.page:28(key) save.page:12(key) print.page:12(key)
+#: email.page:12(key)
+msgid "Ctrl"
+msgstr "Strg"
+
+#: scanning.page:28(key)
+msgid "1"
+msgstr "1"
+
+#: scanning.page:27(p)
+msgid ""
+"Press the scan button in the toolbar (or <keyseq><placeholder-1/"
+"><placeholder-2/></keyseq>)."
+msgstr ""
+"Klicken Sie auf den Scannen-Knopf in der Werkzeugleiste (oder "
+"<keyseq><placeholder-1/><placeholder-2/></keyseq>)."
+
+#: scanning.page:33(p)
+msgid "The page will be shown as it is scanned."
+msgstr "Jede Seite wird so angezeigt, wie sie gescannt wurde."
+
+#: scanning.page:38(gui) scanning.page:43(gui) scanner.page:12(gui)
+#: save.page:12(gui) print.page:12(gui) email.page:12(gui) dpi.page:13(gui)
+#: adf.page:12(gui) adf.page:16(gui)
+msgid "Document"
+msgstr "Dokument"
+
+#: scanning.page:38(gui)
+msgid "New"
+msgstr "Neu"
+
+#: scanning.page:39(key) reorder.page:15(key)
+msgid "Delete"
+msgstr "Löschen"
+
+#: scanning.page:37(p)
+msgid ""
+"Each page you scan is added to the end of your document. To start a new "
+"document select <guiseq><placeholder-1/><placeholder-2/></guiseq>. Individual "
+"pages can be deleted by right clicking a page or pressing the <placeholder-3/"
+"> key."
+msgstr ""
+"Jede eingescannte Seite wird an das Ende Ihres Dokuments angefügt. Um ein "
+"neues Dokument zu beginnen, wählen Sie <guiseq><placeholder-1/><placeholder-2/"
+"></guiseq>. Seiten können einzeln entfernt werden, indem Sie mit der rechten "
+"Maustaste auf eine Seite klicken oder die <placeholder-3/>-Taste drücken."
+
+#: scanning.page:43(gui) adf.page:12(gui)
+msgid "Scan"
+msgstr "Scannen"
+
+#: scanning.page:44(gui)
+msgid "Text"
+msgstr "Text"
+
+#: scanning.page:44(gui)
+msgid "Photo"
+msgstr "Foto"
+
+#: scanning.page:42(p)
+msgid ""
+"The type of scan can be changed from the <guiseq><placeholder-1/"
+"><placeholder-2/></guiseq> menu. Choose <placeholder-3/> if you want the "
+"document to be quickly scanned in black and white or <placeholder-4/> for a "
+"high resolution color scan."
+msgstr ""
+"Der Scantyp kann im Menü <guiseq><placeholder-1/><placeholder-2/></guiseq> "
+"geändert werden. Wählen Sie <placeholder-3/>, wenn das Dokument schnell in "
+"Schwarzweiß eingescannt werden soll oder <placeholder-4/> für einen "
+"hochauflösenden Farbscan."
+
+#: scanning.page:48(key)
+msgid "Escape"
+msgstr "Esc"
+
+#: scanning.page:47(p)
+msgid "To stop the scan at any time press <placeholder-1/>."
+msgstr "Um den Scanvorgang abzubrechen, drücken Sie <placeholder-1/>."
+
+#: scanner.page:9(title)
+msgid "Selecting a Scanner"
+msgstr "Einen Scanner auswählen"
+
+#: scanner.page:12(gui) dpi.page:13(gui) adf.page:16(gui)
+msgid "Preferences"
+msgstr "Einstellungen"
+
+#: scanner.page:11(p)
+msgid ""
+"If you have multiple scanners you can change which scanner is selected from "
+"the <guiseq><placeholder-1/><placeholder-2/></guiseq> menu."
+msgstr ""
+"Falls Sie über mehrere Scanner verfügen, können Sie im Menü "
+"<guiseq><placeholder-1/><placeholder-2/></guiseq> wählen, welcher davon "
+"verwendet werden soll."
+
+#: scanner.page:15(p)
+msgid ""
+"Your local scanners are automatically detected each time you start "
+"<placeholder-1/> and each time you plug in USB scanner. If you have a network "
+"scanner you will need to restart <placeholder-2/> for it to be detected."
+msgstr ""
+"Ihre lokalen Scanner werden jedes Mal beim Start von <placeholder-1/> und bei "
+"jedem Anschließen eines USB-Scanners automatisch erkannt. Wenn Sie einen "
+"Netzwerkscanner haben, müssen Sie <placeholder-2/> neu starten, damit dieser "
+"erkannt werden kann."
+
+#: save.page:9(title)
+msgid "Saving to a File"
+msgstr "Speichern in einer Datei"
+
+#: save.page:12(gui)
+msgid "Save"
+msgstr "Speichern "
+
+#: save.page:12(key)
+msgid "S"
+msgstr "S"
+
+#: save.page:11(p)
+msgid ""
+"To save the current document to a file use the <guiseq><placeholder-1/"
+"><placeholder-2/></guiseq> menu (<keyseq><placeholder-3/><placeholder-4/></"
+"keyseq>). When you save, there is a choice of three file types."
+msgstr ""
+"Um das aktuelle Dokument zu speichern, wählen Sie <guiseq><placeholder-1/"
+"><placeholder-2/></guiseq> (<keyseq><placeholder-3/><placeholder-4/></"
+"keyseq>). Beim Speichern können Sie aus drei Dateitypen wählen."
+
+#: save.page:17(title)
+msgid "Portable Document Format (PDF)"
+msgstr "Portable Document Format (PDF)"
+
+#: save.page:18(p)
+msgid ""
+"A PDF can contain multiple pages (like a book) and is easy to distribute to "
+"other people. Most people do not have software to modify PDF documents so "
+"this format is best used for archiving."
+msgstr ""
+"Ein PDF kann mehrere Seiten enthalten (wie ein Buch) und lässt sich auf "
+"einfache Art und Weise an Andere weitergeben. Die meisten Benutzer verfügen "
+"nicht über Software zum Bearbeiten von PDF-Dokumenten, so dass sich dieses "
+"Format bestens zur Archivierung eignet."
+
+#: save.page:19(p)
+msgid "Use this type if you have scanned multiple pages of text."
+msgstr ""
+"Verwenden Sie diesen Typ, wenn Sie mehrere Textseiten eingescannt haben."
+
+#: save.page:22(title)
+msgid "JPEG"
+msgstr "JPEG"
+
+#: save.page:23(p)
+msgid ""
+"JPEG file is the file format used by digital cameras and is very small and so "
+"easy to distribute. Most people have software to modify JPEG photos and this "
+"format is suitable for uploading to social networking sites. If you have "
+"scanned multiple pages then a JPEG file will be written for each page."
+msgstr ""
+"JPEG ist das von Digitalkameras verwendete Dateiformat. Es ist recht klein "
+"und bestens für die Weitergabe geeignet. Die meisten Benutzer verfügen über "
+"Software zum Bearbeiten von JPEG-Fotos, außerdem lässt es sich einfach auf "
+"Webseiten sozialer Netzwerke hochladen. Falls Sie mehrere Seiten eingescannt "
+"haben, wird für jede Seite eine JPEG-Datei erzeugt."
+
+#: save.page:24(p)
+msgid "Use this type if you want to modify or upload the scanned images."
+msgstr ""
+"Verwenden Sie diesen Typ, wenn Sie die eingescannten Bilder bearbeiten oder "
+"hochladen wollen."
+
+#: save.page:27(title)
+msgid "PNG"
+msgstr "PNG"
+
+#: save.page:28(p)
+msgid ""
+"PNG files contain the raw data from the scanner. This makes them much larger "
+"than JPEG files and not suitable for distributing. If you have scanned "
+"multiple pages then a PNG file will be written for each page."
+msgstr ""
+"PNG-Dateien enthalten die Rohdaten aus dem Scanner. Dadurch sind sie "
+"wesentlich größer als JPEG-Dateien und für die Weitergabe ungeeignet. Wenn "
+"Sie mehrere Seiten einscannen, wird für jede Seite eine PNG-Datei erzeugt."
+
+#: save.page:29(p)
+msgid "Use this type if you need high resolution files for editing"
+msgstr ""
+"Verwenden Sie diesen Typ, wenn sie hochauflösende Dateien zur "
+"Weiterverarbeitung benötigen."
+
+#: rotate.page:9(title)
+msgid "Rotating Pages"
+msgstr "Seiten drehen"
+
+#: rotate.page:12(key)
+msgid "["
+msgstr "["
+
+#: rotate.page:12(key)
+msgid "]"
+msgstr "]"
+
+#: rotate.page:11(p)
+msgid ""
+"To rotate a page use the rotation buttons in the toolbar or the "
+"<placeholder-1/> and <placeholder-2/> keys. Each new page that is scanned "
+"will use the previous rotation."
+msgstr ""
+"Um eine Seite zu drehen, verwenden Sie die Drehknöpfe in der Werkzeugleiste "
+"oder die Tasten <placeholder-1/> und <placeholder-2/>. Jede neu eingescannte "
+"Seite übernimmt dann die gewählte Drehung."
+
+#: reorder.page:9(title)
+msgid "Reordering Pages"
+msgstr "Seiten neu anordnen"
+
+#: reorder.page:12(key)
+msgid "&lt;"
+msgstr "&lt;"
+
+#: reorder.page:12(key)
+msgid "&gt;"
+msgstr "&gt;"
+
+#: reorder.page:11(p)
+msgid ""
+"To move a page, select it and move the page left or right using the "
+"<placeholder-1/> and <placeholder-2/> keys."
+msgstr ""
+"Um eine Seite zu verschieben, wählen Sie sie aus und verschieben Sie sie mit "
+"den Tasten <placeholder-1/> und <placeholder-2/> nach rechts oder links."
+
+#: reorder.page:14(p)
+msgid "To remove the selected page use the <placeholder-1/> key."
+msgstr ""
+"Um die ausgewählte Seite zu entfernen, verwenden Sie die <placeholder-1/>-"
+"Taste."
+
+#: print.page:9(title)
+msgid "Printing"
+msgstr "Drucken"
+
+#: print.page:12(gui)
+msgid "Print"
+msgstr "Drucken"
+
+#: print.page:12(key)
+msgid "P"
+msgstr "P"
+
+#: print.page:11(p)
+msgid ""
+"To print the current document use the <guiseq><placeholder-1/><placeholder-2/"
+"></guiseq> menu (<keyseq><placeholder-3/><placeholder-4/></keyseq>)."
+msgstr ""
+"Um das aktuelle Dokument zu drucken, wählen Sie <guiseq><placeholder-1/"
+"><placeholder-2/></guiseq> (<keyseq><placeholder-3/><placeholder-4/></"
+"keyseq>)."
+
+#: index.page:7(name)
+msgid "Robert Ancell"
+msgstr "Robert Ancell"
+
+#: index.page:8(email)
+msgid "robert.ancell@gmail.com"
+msgstr "robert.ancell@gmail.com"
+
+#: index.page:13(title)
+msgid "Simple Scan Help"
+msgstr "Hilfe zu Simple Scan"
+
+#: index.page:16(title)
+msgid "Scanning Pages"
+msgstr "Scannen von Seiten"
+
+#: index.page:20(title)
+msgid "Modifying the Document"
+msgstr "Bearbeiten des Dokuments"
+
+#: index.page:24(title)
+msgid "Using the Document"
+msgstr "Das Dokument verwenden"
+
+#: email.page:9(title)
+msgid "Sending via Email"
+msgstr "Per E-Mail versenden"
+
+#: email.page:12(gui)
+msgid "Email"
+msgstr "E-Mail"
+
+#: email.page:12(key)
+msgid "E"
+msgstr "E"
+
+#: email.page:11(p)
+msgid ""
+"To email the current document use the <guiseq><placeholder-1/><placeholder-2/"
+"></guiseq> menu (<keyseq><placeholder-3/><placeholder-4/></keyseq>). Your "
+"email program will be opened with a new message containing the scanned "
+"document as an attachment."
+msgstr ""
+"Um das aktuelle Dokument per E-Mail zu versenden, wählen Sie "
+"<guiseq><placeholder-1/><placeholder-2/></guiseq> (<keyseq><placeholder-3/"
+"><placeholder-4/></keyseq>). Ihr E-Mail-Programm wird mit einer neuen "
+"Nachricht geöffnet, die das eingescannte Dokument als Anhang enthält."
+
+#: email.page:15(p)
+msgid ""
+"If the document type is set to text the email will have a PDF attachment "
+"otherwise the email will have a JPEG attachment for each page."
+msgstr ""
+"Falls der Dokumenttyp auf Text gesetzt ist, dann wird der E-Mail-Anhang im "
+"PDF-Format versendet, anderenfalls wird für jede Seite ein separater JPEG-"
+"Anhang erzeugt."
+
+#: email.page:18(p)
+msgid "See <link xref=\"save\"/> for more information about file formats."
+msgstr ""
+"In <link xref=\"save\"/> finden Sie weitere Informationen über Dateiformate."
+
+#: dpi.page:9(title)
+msgid "Setting the Scan Resolution"
+msgstr "Festlegen der Auflösung"
+
+#: dpi.page:11(p)
+msgid ""
+"By default text documents will be scanned at 200 dots per inch (dpi) and "
+"photos at 400 dpi. To change these settings open the preferences from the "
+"<guiseq><placeholder-1/><placeholder-2/></guiseq> menu."
+msgstr ""
+"Standardmäßig werden Dokumente mit 200 dpi (Punkte pro Zoll) eingescannt und "
+"Fotos mit 400 dpi. Um diese Einstellungen zu ändern, öffnen Sie die "
+"Einstellungen mit <guiseq><placeholder-1/><placeholder-2/></guiseq>."
+
+#: crop.page:9(title)
+msgid "Cropping"
+msgstr "Zuschneiden"
+
+#: crop.page:11(p)
+msgid ""
+"To use only part of the scanned page enable crop by selecting the crop button "
+"in the toolbar. A mask will be shown over the current page with the area not "
+"being used shown in gray."
+msgstr ""
+"Um nur einen Teil der eingescannten Seite zu verwenden, können Sie mit dem "
+"Zuschneiden-Knopf in der Werkzeugleiste diese auf die gewünschte Größe "
+"zuschneiden. Eine Maske wird über der aktuellen Seite angezeigt, wobei der "
+"nicht zu verwendende Teil in Grau dargestellt wird."
+
+#: crop.page:15(p)
+msgid ""
+"The crop area can be adjusted by clicking on the inside of the crop area "
+"border and dragging the mouse."
+msgstr ""
+"Sie können den Zuschnittbereich anpassen, indem Sie innerhalb der Umrandung "
+"dieses Bereichs mit der Maus klicken und die Maus dann ziehen."
+
+#: crop.page:19(gui)
+msgid "Page"
+msgstr "Seite"
+
+#: crop.page:19(gui)
+msgid "Crop"
+msgstr "Zuschneiden"
+
+#: crop.page:18(p)
+msgid ""
+"Fixed crop sizes can be chosen from the <guiseq><placeholder-1/"
+"><placeholder-2/></guiseq> menu that match commonly used paper sizes."
+msgstr ""
+"Voreingestellte Zuschnittgrößen wählen Sie im Menü <guiseq><placeholder-1/"
+"><placeholder-2/></guiseq>, das Ihnen häufig verwendete Papiergrößen zur "
+"Auswahl anbietet."
+
+#: crop.page:21(p)
+msgid "Each new page that is scanned will use the previous crop."
+msgstr ""
+"Jede neu eingescannte Seite verwendet den Zuschnitt der vorherigen Seite."
+
+#: adf.page:9(title)
+msgid "Using an Automatic Document Feeder"
+msgstr "Verwendung eines automatischen Dokumenteneinzugs"
+
+#: adf.page:12(gui)
+msgid "All Pages From Feeder"
+msgstr "Alle Seiten aus dem Papiereinzug"
+
+#: adf.page:11(p)
+msgid ""
+"If your scanner has an Automatic Document Feeder (ADF) you can scan all the "
+"pages by selecting the <guiseq><placeholder-1/><placeholder-2/><placeholder-3/"
+"></guiseq> menu."
+msgstr ""
+"Falls Ihr Scanner mit einem automatischen Dokumenteneinzug ausgestattet ist, "
+"wählen Sie im Menü <guiseq><placeholder-1/><placeholder-2/><placeholder-3/></"
+"guiseq>, um alle Seiten einzuscannen."
+
+#: adf.page:14(p)
+msgid ""
+"By default both sides of the paper will be scanned if your scanned supports "
+"this. Single side scanning can be configured from the <guiseq><placeholder-1/"
+"><placeholder-2/></guiseq> menu."
+msgstr ""
+"Standardmäßig werden beide Seiten des Papiers eingescannt, sofern Ihr Scanner "
+"dies unterstützt. Einseitiges Scannen kann über das Menü "
+"<guiseq><placeholder-1/><placeholder-2/></guiseq> konfiguriert werden."
diff --git a/help/de/de.stamp b/help/de/de.stamp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/help/de/de.stamp
diff --git a/help/de/dpi.page b/help/de/dpi.page
new file mode 100644
index 0000000..8cc87d9
--- /dev/null
+++ b/help/de/dpi.page
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="guide" id="dpi" xml:lang="de">
+
+ <info>
+ <link type="guide" xref="index#acquire"/>
+ </info>
+
+ <title>Festlegen der Auflösung</title>
+
+ <p>
+ The default resolution for document type <gui><em>Text</em></gui> is 150 dpi (dots per inch)
+ and for document type <gui><em>Photo</em></gui> is 300 dpi. You can change these settings
+ from the <guiseq><gui>Document</gui><gui>Preferences</gui></guiseq> menu.
+ </p>
+ <media type="image" src="figures/preferences.png"/>
+
+ <p>The available scanning resolutions for both document types (Text and Photo) are the same
+ and are listed in the following table:</p>
+
+ <table frame="bottom left right" rules="rows cols" shade="rows">
+ <tr>
+ <td><p><em>Text Resolution</em></p></td>
+ <td><p><em>Photo Resolution</em></p></td>
+ </tr>
+ <tr>
+ <td><p>75 dpi (draft)</p></td>
+ <td><p>75 dpi (draft)</p></td>
+ </tr>
+ <tr>
+ <td><p>150 dpi (default)</p></td>
+ <td><p>150 dpi</p></td>
+ </tr>
+ <tr>
+ <td><p>300 dpi</p></td>
+ <td><p>300 dpi (default)</p></td>
+ </tr>
+ <tr>
+ <td><p>600 dpi</p></td>
+ <td><p>600 dpi</p></td>
+ </tr>
+ <tr>
+ <td><p>1200 dpi (high resolution)</p></td>
+ <td><p>1200 dpi (high resolution)</p></td>
+ </tr>
+ <tr>
+ <td><p>2400 dpi</p></td>
+ <td><p>2400 dpi</p></td>
+ </tr>
+ </table>
+
+ <note style="important"><p><gui><em>Text</em></gui> documents are always scanned in black
+ and white, while <gui><em>Photo</em></gui> documents are always scanned in color, at any
+ resolution!</p>
+ </note>
+
+</page>
diff --git a/help/de/email.page b/help/de/email.page
new file mode 100644
index 0000000..94ce67d
--- /dev/null
+++ b/help/de/email.page
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="guide" id="email" xml:lang="de">
+
+ <info>
+ <link type="guide" xref="index#use"/>
+ </info>
+
+ <title>Per E-Mail versenden</title>
+
+ <p>
+ To email the current document use the <guiseq><gui>Document</gui><gui>Email</gui></guiseq>
+ menu (<keyseq><key>Ctrl</key><key>E</key></keyseq>). Your email program will be opened with
+ a new message containing the scanned document as an attachment.
+ </p>
+ <p>
+ If the document type was set to "Text" the email will have a PDF attachment for each page.
+ Conversely, if the document type was set to "Photo", the email will have a JPEG
+ attachment for each page.
+ </p>
+ <p>In <link xref="save"/> finden Sie weitere Informationen über Dateiformate.</p>
+</page>
diff --git a/help/de/index.page b/help/de/index.page
new file mode 100644
index 0000000..41137a8
--- /dev/null
+++ b/help/de/index.page
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="guide" id="index" xml:lang="de">
+
+ <info>
+ <credit type="author">
+ <name>Robert Ancell</name>
+ <email>robert.ancell@gmail.com</email>
+ </credit>
+ <credit type="author">
+ <name>Ali Shtarbanov</name>
+ <email>ametedinov@gmail.com</email>
+ </credit>
+ <include xmlns="http://www.w3.org/2001/XInclude" href="legal.xml"/>
+ </info>
+
+ <title><media type="image" src="figures/icon.png"/> Simple Scan Manual</title>
+
+ <section id="acquire" style="2column">
+ <title>Scannen von Seiten</title>
+ </section>
+
+ <section id="modify" style="2column">
+ <title>Bearbeiten des Dokuments</title>
+ </section>
+
+ <section id="use" style="2column">
+ <title>Das Dokument verwenden</title>
+ </section>
+
+ <section id="shortcuts" style="2column">
+ <title>Simple Scan Shortcuts</title>
+ </section>
+</page>
diff --git a/help/de/legal.xml b/help/de/legal.xml
new file mode 100644
index 0000000..46a7e88
--- /dev/null
+++ b/help/de/legal.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<license xmlns="http://projectmallard.org/1.0/" href="http://creativecommons.org/licenses/by-sa/3.0/">
+<p>This work is licensed under a
+<link href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons
+Attribution-Share Alike 3.0 Unported License</link>.</p>
+<p>As a special exception, the copyright holders give you permission to copy,
+modify, and distribute the example code contained in this document under the
+terms of your choosing, without restriction.</p>
+</license>
diff --git a/help/de/print.page b/help/de/print.page
new file mode 100644
index 0000000..a2c1dce
--- /dev/null
+++ b/help/de/print.page
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="guide" id="print" xml:lang="de">
+
+ <info>
+ <link type="guide" xref="index#use"/>
+ </info>
+
+ <title>Drucken</title>
+
+ <p>
+ <app>Simple Scan</app> allows you print a scanned document directly from the its
+ interface, without having to save the document first. This feature makes <app>Simple
+ Scan</app> a very convenient tool for making copies of documents or photos.
+ </p>
+ <steps>
+ <title>To Print a Document</title>
+ <item>
+ <p>Go to the <guiseq><gui>Document</gui><gui>Print</gui>
+ </guiseq> menu or use the keyboard shortcut <keyseq><key>Ctrl</key><key>P</key></keyseq>.
+ This will open the "Print" dialog box.
+ </p>
+ </item>
+ <item>
+ <p>From the "Print" dialog box choose your desired printing settings and/or Print Preview
+ the document, then press the "Print" button.
+ </p>
+ </item>
+ </steps>
+</page>
diff --git a/help/de/reorder.page b/help/de/reorder.page
new file mode 100644
index 0000000..d2f8ae4
--- /dev/null
+++ b/help/de/reorder.page
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="guide" id="reorder" xml:lang="de">
+
+ <info>
+ <link type="guide" xref="index#modify"/>
+ </info>
+
+ <title>Seiten neu anordnen</title>
+
+ <p>
+ To move a page, right click on it and choose <gui><em>Move Left</em></gui> or
+ <gui><em>Move Right</em></gui>.
+ </p>
+
+ <p>
+ Alternatively, you can move a page by first selecting it and then choosing
+ <gui><em>Move Left</em></gui> or <gui><em>Move Right</em></gui> from the "Page" menu.
+ </p>
+
+</page>
diff --git a/help/de/rotate.page b/help/de/rotate.page
new file mode 100644
index 0000000..d717c54
--- /dev/null
+++ b/help/de/rotate.page
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="guide" id="rotate" xml:lang="de">
+
+ <info>
+ <link type="guide" xref="index#modify"/>
+ </info>
+
+ <title>Rotating a Page</title>
+
+ <p>
+ In <app>Simple Scan</app>, you can change the rotation of a page either before or after scanning the page.
+ Currently, there are four ways to rotate a page:
+ </p>
+
+ <steps>
+ <title>Use Toolbar Buttons</title>
+ <item><p>Select the page you want to rotate by clicking on it once.</p></item>
+ <item><p>Press one of the arrows on the toolbar to rotate the page in the desired direction.</p></item>
+ </steps>
+ <steps>
+ <title>Use Right Click</title>
+ <item><p>Right click on the page you want to rotate.</p></item>
+ <item><p>From the context menu choose "Rotate Left" or "Rotate Right".</p></item>
+ </steps>
+
+ <steps>
+ <title>Use a Menu</title>
+ <item><p>Select the page you want to rotate by clicking on it once.</p></item>
+ <item><p>Click the "Page" menu and select "Rotate Left" or "Rotate Right".</p></item>
+ </steps>
+
+ <steps>
+ <title>Use Shortcuts</title>
+ <item><p>Select the page you want to rotate by clicking on it once.</p></item>
+ <item><p>Press one of the following shortcut keys:</p>
+ <table frame="bottom left right" rules="rows cols" shade="rows">
+ <tr>
+ <td><p><em>Command</em></p></td>
+ <td><p><em>Shortcut Key</em></p></td>
+ </tr>
+ <tr>
+ <td><p>Rotate Left</p></td>
+ <td><p><key>[</key> (left bracket)</p></td>
+ </tr>
+ <tr>
+ <td><p>Rotate Right</p></td>
+ <td><p><key>]</key> (right bracket)</p></td>
+ </tr>
+ </table>
+ </item>
+ </steps>
+
+ <note><p>
+ Each new scanned page will use the previous rotation.
+ </p></note>
+</page>
diff --git a/help/de/save.page b/help/de/save.page
new file mode 100644
index 0000000..c59a243
--- /dev/null
+++ b/help/de/save.page
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="guide" id="save" xml:lang="de">
+
+ <info>
+ <link type="guide" xref="index#use"/>
+ </info>
+
+ <title>Speichern in einer Datei</title>
+
+ <steps>
+ <item>
+ <p>Navigate to the <guiseq><gui>Document</gui><gui>Save As</gui></guiseq> menu
+ (or press <keyseq><key>Shift</key><key>Ctrl</key><key>S</key></keyseq>).
+ </p>
+ </item>
+ <item>
+ <p>From the "Save As" dialog box, choose one of the supported file
+ types, or simply change the extension in the "Name" field.
+ </p>
+ </item>
+ <item>
+ <p>Press the "Save" button.</p>
+ </item>
+ </steps>
+
+
+<table frame="bottom left right top" rules="rows cols" shade="rows">
+ <title>Supported File Types</title>
+ <tr>
+ <td><p><em>Type</em></p></td>
+ <td><p><em>Brief Description</em></p></td>
+ </tr>
+ <tr>
+ <td><p>PDF</p></td>
+ <td><p>A PDF can contain multiple pages, like a book, and is easy to distribute. Only a small number
+ of linux programs can modify PDF documents, so this format is recommended primarily for archiving.
+ See the <link href="http://en.wikipedia.org/wiki/pdf">PDF Wiki page</link> for more information.
+ </p></td>
+ </tr>
+ <tr>
+ <td><p>JPEG</p></td>
+ <td><p>JPEG is the file format used by digital cameras to save pictures. A JPEG file is relatively
+ small, very easy to distribute, and suitable for uploading to social networking sites. Most operating
+ systems come with a JPEG editor by default. If you have scanned multiple pages, a JPEG file will be
+ created for each page. Use this file type if you want to modify or upload the scanned images.
+ See the <link href="http://en.wikipedia.org/wiki/jpeg">JPEG Wiki page</link> for more information.
+ </p></td>
+ </tr>
+ <tr>
+ <td><p>PNG</p></td>
+ <td><p>PNG files contain the raw data from the scanner. This makes them very large and not suitable
+ for distributing. If you have scanned multiple pages, a PNG file will be created for each page.
+ See the <link href="http://en.wikipedia.org/wiki/Portable_Network_Graphics">PNG Wiki page</link>
+ for more information.
+ </p></td>
+ </tr>
+ <tr>
+ <td><p>TIFF</p></td>
+ <td><p>TIFF files contain the raw data from the scanner. This makes them very large and not suitable
+ for distributing. If you have scanned multipe pages, a TIFF file will be created for each page.
+ See the <link href="http://en.wikipedia.org/wiki/Tagged_Image_File_Format">TIFF Wiki page</link>
+ for more information.
+ </p></td>
+ </tr>
+
+</table>
+</page>
diff --git a/help/de/scanner.page b/help/de/scanner.page
new file mode 100644
index 0000000..9d51b25
--- /dev/null
+++ b/help/de/scanner.page
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="guide" id="scanner" xml:lang="de">
+
+ <info>
+ <link type="guide" xref="index#acquire"/>
+ </info>
+
+ <title>Einen Scanner auswählen</title>
+
+ <p>
+ If you have multiple scanning devices you can change the selected device from the <guiseq><gui>Document</gui><gui>Preferences</gui></guiseq> menu.
+ </p>
+ <media type="image" src="figures/preferences.png"/>
+ <p>
+ Your local scanners are automatically detected each time you start <app>Simple Scan</app>
+ and each time you plug in a USB scanner. If you connect a network scanner while <app>Simple Scan</app>
+ is running, you will need to restart <app>Simple Scan</app> for the scanner to be detected.
+ </p>
+</page>
diff --git a/help/de/scanning.page b/help/de/scanning.page
new file mode 100644
index 0000000..5a2caf0
--- /dev/null
+++ b/help/de/scanning.page
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/" type="guide" id="scanning" xml:lang="de">
+
+ <info>
+ <title type="sort">0</title>
+ <link type="guide" xref="index#acquire"/>
+ </info>
+
+ <title>Scannen einer Seite</title>
+
+ <p>So scannen Sie ein Dokument mit ihrem Scanner ein:</p>
+ <steps>
+ <item><p>Connect the scanner to your computer and power it on.</p></item>
+ <item><p>Open <app>Simple Scan</app>.</p></item>
+ <item><p>Click the arrow to the right of the "Scan" button and choose the type
+ of document you are scanning: <em>Photo</em> or <em>Text</em>.</p>
+ <media type="image" src="figures/scan_toolbar.png"/></item>
+ <item><p>Click the "Scan" button on the toolbar (or press <keyseq><key>Ctrl</key><key>1</key></keyseq>).</p></item>
+ </steps>
+
+ <note><p>
+ The page will be shown as it is scanned. To stop the scan at any time press the <key>Esc</key>
+ key on the keyboard. Each page you scan is placed at the end of the document.
+ </p></note>
+
+ <p>
+ The document type can be also be changed from the <guiseq><gui>Document</gui>
+ <gui>Scan</gui></guiseq> menu. Choose <gui><em>Text</em></gui> if you want the document
+ to be quickly scanned in black and white; choose <gui><em>Photo</em></gui> for a high
+ resolution color scan. See <link xref="dpi"/> for more details and more options.
+ </p>
+</page>
diff --git a/install-sh b/install-sh
new file mode 100755
index 0000000..377bb86
--- /dev/null
+++ b/install-sh
@@ -0,0 +1,527 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2011-11-20.07; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# 'make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+nl='
+'
+IFS=" "" $nl"
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit=${DOITPROG-}
+if test -z "$doit"; then
+ doit_exec=exec
+else
+ doit_exec=$doit
+fi
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+ test "$posix_glob" != "?" || {
+ if (set -f) 2>/dev/null; then
+ posix_glob=
+ else
+ posix_glob=:
+ fi
+ }
+'
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+no_target_directory=
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+ --help display this help and exit.
+ --version display version info and exit.
+
+ -c (ignored)
+ -C install only if different (preserve the last data modification time)
+ -d create directories instead of installing files.
+ -g GROUP $chgrpprog installed files to GROUP.
+ -m MODE $chmodprog installed files to MODE.
+ -o USER $chownprog installed files to USER.
+ -s $stripprog installed files.
+ -t DIRECTORY install into DIRECTORY.
+ -T report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+ RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+ case $1 in
+ -c) ;;
+
+ -C) copy_on_change=true;;
+
+ -d) dir_arg=true;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift;;
+
+ --help) echo "$usage"; exit $?;;
+
+ -m) mode=$2
+ case $mode in
+ *' '* | *' '* | *'
+'* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
+
+ -o) chowncmd="$chownprog $2"
+ shift;;
+
+ -s) stripcmd=$stripprog;;
+
+ -t) dst_arg=$2
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ shift;;
+
+ -T) no_target_directory=true;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ --) shift
+ break;;
+
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
+
+ *) break;;
+ esac
+ shift
+done
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+ # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dst_arg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dst_arg"
+ shift # fnord
+ fi
+ shift # arg
+ dst_arg=$arg
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ done
+fi
+
+if test $# -eq 0; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call 'install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
+
+if test -z "$dir_arg"; then
+ do_exit='(exit $ret); exit $ret'
+ trap "ret=129; $do_exit" 1
+ trap "ret=130; $do_exit" 2
+ trap "ret=141; $do_exit" 13
+ trap "ret=143; $do_exit" 15
+
+ # Set umask so as not to create temps with too-generous modes.
+ # However, 'strip' requires both read and write access to temps.
+ case $mode in
+ # Optimize common cases.
+ *644) cp_umask=133;;
+ *755) cp_umask=22;;
+
+ *[0-7])
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw='% 200'
+ fi
+ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+ *)
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw=,u+rw
+ fi
+ cp_umask=$mode$u_plus_rw;;
+ esac
+fi
+
+for src
+do
+ # Protect names problematic for 'test' and other utilities.
+ case $src in
+ -* | [=\(\)!]) src=./$src;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ dstdir=$dst
+ test -d "$dstdir"
+ dstdir_status=$?
+ else
+
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dst_arg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+ dst=$dst_arg
+
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
+ if test -d "$dst"; then
+ if test -n "$no_target_directory"; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
+ fi
+ dstdir=$dst
+ dst=$dstdir/`basename "$src"`
+ dstdir_status=0
+ else
+ # Prefer dirname, but fall back on a substitute if dirname fails.
+ dstdir=`
+ (dirname "$dst") 2>/dev/null ||
+ expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$dst" : 'X\(//\)[^/]' \| \
+ X"$dst" : 'X\(//\)$' \| \
+ X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+ echo X"$dst" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'
+ `
+
+ test -d "$dstdir"
+ dstdir_status=$?
+ fi
+ fi
+
+ obsolete_mkdir_used=false
+
+ if test $dstdir_status != 0; then
+ case $posix_mkdir in
+ '')
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
+ esac
+
+ if
+ $posix_mkdir && (
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ )
+ then :
+ else
+
+ # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # or it failed possibly due to a race condition. Create the
+ # directory the slow way, step by step, checking for races as we go.
+
+ case $dstdir in
+ /*) prefix='/';;
+ [-=\(\)!]*) prefix='./';;
+ *) prefix='';;
+ esac
+
+ eval "$initialize_posix_glob"
+
+ oIFS=$IFS
+ IFS=/
+ $posix_glob set -f
+ set fnord $dstdir
+ shift
+ $posix_glob set +f
+ IFS=$oIFS
+
+ prefixes=
+
+ for d
+ do
+ test X"$d" = X && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
+ done
+
+ if test -n "$prefixes"; then
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
+ fi
+ fi
+ fi
+
+ if test -n "$dir_arg"; then
+ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+ else
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+ # Copy the file name to the temp name.
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+ # If -C, don't bother to copy if it wouldn't change the file.
+ if $copy_on_change &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+ eval "$initialize_posix_glob" &&
+ $posix_glob set -f &&
+ set X $old && old=:$2:$4:$5:$6 &&
+ set X $new && new=:$2:$4:$5:$6 &&
+ $posix_glob set +f &&
+
+ test "$old" = "$new" &&
+ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+ then
+ rm -f "$dsttmp"
+ else
+ # Rename the file to the real destination.
+ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+ {
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
+ }
+ fi || exit 1
+
+ trap '' 0
+ fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/missing b/missing
new file mode 100755
index 0000000..cdea514
--- /dev/null
+++ b/missing
@@ -0,0 +1,215 @@
+#! /bin/sh
+# Common wrapper for a few potentially missing GNU programs.
+
+scriptversion=2012-06-26.16; # UTC
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# 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, 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, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try '$0 --help' for more information"
+ exit 1
+fi
+
+case $1 in
+
+ --is-lightweight)
+ # Used by our autoconf macros to check whether the available missing
+ # script is modern enough.
+ exit 0
+ ;;
+
+ --run)
+ # Back-compat with the calling convention used by older automake.
+ shift
+ ;;
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+
+Supported PROGRAM values:
+ aclocal autoconf autoheader autom4te automake makeinfo
+ bison yacc flex lex help2man
+
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
+
+Send bug reports to <bug-automake@gnu.org>."
+ exit $?
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing $scriptversion (GNU Automake)"
+ exit $?
+ ;;
+
+ -*)
+ echo 1>&2 "$0: unknown '$1' option"
+ echo 1>&2 "Try '$0 --help' for more information"
+ exit 1
+ ;;
+
+esac
+
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch. This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+ msg="probably too old"
+elif test $st -eq 127; then
+ # Program was missing.
+ msg="missing on your system"
+else
+ # Program was found and executed, but failed. Give up.
+ exit $st
+fi
+
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+ case $1 in
+ aclocal|automake)
+ echo "The '$1' program is part of the GNU Automake package:"
+ echo "<$gnu_software_URL/automake>"
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/autoconf>"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ autoconf|autom4te|autoheader)
+ echo "The '$1' program is part of the GNU Autoconf package:"
+ echo "<$gnu_software_URL/autoconf/>"
+ echo "It also requires GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ esac
+}
+
+give_advice ()
+{
+ # Normalize program name to check for.
+ normalized_program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+ printf '%s\n' "'$1' is $msg."
+
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+ case $normalized_program in
+ autoconf*)
+ echo "You should only need it if you modified 'configure.ac',"
+ echo "or m4 files included by it."
+ program_details 'autoconf'
+ ;;
+ autoheader*)
+ echo "You should only need it if you modified 'acconfig.h' or"
+ echo "$configure_deps."
+ program_details 'autoheader'
+ ;;
+ automake*)
+ echo "You should only need it if you modified 'Makefile.am' or"
+ echo "$configure_deps."
+ program_details 'automake'
+ ;;
+ aclocal*)
+ echo "You should only need it if you modified 'acinclude.m4' or"
+ echo "$configure_deps."
+ program_details 'aclocal'
+ ;;
+ autom4te*)
+ echo "You might have modified some maintainer files that require"
+ echo "the 'automa4te' program to be rebuilt."
+ program_details 'autom4te'
+ ;;
+ bison*|yacc*)
+ echo "You should only need it if you modified a '.y' file."
+ echo "You may want to install the GNU Bison package:"
+ echo "<$gnu_software_URL/bison/>"
+ ;;
+ lex*|flex*)
+ echo "You should only need it if you modified a '.l' file."
+ echo "You may want to install the Fast Lexical Analyzer package:"
+ echo "<$flex_URL>"
+ ;;
+ help2man*)
+ echo "You should only need it if you modified a dependency" \
+ "of a man page."
+ echo "You may want to install the GNU Help2man package:"
+ echo "<$gnu_software_URL/help2man/>"
+ ;;
+ makeinfo*)
+ echo "You should only need it if you modified a '.texi' file, or"
+ echo "any other file indirectly affecting the aspect of the manual."
+ echo "You might want to install the Texinfo package:"
+ echo "<$gnu_software_URL/texinfo/>"
+ echo "The spurious makeinfo call might also be the consequence of"
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+ echo "want to install GNU make:"
+ echo "<$gnu_software_URL/make/>"
+ ;;
+ *)
+ echo "You might have modified some files without having the proper"
+ echo "tools for further handling them. Check the 'README' file, it"
+ echo "often tells you about the needed prerequisites for installing"
+ echo "this package. You may also peek at any GNU archive site, in"
+ echo "case some other package contains this missing '$1' program."
+ ;;
+ esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+ -e '2,$s/^/ /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/po/LINGUAS b/po/LINGUAS
new file mode 100644
index 0000000..5e7ab67
--- /dev/null
+++ b/po/LINGUAS
@@ -0,0 +1,65 @@
+af
+ar
+ast
+az
+bg
+bo
+ca
+ca@valencia
+ce
+cs
+da
+de
+el
+en_GB
+eo
+es
+et
+eu
+fi
+fr
+gd
+gl
+he
+hr
+hu
+hy
+id
+it
+ja
+kk
+km
+ky
+lt
+lv
+mhr
+ms
+my
+nb
+nl
+oc
+pa
+pl
+pt_BR
+pt
+ro
+ru
+sd
+se
+shn
+sk
+sl
+sq
+sr
+sv
+ta
+te
+th
+tr
+ug
+uk
+ur
+uz
+vi
+zh_CN
+zh_TW
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
new file mode 100644
index 0000000..06a8cfe
--- /dev/null
+++ b/po/Makefile.in.in
@@ -0,0 +1,222 @@
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns@gmail.com>
+#
+# This file may be copied and used freely without restrictions. It may
+# be used in projects which are not available under a GNU Public License,
+# but which still want to provide support for the GNU gettext functionality.
+#
+# - Modified by Owen Taylor <otaylor@redhat.com> to use GETTEXT_PACKAGE
+# instead of PACKAGE and to look for po2tbl in ./ not in intl/
+#
+# - Modified by jacob berkman <jacob@ximian.com> to install
+# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
+#
+# - Modified by Rodney Dawes <dobey.pwns@gmail.com> for use with intltool
+#
+# We have the following line for use by intltoolize:
+# INTLTOOL_MAKEFILE
+
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = @top_builddir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = @datadir@
+datarootdir = @datarootdir@
+libdir = @libdir@
+DATADIRNAME = @DATADIRNAME@
+itlocaledir = $(prefix)/$(DATADIRNAME)/locale
+subdir = po
+install_sh = @install_sh@
+# Automake >= 1.8 provides @mkdir_p@.
+# Until it can be supposed, use the safe fallback:
+mkdir_p = $(install_sh) -d
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+GMSGFMT = @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = @XGETTEXT@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
+GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
+
+ALL_LINGUAS = @ALL_LINGUAS@
+
+PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi)
+
+USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi)
+
+USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
+
+POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
+
+DISTFILES = Makefile.in.in POTFILES.in $(POFILES)
+EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS
+
+POTFILES = \
+# This comment gets stripped out
+
+CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
+
+.SUFFIXES:
+.SUFFIXES: .po .pox .gmo .mo .msg .cat
+
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V))
+INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY))
+INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@;
+
+.po.pox:
+ $(MAKE) $(GETTEXT_PACKAGE).pot
+ $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
+
+.po.mo:
+ $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $<
+
+.po.gmo:
+ $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \
+ && rm -f $$file && $(GMSGFMT) -o $$file $<
+
+.po.cat:
+ sed -f ../intl/po2msg.sed < $< > $*.msg \
+ && rm -f $@ && gencat $@ $*.msg
+
+
+all: all-@USE_NLS@
+
+all-yes: $(CATALOGS)
+all-no:
+
+$(GETTEXT_PACKAGE).pot: $(POTFILES)
+ $(GENPOT)
+
+install: install-data
+install-data: install-data-@USE_NLS@
+install-data-no: all
+install-data-yes: all
+ linguas="$(USE_LINGUAS)"; \
+ for lang in $$linguas; do \
+ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
+ $(mkdir_p) $$dir; \
+ if test -r $$lang.gmo; then \
+ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
+ else \
+ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+ echo "installing $(srcdir)/$$lang.gmo as" \
+ "$$dir/$(GETTEXT_PACKAGE).mo"; \
+ fi; \
+ if test -r $$lang.gmo.m; then \
+ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
+ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
+ else \
+ if test -r $(srcdir)/$$lang.gmo.m ; then \
+ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
+ $$dir/$(GETTEXT_PACKAGE).mo.m; \
+ echo "installing $(srcdir)/$$lang.gmo.m as" \
+ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
+ else \
+ true; \
+ fi; \
+ fi; \
+ done
+
+# Empty stubs to satisfy archaic automake needs
+dvi info ctags tags CTAGS TAGS ID:
+
+# Define this as empty until I found a useful application.
+install-exec installcheck:
+
+uninstall:
+ linguas="$(USE_LINGUAS)"; \
+ for lang in $$linguas; do \
+ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
+ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
+ done
+
+check: all $(GETTEXT_PACKAGE).pot
+ rm -f missing notexist
+ srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
+ if [ -r missing -o -r notexist ]; then \
+ exit 1; \
+ fi
+
+mostlyclean:
+ rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
+ rm -f .intltool-merge-cache
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES stamp-it
+ rm -f *.mo *.msg *.cat *.cat.m *.gmo
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f Makefile.in.in
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ extra_dists="$(EXTRA_DISTFILES)"; \
+ for file in $$extra_dists; do \
+ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
+ done; \
+ for file in $$dists; do \
+ test -f $$file || file="$(srcdir)/$$file"; \
+ ln $$file $(distdir) 2> /dev/null \
+ || cp -p $$file $(distdir); \
+ done
+
+update-po: Makefile
+ $(MAKE) $(GETTEXT_PACKAGE).pot
+ tmpdir=`pwd`; \
+ linguas="$(USE_LINGUAS)"; \
+ for lang in $$linguas; do \
+ echo "$$lang:"; \
+ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
+ if $$result; then \
+ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "msgmerge for $$lang.gmo failed!"; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi; \
+ done
+
+Makefile POTFILES: stamp-it
+ @if test ! -f $@; then \
+ rm -f stamp-it; \
+ $(MAKE) stamp-it; \
+ fi
+
+stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
+ $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100644
index 0000000..93a99e0
--- /dev/null
+++ b/po/POTFILES.in
@@ -0,0 +1,13 @@
+# List of source files containing translatable strings.
+# Please keep this file sorted alphabetically.
+[encoding: UTF-8]
+[type: gettext/glade]data/simple-scan.ui
+data/simple-scan.desktop.in
+data/org.gnome.SimpleScan.gschema.xml.in
+src/book.vala
+src/book-view.vala
+src/page.vala
+src/page-view.vala
+src/scanner.vala
+src/simple-scan.vala
+src/ui.vala
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
new file mode 100644
index 0000000..6c210b4
--- /dev/null
+++ b/po/POTFILES.skip
@@ -0,0 +1,7 @@
+src/book.c
+src/book-view.c
+src/page.c
+src/page-view.c
+src/scanner.c
+src/simple-scan.c
+src/ui.c
diff --git a/po/af.po b/po/af.po
new file mode 100644
index 0000000..336b225
--- /dev/null
+++ b/po/af.po
@@ -0,0 +1,764 @@
+# Afrikaans translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-09-03 08:13+0000\n"
+"Last-Translator: Dawid de Jager <dawid.dejager@gmail.com>\n"
+"Language-Team: Afrikaans <af@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:30+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Verleen toegang"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Gebruikersnaam vir hulpbron:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Wagwoord:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Voor en agter"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Voor"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Terug"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Eenvoudige Skandeer"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokument"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sk_andeer"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Enkel _Bladsy"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Alle Bladsye Vanaf _Voerder"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Staak skandering"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Teks"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_E-pos"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Bladsy"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Roteer _linksom"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Roteer _regsom"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Insny"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Geen"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter (VSA)"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal (VSA)"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Pasmaak"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Roteer Insnit"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Beweeg na regs"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Hulp"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Inhoud"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Begin 'n nuwe dokument"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Nuwe"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Skandeer 'n enkelbladsy vanaf die skandeerder"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Skandeer"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Stoor dokument na 'n lêer"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Stoor"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Staak huidige skandering"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Stop"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Roteer die bladsy na links (anti-kloksgewys)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Roteer linksom"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Roteer die bladsy na regs (kloksgewys)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Roteer regsom"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Snoei die gekose bladsy"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Insny"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Voorkeure"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Skandeer B_ron"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Teks resolusie"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Foto resolusie:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Skandeer Kant:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Bladsy grootte:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Skandeer dokumente"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Skanderingstoestel"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Tipe dokument wat geskandeer word"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Wydte van papier in tiendes van 'n mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Die wydte van die papier in tiendes van 'n mm (of 0 vir outomatiese "
+"bespeuring)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Hoogte van papier in tiendes van 'n mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Die hoogte van die papier in tiendes van 'n mm (of 0 vir outomatiese "
+"papierbespeuring)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Resolusie van geskandeerde teks"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Resolusie van geskandeerde foto's"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Kant van bladsy om te skandeer"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Gids om lêers in te stoor"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Die gids om die lêers in stoor. Verstek is die dokumente gids indien "
+"onveranderd"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Geen skandeerders is beskikbaar nie. Koppel asb.'n skandeerder."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Kan nie aan skandeerder koppel nie"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Nie in staat om te begin skandeer nie"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr ""
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr ""
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr ""
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Skandering het misluk"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Geskandeerde dokument"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Geskandeerde dokument.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr ""
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Stoor as..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Beeldlêers"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Alle lêers"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Kon nie die leêr stoor nie"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr ""
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr ""
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Aangaande Simple Scan"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr ""
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Arthur Rilke https://launchpad.net/~arthurrilke\n"
+" Chris Mostert https://launchpad.net/~cvmostert\n"
+" Dawid de Jager https://launchpad.net/~dawiddj\n"
+" Jacques Botha https://launchpad.net/~jacquesb\n"
+" Johann-jlconradie https://launchpad.net/~johann-jlconradie\n"
+" Launchpad Translations Administrators https://launchpad.net/~rosetta\n"
+" Willem van der Colff https://launchpad.net/~wilalla"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr ""
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (verstek resolusie)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (hoë resolusie)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Verander _skandeerder"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr ""
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Gebruik:\n"
+#~ "%s [TOESTEL...] - Skandeerder"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Skanderingsrigting"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Wydte van geskandeerde beeld in pixels"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Venster wydte in pixels"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Venster hoogte in pixels"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Kontrolleer asseblief u installasie"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Hoogte van geskandeerde beeld in pixels"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Die hoogte van geskandeerde beeld in pixels. Die waarde is verander na die "
+#~ "waarde van die laaste geskandeerde bladsy."
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Resolusie van die laaste geskandeerde beeld"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Die wydte van geskandeerde beeld in pixels. Die waarde is verstel na die "
+#~ "waarde van die laaste geskandeerde bladsy."
diff --git a/po/ar.po b/po/ar.po
new file mode 100644
index 0000000..aaff403
--- /dev/null
+++ b/po/ar.po
@@ -0,0 +1,791 @@
+# Arabic translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 08:56+0000\n"
+"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
+"Language-Team: Arabic <ar@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:30+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_خوّل"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "اسم _مستخدم المورد:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_كلمة السر:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "الخلف والأمام"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "الأمام"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "الخلف"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "الماسحة الضوئية"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "م_ستند"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "امسح"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "صفحة مفردة"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "كل الصفحات من _المغذّي"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "أو_قف المسح"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "نص"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "صورة"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_بريد إلكتروني"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_صفحة"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "أدر ي_سارًا"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "أدر ي_مينًا"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "ا_قتصاص"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "لا _شيء"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_خطاب"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "_قانوني"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_مخصص"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "أ_در الاقتصاص"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "تحرك لليسار"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "تحرك لليمين"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_مساعدة"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "ال_محتويات"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "ابدأ مستندا جديدا"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "جديد"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "امسح صفحة مفردة من الماسحة"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "امسح"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "احفظ المستند في ملف"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "احفظ"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "أوقف المسح الحالي"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "أوقف"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "أدر الصفحة لليسار (عكس عقارب الساعة)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "أدر يسارا"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "أدر الصفحة لليمين (مع عقارب الساعة)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "أدر يمينا"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "اقتص الصفحة المحددة"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "اقتصاص"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "التفضيلات"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "م_صدر المسح:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "ميز ال_نص"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "ميز ال_صورة:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "جهة المسح:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "حجم الصفحة:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "امسح المستندات"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "الجهاز الذي سيمسح منه"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "جهاز SANE للحصول على الصور منه."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "نوع المستند الذي يجري مسحه"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"نوع المستند الممسوح. هذا الإعداد يتقرر على أساس ميز المسح، والألوان، ومرحلة "
+"ما بعد المعاجلة."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "عرض الورقة بأعشار الملم"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr "عرض الورقة بأعشار الملم (أو 0 لاكتشاف الورقة آليا)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "ارتفاع الورقة بأعشار الملم"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr "ارتفاع الورقة بأعشار الملم (أو 0 لاكتشاف الورقة آليا)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "ميز مسح النصوص"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "الميز بالنقطة في البوصة الذي سيستخدم عند مسح النصوص."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "ميز مسح الصور"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "الميز بالنقطة في البوصة الذي سيستخدم عند مسح الصور."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "الجهة التي ستُمسح"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "جهة الصفحة التي ستُمسح."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "دليل حفظ الملفات"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr "الدليل الذي ستحفظ به الملفات. يستخدم دليل المستندات إذا لم يحدد هنا."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "لا توجد أي ماسحات. من فضلك وصّل ماسحة."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "تعذّر الاتصال بالماسحة"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "تعذّر بدء المسح"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "خطأ في التواصل مع الماسحة"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "اعرض رقم الإصدارة"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "اطبع رسائل التنقيح"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "أصلح ملفات PDF المولدة باستخدام إصدارات قديمة من الماسحة الضوئية"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "فشل المسح"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "مستند ممسوح"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[جهاز...] - أداة مسح ضوئي"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr "نفّذ '%s --help' لعرض القائمة الكاملة لخيارات سطر الأوامر المُتاحة."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "مستند ممسوح.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "اسم مستخدم وكلمة سر مطلوبين للنفاذ إلى '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "لم يُعثر على أي ماسحة"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "يرجى التحقق من أنّ الماسحة متصلة وتعمل"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "احفظ كـ..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "ملفات الصور"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "كل الملفات"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "اختر _نوع الملف"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF‏ (مستند متعدد الصفحات)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "‏JPEG (مضغوط)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "‏PNG (غير فقود)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "فشل حفظ الملف"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "ستضيع جميع التغييرات للأبد إذا لم تحفظ."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "أأحفظ المستند الحالي؟"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "ارفض التغيرات"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "تعذّر حفظ الصورة للمعاينة"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "تعذر فتح معاين الصور"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "تعذّر فتح ملف المساعدة"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"هذا البرنامج حر، يمكنك توزيعه و/أو تعديله حسب بنود رخصة جنو العمومية \n"
+"كما نشرتها مؤسسة البرامج الحرة، الإصدار الثالث أو أي إصدار أحدث (حسب "
+"رغبتك).\n"
+"\n"
+"هذا البرنامج يوزع على أمل أن يكون مفيداً، ولكن دون أية ضمانات، بما في ذلك \n"
+"ضمانات قابلية البرنامج للتسويق أو الملاءمة لغرض معين. انظر نص رخصة جنو\n"
+"العمومية لمزيد من التفاصيل.\n"
+"\n"
+"من المفترض أنك تلقيت نسخة من رخصة جنو العمومية مع هذا البرنامج.\n"
+"إذا لم يحدث هذا فانظر <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "عن \"الماسحة الضوئية\""
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "أداة بسيطة لمسح المستندات"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Ahmed Mohammed https://launchpad.net/~ahmedqatar\n"
+" Ali AlNoaimi https://launchpad.net/~el7r\n"
+" Ibrahim Saed https://launchpad.net/~ibraheem5000\n"
+" Kaïs Bejaoui https://launchpad.net/~kais\n"
+" Khaled Hosny https://launchpad.net/~khaledhosny\n"
+" Usama Akkad https://launchpad.net/~damascene\n"
+" abdallah alemran https://launchpad.net/~abukhallad\n"
+" benohb https://launchpad.net/~hamid\n"
+" hitham https://launchpad.net/~hitham-mil\n"
+" rashed alhazimi https://launchpad.net/~linex"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "هل ترغب بحفظ المستند قبل الخروج؟"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "أُخرج دون حفظ"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d نقطة\\بوصة (مبدئي)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d نقطة\\بوصة (مسودة)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d نقطة\\بوصة (دقة عالية)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d نقطة\\بوصة"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "غيّر _الماسحة"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "آلي"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "يحفظ المستند..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "يحفظ الصفحة %d من أصل %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#×D7;6"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "ارتفاع النافذة بالبكسل"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "عرض النافذة بالبكسل"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "ارتفاع الصورة الممسوحة بالبكسل"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "صحيح إن كانت نافذة البرنامج مكبرة"
+
+#~ msgid "Direction of scan"
+#~ msgstr "اتجاه المسح"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "اتجاه الماسحة عبر الصفحة الممسوحة . يمكن أن يكون: 'top-to-bottom' 'bottom-"
+#~ "to-top' 'left-to-right' 'right-to-left'"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "نوع المستند الذي يجري مسحه. 'text' للمستندات النصية، 'photo' للصور. يحدد هذا "
+#~ "الإعداد دقة المسح والألوان والمعالجة البعدية."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "عرض الصورة الممسوحة بالبكسل. تحدث هذه القيمة حسب ما كانت عليه الصورة السابقة."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "ارتفاع الصورة الممسوحة بالبكسل. تحدث هذه القيمة حسب ما كانت عليه الصورة "
+#~ "السابقة."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "عرض الصورة الممسوحة بالبكسل."
+
+#~ msgid "Files missing"
+#~ msgstr "ملفات مفقودة"
+
+#~ msgid "Please check your installation"
+#~ msgstr "من فضلك تحقق من تثبيتك"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "الميز بالنقطة في البوصة للصورة الممسوحة سابقا."
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "اتجاه الماسحة خلال الصفحة الممسوحة."
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "ميز آخر صورة ممسوحة"
diff --git a/po/ast.po b/po/ast.po
new file mode 100644
index 0000000..1616f79
--- /dev/null
+++ b/po/ast.po
@@ -0,0 +1,768 @@
+# Asturian translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 08:57+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Asturian <ast@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:30+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autorizar"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Nome d'usuariu pal recursu:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Contraseña"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr ""
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr ""
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr ""
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Simple Scan"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Documentu"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr ""
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "U_na páxina"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Tol_es páxines dende l'alimentador"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Testu"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Semeya"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr ""
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Páxina"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Voltiar a la e_squierda"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Voltiar a la _Drecha"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Recortar"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Dengún"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Carta"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Lle_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4 × 6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Personalizáu"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Voltiar recorte"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Ayuda"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr ""
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr ""
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr ""
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr ""
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr ""
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr ""
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr ""
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr ""
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Preferencies"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Escan_ear:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr ""
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Brillu:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Contraste:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Calidá:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Triba de documentu escaneándose. Esta configuración afita la resolución "
+"d'escanéu, colores y post-procesamientu."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Brillu d'escanéu"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Axuste del brillu dende -100 a 100 (siendo 0 ensin axuste)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Contraste del escanéu"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Axuste de contraste dende -100 a 100 (siendo 0 ensin axuste)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "El llau de la páxina a escanear."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Calidá de la compresión de JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Calidá de la compresión de JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Nun puede coneutase col escáner"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Nun puede anicase l'escáner"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Fallu de comunicación col escáner"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Amosar versión"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Amosar mensaxes de depuración"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Iguar ficheros PDF con versiones anteriores de Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Falló al escanerr"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr ""
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[PRESÉU...] - Utilidá d'escanéu"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Executa '%s --help' pa ver una llista completa de les opciones disponibles "
+"na llinia de comandos."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Documentu Escaneáu.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Zarrar"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Requierse nome d'usuariu y contraseña p'acceder a '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Nun se deteutó dengún escáner"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Por favor comprueba que l'escáner ta coneutáu y activáu"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Guardar como..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Encaboxar"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Guardar"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr ""
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Falló al guardar el ficheru"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr ""
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Nun pudo guardase la imaxe de previsualización"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Tocante a Simple Scan"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Una cenciella ferramienta pa escanear documentos"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Launchpad Translations Administrators https://launchpad.net/~rosetta\n"
+" Rodrigo Toraño Valle https://launchpad.net/~rodrigo-torval\n"
+" Xuacu Saturio https://launchpad.net/~xuacusk8\n"
+" ivarela https://launchpad.net/~ivarela"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr ""
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr ""
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr ""
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Más escuru"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Más claru"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Menos"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Más"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Mínimu"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Máximu"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Guardando documentu..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Guardando la páxina %d de %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Usu:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Opciones de GTK+:\n"
+#~ " --class=CLASE Clas de programa como s'usa pol xestor de "
+#~ "ventanes\n"
+#~ " --name=NOME Nome del programa como s'usa pol xestor de "
+#~ "ventanes\n"
+#~ " --screen=PANTALLA Pantalla X qu'usar\n"
+#~ " --sync Facer que les llamaes les X seyan "
+#~ "síncrones\n"
+#~ " --gtk-module=MÓDULOS Cargar módulos GTK+ adicionales\n"
+#~ " --g-fatal-warnings Facer que tolos avisos seyan fatales"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Por favor, comprueba la instalación"
+
+#~ msgid "Files missing"
+#~ msgstr "Ficheros non alcontraos"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "La direición del escáner a traviés de la páxina escaneada."
diff --git a/po/az.po b/po/az.po
new file mode 100644
index 0000000..1ccf094
--- /dev/null
+++ b/po/az.po
@@ -0,0 +1,709 @@
+# Azerbaijani translation for simple-scan
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-04-17 06:12+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Azerbaijani <az@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:30+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr ""
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr ""
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr ""
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Hər iki üz"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Ön"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Geri"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr ""
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr ""
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr ""
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr ""
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "_AvtoYükləmədəki bütün səhifələr"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr ""
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr ""
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr ""
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr ""
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr ""
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr ""
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr ""
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr ""
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr ""
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr ""
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr ""
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr ""
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr ""
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr ""
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr ""
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr ""
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr ""
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr ""
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr ""
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Seçilmiş səhifəni kəs"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Kəs"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr ""
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr ""
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr ""
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr ""
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr ""
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr ""
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr ""
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr ""
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr ""
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr ""
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr ""
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr ""
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr ""
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr ""
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr ""
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr ""
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Emin Mastizada https://launchpad.net/~emin25"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr ""
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr ""
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr ""
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
diff --git a/po/bg.po b/po/bg.po
new file mode 100644
index 0000000..3fb10b8
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,850 @@
+# Bulgarian translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-12-01 09:04+0000\n"
+"Last-Translator: Svetoslav Stefanov <svetlisashkov@yahoo.com>\n"
+"Language-Team: Bulgarian <bg@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:30+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Идентификация"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Потребителско име за ресурса:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Парола:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Предна и обратна страна"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Предна страна"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Обратна страна"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Опростено сканиране"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Документ"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Ска_ниране"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Една _страница"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Всички страници от _подавача"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Спири сканирането"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Текст"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Снимка"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "Изпрати по _имейл"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Страница"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Завърти _наляво"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Завърти на_дясно"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Изрежи"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Нищо"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "US _Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "US Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Персонализирано"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Завърти изрязаното"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Премести наляво"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Премести надясно"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Помощ"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Съдържание"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Създай нов документ"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Нов"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Сканиране на една страница със скенера"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Сканирай"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Съхрани документа като файл"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Съхрани"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Спри текущото сканиране"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Спри"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Завърти страницата на ляво (обратно на часовниковата стрелка)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Завърти наляво"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Завърти страницата на дясно (по часовниковата стрелка)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Завърти надясно"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Изрежи избраната страница"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Изрежи"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Настройки"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Изт_очник на сканиране:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Резолюция на текста:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Резолюция на снимката:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Избор на страна за сканиране:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Размер на листа:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Яркост:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Контраст:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Качество:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Сканиране на документи"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Устройство за сканиране"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "SANE устройство за получаване на изображения."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Вид на сканираният документ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Видът на сканирания документ. Тази настройка регулира резолюцията, "
+"дълбочината на цветовете, както и пост-обработката."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Ширина на хартията в десетки милиметри"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Широчина на листа в десетки милиметри (избери 0 за автоматично разпознаване)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Височина на хартията в десетки милиметри"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Височина на хартията в десетки милиметри (или 0 за автоматично разпознаване)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Яркост на изображението"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Настройката на яркостта от -100 до 100 (0 — не се променя)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Контраст на изображението"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Настройката на контраста от -100 до 100 (0 — не се променя)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Резолюция на текстовите сканирания"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Резолюция в точки-за-инч при сканиране на текст."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Резолюция за сканиране на фотографиите"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Резолюция в точки-за-инч при сканиране на снимки."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Страна на листа за сканиране"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "От коя страна на страницата да се сканира."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Папка за съхраняване на файловете"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Папка за съхраняване на файловете. По подразбиране се използва папката с "
+"документи."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Стойността на качеството, за използваната JPEG компресия"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Стойността на качеството, за използваната JPEG компресия."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Няма налични скенери. Моля свържете скенер."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Не може да се осъществи връзка със скенера"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Сканирането не може да бъде стартирано"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Грешка при комуникацията със скенера"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Покажи версията"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Показвай съобщения за изчистване на грешки"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Поправи PDF файловете, създадени с по-стари версии на Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Неусшно сканиране"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Сканиран документ"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DEVICE...] - Инструмент за сканиране"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Изпълнете „%s --help“, за да видите списъка с всички опции на командния ред."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Сканиран документ.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Затвори"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Необходими са потребителско име и парола за достъп до '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Не са открити скенери"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Моля проверете дали скенерът ви е свързан и включен"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Съхрани като..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Отмени"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Съхрани"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Файлове с изображения"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Всички файлове"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Избор на _тип файл"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (документ с много страници)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (компресирани)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (без загуби на качеството)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Неусшно съхраняване на файла"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Ако не запазите, промените ще бъдат изгубени."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Да съхраним ли текущия документ?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Откажи промените"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Изображението не може да бъде запазено за предварителен преглед"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Невъзможно е отварянето на приложение за преглед на изображението"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Помощния файл не може да бъде отворен"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Тази програма е свободен софтуер: можете да я редистрибутирате и/или "
+"модифицирате\n"
+"под условията на GNU General Public License, публикуван от\n"
+"Free Software Foundation, или под версия 3 на Лиценза, или\n"
+"(по ваше усмотрение) която и да е следваща версия.\n"
+"\n"
+"Тази програма е дистрибутирана с надеждата, че ще бъде полезна,\n"
+"но БЕЗ КАКВАТО И ДА Е ГАРАНЦИЯ; без дори предполагаемата гаранция на\n"
+"ПРОДАВАЕМОСТТА или СПОСОБНОСТТА ЗА СПЕЦИФИЧНА УПОТРЕБА. Погледнете\n"
+"GNU General Public License за повече детайли.\n"
+"\n"
+"Вие би трябвало да сте получили копие на GNU General Public License\n"
+"заедно с тази програма. Ако това не е така, вижте "
+"<http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "За програмата"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Инструмент за опростено сканиране на документи"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Atanas Kovachki https://launchpad.net/~zdar\n"
+" Boyan Sotirov https://launchpad.net/~lz1dsb\n"
+" Krasimir Chonov https://launchpad.net/~kchonov\n"
+" Miroslav E. Hadzhiev (Хаджиев) https://launchpad.net/~xtigyro\n"
+" Svetoslav Stefanov https://launchpad.net/~svetlisashkov\n"
+" Tora Shiro https://launchpad.net/~tora-shiro\n"
+" i.raynov https://launchpad.net/~ivaylo-raynov\n"
+" Филип Андонов https://launchpad.net/~vonodna"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Да съхраня ли документа, преди да затворите програмата?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Излез без запазване"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (по подразбиране)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (чернова)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (висока разделителна способност)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Смени _скенера"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Автоматично"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Тъмно"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Светло"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Малко"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Много"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Минимално"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Максимално"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Съхраняване на документа..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Съхраняване на страница %d от %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Files missing"
+#~ msgstr "Липсващи файлове"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Употреба:\n"
+#~ " %s [УСТРОЙСТВО...] - Инструмент за сканиране"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Посока на сканиране"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Посоката на скенера през сканираната страница. Може да бъде една от "
+#~ "следните: 'отгоре-надолу' 'отдолу-нагоре' 'от лява-надясно' 'от дясно-наляво'"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Височина на сканираното изображение в пиксели"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Страна на листа за сканиране. Тя може да бъде една от следните: \"двете\" "
+#~ "\"предна\" \"обратна\""
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Типове документи, които се сканират. 'текст' за текстови документи, 'фото' "
+#~ "за снимки. Тези настройки определят разделителната способност на "
+#~ "сканирането, цветовете и последващата обработка."
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Ширина на прозореца в пиксели"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Помощни опции:\n"
+#~ " -d, --debug Печатане на дебъг съобщения\n"
+#~ " -v, --version Показване на версията\n"
+#~ " -h, --help Показване на помощните опции\n"
+#~ " --help-all Показване всички помощни опции\n"
+#~ " --help-gtk Показване на GTK+ опции"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Височина на прозореца в пиксели"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Ширина на сканираните изображения в пиксели"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Опции на GTK+:\n"
+#~ " --class=КЛАС Класът на програмата, използван от мениджъра на прозорци\n"
+#~ " --name=ИМЕ Името на програмата, използвано от мениджъра на прозорци\n"
+#~ " --screen=ДИСПЛЕЙ Дисплеят на X, който да се ползва\n"
+#~ " --sync Извикванията на X да са синхронни\n"
+#~ " --gtk-module=МОДУЛИ Зареждане на допълнителни модули на GTK+\n"
+#~ " --g-fatal-warnings Всички предупреждения да се считат за грешки"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE ако прозореца на приложението е максимизиран."
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Посоката на сканиране на страницата."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Ширина на сканираните изображения в пиксели. Тази стойност се обновява при "
+#~ "всяко ново сканиране."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Височина на сканираните изображения в пиксели. Тази стойност се обновява при "
+#~ "всяко ново сканиране."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Резолюция в точки-за-инч от предишното сканирано изображение."
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Резолюция на последното сканирано изображение"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Моля, проверете дали правилно сте инсталирали програмата"
diff --git a/po/bo.po b/po/bo.po
new file mode 100644
index 0000000..ee038d3
--- /dev/null
+++ b/po/bo.po
@@ -0,0 +1,818 @@
+# Tibetan translation for simple-scan
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-04-17 06:12+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Tibetan <bo@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "ཐོབ་ཐང་སྟེར_A"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "གཏེར་མཛོད་སྤྱོད་མཁན་གྱི་མིང་_U:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "གསང་གྲངས_P:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "རྒྱབ་ཕྱོགས་དང་མདུན་ཕྱོགས"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "མདུན་ཕྱོགས"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "རྒྱབ་ཕྱོགས"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "པར་བཤུ་དཀྱུས་མ"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "ཡི་གེ_D"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "པར་བཤུ_a"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "ཤོག་བུ་རྐང་ཅིག _P"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "སྤྲོད་མཁན་ནས་བྱུང་བའི་ཤོག་ལེབ་ཡོངས་རྫོགས _F"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "པར་ལེན་མཚམས་བཞག_S"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "ཡི་གེ"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "པར"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "གློག་འཕྲིན_E"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "ཤོག་ལེབ_P"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "གཡོན་སྐོར _L"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "གཡས་སྐོར་ _R"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "གཅོད_C"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "ཅི་མེད་པ_N"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "འཕྲིན་ཡིག_L"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "ཁྲིམས་མཐུན_g"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "སྲོལ་རྒྱུན_C"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "དྲས་གཅོད་སྐོར་བ_R"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "གཡོན་ལ་སྤོར"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "གཡས་ལ་སྤོར"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "རོགས་རམ_H"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "ནང་གསེས_C"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "ཡིག་གེ་གསར་འཛུགས"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "གསར་པ"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "པར་བཤུ་ཆས་ནས་བྱུང་བའི་ཤོག་བུ་རྐང་ཅིག་དེ་པར་བཤུ"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "པར་བཤུ"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "ཡི་གེ་ཡིག་ཆའི་ནང་གསོག་ཉར"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "གསོག་ཉར"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "པར་བཤུ་བྱེད་བཞིན་པ་དེ་མཚམས་བཞག"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "མཚམས་བཞག"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "ཤོག་ལེབ་གཡོན་སྐོར་རྒྱག་པ"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "གཡོན་སྐོར"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "ཤོག་ལེབ་གཡས་སྐོར་རྒྱག་པ"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "གཡས་སྐོར"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "བདམས་ཟིན་པའི་ཤོག་ལེབ་གཅད་བཟོ"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "གཅད"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "རང་མོས་སྒྲིག་བཟོ"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "པར་བཤུ་གཏེར་མཛོད_o:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "ཡི་གེའི་སྤུས་ཚད_T"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "པར་གྱི་སྤྭུས་ཚད"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "ཟུར་པར་བཤུ"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "ཤོག་ལེབ་ཞེང་ཚད"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "ཡིག་གེ་པར་བཤུ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "འབྱུང་ཁུངས་མི་འདྲ་བའི་པར་བཤུ་སྒྲིག་ཆས"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "པར་རིས་འདོནསའི་SANE་སྒྲིག་ཆས་"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "པར་བཤུ་ཡིག་ཆའི་རིགས"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "ཤོག་ལེབ་ཀྱི་མཐོ་ཚད་བཅུ་ཆའི་རྨིད་སྟོང་ཆ་ཚོད་"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "ཡི་གེའི་པར་བཤུའི་སྤུས་ཚད"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "པར་བཤུའི་སྤུས་ཚད"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "པར་བཤུ་དགོས་པའི་ཤོག་ཟུར"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "ཡིག་ཆ་གསོག་སྣོད"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"ཡིག་ཆ་གསོག་སའི་གནས། "
+"གལ་སྲིད་རང་མོས་སྒྲིག་འཛུགས་མེད་ན་སྔོན་འཛུགས་འཇུག་སྣོད་བེད་སྤྱོད"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "པར་བཤུ་ཆས་བསྒྲིགས་མི་འདུག པར་བཤུ་ཆས་ཞིག་སྒྲིགས་རོགས"
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "པར་བཤུ་ཆས་དང་སྦྲེལ་མ་ཐུབ"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "པར་བཤུ་འགོ་འཛུགས་མ་ཐུབ"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "པར་བཤུ་ཆས་དང་འབྲེལ་གཏུགས་མ་ཐུབ་པའི་ནོར་འཁྲུལ"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr ""
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr ""
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "པར་བཤུ་བྱེད་མ་ཐུབ་པ"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "པར་བཤུ་ཚར་བའི་ཡི་གེ"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "པར་བཤུས་ཡིག་ཆ.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "'%s'མཁོ་སྤྱོད་བྱེད་པར་སྤྱོད་མཁན་མིང་དང་གསང་གྲངས་དགོས་པ"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "པར་བཤུ་ཆས་རྙེད་མ་བྱུང་"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "ཁྱོད་ཀྱི་པར་བཤུ་ཆས་སྦྲེལ་ཡོད་པ་དང་གློག་བཏང་ཡོད་པར་དག་བཤེར་བྱེད་རོགས"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "ཉར་སྟངས་་་"
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "གཟུགས་བརྙན་ཡིག་ཆ"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "ཡིག་ཆ་ཡོངས་རྫོགས"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "ཡིག་ཆའི་རིགས་གདམ་པ_T"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF(ཤོག་ལེབ་མང་པོའི་ཡིག་ཆ)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (བསྡུ་འཇུག)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (བོར་བརླག་མ་ཤོར་བ)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "ཡིག་ཆ་གསོག་འཇོག་བྱེད་མ་ཐུབ"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "ཁྱོད་ཀྱིས་གསོག་འཇོག་མ་བྱས་ན་བཟོ་བཅོས་རྣམས་ནམ་ཡང་བརླགས་འགྲོ་ངེས"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "དང་ཐོག་གི་ཡིག་ཆ་ཉར་ཚགས"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "བཟོ་བཅོས་རྣམས་འདོར་བ"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr ""
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "སྔོན་ལྟ་ཉེར་སྤྱོད་ཁ་ཕྱེ་མ་ཐུབ་པ"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "རོགས་འདེགས་ཡིག་ཆ་ཁ་ཕྱེ་མ་ཐུབ"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "པར་བཤུ་བ་དཀྱུས་མའི་སྐོར"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "ཡིག་ཆ་པར་བཤུ་ཆས་དཀྱུས་མ"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Tennom https://launchpad.net/~tennomyathog"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "ཕྱིར་འཐེན་མ་བྱས་གོང་གསོག་འཇོག་བྱེད་པ"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "གསོག་འཇོག་མ་བྱས་པར་ཕྱིར་འཐེན"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (སྔོན་འཛུགས)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (ཟིན་བྲིས)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (སྤུས་ཚད་མཐོན་པོ)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "པར་བཤུ་ཆས་བརྗེ་བ_S"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "ར་ང་འགུལ་ངང"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Direction of scan"
+#~ msgstr "པར་བཤུ་ཁ་ཕྱོགས"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "པར་བཤུ་བྱས་ཟིན་པའི་གཟུགས་བརྙན་མཐོ་ཚད་ཀྱི་ཚོན་གྲངས"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "ཐེངས་རྗེས་མར་པར་བཤུའི་གཟུགས་བརྙན་གྱི་སྤུས་ཚད"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "གལ་སྲིད་ཉེར་སྤྱོད་སྒེའུ་ཁུང་རྒྱ་བསྐྱེད་ཚར་ན་TRUEའམ་་བདེན་པར་འཛུགས"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "པར་བཤུ་ཆས་ཀྱི་ཁ་ཕྱོགས་ནི་ཤོག་ལེབ་ཡོངས་ཁྱབ་ཡིན་པ་དང་གཤམ་གྱི་འདེམས་ཀ་བཞི་སྟེ། "
+#~ "'གོང་ནས་འོག' 'འོག་ནས་གོང' 'གཡོན་ནས་གཡས' 'གཡས་ནས་གཡོན'"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "ཐེངས་རྗེས་མའི་པར་བཤུའི་པར་རིས་མཐོ་ཚད་ཀྱི་ཚོན་གྲངས། ཐོབ་གྲངས་འདི་ "
+#~ "ཐེངས་རྗེས་མའི་པར་བཤུ་འདྲ་པར་གསར་བསྒྱུར་བྱས་ཟིན"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "པར་བཤུ་ཡིག་ཆའི་རིགས། 'ཡི་གེ'ནི་ཡིག་གེ་ཡིག་ཆ་ཡིན་པ། 'པར'ནི་ "
+#~ "པར་རིས་ཡིག་ཆ་ཡིན་པ། སྒྲིག་འཛུགས་འདིའི་པར་བཤུའི་སྤུས་ཚད། "
+#~ "ཚོན་མདོག་དང་འཇུག་མཐའི་འགུལ་སྐྱོད་ཐག་གཅོད་བྱེད"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Width of scanned image in pixels"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Window height in pixels"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Window width in pixels"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "རོགས་རམ་འདེམས་ཐོ:\n"
+#~ " -d, --སྐྱོན་གསོ སྐྱོན་གསོ་ཡི་གེ་པར་རྒྱག་པ\n"
+#~ " -v, --པར་གཞི པར་གཞི་གསར་པ་མངོན་པ\n"
+#~ " -h, -རོགས་རམ རོགས་རམ་འདེམས་ཐོ་མངོན་པ\n"
+#~ " --རོགས་རམ་ཡོངས་རྫོགས རོགས་རམ་འདེམས་ཐོ་ཡོངས་རྫོགས་མངོན་པ\n"
+#~ " --gtkརོགས་འདེགས GTK+ འདེམས་ཐོ་མངོན་པ"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ འདེམས་ཐོ:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+
+#~ msgid "Files missing"
+#~ msgstr "ཡིག་ཆ་བརླགས་ཚར་འདུག"
+
+#~ msgid "Please check your installation"
+#~ msgstr "ཁྱོད་ཀྱི་སྒྲིག་འཇུག་ཞིབ་བཤེར་གནང་རོགས"
diff --git a/po/ca.po b/po/ca.po
new file mode 100644
index 0000000..3ea3620
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,861 @@
+# Catalan translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 08:57+0000\n"
+"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
+"Language-Team: Catalan <ca@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:30+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autoritza"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Nom d'usuari del recurs:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Contrasenya:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Ambdues cares"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Anvers de la pàgina"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Revers de la pàgina"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Escaneig senzill"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Document"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Esc_aneja"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Pàgina _individual"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Totes les pàgines de l'a_limentador"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Atura l'escaneig"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Text"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Envia per correu"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Pàgina"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Gira a l'_esquerra"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Gira a la _dreta"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Escapçament"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Cap"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Carta EUA"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal EUA"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Personalitzat"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Gira l'escapçament"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "A_juda"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "C_ontingut"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Comença un document nou"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Nou"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Escaneja una sola pàgina de l'escàner"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Escaneja"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Desa el document en un fitxer"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Desa"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Atura l'escaneig actual"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Atura"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Gireu la pàgina cap a l'esquerra (en sentit antihorari)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Gira a l'esquerra"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Gireu la pàgina cap a la dreta (en sentit horari)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Gira a la dreta"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Escapça la pàgina seleccionada"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Escapça"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Preferències"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Font d'_escaneig:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Resolució de text:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Resolució fotogràfica:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Cara a escanejar:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Mida de la pàgina:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Brillantor:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Contrast:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Qualitat:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Escanegeu documents"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Dispositiu d'escaneig"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Dispositiu SANE per a l'adquisició d'imatges."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Tipus de document a escanejar"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"El tipus de document que s'està escanejant. Aquest paràmetre decideix la "
+"resolució d'escaneig, els colors i el processament posterior."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Amplada del paper en dècimes de mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"L'amplada del paper en dècimes de mm (o 0 per la detecció automàtica del "
+"paper)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Alçada del paper en dècimes parts d'un mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"L'alçada del paper en dècimes de mm (o 0 per la detecció automàtica del "
+"paper)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Brillantor de l'escaneig"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "L'ajustament de la brillantor, de -100 a 100 (on 0 significa cap)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Contrast de l'escaneig"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "L'ajustament del contrast, de -100 a 100 (on 0 significa cap)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Resolució per l'escaneig de text"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "La resolució en punts per polzada quan s'escanegi text."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Resolució per l'escaneig de fotos"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "La resolució en punts per polzada quan s'escanegin fotos."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Cara de la pàgina a escanejar"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "La cara de la pàgina a escanejar."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Directori on desar els fitxers"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"El directori on desar els fitxers. Per defecte serà el directori de "
+"documents si no es defineix."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Valor de la qualitat a utilitzar per la compressió JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Valor de la qualitat a utilitzar per la compressió JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "No hi ha cap escàner disponible. Si us plau, connecteu-ne un."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "No s'ha pogut connectar a l'escàner"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "No s'ha pogut iniciar l'escaneig"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "S'ha produït un error en comunicar-se amb l'escàner"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Mostra la versió de llançament"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Mostra els missatges de depuració"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Arregla els fitxers PDF generats amb versions anteriors de l'Escaneig senzill"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Ha fallat l'escaneig"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Document escanejat"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DISPOSITIU...] - Utilitat d'escaneig"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Executeu «%s --help» per veure la llista completa d'opcions disponibles de "
+"la línia d'ordres."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Document escanejat.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Tanca"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Cal un usuari i contrasenya per a accedir a «%s»"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "No s'ha detectat cap escàner"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Comproveu que l'escàner està connectat i engegat"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Anomena i desa..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Cancel·la"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "De_sa"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Fitxers d'imatge"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Tots els fitxers"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Seleccioneu el _tipus de fitxer"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (document multipàgina)."
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (comprimit)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (sense pèrdua)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "No s'ha pogut desar el fitxer"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Si no ho deseu, els canvis es perdran per sempre més."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Voleu desar el document actual?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Descarta els canvis"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "No s'ha pogut desar la imatge per previsualitzar-la"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "No s'ha pogut obrir l'aplicació de previsualització d'imatges"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "No s'ha pogut obrir el fitxer d'ajuda"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Aquest programa és programari lliure: podeu redistribuir-lo l'i/o modificar-"
+"lo\n"
+"sota els termes de la Llicència Pública General GNU (GNU GPL) segons publica "
+"la \n"
+"Fundació de Programari Lliure, qualsevol versió 3 de la Llicència, o \n"
+"(si ho trieu) qualsevol versió més recent. \n"
+"\n"
+"Aquest programa és distribuït en l'esperança que serà útil, \n"
+"però SENSE CAP GARANTIA; fins i tot sense la garantia implicada de \n"
+"MERCANDABILITAT o ADEQUAT PER UN PROPÒSIT PARTICULAR.\n"
+"Vegeu la Llicència Pública General GNU (GNU GPL) per més detalls. \n"
+"\n"
+"Hauríeu d'haver rebut una còpia de la Llicència Pública General GNU (GNU "
+"GPL)\n"
+"juntament amb aquest programa. Si no, mireu <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Quant a l'escaneig senzill"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Eina senzilla d'escaneig de documents"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Adolfo Jayme https://launchpad.net/~fitojb\n"
+" David Planella https://launchpad.net/~dpm\n"
+" J. https://launchpad.net/~jose-manuel-rodriguez-moreno\n"
+" J. Gregpori Raya https://launchpad.net/~gregori\n"
+" Joan Duran https://launchpad.net/~jodufi\n"
+" Sergi https://launchpad.net/~scaparrosj\n"
+" Siegfried Gevatter https://launchpad.net/~rainct\n"
+" SiscoGarcia https://launchpad.net/~sisco\n"
+" pancake https://launchpad.net/~pancake"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Voleu desar el document abans de sortir?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Surt sense desar"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d ppp (predeterminat)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d ppp (esborrany)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d ppp (alta resolució)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d ppp"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Canvia l'e_scàner"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automàtic"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Més fosc"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Més clar"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Menys"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Més"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Mínim"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Màxim"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "S'està desant el document..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "S'està desant la pàgina %d de %d"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Forma d'ús:\n"
+#~ " %s [DISPOSITIU...] - Utilitat d'escaneig"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Opcions de la GTK+:\n"
+#~ " --class=CLASSE Classe del programa tal com l'utilitza el "
+#~ "gestor de finestres\n"
+#~ " --name=NOM Nom del programa tal com l'utilitza el "
+#~ "gestor de finestres\n"
+#~ " --screen=PANTALLA Pantalla X a utilitzar\n"
+#~ " --sync Fa que les crides X siguin síncrones\n"
+#~ " --gtk-module=MÒDULS Carrega mòduls de la GTK+ addicionals\n"
+#~ " --g-fatal-warnings Fa que tots els avisos siguin fatals"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Comproveu la vostra instal·lació"
+
+#~ msgid "Files missing"
+#~ msgstr "Manquen fitxers"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Alçada de la imatge escanejada en píxels"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Direcció de l'escaneig"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "El costat de la pàgina a escanejar. Pot ser un dels següents: «both» "
+#~ "(ambdós), «front» (frontal) o «back» (dorsal)"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "La direcció de l'escaneig a través de la pàgina escanejada. Pot ser una de "
+#~ "les següents: «top-to-bottom» (de dalt a baix), «bottom-to-top» (de baix a "
+#~ "dalt), «left-to-right» (d'esquerra a dreta) o «right-to-left» (de dreta a "
+#~ "esquerra)."
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE (cert) si la finestra de l'aplicació està maximitzada"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "L'alçada de la imatge escanejada en píxels. Aquest valor s'ha actualitzat al "
+#~ "que tenia l'última pàgina escanejada."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr ""
+#~ "La resolució en punts per polzada de la imatge prèviament escanejada."
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Resolució de l'última imatge escanejada"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Tipus de document a escanejar. «text» per documents de text o «photo» per "
+#~ "fotos. Aquest paràmetre decideix la resolució de l'escaneig, els colors i el "
+#~ "postprocessament."
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Alçada de la finestra en píxels"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Amplada de la finestra en píxels"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "L'amplada de la imatge escanejada en píxels. Aquest valor s'ha actualitzat "
+#~ "al que tenia l'última pàgina escanejada."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Amplada de la imatge escanejada en píxels"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Ajuda per a les opcions:\n"
+#~ " -d, --debug Mostra els missatges de depuració\n"
+#~ " -v, --version Mostra la versió del programa\n"
+#~ " -h, --help Mostra l'ajuda de les opcions\n"
+#~ " --help-all Mostra l'ajuda de totes les opcions\n"
+#~ " --help-gtk Mostra l'ajuda de les opcions de la GTK+"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "La direcció de l'escànner a través de la pàgina escanejada."
diff --git a/po/ca@valencia.po b/po/ca@valencia.po
new file mode 100644
index 0000000..5d75aed
--- /dev/null
+++ b/po/ca@valencia.po
@@ -0,0 +1,854 @@
+# Catalan (Valencian) translation for simple-scan
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-04-17 06:12+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Catalan (Valencian) <ca@valencia@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autoritza"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Nom d'usuari del recurs:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Contrasenya:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Ambdues cares"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Anvers de la pàgina"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Revers de la pàgina"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Escaneig senzill"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Document"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Esc_aneja"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Pàgina _individual"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Totes les pàgines de l'a_limentador"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Atura l'escaneig"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Text"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Envia per correu"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Pàgina"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Gira a l'_esquerra"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Gira a la _dreta"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Escapçament"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Cap"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Carta EUA"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal EUA"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Personalitzat"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Gira l'escapçament"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Mou a l'esquerra"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Mou a la dreta"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "A_juda"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "C_ontingut"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Comença un document nou"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Nou"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Escaneja una sola pàgina de l'escàner"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Escaneja"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Alça el document en un fitxer"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Alça"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Atura l'escaneig actual"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Atura"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Gireu la pàgina cap a l'esquerra (en sentit antihorari)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Gira a l'esquerra"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Gireu la pàgina cap a la dreta (en sentit horari)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Gira a la dreta"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Escapça la pàgina seleccionada"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Escapça"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Preferències"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Font d'_escaneig:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Resolució de text:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Resolució fotogràfica:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Cara a escanejar:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Mida de la pàgina:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Brillantor:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Contrast:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Qualitat:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Escanegeu documents"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Dispositiu d'escaneig"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Dispositiu SANE per a l'adquisició d'imatges."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Tipus de document a escanejar"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"El tipus de document que s'està escanejant. Este paràmetre decideix la "
+"resolució d'escaneig, els colors i el processament posterior."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Amplada del paper en dècimes de mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"L'amplada del paper en dècimes de mm (o 0 per la detecció automàtica del "
+"paper)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Alçada del paper en dècimes parts d'un mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"L'alçada del paper en dècimes de mm (o 0 per la detecció automàtica del "
+"paper)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Brillantor de l'escaneig"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "L'ajustament de la brillantor, de -100 a 100 (on 0 significa cap)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Contrast de l'escaneig"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "L'ajustament del contrast, de -100 a 100 (on 0 significa cap)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Resolució per l'escaneig de text"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "La resolució en punts per polzada quan s'escanegi text."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Resolució per l'escaneig de fotos"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "La resolució en punts per polzada quan s'escanegin fotos."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Cara de la pàgina a escanejar"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "La cara de la pàgina a escanejar."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Directori on alçar els fitxers"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"El directori on alçar els fitxers. Per defecte serà el directori de "
+"documents si no es defineix."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Valor de la qualitat a utilitzar per la compressió JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Valor de la qualitat a utilitzar per la compressió JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "No hi ha cap escàner disponible. Per favor, connecteu-ne un."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "No s'ha pogut connectar a l'escàner"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "No s'ha pogut iniciar l'escaneig"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "S'ha produït un error en comunicar-se amb l'escàner"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Mostra la versió de llançament"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Mostra els missatges de depuració"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Arregla els fitxers PDF generats amb versions anteriors de l'Escaneig senzill"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Ha fallat l'escaneig"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Document escanejat"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DISPOSITIU...] - Utilitat d'escaneig"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Executeu «%s --help» per veure la llista completa d'opcions disponibles de "
+"la línia d'ordes."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Document escanejat.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Tanca"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Cal un usuari i contrasenya per a accedir a «%s»"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "No s'ha detectat cap escàner"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Comproveu que l'escàner està connectat i engegat"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Anomena i alça..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Cancel·la"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "Al_ça"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Fitxers d'imatge"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Tots els fitxers"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Seleccioneu el _tipus de fitxer"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (document multipàgina)."
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (comprimit)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (sense pèrdua)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "No s'ha pogut alçar el fitxer"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Si no ho alceu, els canvis es perdran per sempre més."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Voleu alçar el document actual?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Descarta els canvis"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "No s'ha pogut alçar la imatge per previsualitzar-la"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "No s'ha pogut obrir l'aplicació de previsualització d'imatges"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "No s'ha pogut obrir el fitxer d'ajuda"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Este programa és programari lliure: podeu redistribuir-lo l'i/o modificar-"
+"lo\n"
+"sota els termes de la Llicència Pública General GNU (GNU GPL) segons publica "
+"la \n"
+"Fundació de Programari Lliure, qualsevol versió 3 de la Llicència, o \n"
+"(si ho trieu) qualsevol versió més recent. \n"
+"\n"
+"Este programa és distribuït en l'esperança que serà útil, \n"
+"però SENSE CAP GARANTIA; fins i tot sense la garantia implicada de \n"
+"MERCANDABILITAT o ADEQUAT PER UN PROPÒSIT PARTICULAR.\n"
+"Vegeu la Llicència Pública General GNU (GNU GPL) per més detalls. \n"
+"\n"
+"Hauríeu d'haver rebut una còpia de la Llicència Pública General GNU (GNU "
+"GPL)\n"
+"juntament amb este programa. Si no, mireu <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Quant a l'escaneig senzill"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Eina senzilla d'escaneig de documents"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" David Planella https://launchpad.net/~dpm\n"
+" Joan Duran https://launchpad.net/~jodufi"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Voleu alçar el document abans d'eixir?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Ix sense alçar"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d ppp (predeterminat)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d ppp (esborrany)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d ppp (alta resolució)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d ppp"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Canvia l'e_scàner"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automàtic"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Més fosc"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Més clar"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Menys"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Més"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Mínim"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Màxim"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "S'està desant el document..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "S'està desant la pàgina %d de %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Direcció de l'escaneig"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Alçada de la imatge escanejada en píxels"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Resolució de l'última imatge escanejada"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE (cert) si la finestra de l'aplicació està maximitzada"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "La direcció de l'escaneig a través de la pàgina escanejada. Pot ser una de "
+#~ "les següents: «top-to-bottom» (de dalt a baix), «bottom-to-top» (de baix a "
+#~ "dalt), «left-to-right» (d'esquerra a dreta) o «right-to-left» (de dreta a "
+#~ "esquerra)."
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "El costat de la pàgina a escanejar. Pot ser un dels següents: «both» "
+#~ "(ambdós), «front» (frontal) o «back» (dorsal)"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr ""
+#~ "La resolució en punts per polzada de la imatge prèviament escanejada."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Amplada de la imatge escanejada en píxels"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Alçada de la finestra en píxels"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Amplada de la finestra en píxels"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Forma d'ús:\n"
+#~ " %s [DISPOSITIU...] - Utilitat d'escaneig"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Ajuda per a les opcions:\n"
+#~ " -d, --debug Mostra els missatges de depuració\n"
+#~ " -v, --version Mostra la versió del programa\n"
+#~ " -h, --help Mostra l'ajuda de les opcions\n"
+#~ " --help-all Mostra l'ajuda de totes les opcions\n"
+#~ " --help-gtk Mostra l'ajuda de les opcions de la GTK+"
+
+#~ msgid "Files missing"
+#~ msgstr "Manquen fitxers"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Comproveu la vostra instal·lació"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "La direcció de l'escànner a través de la pàgina escanejada."
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Opcions de la GTK+:\n"
+#~ " --class=CLASSE Classe del programa tal com l'utilitza el "
+#~ "gestor de finestres\n"
+#~ " --name=NOM Nom del programa tal com l'utilitza el "
+#~ "gestor de finestres\n"
+#~ " --screen=PANTALLA Pantalla X a utilitzar\n"
+#~ " --sync Fa que les crides X siguin síncrones\n"
+#~ " --gtk-module=MÒDULS Carrega mòduls de la GTK+ addicionals\n"
+#~ " --g-fatal-warnings Fa que tots els avisos siguin fatals"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Tipus de document a escanejar. «text» per documents de text o «photo» per "
+#~ "fotos. Aquest paràmetre decideix la resolució de l'escaneig, els colors i el "
+#~ "postprocessament."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "L'alçada de la imatge escanejada en píxels. Aquest valor s'ha actualitzat al "
+#~ "que tenia l'última pàgina escanejada."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "L'amplada de la imatge escanejada en píxels. Aquest valor s'ha actualitzat "
+#~ "al que tenia l'última pàgina escanejada."
diff --git a/po/ce.po b/po/ce.po
new file mode 100644
index 0000000..d01b322
--- /dev/null
+++ b/po/ce.po
@@ -0,0 +1,704 @@
+# Chechen translation for simple-scan
+# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2014-08-12 08:40+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Chechen <ce@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:30+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr ""
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr ""
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr ""
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr ""
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr ""
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr ""
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr ""
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr ""
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr ""
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr ""
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr ""
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr ""
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr ""
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr ""
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr ""
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr ""
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr ""
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr ""
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr ""
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr ""
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr ""
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr ""
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr ""
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr ""
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr ""
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr ""
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr ""
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr ""
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr ""
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr ""
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr ""
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr ""
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr ""
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr ""
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr ""
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr ""
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr ""
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr ""
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr ""
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr ""
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr ""
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr ""
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr ""
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr ""
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr ""
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr ""
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr ""
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr ""
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr ""
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr ""
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr ""
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr ""
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr ""
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 0000000..d3f5232
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,855 @@
+# Czech translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2013-12-18 12:25+0000\n"
+"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:30+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autorizovat"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Vlastní pojmenování zdroje:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Heslo:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Přední a zadní"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Přední"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Zadní"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Jednoduché skenování"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokument"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sk_enovat"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Jedna _stránka"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Všechny stránky z _podavače"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Zastavit skenování"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Text"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Fotografie"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_E-mail"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Stránka"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Otočit do_leva"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Otočit dop_rava"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Oříznout"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "Žád_né"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Vlastní"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Otočit ořez"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Posunout doleva"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Posunout doprava"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Nápověda"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Obsah"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Vytvořit nový dokument"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Nový"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Naskenovat jednu stránku ze skeneru"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Skenovat"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Uložit dokument do souboru"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Uložit"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Zastavit probíhající skenování"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Zastavit"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Otočit stránku doleva (proti směru hodinových ručiček)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Otočit doleva"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Otočit stránku doprava (po směru hodinových ručiček)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Otočit doprava"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Oříznout vybranou stránku"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Oříznout"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Předvolby"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "_Zdroj skenování:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Rozlišení textu:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Rozlišení fotografie:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Skenovat stranu:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Velikost stránky:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Jas:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Kontrast:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Kvalita:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Naskenovat dokumenty"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Zařízení určené ke skenování"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Zařízení SANE pro načítání obrázků."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Typ skenovaného dokumentu"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Typ skenovaného dokumentu. Toto nastavení rozhoduje o rozlišení skenování, "
+"barvách a následném zpracování."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Šířka papíru v desetinách milimetru"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Šířka papíru v desetinách milimetru (nebo 0 pro automatické zjištění papíru)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Výška papíru v desetinách milimetru"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Výška papíru v desetinách milimetru (nebo 0 pro automatické zjištění papíru)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Jas skenu"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Nastavení jasu od -100 do 100 (0 žádná hodnota)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Kontrast skenu"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Nastavení kontrastu od -100 do 100 (0 žádná hodnota)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Rozlišení pro skenování textu"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Rozlišení v bodech na palec použité při skenování textu."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Rozlišení pro skenování fotografií"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Rozlišení v bodech na palec použité při skenování fotografií."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Strana stránky ke skenování"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Strana stránky ke skenování."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Adresář pro ukládání souborů"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Adresář pro ukládání souborů. Standardně se ukládají do adresáře Dokumenty, "
+"pokud není nastaveno."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Hodnota kvality u JPEG komprese"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Hodnota kvality u JPEG komprese."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Není k dispozici žádný skener. Připojte prosím zařízení."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Nelze navázat spojení se skenerem"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Nelze zahájit skenování"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Při komunikaci se skenerem došlo k chybě"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Zobrazit verzi vydání"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Vypisovat debugovací zprávy"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Oprava PDF souborů generovaných se starší verzí nástroje Jednoduché skenování"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Skenování selhalo"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Skenovaný dokument"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[ZAŘÍZENÍ...] - Nástroj pro skenování"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Spustit příkaz „%s --help“ k zobrazení úplného seznamu dostupných přepínačů "
+"příkazové řádky."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Naskenovaný dokument.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "Z_avřít"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Pro přístup k '%s' je vyžadováno uživatelské jméno a heslo"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Nenalezen žádný skener"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Zkontrolujte prosím, že je váš skener připojen a zapnut"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Uložit jako..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Zrušit"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Uložit"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Soubory obrázků"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Všechny soubory"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Zvolit _typ souboru"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (vícestránkový dokument)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (komprimovaný)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (bezeztrátový)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Uložení souboru selhalo"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Pokud neuložíte, změny budou nenávratně ztraceny."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Uložit stávající dokument?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Zahodit změny"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Nezdařilo se uložit obrázek pro náhled"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Nelze otevřít aplikaci s náhledem obrázku"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Nelze otevřít soubor s nápovědou"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Tento program je svobodný software: můžete jej šířit a/nebo upravovat\n"
+"podle ustanovení GNU General Public License vydané\n"
+"Free Software Foundation, buď verze 3 této licence nebo\n"
+"(dle vlastního uvážení) kterékoliv pozdější verze.\n"
+"\n"
+"Tento program je šířen v naději, že bude užitečný, avšak BEZ JAKÉKOLIV\n"
+"ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo\n"
+"VHODNOSTI PRO URČITÝ ÚČEL. Další podrobnosti hledejte\n"
+"v GNU General Public License.\n"
+"\n"
+"Kopii GNU General Public License byste měli obdržet spolu s tímto "
+"programem.\n"
+"Pokud ne, přečtěte si ji na stránce <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "O aplikaci Jednoduché skenování"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Jednoduchý nástroj pro skenování dokumentů"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Adrian Guniš https://launchpad.net/~andygun\n"
+" Jan Hrdina https://launchpad.net/~jan-hrdina\n"
+" Marv-CZ https://launchpad.net/~marek-manet\n"
+" Ondra Kadlec https://launchpad.net/~o-kadlec\n"
+" Petr R. https://launchpad.net/~ateps-r\n"
+" Petr Šimáček https://launchpad.net/~petr-simacek\n"
+" Tadeáš Pařík https://launchpad.net/~pariktadeas\n"
+" Vitezslav Kotrla https://launchpad.net/~vitezslav-kotrla\n"
+" Vojtěch Trefný https://launchpad.net/~vojtech.trefny\n"
+" la_serpe https://launchpad.net/~tom-mil"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Uložit dokument před ukončením?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Ukončit bez uložení"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (výchozí)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (náčrt)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (vysoké rozlišení)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Změnit _skener"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automaticky"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Tmavší"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Světlejší"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Méně"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Více"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimum"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maximum"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Ukládání dokumentu..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Ukládání strany %d z %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Zkontrolujte prosím svoji instalaci"
+
+#~ msgid "Files missing"
+#~ msgstr "Soubory chybí"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Výška skenovaného obrázku v pixelech"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Směr skenování"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Výška okna v pixelech"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Šířka okna v pixelech"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Šířka skenovaného obrázku v pixelech"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "Nastavit na hodnotu PRAVDA, pokud má být okno maximalizované"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Rozlišení posledního skenovaného obrázku"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Směr skenování stránky. Jsou dostupné následující možnosti: 'top-to-bottom' "
+#~ "'bottom-to-top' 'left-to-right' 'right-to-left'"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Výška skenovaného obrázku v pixelech. Tato hodnota je přizpůsobena posledně "
+#~ "skenované stránce."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Rozlišení posledně skenovaného obrázku v bodech na palec."
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Typ skenovaného dokumentu. 'text' pro textové dokumenty, 'photo' pro "
+#~ "fotografie. Toto nastavení rozhoduje o rozlišení skenování, barvách a "
+#~ "následném zpracování."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Šířka skenovaného obrázku v pixelech. Tato hodnota je přizpůsobena posledně "
+#~ "skenované stránce."
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Přepínače nápovědy:\n"
+#~ " -d, --debug Vypisovat ladicí informace\n"
+#~ " -v, --version Zobrazit verzi vydání\n"
+#~ " -h, --help Zobrazit přepínače nápovědy\n"
+#~ " --help-all Zobrazit všechny přepínače nápovědy\n"
+#~ " --help-gtk Zobrazit přepínače GTK+"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Použití:\n"
+#~ " %s [ZAŘÍZENÍ...] - Skenovací nástroj"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Přepínače GTK+:\n"
+#~ " --class=TŘÍDA Třída programu, jak je použita okenním "
+#~ "správcem\n"
+#~ " --name=NÁZEV Název programu, jak je použit okenním "
+#~ "správcem\n"
+#~ " --screen=OBRAZOVKA Obrazovka X, která se má použít\n"
+#~ " --sync Volání X budou synchronní\n"
+#~ " --gtk-module=MODULY Načte přídavné moduly GTK+\n"
+#~ " --g-fatal-warnings Všechna varování budou kritická"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Strana stránky ke skenování. Může to být jedna z následujících hodnot: "
+#~ "„both“ (obě), „front“ (přední), „back“ (zadní)"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Směr skenování stránky."
diff --git a/po/da.po b/po/da.po
new file mode 100644
index 0000000..9c20bef
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,855 @@
+# Danish translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-10-10 12:13+0000\n"
+"Last-Translator: AJenbo <anders@jenbo.dk>\n"
+"Language-Team: Danish <da@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:30+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autorisér"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "Br_ugernavn for ressource:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Adgangskode:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "For- og bagside"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Forside"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Bagside"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Simpel skanning"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokument"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sk_an"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_Enkelt side"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Alle sider fra _arkføderen"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Stop skanning"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Tekst"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Billede"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Send med e-post"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Side"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Rotér mod _venstre"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Rotér mod _højre"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Beskær"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Ingen"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Brugertilpasset"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Rotér beskæring"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Flyt til venstre"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Flyt til højre"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Hjælp"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Indhold"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Start et nyt dokument"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Nyt"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Skan en enkelt side fra skanneren"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Skan"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Gem dokument som en fil"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Gem"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Stop den igangværende skanning"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Stop"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Rotér siden mod venstre (mod uret)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Rotér mod venstre"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Rotér siden mod højre (med uret)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Rotér mod højre"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Beskær den markerede side"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Beskær"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Indstillinger"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Skanner_kilde:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Tekstopløsning:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Billedopløsning:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Skan side:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Sidestørrelse:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Lysstyrke:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Kontrast:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Kvalitet:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Skan dokumenter"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Enhed at skanne fra"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "SANE-enhed at erhverve billeder fra."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Type af dokument der bliver skannet"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Hvilken slags dokument der skal skannes. Denne indstilling bestemmer "
+"opløsningen, farver og efterbehandling."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Bredde af papir i tiendedele millimeter"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Bredde af papir i tiendedele millimeter (eller 0 for automatisk "
+"papirstørelse)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Højde af papir i tiendedele millimeter"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Højde af papir tiendedele millimeter (eller 0 for automatisk papirstørelse)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Lysstyrke for skanning"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Lysstyrkejusteringen mellem -100 og 100 (hvor 0 betyder ingen)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Kontrast for skanning"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Kontrastjusteringen mellem -100 og 100 (hvor 0 betyder ingen)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Opløsning for tekstskan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+"Opløsningen i punkter per tomme, der skal bruges når der skannes tekst."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Opløsning for billedskan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+"Opløsningen i punkter per tomme, der skal bruges når der skannes foto."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Papirside der skal skannes"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Hvilken side af papiret der skal skannes."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Mappe til at gemme filer i"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr "Mappen til at gemme filer i. Som standard bruges dokumentmappen."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Kvalitetsværdi der bruges til JPEG-komprimering"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Kvalitetsværdi der bruges til JPEG-komprimering."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Ingen skanner tilgængelig. Tilslut en skanner."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Kunne ikke forbinde til sḱanner"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Kunne ikke starte skanning"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Fejl under kommunikation med skanner."
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Vis versionsnummer"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Skriv fejlsøgningsbeskeder"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Ret PDF-filer oprettet med ældre versioner af Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Skanning mislykkedes"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Skannet dokument"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[ENHED...] - Skanningsredskab"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Udfør \"%s --help\" for at se den fulde liste af tilgængelige "
+"kommandolinjetilvalg."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Skannet dokument.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Luk"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Brugernavn og adgangskode er krævet for at tilgå \"%s\""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Ingen skannere fundet"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Kontrollér venligst at skanneren er tændt og sluttet til"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Gem som..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Annullér"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Gem"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Billedfiler"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Alle filer"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Vælg fil_type"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (flersidet dokument)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (komprimeret)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (tabsfri)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Kunne ikke gemme fil"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Hvis du ikke gemmer, vil ændringer gå permanent tabt."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Gem nuværende dokument?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Kassér ændringer"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Kan ikke gemme billede for forhåndsvisning"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Kunne ikke åbne programmet til forhåndsvisning af billeder"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Kan ikke åbne hjælpefil"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Dette program er fri software: du kan redistribuere det og / eller\n"
+"ændredet under GNU General Public License som offentliggjort af\n"
+"Free Software Foundation, enten version 3 af den licens, eller\n"
+"(efter dit valg) enhver senere version.\n"
+"\n"
+"Dette program er distribueret i håb om, at det vil være nyttigt,\n"
+"men UDEN NOGEN GARANTI, endda uden den underforståede garanti\n"
+"SALGBARHED eller EGNETHED TIL ET BESTEMT FORMÅL. Se\n"
+"GNU General Public License for flere detaljer.\n"
+"\n"
+"Du burde have modtaget en kopi af GNU General Public License\n"
+"sammen med dette program. Hvis ikke, se <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Om Simpel skanning"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Simpelt dokumentskanningsværktøj"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" AJenbo https://launchpad.net/~ajenbo\n"
+" Aputsiaq Niels Janussen https://launchpad.net/~aj\n"
+" Ask Hjorth Larsen https://launchpad.net/~askhl\n"
+" David Nielsen https://launchpad.net/~davidnielsen-deactivatedaccount\n"
+" Joe Hansen https://launchpad.net/~joedalton2\n"
+" Kjetil Birkeland Moe https://launchpad.net/~kjetilbmoe\n"
+" MadsRH https://launchpad.net/~madsrh\n"
+" Marcus Møller https://launchpad.net/~marcusmoller\n"
+" Niels Kjøller Hansen https://launchpad.net/~kjoller\n"
+" TLE https://launchpad.net/~k-nielsen81\n"
+" Torben Gundtofte-Bruun https://launchpad.net/~torbengb"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Gem dokumentet før der afsluttes?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Afslut uden at gemme"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (standard)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (udkast)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (høj opløsning)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Skift _skanner"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatisk"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Mørkere"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Lysere"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Mindre"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Mere"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimum"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maksimum"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Gemmer dokument ..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Gemmer side %d ud af %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Kontrollér venligst din installation"
+
+#~ msgid "Files missing"
+#~ msgstr "Filer mangler"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Skanneretning"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Retningen af skanneren på tværs af siden der skannes. Den kan være én af de "
+#~ "følgende: \"top-to-bottom\" \"bottom-to-top\" \"left-to-right\" \"right-to-"
+#~ "left\""
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Højde af skannet billede i pixel"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "SAND hvis programvinduet er maksimeret."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Højden af skannede billede i pixel. Denne værdi opdateres svarende til "
+#~ "sidste skannede side."
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Opløsningen af det sidste billede der blev skannet"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Type af dokument der skannes. \"text\" for tekst dokumenter, \"photo\" for "
+#~ "billeder. Denne indstilling træffer valget for skanningsopløsning, farver og "
+#~ "efterbehandling."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Bredden af skannede billede i pixel. Denne værdi opdateres svarende til "
+#~ "sidste skannede side."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Opløsningen i punkter per tomme, på det forrige skannede billede."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Bredde af skannet billede i pixel"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Hjælpetilvalg:\n"
+#~ " -d, --debug Udskriv fejlfindingsbeskeder\n"
+#~ " -v, --version Vis udgivelsesversion\n"
+#~ " -h, --help Vis hjælp for tilvalg\n"
+#~ " --help-all Vis hjælp for alle tilvalg\n"
+#~ " --help-gtk Vis tilvalg for GTK+"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Brug:\n"
+#~ " %s [ENHED...] - Skanningsværktøj"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+-tilvalg:\n"
+#~ " --class=KLASSE Programklasse, som den bruges af "
+#~ "vindueshåndteringen\n"
+#~ " --name=NAVN Programnavnet, som det bruges af "
+#~ "vindueshåndteringen\n"
+#~ " --screen=SKÆRM X-skærm, der skal bruges\n"
+#~ " --sync Gør X-kald synkrone\n"
+#~ " --gtk-module=MODULER Indlæs ekstra GTK+-moduler\n"
+#~ " --g-fatal-warnings Gør alle advarsler fatale"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Papirside der skal skannes. Den kan være følgende: 'both' 'front' 'back'"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Vindueshøjde i pixel"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Vinduesbredde i pixel"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Skannerens retning hen over siden."
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 0000000..a60abde
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,892 @@
+# German translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 08:58+0000\n"
+"Last-Translator: Daniel Schury <das.surst@gmail.com>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Legitimieren"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Benutzername für Quelle:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Passwort:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Vorder- und Rückseite"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Vorderseite"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Rückseite"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Simple Scan"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokument"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sc_annen"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_Einzelne Seite"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Alle Seiten aus dem _Papiereinzug"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Scanvorgang anhalten"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Text"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Seiten umsortieren"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_E-Mail"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Seite"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "_Links herum drehen"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "_Rechts herum drehen"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Zuschneiden"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Nicht zuschneiden"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "US _Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "US _Legal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4\" × 6\""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Benutzerdefiniert"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "Zuschneideauswahl _drehen"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Nach links schieben"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Nach rechts schieben"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Hilfe"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "I_nhalt"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Neues Dokument erstellen"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Neu"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Eine einzelne Seite vom Scanner einscannen"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Scannen"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Als Datei speichern"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Speichern"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Aktuellen Scanvorgang unterbrechen"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Anhalten"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Die Seite links herum drehen (Gegen den Uhrzeigersinn)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Links herum drehen"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Die Seite rechts herum drehen (Im Uhrzeigersinn)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Rechts herum drehen"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Die gewählte Seite zurechtschneiden"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Zuschneiden"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Einstellungen"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Scan-_Quelle:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Text-Auflösung:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "Foto-_Auflösung:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Zu scannende Seite:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Seitengröße:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Helligkeit:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Kontrast:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Qualität:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Dokumente scannen"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Scangerät"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "SANE-Gerät, von dem Bilder angefordert werden."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Typ des zu scannenden Dokuments"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Typ des zu scannenden Dokuments. Diese Einstellung entscheidet über die "
+"Auflösung, Farben und Nachbearbeitung."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Seitenbreite in Zehntelmillimetern"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Seitenbreite in Zehntelmillimetern (oder 0 für automatische Papiererkennung)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Papierhöhe in Zehntelmillimetern"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Papierhöhe in Zehntelmillimetern (oder 0 für automatische Papiererkennung)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Helligkeit des Scans"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Helligkeitseinstellung von -100 bis 100 (0 keine)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Kontrast des Scans"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Kontrasteinstellung von -100 bis 100 (0 keine)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Auflösung von Text-Scans"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Die für Text zu verwendende Auflösung in DPI (Punkte pro Zoll)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Auflösung von Foto-Scans"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Die für Fotos zu verwendende Auflösung in DPI (Punkte pro Zoll)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Zu scannende Seite des Blattes"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Die zu scannende Seite."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Verzeichnis, in dem die Dateien gespeichert werden"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Das Verzeichnis, in dem die Dateien gespeichert werden. Vorgabe ist das "
+"Dokumente-Verzeichnis, wenn nicht gesetzt."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Qualitätswert für die JPEG-Komprimierung"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Qualitätswert, der für die JPEG-Komprimierung verwendet werden soll."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Keine Scanner verfügbar. Bitte schließen Sie einen Scanner an."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Verbindung zu Scanner konnte nicht hergestellt werden"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Scanvorgang konnte nicht gestartet werden"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Fehler bei der Kommunikation mit dem Scanner"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Versionsinformation anzeigen"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Fehlerdiagnosemeldungen anzeigen"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Repariere PDF-Dateien, die mit einer älteren Version von Simpe Scan erstellt "
+"wurden"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Scannen fehlgeschlagen"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Gescanntes Dokument"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[GERÄT …] - Scan-Werkzeug"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Rufen Sie »%s --help« auf, um eine vollständige Liste der verfügbaren "
+"Befehlszeileoptionen zu erhalten."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Gescanntes Dokument.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "S_chließen"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+"Für den Zugriff auf »%s« werden ein Benutzername und ein Passwort benötigt"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Kein Scanner gefunden"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+"Bitte überprüfen Sie, ob Ihr Scanner angeschlossen und eingeschaltet ist"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Speichern unter …"
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "Abbre_chen"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Speichern"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Bilddateien"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Alle Dateitypen"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Datei-_Typ auswählen"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (Mehrseitiges Dokument)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (Verlustbehaftet)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (Verlustfrei)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Datei konnte nicht gespeichert werden"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+"Wenn Sie nicht speichern, werden die Änderungen unwiderruflich verworfen."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Aktuelles Dokument speichern?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Änderungen verwerfen"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Vorschaubild kann nicht gespeichert werden"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Bildvorschauanwendung konnte nicht gestartet werden"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "Vertauschen"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Unverändert lassen"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Die Hilfedatei konnte nicht geöffnet werden"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Dieses Programm ist freie Software, Sie können es weitergeben\n"
+"und/oder verändern, solange Sie sich an die Vorgaben der GNU\n"
+"General Public License halten, wie von der Free Software\n"
+"Foundation festgelegt; entweder in Version 3 der Lizenz oder\n"
+"(nach Ihrem Ermessen) in jeder folgenden Version.\n"
+"\n"
+"Das Programm wurde mit dem Ziel veröffentlicht, dass Sie es\n"
+"nützlich finden, jedoch OHNE JEDWEDE GARANTIE, sogar\n"
+"ohne eine implizite Garantie der VERKAUFBARKEIT oder der\n"
+"NUTZBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Für mehr\n"
+"Informationen lesen Sie bitte die GNU General Public License\n"
+"(GNU GPL).\n"
+"\n"
+"Mit dem Programm sollten Sie außerdem eine Kopie der GNU\n"
+"General Public License erhalten haben. Falls dem nicht so\n"
+"ist, finden Sie diese im Internet unter\n"
+"<http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Über Simple Scan"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Einfaches Werkzeug zum Scannen von Dokumenten"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" .daniel. https://launchpad.net/~faessje\n"
+" Alexander Wilms https://launchpad.net/~alexander-wilms\n"
+" Alvaro Aleman https://launchpad.net/~alvaroaleman\n"
+" Charon https://launchpad.net/~markus-lobedann\n"
+" Daniel Schury https://launchpad.net/~surst\n"
+" Daniel Winzen https://launchpad.net/~q-d\n"
+" Dennis Baudys https://launchpad.net/~thecondordb\n"
+" Dennisgamer https://launchpad.net/~dennis-ertelt\n"
+" Dominik Grafenhofer https://launchpad.net/~dpjg\n"
+" EgLe https://launchpad.net/~egle1\n"
+" Felix https://launchpad.net/~apoapo\n"
+" Franz E. https://launchpad.net/~franzellendorff\n"
+" Funky Future https://launchpad.net/~funky-future\n"
+" Ghenrik https://launchpad.net/~ghenrik-deactivatedaccount\n"
+" HOMBRESINIESTRO https://launchpad.net/~hombre\n"
+" Hendrik Brandt https://launchpad.net/~heb\n"
+" Hendrik Knackstedt https://launchpad.net/~hennekn\n"
+" Jan https://launchpad.net/~jancborchardt-deactivatedaccount\n"
+" John Doe https://launchpad.net/~jodo-deactivatedaccount\n"
+" Julian Gehring https://launchpad.net/~julian-gehring\n"
+" Jörg BUCHMANN https://launchpad.net/~jorg-buchmann\n"
+" Lars Vopicka https://launchpad.net/~lars+vopicka-deactivatedaccount\n"
+" Marcel Schmücker https://launchpad.net/~versus666-deactivatedaccount\n"
+" Martin Lettner https://launchpad.net/~m.lettner\n"
+" Mathias Dietrich https://launchpad.net/~theghost\n"
+" Moritz Baumann https://launchpad.net/~mo42\n"
+" Raphael J. Schmid https://launchpad.net/~raphael-j-schmid\n"
+" Stefan Buchholz https://launchpad.net/~stef-buchholz\n"
+" Steve G. https://launchpad.net/~sgo.ger\n"
+" Thomas Heidrich https://launchpad.net/~gnuheidix\n"
+" Tobias Bannert https://launchpad.net/~toba\n"
+" UweS https://launchpad.net/~uwes\n"
+" Webschiff https://launchpad.net/~webschiff\n"
+" William Glover https://launchpad.net/~williamglover\n"
+" simon danner https://launchpad.net/~simondanner\n"
+" staedtler-przyborski https://launchpad.net/~staedtler-przyborski\n"
+" tlue https://launchpad.net/~tlueber"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Dokument vor dem Beenden speichern?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Beenden ohne zu speichern"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (Vorgabe)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (Entwurf)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (Hohe Auflösung)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "_Scanner wechseln"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatisch"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Dunkler"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Heller"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Weniger"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Mehr"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimum"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maximum"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Dokument wird gespeichert …"
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Seite %d von %d wird gespeichert"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Files missing"
+#~ msgstr "Dateien nicht gefunden"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+-Optionen:\n"
+#~ " --class=KLASSE Die vom Fensterverwalter verwendete "
+#~ "Programmklasse\n"
+#~ " --name=NAME Der vom Fensterverwalter verwendete "
+#~ "Programmname\n"
+#~ " --screen=ANZEIGE Zu verwendende X-Anzeige\n"
+#~ " --sync X-Aufrufe synchron durchführen\n"
+#~ " --gtk-module=MODULE Zusätzliche GTK+-Module laden\n"
+#~ " --g-fatal-warnings All Warnungen werden zu fatalen"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Bitte überprüfen Sie Ihre Installation"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Fensterhöhe in Pixel"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Fensterbreite in Pixel"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Höhe des gescannten Bilds in Pixel"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Scanverzeichnis"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Auflösung des zuletzt gescannten Bildes"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Die Scanrichtung im Verhältnis zur zu gescannten Seite. Kann eins der "
+#~ "folgenden sein: »Oben nach Unten«, »Unten nach Oben«, »Links nach Rechts« "
+#~ "oder »Rechts nach Links«"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Die Breite des gescannten Fotos in Pixeln. Der Wert wird entsprechend der "
+#~ "zuletzt gescannten Seite übernommen."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Die Höhe des gescannten Bilds in Pixel. Der Wert wird entsprechend der "
+#~ "zuletzt gescannten Seite übernommen."
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE wenn das Anwendungsfenster maximiert ist"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr ""
+#~ "Die Auflösung in DPI (Punkte pro Zoll) des zuletzt eingescannten Bildes."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Breite des gescannten Bilds in Pixel"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Hilfeoptionen:\n"
+#~ " -d, --debug Zeigt Debug-Nachrichten\n"
+#~ " -v, --version Zeigt Versionsnummer\n"
+#~ " -h, --help Zeigt die Hilfeoptionen\n"
+#~ " --help-all Zeigt alle Hilfeoptionen\n"
+#~ " --help-gtk Zeigt GTK+-Optionen"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Verwendung:\n"
+#~ " %s [GERÄT...] - Scanwerkzeug"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Die zu scannende Seite des Papiers. Mögliche Werte sind: »Beide«, "
+#~ "»Vorderseite« und »Rückseite«."
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Typ des zu scannenden Dokuments. »text« steht für Textdokumente, »photo« für "
+#~ "Fotos. Die Einstellungen bestimmen die Scan-Auflösung, -Farbe und -"
+#~ "Nachbearbeitung."
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Die Richtung des Scanners über die gescannte Seite."
diff --git a/po/el.po b/po/el.po
new file mode 100644
index 0000000..c4d9a31
--- /dev/null
+++ b/po/el.po
@@ -0,0 +1,864 @@
+# Greek translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2013-07-03 07:45+0000\n"
+"Last-Translator: John Pag <ioanpagges@gmail.com>\n"
+"Language-Team: Greek <el@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Εξουσιοδότηση"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "Όνομα _χρήστη για πόρο:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Κωδικός:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Πρόσοψη και πίσω όψη"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Πρόσοψη"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Πίσω όψη"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Σάρωση"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Έγγραφο"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "_Σάρωση"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Μια_σελίδα"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Όλες τις σελίδες από την _τροφοδοσία"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Διακοπή σάρωσης"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "ΚΕΙΜΕΝΟ"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Φωτογραφία"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Email"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Σελίδα"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Περιστροφή _αριστερά"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Περιστροφή _δεξιά"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Περικοπή"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Κανένα"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6 ίντσες"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Προσαρμοσμένο"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Περιστροφή περικοπής"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Μετακίνηση αριστερά"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Μετακίνηση δεξιά"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Βοήθεια"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Περιεχόμενα"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Δημιουργία νέου εγγράφου"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Νέο"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Σάρωση μίας σελίδας από τον σαρωτή"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Σάρωση"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Αποθήκευση εγγράφου σε αρχείο"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Αποθήκευση"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Διακοπή τρέχουσας σάρωσης"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Διακοπή"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Περιστροφή της σελίδας αριστερά"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Περιστροφή αριστερά"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Περιστροφή της σελίδας δεξιά"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Περιστροφή δεξιά"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Περικοπή της επιλεγμένης σελίδας"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Περικοπή"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Προτιμήσεις"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "_Πηγή σάρωσης:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "Ανάλυση _κειμένου:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "Ανάλυση _φωτογραφίας:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Πλευρά σάρωσης"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Μέγεθος σελίδας:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Φωτεινότητα:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Αντίθεση:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Ποιότητα:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Σάρωση εγγράφων"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Συσκευή που χρησιμοποιείται για σάρωση"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Συσκευή SANE που χρησιμοποιείται για την λήψη εικόνων."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Ο τύπος του εγγράφου που σαρώνεται"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Ο τύπος του έγγραφου που σαρώνεται. Αυτή η ρύθμιση καθορίζει την ανάλυση, "
+"το χρώμα και την μετα-επεξεργασία της σάρωσης."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Πλάτος του χαρτιού σε δέκατα του χιλιοστού (mm)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Πλάτος του χαρτιού σε δέκατα του χιλιοστού (mm) (ή 0 για την αυτόματη "
+"ανίχνευση χαρτιού)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Ύψος σελίδας σε δέκατα του χιλιοστού (mm)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Ύψος του χαρτιού σε δέκατα του χιλιοστού (mm) (ή 0 για την αυτόματη "
+"ανίχνευση χαρτιού)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Φωτεινότητα σάρωσης"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Προσαρμογή της φωτεινότητας από -100 έως 100 (0 χωρίς προσαρμογή)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Αντίθεση σάρωσης"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Προσαρμογή της αντίθεσης από -100 έως 100 (0 χωρίς προσαρμογή)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Ανάλυση για σάρωση κειμένου"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+"Η ανάλυση σε κουκκίδες ανά ίντσα που θα χρησιμοποιηθεί στην σάρωση κειμένων."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Ανάλυση για σάρωση φωτογραφιών"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+"Η ανάλυση σε κουκκίδες ανά ίντσα που θα χρησιμοποιηθεί στην σάρωση "
+"φωτογραφιών."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Πλευρά σελίδας για σάρωση"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Η πλευρά της σελίδας για σάρωση."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Κατάλογος στον οποίο θα αποθηκευτούν τα αρχεία"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Ο κατάλογος στον οποίο θα αποθηκευτούν τα αρχεία. Αν δεν ορισθεί, προεπιλογή "
+"είναι ο κατάλογος εγγράφων."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Τιμή της ποιότητας που θα χρησιμοποιηθεί για τη συμπίεση JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Τιμή της ποιότητας που θα χρησιμοποιηθεί για τη συμπίεση JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Δεν υπάρχουν διαθέσιμοι σαρωτές. Παρακαλούμε συνδέστε ένα σαρωτή."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Αδύνατη η σύνδεση με τον σαρωτή"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Αδύνατη η εκκίνηση της σάρωσης"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Σφάλμα κατά την επικοινωνία με τον σαρωτή"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Προβολή αριθμού έκδοσης"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Εμφάνιση μηνυμάτων εντοπισμού σφαλμάτων"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Διόρθωση αρχείων PDF που δημιουργήθηκαν με παλαιότερες εκδόσεις του "
+"λογισμικού Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Η σάρωση απέτυχε"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Σαρωμένο"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[ΣΥΣΚΕΥΗ…] - Εφαρμογή σάρωσης"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Εκτελέστε «%s --help» για να δείτε την πλήρη λίστα των διαθέσιμων επιλογών "
+"εντολής γραμμής."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Σαρωμένο.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Κλείσιμο"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Απαιτείται όνομα χρήστη και κωδικός για την πρόσβαση στο '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Δεν ανιχνεύθηκαν σαρωτές"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+"Παρακαλούμε βεβαιωθείτε ότι ο σαρωτής σας είναι συνδεδεμένος και σε "
+"λειτουργία"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Αποθήκευση ως..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Ακύρωση"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "Απο_θήκευση"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Αρχεία εικόνων"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Όλα τα αρχεία"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Επιλογή _τύπου αρχείου"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (έγγραφο πολλαπλών σελίδων)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (συμπιεσμένο)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (δίχως συμπίεση)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Αποτυχία αποθήκευσης του αρχείου"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Αν δεν αποθηκεύσετε, οι αλλαγές θα χαθούν μόνιμα."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Αποθήκευση του τρέχοντος εγγράφου;"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Απόρριψη αλλαγών"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Αδυναμία αποθήκευσης σελίδας για προεπισκόπηση"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Αδύνατο το άνοιγμα της εφαρμογής προβολής εικόνων"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Αδύνατο το άνοιγμα του αρχείου βοήθειας"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Αυτό το πρόγραμμα είναι ελεύθερο λογισμικό: Επιτρέπεται η αναδιανομή ή/και "
+"τροποποίησή του υπό τους όρους της Γενικής Άδειας Δημόσιας Χρήσης GNU (GNU "
+"General Public License), όπως αυτή έχει δημοσιευτεί από το Ίδρυμα Ελεύθερου "
+"Λογισμικού (Free Software Foundation) – είτε της έκδοσης 3 της Άδειας, είτε "
+"(κατ' επιλογήν) οποιασδήποτε μεταγενέστερης έκδοσης.\n"
+"\n"
+"Το πρόγραμμα αυτό διανέμεται με την ελπίδα ότι θα αποδειχθεί χρήσιμο, παρόλα "
+"αυτά ΧΩΡΙΣ ΚΑΜΙΑ ΕΓΓΥΗΣΗ – χωρίς ούτε και την σιωπηρή εγγύηση "
+"ΕΜΠΟΡΕΥΣΙΜΟΤΗΤΑΣ ή ΚΑΤΑΛΛΗΛΟΤΗΤΑΣ ΓΙΑ ΣΥΓΚΕΚΡΙΜΕΝΗ ΧΡΗΣΗ. Για περισσότερες "
+"λεπτομέρειες ανατρέξτε στη Γενική Άδεια Δημόσιας Χρήσης GNU (GNU General "
+"Public License).\n"
+"\n"
+"Θα πρέπει να έχετε λάβει ένα αντίγραφο της Γενικής Άδειας Δημόσιας Χρήσης "
+"GNU (GNU General Public License) μαζί με αυτό το πρόγραμμα. Εάν όχι, δείτε "
+"εδώ: <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Περί Σάρωσης"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Απλό εργαλείο σάρωσης εγγράφων"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Alex Ferguson https://launchpad.net/~thoughtmonster\n"
+" Christos Spyroglou https://launchpad.net/~cspyroglou\n"
+" Filippos Kolyvas https://launchpad.net/~fkol-k4\n"
+" George Christofis https://launchpad.net/~geochr\n"
+" Jennie Petoumenou https://launchpad.net/~jennie\n"
+" John Pag https://launchpad.net/~ioanpagges\n"
+" Michael Kotsarinis https://launchpad.net/~mk73628\n"
+" Robert Ancell https://launchpad.net/~robert-ancell\n"
+" Simos Xenitellis https://launchpad.net/~simosx\n"
+" Thanos Lefteris https://launchpad.net/~alefteris\n"
+" stavros daliakopoulos https://launchpad.net/~stavrosd\n"
+" tomash.ghz https://launchpad.net/~ghz-tomash\n"
+" trix https://launchpad.net/~panelc"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Αποθήκευση του εγγράφου πριν την έξοδο;"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Έξοδος χωρίς Αποθήκευση"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (προεπιλογή)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (πρόχειρο)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (υψηλή ανάλυση)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Αλλαγή _σαρωτή"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Αυτόματο"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Σκοτεινότερο"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Φωτεινότερο"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Λιγότερο"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Περισσότερο"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Ελάχιστο"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Μέγιστο"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Αποθήκευση εγγράφου..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Αποθήκευση σελίδας %d από %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Ύψος εικόνας σάρωσης σε εικονοστοιχεία"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "ΑΛΗΘΕΣ αν το παράθυρο της εφαρμογής είναι μεγιστοποιημένο"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Κατεύθυνση σάρωσης"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Ανάλυση τελευταίας σαρωμένης εικόνας"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Ο τύπος του εγγράφου που σαρώνεται. 'text' για έγγραφα κειμένου, 'photo' για "
+#~ "φωτογραφίες. Αυτή η ρύθμιση καθορίζει την ανάλυση σάρωσης, τα χρώματα και τη "
+#~ "μετέπειτα επεξεργασία."
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Ύψος παραθύρου σε εικονοστοιχεία"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Το πλάτος της σαρωμένης εικόνας σε εικονοστοιχεία. Η τιμή αυτή ενημερώνεται "
+#~ "με το πλάτος της τελευταίας σαρωμένης σελίδας."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Το ύψος της σαρωμένης εικόνας σε εικονοστοιχεία. Η τιμή αυτή ενημερώνεται με "
+#~ "το ύψος της τελευταίας σαρωμένης σελίδας."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Πλάτος της σαρωμένης εικόνας σε εικονοστοιχεία"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Πλάτος παραθύρου σε εικονοστοιχεία"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Χρήση:\n"
+#~ " %s [ΣΥΣΚΕΥΗ...] - Εφαρμογή σάρωσης"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Επιλογές βοήθειας:\n"
+#~ " -d, --debug Εμφάνιση μηνυμάτων αποσφαλμάτωσης\n"
+#~ " -v, --version Εμφάνιση αριθμού έκδοσης\n"
+#~ " -h, --help Εμφάνιση επιλογών βοήθειας\n"
+#~ " --help-all Εμφάνιση όλων των επιλογών βοήθειας\n"
+#~ " --help-gtk Εμφάνιση επιλογών GTK+"
+
+#~ msgid "Files missing"
+#~ msgstr "Λείπουν αρχεία"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Παρακαλούμε ελέγξτε την εγκατάσταση σας"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Η κατεύθυνση του σαρωτή κατά μήκος της σαρωμένης σελίδας. Μπορεί να είναι "
+#~ "κάποιο από τα εξής: 'top-to-bottom' (από πάνω προς τα κάτω) 'bottom-to-top' "
+#~ "(από κάτω προς τα πάνω) 'left-to-right' (από αριστερά προς δεξιά) 'right-to-"
+#~ "left' (από δεξιά προς αριστερά)"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Η ανάλυση σε κουκκίδες ανά ίντσα της προηγούμενης σαρωμένης εικόνας."
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Επιλογές GTK+:\n"
+#~ " --class=CLASS Κλάση προγράμματος χρησιμοποιούμενη από το "
+#~ "διαχειριστή παραθύρων\n"
+#~ " --name=NAME Όνομα προγράμματος χρησιμοποιούμενο από το "
+#~ "διαχειριστή παραθύρων\n"
+#~ " --screen=SCREEN Οθόνη X προς χρήση\n"
+#~ " --sync Να είναι σύγχρονες οι κλήσεις στο X\n"
+#~ " --gtk-module=MODULES Φόρτωση πρόσθετων αρθρωμάτων GTK+\n"
+#~ " --g-fatal-warnings Να είναι όλες οι προειδοποιήσεις μοιραίες"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Ο προσανατολισμός του σαρωτή στη σαρωμένη σελίδα"
diff --git a/po/en_GB.po b/po/en_GB.po
new file mode 100644
index 0000000..db92a46
--- /dev/null
+++ b/po/en_GB.po
@@ -0,0 +1,850 @@
+# English (United Kingdom) translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 08:58+0000\n"
+"Last-Translator: James Thorrold <jameslin@inbox.com>\n"
+"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Authorise"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Username for resource:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Password:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Front and Back"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Front"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Back"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Simple Scan"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Document"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sc_an"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Single _Page"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "All Pages From _Feeder"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Stop Scan"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Text"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Photo"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Reorder Pages"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_E-mail"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Page"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Rotate _Left"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Rotate _Right"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Crop"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_None"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Custom"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Rotate Crop"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Move Left"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Move Right"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Help"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Contents"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Start a new document"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "New"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Scan a single page from the scanner"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Scan"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Save document to a file"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Save"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Stop the current scan"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Stop"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Rotate the page to the left (anti-clockwise)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Rotate Left"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Rotate the page to the right (clockwise)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Rotate Right"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Crop the selected page"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Crop"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Preferences"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Scan S_ource:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Text Resolution:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Photo Resolution:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Scan Side:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Page Size:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Brightness:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Contrast:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Quality:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Scan Documents"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Device to scan from"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "SANE device to acquire images from."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Type of document being scanned"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colours and post-processing."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Width of paper (in tenths of a mm)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Height of paper (in tenths of a mm)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Brightness of scan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "The brightness adjustment from -100 to 100 (0 being none)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Contrast of scan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "The contrast adjustment from -100 to 100 (0 being none)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Resolution for text scans"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "The resolution in dots-per-inch to use when scanning text."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Resolution for photo scans"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "The resolution in dots-per-inch to use when scanning photos."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Page side to scan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "The page side to scan."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Directory to save files to"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr "The folder where files are saved. Default is the Documents folder."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Quality value to use for JPEG compression"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Quality value to use for JPEG compression."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "No scanners available. Please connect a scanner."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Unable to connect to scanner"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Unable to start scan"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Error communicating with scanner"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Show release version"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Print debugging messages"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Fix PDF files generated with older versions of Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Failed to scan"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Scanned Document"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DEVICE...] - Scanning utility"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Run '%s --help' to see a full list of available command line options."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Scanned Document.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Close"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Username and password required to access '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "No scanners detected"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Please check your scanner is connected and powered on"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Save As..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Cancel"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Save"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Image Files"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "All Files"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Select File _Type"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (multi-page document)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (compressed)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (lossless)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Failed to save file"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "If you don't save, changes will be permanently lost."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Save current document?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Discard Changes"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Unable to save image for preview"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Unable to open image preview application"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr "Combine sides"
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr "Combine sides (reverse)"
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "Reverse"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Keep unchanged"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Unable to open help file"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public Licence as published by\n"
+"the Free Software Foundation, either version 3 of the Licence, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public Licence for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public Licence\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "About Simple Scan"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Simple document scanning tool"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Alex Denvir https://launchpad.net/~coldfff\n"
+" Andi Chandler https://launchpad.net/~bing\n"
+" Anthony Harrington https://launchpad.net/~untaintableangel\n"
+" GeorgeB https://launchpad.net/~solar.george\n"
+" James Thorrold https://launchpad.net/~jthorrold\n"
+" Jonathon Hodges https://launchpad.net/~jonblondie\n"
+" Kaustav Das Modak https://launchpad.net/~kaustav-dasmodak\n"
+" Malcolm Parsons https://launchpad.net/~malcolm-parsons\n"
+" Tomasz Chabowski https://launchpad.net/~tomasz-chabowski-googlemail"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Save document before quitting?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Quit without Saving"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (default)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (draft)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (high resolution)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "New Document"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Document"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "E-mail..."
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Print..."
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Help"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "About"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Quit"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Change _Scanner"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatic"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Darker"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Lighter"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Less"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "More"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimum"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maximum"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Saving document..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Saving page %d out of %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Please check your installation"
+
+#~ msgid "Files missing"
+#~ msgstr "Files missing"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Direction of scan"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE if the application window is maximised"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "The height of scanned image in pixels. This value is updated to the height "
+#~ "of the last image scanned."
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Resolution of last scanned image"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "The width of scanned image in pixels. This value is updated to the width of "
+#~ "the last image scanned."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "The resolution of the last image scanned (in dots-per-inch)."
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Type of document being scanned. 'Text' for text documents, 'Photo' for "
+#~ "photos. This determines the scan resolution, colour and post-processing "
+#~ "settings."
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Window height (in pixels)"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Window width (in pixels)"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Width of scanned image (in pixels)"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "The direction of the scanner across the scanned page."
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Height of scanned image (in pixels)"
diff --git a/po/eo.po b/po/eo.po
new file mode 100644
index 0000000..ccc52bf
--- /dev/null
+++ b/po/eo.po
@@ -0,0 +1,851 @@
+# Esperanto translation for simple-scan
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+# Tiffany Antopolski <tiffany.antopolski@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-08-16 11:04+0000\n"
+"Last-Translator: Michael Moroni <michael.moroni@openmailbox.org>\n"
+"Language-Team: Esperanto\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+"Language: eo\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "R_ajtigi"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "Sal_utnomo por risurco:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Pasvorto:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Antaŭo kaj malantaŭo"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Antaŭo"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Dorso"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Simpla skano"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokumento"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sk_ani"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Unuopa _paĝo"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Ĉiuj paĝoj el _papero-metilo"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "Haltigi _skani"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Teksto"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "R_etpoŝto"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Paĝo"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Turni _maldekstren"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Turni _dekstren"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "Stu_ci"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Neniu"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "US _Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "US Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Propre"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Rotacii la stoco-lokon"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Movi maldekstren"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Movi dekstren"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Helpo"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Enhavo"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Komenci novan dokumenton"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Nova"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Skani unuopan paĝon el la skanilo"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Skani"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Konservi dokumenton en dosiero"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Konservi"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Haltigi la aktualan skanon"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Haltigi"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Rotacii la paĝon maldekstren (maldekstrume)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Turni maldekstren"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Rotacci la paĝon dekstren (dekstrume)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Turni dekstren"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Stuci la elektitan paĝon"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Stuci"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Agordoj"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Skano-f_onto:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Teksta distingivo"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Fotaĵa distingivo:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Skano-flanko:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Paĝo-grando:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Skani dokumentojn"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "La aparato el kiu skani"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "SANE aparato de kiu akiri bildojn."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Speco de dokumento kiu estas skanata"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"La skanota dokumentspeco. Ĉi tiu agordo difinas la skandistingivon, -"
+"kolorojn kaj -posttraktadon."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Larĝo de papero en dekonaj millimetroj"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"La larĝo de la papero en dekonoj de millimetro (aŭ 0 por aŭtomata detekti)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Alto de Papero en dekonaj millimetroj"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"La alto de la papero en dekonoj de millimetro (aŭ 0 por aŭtomata detekti)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Distingivo por tekstoskanoj"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "La distingvo en punktoj en coloj uzi kiam skanantaj teksto."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Distingivo por fotoskanoj"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "La distingvo en punktoj en coloj uzi kiam skanantaj fotoj."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Paĝoflankon skani"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "La skanota paĝoflanko"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Dosierujo al kiu konservi"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"La dosierujo al kiu konservi dosierojn. La dokumentoj dosierujo estas la "
+"defaŭlto, se malagordi."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Neniuj skaniloj disponeblaj. Bonvolu konekti skanilon."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Ne povas konekto kun skanilo"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Ne povas komenci skani"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Eraro kiam konektanta kun skanilo"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Montri eldonversion"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Presi mesaĝojn pri sencimigo"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Ripari PDF-dosierojn generitajn per antaŭaj versioj de Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Ne sukcesi skani"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Skanita Dokumento"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[APARATO...] - Skanutilaĵo"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Lanĉu '%s --help' por vidi plenan liston da disponeblaj komandliniaj opcioj."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Skanita Dokumento.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Salutnomo kaj pasvorto estas necesa aliri '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Neniuj skaniloj eltrovis"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Bonvolu kontrolas ke via skanilo estas kenekta kaj kurentŝalta"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Konservi kiel..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Bildo-dosieroj"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Ĉiuj dosieroj"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Elekti speco de dosieron"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (multpaĝa dokumento)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (densigita)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (senperda)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Ne sukcesis konservi la dosieron"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Se vi ne konservas, ŝanĝoj estos perditaj permanente."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Konservi la nunan dokumenton?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Forlasi Ŝanĝojn"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Ne eblas konservi bildon por antaŭrigardo"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Ne eblis malfermi bild-dosieron"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Ne eblis malfermi help-dosieron"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Ĉi tiu verko estas libera programo; vi povas ĝin pludistribui kaj/aŭ modifi\n"
+"je la kondiĉoj de la GNUa Ĝenerala Publika Permesilo, eldonita de\n"
+"Free Software Foundation, laŭ versio 3 de tiu Permesilo aŭ,\n"
+"se vi preferas, ajna posta versio.\n"
+"\n"
+"Ni distribuas ĉi tiun programon esperante ke ĝi estos utila,\n"
+"tamen SEN IA AJN GARANTIO, i.a. sen la implica garantio pri\n"
+"SURMERKATIGEBLO aŭ TAŬGECO POR IU KONKRETA CELO. Pliajn detalojn vidu "
+"en la GNUa Ĝenerala Publika Permesilo.\n"
+"\n"
+"Ekzemplero de la GNUa Ĝenerala Publika Permesilo devas esti liverita\n"
+"al vi kun ĉi tiu programo; se vi ĝin ne ricevis, turnu vin al "
+"<http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Pri simpla skani"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Simpla ilo por skanantaj dokumentoj"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Donald Rogers https://launchpad.net/~dero9753\n"
+" Kristjan SCHMIDT https://launchpad.net/~kristjan-eo\n"
+" Leo Arias https://launchpad.net/~elopio\n"
+" Michael Moroni https://launchpad.net/~airon90\n"
+" Patrick (Petriko) Oudejans https://launchpad.net/~patrickoudejans\n"
+" Robert Ancell https://launchpad.net/~robert-ancell\n"
+" Tiffany Antopolski https://launchpad.net/~mimico-tiffany"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Konservi dokumenton antaŭe ĉesanta?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Fini sen konservanta"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d punktoj en colo (defaŭlto)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d punktoj en colo (malneto)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d punktoj en colo (alta distingivo)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d punktoj en colo"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Ŝanĝi _Skanilo"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Aŭtomata"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Konservado de dokumento..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Konservado de paĝo %d el %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Direkto de skani"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Alto de skaninta bildo en rastrumeroj"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Distingivo de bildon skaninta antaŭe"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "VERA se la apliko-fenestro estas maksimumigita"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "La direkto de la skanilo trans la skanita paĝo. Ĝi povi esti: 'supre-"
+#~ "malsupren' 'malsupre-supren' 'maldekstre-dekstre' 'dekstre-maldekstren'"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "La alto de la skanita bildo en rastrumeroj. Ĉi tiu valoro estas ĝisdatigita "
+#~ "al tion de la paĝo antaŭa."
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "La flanko de paĝo skani. Povas esti unu el ĉi tiuj: 'ambaŭ' 'antaŭa' "
+#~ "'malantaŭa'"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr ""
+#~ "La distingivo en punktoj en coloj de la bildo kiu estis skanita antaŭe."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "La larĝo de la skanita bildo en rastrumeroj. Ĉi tiu valoro estas "
+#~ "ĝisdatigita al tion de la paĝo antaŭa."
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Speco de dokumento estas skanata. 'teksto' por tekstoj dokumentoj, 'bildo' "
+#~ "por bildoj. Ĉi tio agordo decidas pri la distingvo, koloroj kaj "
+#~ "posttraktanta."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Larĝo de skaninta bildo en rastrumeroj"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Fenestro-alto en rastrumeroj"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Fenestro-larĝo en rastrumeroj"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Uzo:\n"
+#~ " %s [APARATO...] - Skananta ilo"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Helpa Opcioj:\n"
+#~ " -d, --debug Presi sencimigaj mesaĝoj\n"
+#~ " -v, --version Montri eldonversio\n"
+#~ " -h, --help Montri helpajn opciojn\n"
+#~ " --help-all Montri ĉiujn helpajn opciojn"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ Opcioj:\n"
+#~ " --class=KLASO Programo-klaso kiel estas uzita de la "
+#~ "fenestro administrilo\n"
+#~ " --name=NOMO Programo-nomo kiel estas uzita de la "
+#~ "fenestro administrilo\n"
+#~ " --screen=EKRANO X ekarano uzi\n"
+#~ " --sync Fari X pasigoj sinkrona (sinkronigi)\n"
+#~ " --gtk-module=MODULAJ Ŝargi suplementaj GTK+ moduloj\n"
+#~ " --g-fatal-warnings Fari ĉiujn avertojn neripareblaj"
+
+#~ msgid "Files missing"
+#~ msgstr "Dosieroj estas perdiĝantoj"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Bonvolu kontroli vian instalaĵon"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "La direkto de la skanilo trans la skanota paĝo"
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 0000000..193fa42
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,874 @@
+# Spanish translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2014-07-22 10:50+0000\n"
+"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
+"Language-Team: Spanish <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autorizar"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "Nombre de _usuario para el recurso:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Contraseña:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Anverso y reverso"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Anverso"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Reverso"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Simple Scan"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Documento"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Esc_anear"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_Una página"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Todas las páginas del _alimentador"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "D_etener escaneado"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Texto"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Reordenar las páginas"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Correo"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Página"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Girar a la i_zquierda"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Girar a la _derecha"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Recortar"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Ninguno"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Carta"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "_Oficio"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4 × 6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Personalizado"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Girar recorte"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Mover a la izquierda"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Mover a la derecha"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "Ay_uda"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Contenido"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Crear un documento nuevo"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Nuevo"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Escanear una sola página desde el escáner"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Escanear"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Guardar documento a un archivo"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Guardar"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Detiene el escaneado actual"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Detener"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Girar la página a la izquierda (contrario a las agujas del reloj)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Girar a la izquierda"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Girar la página a la derecha (sentido de las agujas del reloj)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Girar a la derecha"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Recortar la página seleccionada"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Recortar"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Preferencias"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "_Origen de escaneo:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "Resolución de _texto:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "Resolución de _fotografía:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Cara a escanear:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Tamaño de página:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Brillo:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Contraste:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Calidad:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Escanear documentos"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Para escanear desde el dispositivo"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Dispositivo SANE desde donde adquirir las imágenes."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Tipo de documento que está siendo escaneado"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Tipo de documento escaneándose. Esta configuración establece la resolución "
+"de escaneo, colores y post-procesamiento."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Anchura del papel en décimas de mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"La anchura del papel en décimas de mm (0 para detección automática del "
+"papel)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Altura del papel en décimas de mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"La altura del papel en décimas de mm (0 para detección automática del papel)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Brillo de escaneo"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Ajuste del brillo desde -100 a 100 (siendo 0 sin ajuste)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Contraste del escaneo"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Ajuste de contraste desde -100 a 100 (siendo 0 sin ajuste)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Resolución para los escaneados de texto"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "La resolución en puntos por pulgada a usar al escanear texto."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Resolución para los escaneados de fotografías"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "La resolución en puntos por pulgada a usar al escanear fotografías."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Cara a escanear de la página"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "El lado de la página a escanear."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Directorio en el que guardar los archivos"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"El directorio en el que se guardarán los archivos. Por defecto será el "
+"directorio de documentos."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Calidad de la compresión de JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Calidad de la compresión de JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "No hay escáneres disponibles. Conecte un escáner."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "No se pudo conectar al escáner"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Incapaz de iniciar el escaneo"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Error comunicándose con el escáner"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Mostrar el número de versión"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Mostrar mensajes de depuración"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Arreglar archivos PDF generados con versiones anteriores de Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Falló al escanear"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Documento escaneado"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DISPOSITIVO…] - Utilidad de escaneo"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Ejecute «%s --help» para ver una lista completa de las opciones de línea de "
+"órdenes disponibles."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Documento.pdf escaneado"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Cerrar"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Usuario y contraseña necesarios para acceder a «%s»"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "No se detectó ningún escáner"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Compruebe que su escáner está encendido y conectado"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Guardar como…"
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Cancelar"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Guardar"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Archivos de imagen"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Todos los archivos"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Seleccione el _tipo de archivo"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (documento multipágina)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (comprimido)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (sin pérdida)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Falló al guardar el archivo"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Los cambios se perderán permanentemente si no los guarda."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "¿Guardar el documento actual?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Descartar cambios"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "No se pudo guardar la imagen para previsualización"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "No se puede abrir la aplicación de previsualización de imágenes"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr "Combinar lados"
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr "Combinar lados (invertido)"
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "Invertir"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Mantener sin cambios"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "No se pudo abrir el archivo de ayuda"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Este programa es software libre: puede redistribuirlo o modificarlo\n"
+"en los términos de la Licencia Pública General de GNU publicada por la\n"
+"Free Software Foundation, en su versión 3 o, a su elección, cualquiera\n"
+"posterior.\n"
+"\n"
+"Este programa se distribuye con la esperanza de que sea útil,\n"
+"pero SIN NINGUNA GARANTÍA; ni siquiera la garantía implícita de\n"
+"COMERCIABILIDAD o ADECUACIÓN A UN OBJETIVO PARTICULAR. Vea la\n"
+"Licencia Pública General de GNU para más detalles.\n"
+"\n"
+"Debe haber recibido una copia de la Licencia Pública General de GNU\n"
+"con este programa. Si no fuera así, vea <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Acerca de Simple Scan"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Herramienta sencilla para escanear documentos"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" A. Emmanuel Mendoza https://launchpad.net/~a.emmanuelmendoza\n"
+" Adolfo Jayme https://launchpad.net/~fitojb\n"
+" Antonio Sánchez https://launchpad.net/~antoniosanchez\n"
+" Carlos Alberto Ospina https://launchpad.net/~atah\n"
+" Dante Díaz https://launchpad.net/~dante\n"
+" DiegoJ https://launchpad.net/~diegojromerolopez\n"
+" Edgardo Fredz https://launchpad.net/~edgardo-fredz\n"
+" FAMM https://launchpad.net/~famm94-deactivatedaccount\n"
+" Genesis Bustamante https://launchpad.net/~genmarc\n"
+" Guillermo RP https://launchpad.net/~guille-arp\n"
+" Jonay https://launchpad.net/~jonay-santana\n"
+" Jose Luis Tirado https://launchpad.net/~txelu70\n"
+" Julian Alarcon https://launchpad.net/~alarconj\n"
+" Martin Albisetti https://launchpad.net/~beuno\n"
+" Monkey https://launchpad.net/~monkey-libre\n"
+" Paco Molinero https://launchpad.net/~franciscomol\n"
+" Ricardo Pérez López https://launchpad.net/~ricardo\n"
+" Topo https://launchpad.net/~miguita\n"
+" Vladimir Rojas https://launchpad.net/~vladyrojas\n"
+" almejo https://launchpad.net/~alejandro-vera\n"
+" daironmedina https://launchpad.net/~dairon\n"
+" elXATU https://launchpad.net/~elxatu\n"
+" felix.anadon@gmail.com https://launchpad.net/~felix-anadon\n"
+" fosk https://launchpad.net/~oscarrdg\n"
+" hhlp https://launchpad.net/~hhlp-deactivatedaccount\n"
+" serrador https://launchpad.net/~fserrador"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "¿Guardar el documento antes de salir?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Salir sin guardar"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d ppp (predeterminado)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d ppp (borrador)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d ppp (alta resolución)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d ppp"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "Documento nuevo"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Documento"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "Correo..."
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Imprimir…"
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Ayuda"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "Acerca de"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Salir"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Cambiar _escáner"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automático"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Más oscuro"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Más claro"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Menos"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Más"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Mínima"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Máxima"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Guardando el documento…"
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Guardando la página %d de %d"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Opciones de GTK+:\n"
+#~ " --class=CLASE Clase de programa como se usa por el "
+#~ "gestor de ventanas\n"
+#~ " --name=NOMBRE Nombre del programa como se usa por el "
+#~ "gestor de ventanas\n"
+#~ " --screen=PANTALLA Pantalla X que usar\n"
+#~ " --sync Hacer que las llamadas las X sean "
+#~ "síncronas\n"
+#~ " --gtk-module=MÓDULOS Cargar módulos GTK+ adicionales\n"
+#~ " --g-fatal-warnings Hacer que todos los avisos sean fatales"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Files missing"
+#~ msgstr "Faltan archivos"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Uso:\n"
+#~ " %s [DISPOSITIVO...] - utilidad de escaneo"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Verifique su instalación"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Dirección de escaneo"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Altura de la imagen escaneada en píxeles"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "La dirección del escáner a través de la página escaneada. Puede ser "
+#~ "cualquiera de los siguientes: 'top-to-bottom' 'bottom-to-top' 'left-to-"
+#~ "right' 'right-to-left'"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "La anchura de la imagen escaneada. Este valor se actualiza con el que tuvo "
+#~ "la última página escaneada"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "La altura de la imagen escaneada. Este valor se actualiza con el que tuvo la "
+#~ "última página escaneada"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Anchura de la imagen escaneada"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Altura de la ventana en píxeles"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Anchura de la ventana en píxeles"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Opciones de ayuda:\n"
+#~ " -d, --debug Muestra mensajes de depuración\n"
+#~ " -v, --version Muestra la versión\n"
+#~ " -h, --help Muestra opciones de ayuda\n"
+#~ " --help-all Muestra todas las opciones de ayuda\n"
+#~ " --help-gtk Muestra opciones de GTK+"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "VERDADERO si la ventana de la aplicación está maximizada"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Resolución de la última imagen escaneada"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr ""
+#~ "La resolución en puntos por pulgada de la imagen escaneada anteriormente."
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Tipo del documento que va a ser escaneado. «Texto» para documentos de texto, "
+#~ "«Fotografía» para fotografías. Esta opción determina la resolución, los "
+#~ "colores y el post-procesamiento del escaneado."
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "La cara a escanear de la página. Puede ser uno de los siguientes: «ambas», "
+#~ "«anverso» o «reverso»."
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "La dirección del escáner a través de la página escaneada."
diff --git a/po/et.po b/po/et.po
new file mode 100644
index 0000000..dc5e2b6
--- /dev/null
+++ b/po/et.po
@@ -0,0 +1,838 @@
+# Estonian translation for simple-scan
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 08:59+0000\n"
+"Last-Translator: mahfiaz <mahfiaz@gmail.com>\n"
+"Language-Team: Estonian <et@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autoriseeri"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Kasutajanimi allika jaoks:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Parool:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Esi- ja tagakülg"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Esikülg"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Tagakülg"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Lihtne skannija"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokument"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sk_annimine"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Üks _lehekülg"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Kõik lehed _söötjast"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Lõpeta skannimine"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Tekst"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_E-post"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Lehekülg"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Pööra _vasakule"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Pööra _paremale"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Kärbi"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Puudub"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "US _Legal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Kohandatud"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Pööramisega kärbe"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "A_bi"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Sisu"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Uue dokumendi alustamine"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Uus"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Ühe lehekülje skannimine skannerist"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Skanni"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Dokumendi salvestamine faili"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Salvesta"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Selle skannimise lõpetamine"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Lõpeta"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Lehekülje pööramine vasakule (vastupäeva)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Vasakule pööramine"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Lehekülje pööramine paremale (päripäeva)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Paremale pööramine"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Valitud lehekülje kärpimine"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Kärbi"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Eelistused"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Skannimise _allikas:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Teksti eraldusvõime:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Foto eraldusvõime:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Slaidi skannimine:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Lehekülje suurus:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Dokumentide skannimine"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Seade, millest skannida"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "SANE-seade, millest pilte hankida."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Skannitava dokumenti tüüp"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Paberi laius kümnendikmillimeetrites"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr "Paberi laius kümnendikmillimeetrites (automaatseks tuvastuseks 0)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Paberi kõrgus kümnendikmillimeetrites"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Paberi kõrgus kümnendikmillimeetrites (paberi automaatseks tuvastamiseks 0)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Tekstiskannide eraldusvõime"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Teksti skannimisel kasutatav lahutus, punktides tolli kohta."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Fotoskannide eraldusvõime"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Piltide skannimisel kasutatav lahutus, punktides tolli kohta."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Skannitav lehe külg"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Kataloog, kuhu failid salvestada"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Kataloog, kuhu failid salvestada. Kui määramata, on vaikeväärtus dokumentide "
+"kataloog."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Skannereid pole saadaval. Palun ühenda skanner arvutiga."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Skanneriga ei suudetud ühenduda"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Skannimist ei suudetud alustada"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Tõrge skanneriga suhtlemisel"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Versiooninumbri näitamine"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Näita veasilumise sõnumeid"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Skannimine nurjus"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Skannitud dokument"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr "Käivita '%s --help', et näha kõiki käsurea valikuid."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Skannitud dokument.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "'%s' ligipääsuks on vajalik kasutajanimi ja parool"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Ühtegi skannerit ei tuvastatud"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Kontrolli, kas skanner on ühendatud ja sisse lülitatud"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Salvesta kui..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Pildifailid"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Kõik failid"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Vali faili _tüüp"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (mitmeleheküljeline dokument)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (tihendatud)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (kadudeta)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Faili salvestamine nurjus"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Kui sa ei salvesta, lähevad muudatused jäädavalt kaotsi."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Kas salvestada see dokument?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Tühista muudatused"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Eelvaate pildi salvestamine ebaõnnestus"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Pildi eelvaatluse rakendust ei suudetud käivitada"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Abiteabe faili pole võimalik avada"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"See programm on vaba tarkvara. Te võite seda edasi levitada ja/või muuta "
+"vastavalt GNU Üldise Avaliku Litsentsi tingimustele, nagu need on Vaba "
+"Tarkvara Fondi poolt avaldatud; kas Litsentsi versioon number 3 või "
+"(vastavalt Teie valikule) ükskõik milline hilisem versioon.\n"
+"\n"
+"Seda programmi levitatakse lootuses, et see on kasulik, kuid ILMA IGASUGUSE "
+"GARANTIITA; isegi KESKMISE/TAVALISE KVALITEEDI GARANTIITA või SOBIVUSELE "
+"TEATUD KINDLAKS EESMÄRGIKS. Üksikasjade suhtes vaata GNU Üldist Avalikku "
+"Litsentsi.\n"
+"\n"
+"Koos Nautilusega oleks sa pidanud saama ka koopia GNU Üldisest Avalikust "
+"Litsentsist; juhul kui sa seda ei saanud, siis vaata "
+"<http://www.gnu.org/licences/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Lihtsast skannijast lähemalt"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Lihtne dokumendi skaneerimise tööriist"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Jalakas https://launchpad.net/~jalakas\n"
+" Madis Veskimeister https://launchpad.net/~avalikarvamus\n"
+" mahfiaz https://launchpad.net/~mahfiaz"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Kas salvestada dokument enne väljumist?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Välju ilma salvestamata"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (vaikimisi)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (mustand)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (kõrge kvaliteet)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "_Skanneri vahetamine"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automaatne"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Dokumendi salvestamine..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4 x 6 tolli"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Skannitud piltide kõrgus pikslites"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "Tõene, kui rakenduse aken on maksimeeritud"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Skannimise suund"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Viimase skannitud pildi eraldusvõime"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Skanneeritava lehe suund skanneris. See võib olla üks järgnevaist: 'top-to-"
+#~ "bottom' (ülalt alla), 'bottom-to-top' (alt üles), 'left-to-right' (vasakult "
+#~ "paremale), 'right-to-left' (paremalt vasakule)."
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Skannitava dokumendi tüüp. 'Tekst' on tekstidokumentide jaoks, 'foto' on "
+#~ "fotode jaoks. See säte määrab skannimise eraldusvõime, värvid ja "
+#~ "järeltöötluse."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Skannitud piltide laius pikslites. Väärtust uuendatakse vastavalt viimati "
+#~ "skannitud lehele."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Skannitud pildi kõrgus pikslites. Seda väärtust uuendatakse vastavalt "
+#~ "viimati skannitud lehele."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Viimati skannitud pildi eraldusvõime, ühik on punkti tolli kohta."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Skannitud pildi laius pikslites"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Akna kõrgus pikslites"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Akna laius pikslites"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Kasutus:\n"
+#~ " %s [SEADE...] - Skannimise vahend"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Abi valikud:\n"
+#~ " -d, --debug Silumisteadete printimine\n"
+#~ " -v, --version Versiooni kuvamine\n"
+#~ " -h, --help Abi valikute kuvamine\n"
+#~ " --help-all Kõigi abi valikute kuvamine\n"
+#~ " --help-gtk GTK+ valikute kuvamine"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ võtmed:\n"
+#~ " --class=KLASS Aknahalduri poolt kasutatav programmi klass\n"
+#~ " --name=NIMI Aknahalduri poolt kasutatav programmi nimi\n"
+#~ " --screen=EKRAAN Kasutatav X'i ekraan\n"
+#~ " --sync X'i kutsungid sünkroonseks\n"
+#~ " --gtk-module=MOODULID Täiendavate GTK+ moodulite laadimine\n"
+#~ " --g-fatal-warnings Kõikide hoiatuste muutmine saatuslikuks"
+
+#~ msgid "Files missing"
+#~ msgstr "Puuduvad failid"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Palun kontrolli paigaldust"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Lehe külg, mida skannida. See võib olla üks järgnevaist: 'both', 'front', "
+#~ "'back'."
diff --git a/po/eu.po b/po/eu.po
new file mode 100644
index 0000000..ab5c267
--- /dev/null
+++ b/po/eu.po
@@ -0,0 +1,852 @@
+# Basque translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2014-03-11 21:02+0000\n"
+"Last-Translator: Asier Sarasua Garmendia <Unknown>\n"
+"Language-Team: Basque <eu@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:30+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Baimendu"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Erabiltzaile-izena baliabiderako:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Pasahitza:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Aurrealdea eta atzealdea"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Aurrealdea"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Atzealdea"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Simple Scan"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokumentua"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Es_kaneatu"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_Orrialde bakarra"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "_Elikagailuko orri guztiak"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Gelditu eskaneatzea"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Testua"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Argazkia"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Berrordenatu orrialdeak"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Posta elektronikoa"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Orrialdea"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Biratu e_zkerrera"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Biratu e_skuinera"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Moztu"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Bat ere ez"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "AEBetako gutuna"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "AEBetako le_gala"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Pertsonalizatua"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Biratu mozketa"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Mugitu ezkerrera"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Mugitu eskuinera"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Laguntza"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Edukiak"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Hasi dokumentu berria"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Berria"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Eskaneatu eskanerreko orrialde bakarra"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Eskaneatu"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Gorde dokumentua fitxategi batean"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Gorde"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Gelditu uneko eskaneatzea"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Gelditu"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Biratu orrialdea ezkerrera (erlojuaren kontrako noranzkoan)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Biratu ezkerrera"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Biratu orrialdea eskuinra (erlojuaren noranzkoan)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Biratu eskuinera"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Moztu hautatutako orrialdea"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Moztu"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Hobespenak"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Eskaneatze-_jatorria:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Testu-bereizmena:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "Ar_gazki-bereizmena:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Eskaneatze-aldea:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Orrialde-tamaina:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Distira:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Kontrastea:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Kalitatea:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Eskaneatu dokumentuak"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Eskaneatze-gailua"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Irudiak eskuratzeko erabiliko den SANE gailua."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Eskaneatuko den dokumentu-mota"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Eskaneatuko den dokumentu-mota. Ezarpen honek eskaneatzearen bereizmena, "
+"koloreak eta posprozesatzea finkatzen du."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Paperaren zabalera mm hamarrenetan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Eskaneatutako paperaren zabalera milimetro hamarrenetan (edo 0 paperaren "
+"detekzio automatikorako)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Paperaren altuera mm hamarrenetan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Eskaneatutako paperaren altuera milimetro hamarrenetan (edo 0 paperaren "
+"detekzio automatikorako)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Eskanerraren distira"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Distiraren doiketa, -100etik 100era (0 = distirarik ez)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Eskanerraren kontrastea"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Kontrastearen doiketa, -100etik 100era (0 = kontrasterik ez)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Bereizmena testuen eskaneatzerako"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Testua eskaneatzen erabiliko den bereizmena (puntuak hazbeteko)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Bereizmena argazkien eskaneatzerako"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Argazkiak eskaneatzen erabiliko den bereizmena (puntuak hazbeteko)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Eskaneatuko den aldea"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Eskaneatuko den orrialdea."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Fitxategiak gordetzeko direktorioa"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Fitxategiak gordeko diren direktorioa. Ez bada ezer ezartzen, balio "
+"lehenetsia dokumentuen direktorioa da."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Kalitatearen balioa, JPEG konpresioan erabiltzeko"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Kalitatearen balioa, JPEG konpresioan erabiltzeko."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Ez dago eskanerrik erabilgarri. Mesedez, konektatu eskaner bat."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Ezin da eskanerrarekin konektatu"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Ezin da eskanerra abiarazi"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Errorea eskanerrarekin komunikatzean"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Erakutsi bertsioa"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Inprimatu arazketa-mezuak"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Konpondu Simple Scan-en bertsio zaharragoekin sortutako PDF fitxategiak"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Ezin izan da eskaneatu"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Eskaneatutako dokumentua"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DEVICE...] - Eskaneatze-aplikazioa"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr "Exekutatu '%s --help' komando-lerroko aukera guztiak zerrendatzeko."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Dokumentu.pdf eskaneatuta"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Itxi"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Erabiltzaile-izena eta pasahitza behar dira '%s' atzitzeko"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Ez da eskanerrik detektatu"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Egiaztatu zure eskanerra konektatuta eta piztuta dagoela"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Gorde honela..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Utzi"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Gorde"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Irudi-fitxategiak"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Fitxategi guztiak"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Hautatu fit_xategi-mota"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (orrialde anitzeko dokumentua)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (konprimitua)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (galerarik gabea)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Ezin izan da fitxategia gorde"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Gordetzen ez baduzu, aldaketak betiko galduko dira."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Gorde uneko dokumentua?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Baztertu aldaketak"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Ezin izan da aurrebistarako irudia gorde"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Ezin izan da ireki irudiaren aurrebistarako aplikazioa"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr "Konbinatu aldeak"
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr "Konbinatu aldeak (alderantziz)"
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "Alderantziz"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Mantendu aldatu gabe"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Ezin izan da ireki laguntza-fitxategia"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Simple Scan-i buruz"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Dokumentuak eskaneatzeko tresna sinplea"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Asier Iturralde Sarasola https://launchpad.net/~asier-iturralde\n"
+" Asier Sarasua Garmendia https://launchpad.net/~asarasuagarmendia\n"
+" Ibai Oihanguren Sala https://launchpad.net/~ibai-oihanguren\n"
+" Iñaki Larrañaga Murgoitio https://launchpad.net/~dooteo-zundan\n"
+" Jon Legarrea https://launchpad.net/~jonlegarrea-deactivatedaccount\n"
+" Kaiet https://launchpad.net/~kaiett\n"
+" Oier Mees https://launchpad.net/~oier\n"
+" Robert Ancell https://launchpad.net/~robert-ancell\n"
+" Xabier Isla Rodriguez https://launchpad.net/~xabier.isla"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Gorde dokumentua irten baino lehen?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Irten gorde gabe"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (lehenetsia)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (zirriborroa)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (bereizmen altua)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "Dokumentu berria"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Dokumentua"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "Bidali postaz..."
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Inprimatu..."
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Laguntza"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "Honi buruz"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Irten"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Aldatu e_skanerra"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatikoa"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Ilunago"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Argiago"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Gutxiago"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Gehiago"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimoa"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maximoa"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Dokumentua gordetzen..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "%d orria (%d-etik) gordetzen"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Files missing"
+#~ msgstr "Fitxategiak falta dira"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Eskaneatutako irudiaren altuera pixeletan"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Eskaneatutako azken irudiaren bereizmena"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Erabilera:\n"
+#~ " %s [GAILUA...] - Eskaneatzeko utilitatea"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Egiaztatu instalazioa"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Eskanerraren noranzkoa eskaneatuko den orrialdean zehar. Hurrengoetako bat "
+#~ "izan daiteke: 'goitik behera' 'behetik gora' 'ezkerretik eskuinera' "
+#~ "'eskuinetik ezkerrera'"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE aplikazio-leihoa maximizatuta badago"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Eskaneatuko den aldea. Hurrengoetako bat izan daiteke: 'biak' 'aurrealdea' "
+#~ "'atzealdea'"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Eskaneatutako irudiaren zabalera pixeletan. Parametro hau eskaneatutako "
+#~ "azken orrialdearen baliora eguneratzen da."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Eskaneatutako irudiaren altuera pixeletan. Parametro hau eskaneatutako azken "
+#~ "orrialdearen baliora eguneratzen da."
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Eskaneatuko den dokumentu-mota, 'testua' testu-dokumentuak badira, "
+#~ "'argazkia' argazkiak badira. Ezarpen honek eskaneatze-bereizmena, koloreak "
+#~ "eta post-tratamendua finkatzen du."
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Leihoaren zabalera pixeletan"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Leihoaren altuera pixeletan"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Eskaneatutako irudiaren zabalera pixeletan"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Aurretik eskaneatutako irudiaren bereizmena (puntuak hazbeteko)."
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ aukerak:\n"
+#~ " --class=KLASEA Programaren klasea leiho-kudeatzaileak darabilen modura\n"
+#~ " --name=IZENA Programaren izena leiho-kudeatzaileak darabilen modura\n"
+#~ " --screen=PANTAILA X pantaila erabiltzeko\n"
+#~ " --sync Egin X dei sinkrono\n"
+#~ " --gtk-module=MODULUAK Kargatu GTK+ modulu gehigarriak\n"
+#~ " --g-fatal-warnings Egin abisu guztiak larri"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Laguntza-aukerak:\n"
+#~ " -d, --debug Inprimatu arazketa-mezuak\n"
+#~ " -v, --version Erakutsi argitaratze-bertsioa\n"
+#~ " -h, --help Erakutsi laguntza-aukerak\n"
+#~ " --help-all Erakutsi laguntza-aukera guztiak\n"
+#~ " --help-gtk erakutsi GTK+ aukerak"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Eskaneatzearen noranzkoa"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Eskanerraren zentzua eskaneatutako orrian zehar."
diff --git a/po/fi.po b/po/fi.po
new file mode 100644
index 0000000..523be5a
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,850 @@
+# Finnish translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2013-09-22 12:07+0000\n"
+"Last-Translator: Jiri Grönroos <Unknown>\n"
+"Language-Team: Finnish <fi@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Valtuuta"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "Resurssin _käyttäjänimi:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Salasana:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Etu- ja takapuoli"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Etupuoli"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Takapuoli"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Kuvanluku"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Asiakirja"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Lue kuv_a"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Yksi _sivu"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Kaikki sivut _laitteelta"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "Py_säytä kuvanluku"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Teksti"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Valokuva"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Järjestä sivut"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Sähköposti"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Sivu"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Kierrä _vasemmalle"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Kierrä _oikealle"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Rajaa"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Ei mitään"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "US Legal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Muu"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "Kierr_ä rajausta"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Siirrä vasemmalle"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Siirrä oikealle"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "O_hje"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Sisältö"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Aloita uusi asiakirja"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Uusi"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Lue yksi sivu kuvanlukijalta"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Lue"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Tallenna asiakirja tiedostoon"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Tallenna"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Pysäytä kuvan lukeminen"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Pysäytä"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Kierrä sivua vasemmalle (vastapäivään)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Kierrä vasemmalle"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Kierrä sivua oikealle (myötäpäivään)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Kierrä oikealle"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Rajaa nykyistä sivua"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Rajaa"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Asetukset"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Lue lähtee_stä:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Tekstin tarkkuus:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Valokuvan tarkkuus:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Luettava puoli:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Sivun koko:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Kirkkaus:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Kontrasti:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Laatu:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Lue asiakirjoja kuvanlukijalta"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Laite jolta luetaan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "SANE-laite jolta kuvat luetaan."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Luettavan asiakirjan tyyppi"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Luettavan asiakirjan tyyppi. Tämä asetus määrittää tarkkuuden, värit ja "
+"jälkiprosessoinnin."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Paperin leveys kymmenesosamilleinä"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Paperin leveys kymmenesosamilleinä (tai 0 automaattista paperintunnistusta "
+"varten)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Paperin pituus kymmenesosamilleinä"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Paperin pituus kymmenesosamilleinä (tai 0 automaattista paperintunnistusta "
+"varten)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Kuvanluvun kirkkaus"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Kirkkaussäätö asteikolla -100 - 100 (0 on ei yhtään)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Kuvanluvun kontrasti"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Kontrastisäätö asteikolla -100 - 100 (0 on ei yhtään)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Tarkkuus tekstin lukemiseen"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Käytettävä resoluutio pisteinä tuumaa kohti skannattaessa tekstiä."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Tarkkuus valokuvien luvulle"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Käytettävä resoluutio pisteinä tuumaa kohti skannattaessa kuvia."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Skannattava puoli"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Skannattavan sivun puoli."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Kansio, johon tiedostot tallennetaan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Kansio, johon tiedostot tallennetaan. Oletusasetus on Asiakirjat-kansio."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "JPEG-pakkaukseen käytettävä laatuarvo"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "JPEG-pakkaukseen käytettävä laatuarvo."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Kuvanlukijoita ei löydy. Yhdistä kuvanlukija."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Kuvanlukijaan ei voi yhdistää"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Kuvanluvun käynnistäminen ei onnistu"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Virhe viestinnässä kuvanlukijan kanssa"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Näytä julkaisuversio"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Tulosta virheenjäljitysviestit"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Korjaa vanhemmilla Kuvanlukijan versioilla luodut PDF-tiedostot"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Kuvanluku epäonnistui"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Kuvanlukuasiakirja"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[LAITE...] - Skannaus apuohjelma"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr "Näet kaikki komentorivivalitsimet komennolla \"%s --help\""
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Asiakirja kuvanlukijasta.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Sulje"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Käyttäjänimi ja salasana vaaditaan laitteelle ”%s” pääsemiseksi"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Kuvanlukijoita ei havaittu"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Varmista että kuvanlukijasi on yhdistetty ja kytketty päälle"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Tallenna nimellä..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Peru"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Tallenna"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Kuvatiedostot"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Kaikki tiedostot"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Valitse tiedosto_tyyppi"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (monisivuinen asiakirja)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (pakattu)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (häviötön)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Tiedoston tallennus epäonnistui"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Jos et tallenna, muutokset katoavat pysyvästi."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Tallennetaanko nykyinen asiakirja?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Hylkää muutokset"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Esikatselun tallennus epäonnistui"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Esikatselusovelluksen avaus epäonnistui"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr "Yhdistä puolet"
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr "Yhdistä puolet (käänteinen)"
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "Käänteinen"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Säilytä muuttumattomana"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Ohjetiedostoa ei voi avata"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Tämä ohjelma on vapaa ohjelmisto: voit jakaa sitä eteenpäin ja/tai muokata\n"
+"sitä Free Software Foundationin julkaiseman GNU General Publis Licence:n "
+"ehtojen mukaisesti,\n"
+"joko Lisenssin version 3, tai\n"
+"(valintasi mukaan) minkä tahansa muun\n"
+"\n"
+"Tätä ohjelmaa jaetaan siinä toivossa että se olisi käyttökelpoinen,\n"
+"mutta ILMAN MITÄÄN TAKUUTA; ilman edes epäsuoraa takuuta\n"
+"KAUPALLISUUDESTA tai HYÖDYSTÄ YKSITTÄISEEN TARKOITUKSEEN. Katso\n"
+"lisätietoja lisenssistä GNU General Public Licence.\n"
+"\n"
+"Sinun olisi pitänyt saada kopio lisenssistä GNU General Public Licence\n"
+"tämän ohjelman mukana. Jos et saanut, katso lisätietoja osoitteesta "
+"<http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Tietoja sovelluksesta"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Yksinkertainen asiakirjojen kuvanlukutyökalu"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Elias Julkunen https://launchpad.net/~eliasj\n"
+" Heidi Mattila https://launchpad.net/~hessuk\n"
+" Jiri Grönroos https://launchpad.net/~jiri-gronroos\n"
+" Juhani Numminen https://launchpad.net/~jsonic\n"
+" Ncl8 https://launchpad.net/~crofle\n"
+" Robert Ancell https://launchpad.net/~robert-ancell\n"
+" Saku Salo https://launchpad.net/~sos\n"
+" Timo Jyrinki https://launchpad.net/~timo-jyrinki\n"
+" Ville Pilvio https://launchpad.net/~vpilvio"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Tallennetaanko asiakirja ennen sovelluksen sulkemista?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Sulje tallentamatta"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (oletus)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (vedos)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (korkea tarkkuus)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "Uusi asiakirja"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Asiakirja"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "Sähköposti..."
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Tulosta..."
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Ohje"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "Tietoja"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Lopeta"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Muuta _kuvanlukijaa"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automaattinen"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Tummempi"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Vaaleampi"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Vähemmän"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Enemmän"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Heikompi"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Parempi"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Tallennetaan asiakirjaa..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Tallennetaan sivua %d/%d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+-valitsimet:\n"
+#~ " --class=LUOKKA Ikkunahallinnan käyttämä ohjelmaluokka\n"
+#~ " --name=NIMI Ikkunahallinnan käyttämä ohjelman nimi\n"
+#~ " --screen=RUUTU Käytettävä X-ruutu\n"
+#~ " --sync Tee X-kutsut synkronisesti\n"
+#~ " --gtk-module=MODUULIT Lataa lisäksi GTK+-moduulit\n"
+#~ " --g-fatal-warnings Tee kaikista varoituksista kuolettavia"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Lukemisen suunta"
+
+#~ msgid "Files missing"
+#~ msgstr "Tiedostoja puuttuu"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Luetun kuvan korkeus pikseleissä"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Viimeisimmän luetun kuvan tarkkuus"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Ikkunan korkeus pikseleinä"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Ikkunan leveys pikseleinä"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Tarkista asennuksesi tila"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "Arvo TOSI, jos sovelluksen ikkuna on suurennettu"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Käyttö:\n"
+#~ " %s [LAITE...] - Kuvanlukutyökalu"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Luettavan kuvan korkeus pikseleinä. Arvo päivittyy viimeisimmän luetun sivun "
+#~ "mukaan."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Luettavan kuvan leveys pikseleinä"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Skannattavan kuvan leveys pikseleinä. Arvo päivittyy viimeksi skannatun "
+#~ "sivun mukaan."
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr "Skannattava puoli. Mahdollisia valintoja ovat: molemmat, etu ja taka"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Skannattavan dokumentin luokka. Valitse 'teksti' tekstidokumentteja varten "
+#~ "tai 'kuva' kuvia varten. Tämä asetus määrää skannaus koon, värit ja "
+#~ "jälkiprosessoinnin."
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Apuvalinnat:\n"
+#~ " -d, --debug Tulosta virheenjäljitysviestit\n"
+#~ " -v, --version Näytä jakeluversio\n"
+#~ " -h, --help Näytä apuvalinnat\n"
+#~ " --help-all Näytä kaikki apuvalinnat\n"
+#~ " --help-gtk Näytä kaikki GTK+-valinnat"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Viimeksi skannatun kuvan resoluutio pisteinä tuumaa kohti."
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Skannerin suunta skannatun sivun yli. Se voi olla jokin seuraavista: 'top-to-"
+#~ "bottom' 'bottom-to-top' 'left-to-right' 'right-to-left' ('ylhäältä alas' "
+#~ "'alhaalta ylös' 'vasemmalta oikealle' 'oikealta vasemmalle')"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Skannerin kulkusuunta skannattavan sivun suhteen."
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 0000000..b9100bf
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,891 @@
+# French translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-09-27 21:23+0000\n"
+"Last-Translator: 65GYgzf <Unknown>\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autoriser"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Utilisateur :"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Mot de passe :"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Recto verso"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Recto"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Verso"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Outil de numérisation Simple Scan"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Document"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Nu_mériser"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_Page unique"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Toutes les pages du _bac"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Arrêter la numérisation"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Texte"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Photo"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Réorganiser les pages"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Courriel"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Page"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Pivoter vers la _gauche"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Pivoter vers la _droite"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "Re_cadrer"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "Aucu_n"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter (US)"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "_Legal (US)"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Personnalisé"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "Pivote_r la selection"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Déplacer à gauche"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Déplacer à droite"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Aide"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Contenus"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Créer un nouveau document"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Nouveau"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Numériser une seule page depuis le scanner"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Numériser"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Enregistrer le document dans un fichier"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Enregistrer"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Arrêter la numérisation en cours"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Arrêter"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+"Pivoter la page vers la gauche (sens inverse des aiguilles d'une montre)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Pivoter vers la gauche"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Pivoter la page vers la droite (sens des aiguilles d'une montre)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Pivoter vers la droite"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Recadrer la page sélectionnée"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Recadrer"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Préférences"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "S_ource de numérisation :"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "Résolution pour le _texte :"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "Résolution pour la _photo :"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Face à numériser :"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Taille de page :"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Luminosité :"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Contraste :"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Qualité :"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Numériser des documents"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Numériser depuis"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Périphérique SANE à utiliser pour l'acquisition des images."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Nature du document qui va être numérisé"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Type de document numérisé. Ce réglage définit la résolution de numérisation, "
+"les couleurs et le post-traitement."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Largeur du papier en dixièmes de mm."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"La largeur du papier en dixièmes de mm (ou 0 pour une détection automatique "
+"du papier)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Hauteur du papier en dixièmes de mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"La hauteur du papier en dixièmes de mm (ou 0 pour une détection automatique "
+"du papier)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Luminosité de la numérisation"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Ajustement de la luminosité de -100 à 100 (0 pour aucun)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Contraste de la numérisation"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Ajustement du contraste de -100 à 100 (0 pour aucun)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Résolution des numérisations de textes"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+"La résolution en points par pouce à utiliser lors de la numérisation de "
+"texte."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Résolution des numérisations de photos"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+"La résolution en points par pouce à utiliser lors de la numérisation de "
+"photos."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Face(s) de la page à numériser"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Le côté de la page à numériser."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Dossier dans lequel les fichiers sont enregistrés"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Le dossier où les fichiers sont enregistrés. S'il n'est pas défini, le "
+"dossier documents sera utilisé par défaut."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Taux de qualité à utiliser pour la compression JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Taux de qualité à utiliser pour la compression JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+"Aucun périphérique de numérisation disponible. Veuillez en connecter un."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Impossible de se connecter au scanner"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Impossible de démarrer la numérisation"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Erreur de communication avec le scanner"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Affiche la version du logiciel"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Afficher les messages de débogage"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Corriger les fichiers PDF générés avec les anciennes versions de Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Échec de la numérisation"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Document numérisé"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DEVICE...] - Outil de numérisation"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Exécutez « %s --help » pour voir la liste complète des options disponibles "
+"en ligne de commande."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Document.pdf numérisé"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Fermer"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Nom d'utilisateur et mot de passe nécessaires pour accéder à « %s »"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Aucun scanner n'a été détecté."
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Veuillez vérifier que votre scanner est connecté et sous tension."
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Enregistrer sous…"
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Annuler"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Sauvegarder"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Fichiers images"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Tous les fichiers"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Sélectionnez le _type de fichier"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (document multi-pages)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (compressé)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (sans perte)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Impossible d'enregistrer le fichier"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+"Si vous n'enregistrez pas, les modifications seront définitivement perdues."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Enregistrer le document actuel ?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Abandonner les modifications"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Impossible d'enregistrer l'image pour la prévisualiser"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Impossible d'ouvrir l'aperçu de l'image"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr "Associer les côtés"
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr "Associer les côtés (inverser)"
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "Inverser"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Maintenir inchangé"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Impossible d'ouvrir le fichier d'aide"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Ce programme est libre, vous pouvez le redistribuer et/ou le modifier\n"
+"selon les termes de la licence publique générale (GPL) GNU publiée\n"
+"par la Free Software Foundation, dans sa version 3 ou supérieure\n"
+"(selon votre choix).\n"
+"\n"
+"Ce programme est distribué dans l'espoir d'être utile, mais\n"
+"SANS AUCUNE GARANTIE, y compris les garanties de \n"
+"COMMERCIALISATION ou d'ADAPTATION A UN BUT SPÉCIFIQUE.\n"
+"Consultez la licence publique générale GNU pour plus de détails.\n"
+"\n"
+"Vous devez avoir reçu une copie de la licence publique générale GNU\n"
+"en même temps que ce programme ; si ce n'est pas le cas, consultez\n"
+"<http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "À propos de Simple Scan"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Numériser simplement vos documents"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" 65GYgzf https://launchpad.net/~65gygzf\n"
+" Alexandre Franke https://launchpad.net/~afranke\n"
+" Alexandre Pliarchopoulos https://launchpad.net/~al-pliar\n"
+" Antoine Pernot https://launchpad.net/~antoinepernot\n"
+" Audiger Jeremy https://launchpad.net/~tankypon\n"
+" Bruno Patri https://launchpad.net/~bruno666-deactivatedaccount\n"
+" Christophe Herot https://launchpad.net/~tictoc-free\n"
+" Darknautilus https://launchpad.net/~darknautilus\n"
+" David Bosman https://launchpad.net/~david-bosman\n"
+" Emmanuel Sunyer https://launchpad.net/~esunyer\n"
+" Fabien Lusseau https://launchpad.net/~fabien-beosfrance\n"
+" Florent Thévenet https://launchpad.net/~florent-thevenet\n"
+" François Tissandier https://launchpad.net/~baloo\n"
+" Grégoire Seux https://launchpad.net/~kamaradclimber\n"
+" Guillaume Lanquepin-Chesnais https://launchpad.net/~guyomel\n"
+" Jean Marc https://launchpad.net/~m-balthazar\n"
+" Jörg BUCHMANN https://launchpad.net/~jorg-buchmann\n"
+" Kaïs Bejaoui https://launchpad.net/~kais\n"
+" Manuel Berrocal https://launchpad.net/~manu-berrocal\n"
+" Nicolas Delvaux https://launchpad.net/~malizor\n"
+" Olivier Febwin https://launchpad.net/~febcrash\n"
+" Ozouli.SaLeH https://launchpad.net/~ouzouli\n"
+" Pascal Maugendre https://launchpad.net/~pmaugendre\n"
+" Paul Forget https://launchpad.net/~paul92\n"
+" Pierre Slamich https://launchpad.net/~pierre-slamich\n"
+" RemiJ https://launchpad.net/~remij\n"
+" Simon THOBY https://launchpad.net/~simonthoby\n"
+" Stanislas Michalak https://launchpad.net/~stanislas-michalak\n"
+" Sylvie Gallet https://launchpad.net/~sylvie-gallet\n"
+" Xavier Verne https://launchpad.net/~xavier-verne\n"
+" YannUbuntu https://launchpad.net/~yannubuntu\n"
+" beudbeud https://launchpad.net/~beudbeud\n"
+" blackbg https://launchpad.net/~corentin-cadiou\n"
+" loic08 https://launchpad.net/~loic08\n"
+" londumas https://launchpad.net/~helion331990\n"
+" torglut https://launchpad.net/~torglut"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Enregistrer le document avant de quitter ?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Quitter sans enregistrer"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d ppp (par défaut)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d ppp (brouillon)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d ppp (haute résolution)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d ppp"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "Nouveau document"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Document"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "Courrier électronique..."
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Imprimer…"
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Aide"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "À propos"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Quitter"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Changer de _scanner"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatique"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Plus foncé"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Plus clair"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Moins"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Plus"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimum"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maximum"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Enregistrement du document…"
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Enregistrement de la page %d sur %d"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Veuillez vérifier votre installation"
+
+#~ msgid "Files missing"
+#~ msgstr "Fichiers manquants"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Usage :\n"
+#~ " %s [PÉRIPHÉRIQUE...] - utilitaire de numérisation"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Options GTK+ :\n"
+#~ " --class=CLASSE Classe du programme telle qu'utilisée par le gestionnaire "
+#~ "de fenêtres\n"
+#~ " --name=NOM Nom du programme tel qu'utilisé par le gestionnaire de "
+#~ "fenêtres\n"
+#~ " --screen=ÉCRAN Écran X à utiliser\n"
+#~ " --sync Rendre les appels X synchrones\n"
+#~ " --gtk-module=MODULES Charger des modules GTK+ supplémentaires\n"
+#~ " --g-fatal-warnings Rendre tous les avertissements fatals"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Hauteur de la fenêtre en pixels"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Largeur de la fenêtre en pixels"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "VRAI si la fenêtre de l'application est maximisée"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "La hauteur de l'image numérisée en pixels. Cette valeur est mise à jour en "
+#~ "fonction de la dernière page numérisée."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "La largeur de l'image numérisée en pixels. Cette valeur est mise à jour en "
+#~ "fonction de la dernière page numérisée."
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Hauteur de l'image numérisée en pixels"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Résolution de la dernière image numérisée"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Sens de numérisation"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Options d'aide :\n"
+#~ " -d, --debug Affiche les messages d'erreur\n"
+#~ " -v, --version Affiche le numéro de version\n"
+#~ " -h, --help Affiche les options d'aide\n"
+#~ " --help-all Affiche toutes les options d'aide\n"
+#~ " --help-gtk Affiche les options de GTK+"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Direction du balayage lors de la numérisation de la page. Celle-ci peut "
+#~ "être : de haut en bas ; de bas en haut ; de gauche à droite ; de droite à "
+#~ "gauche"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "La résolution de la dernière image numérisée en points par pouce."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Largeur de l'image numérisée en pixels"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Nature du document qui va être numérisé. « texte » pour les documents texte, "
+#~ "« photo » pour les photographies. Ce paramètre détermine la résolution de "
+#~ "numérisation, le nombre de couleurs et les traitements postérieurs."
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "La ou les faces de la page à numériser. Cela peut être au choix : « Recto "
+#~ "verso », « Recto » ou « Verso »"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Le sens du scanner par rapport à la page numérisée."
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
diff --git a/po/gd.po b/po/gd.po
new file mode 100644
index 0000000..0db90bd
--- /dev/null
+++ b/po/gd.po
@@ -0,0 +1,795 @@
+# Gaelic; Scottish translation for simple-scan
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-04-17 06:12+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Gaelic; Scottish <gd@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "Ùg_hdarraich"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_An t-ainm-cleachdaiche airson a' ghoireis:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Facal-faire:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "A h-aghaidh 's a cùl"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "A h-aghaidh"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "A cùl"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Sganadh simplidh"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Sgrìobhainn"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sg_anaich"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_Duilleag shingilte"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Gach duilleag a tha san _bhiathadair"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "Cuir _stad air an sganadh"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Teacsa"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Dealbh"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Post-d"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Duilleag"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Cuairtich gu _tuathail"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Cuairtich gu _deiseil"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Bearr"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "Cha_n eil gin"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Litir"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Gnàthaichte"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Cuairtich an raon bearraidh"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Gluais gun taobh chlì"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Gluais gun taobh deas"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Cobhair"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Clàr-innse"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Tòisich air sgrìobhainn ùr"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Ùr"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Sganaich duilleag shingilte on sganair"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Sganaich"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Sàbhail an sgrìobhainn mar fhaidhle"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Sàbhail"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Cuir stad air an sganadh làithreach"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Stad"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Cuairtich an duilleag gu tuathail"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Cuairtich gu tuathail"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Cuairtich an duilleag gu deiseil"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Cuairtich gu deiseil"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Bearr an duilleag a thagh thu"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Bearr"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Roghainnean"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Tùs an _sganaidh:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Dùmhlachd-bhreacaidh an teacsa:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Dùmhlachd-bhreacaidh an deilbh:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Sganaich taobh:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Meud na duilleige:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Soilleireachd:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Iomsgaradh:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Càileachd:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Sganaich sgrìobhainnean"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "An t-uidheam a nì an sganadh"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "An t-uidheam SANE a gheibhear na h-ìomhaighean uaithe."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Seòrsa na sgrìobhainne a tha 'ga sganadh"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Seòrsa na sgrìobhainne a tha 'ga sganadh. Tha an roghainn seo a' "
+"suidheachadh dùmhlachd-bhreacaidh, dathan agus iar-ghiullachd an sgana."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Leud a' phàipeir ann an deicheamhan de mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Leud a' phàipeir ann an deicheamhan de mm (no 0 airson mothachadh fèin-"
+"obrachail do leud a' phàipeir)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Àirde a' phàipeir ann an deicheamhan de mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Àirde a' phàipeir ann an deicheamhan de mm (no 0 airson mothachadh fèin-"
+"obrachail do dh'àirde a' phàipeir)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Soilleireachd an sgana"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+"Socrachadh na soilleireachd eadar -100 agus 100 ('s ciall dha 0 nach bi gin "
+"ann)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Iomsgaradh an sgana"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+"Socrachadh an iomsgaraidh eadar -100 agus 100 ('s ciall dha 0 nach bi gin "
+"ann)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "An dùmhlachd-bhreacaidh airson sganadh teacsa"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+"Dùmhlachd-bhreacaidh, ann a dotagan gach òirleach, a chleachdar airson "
+"sganadh teacsa."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "An dùmhlachd-bhreacaidh airson sganadh dhealbhan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+"Dùmhlachd-bhreacaidh, ann a dotagan gach òirleach, a chleachdar airson "
+"sganadh dhealbhan."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Dè taobh na duilleige a tha ri sganadh"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Dè taobh na duilleige a tha ri sganadh."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Am pasgan san dèid na faidhlichean a shàbhaladh ann"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Am pasgan san dèid na faidhlichean a shàbhaladh ann. Thèid an sàbhaladh ann "
+"am pasgan nan sgrìobhainnean a ghnàth mur an deach seo atharrachadh."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Ìre na càileachd a thèid a chleachdadh airson dùmhlachdh JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Ìre na càileachd a thèid a chleachdadh airson dùmhlachdh JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Chan eil sganair sam bith ri làimh. Feuch is ceangail sganair ris."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Cha b' urrainn dhuinn ceangal ris an sganair."
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Cha b' urrainn tòiseachadh air an sganadh"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Thachair mearachd nuair a bha sinn a' conaltradh ris an sganair"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Seall tionndadh an sgaoilidh"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Clò-bhuail teachdaireachdan dì-bhugachaidh"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Càirich faidhlichean PDF a chaidh a chruthachadh le seann-tionndaidhean de "
+"Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Dh'fhàillig an sganadh"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Sgrìobhainn sganaichte"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DEVICE...] - Goireas sganaidh"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Ruith \"%s --help\" airson liosta shlàn dhe na roghainnean command line a "
+"tha ri làimh fhaicinn."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Sgrìobhainn sganaichte.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Dùin"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+"Tha feum air ainm-cleachdaiche agus facal-faire mus faighear cothrom air "
+"\"%s\""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Cha deach sganair sam bith a lorg"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Dèan cinnteach gu bheil sganair ceangailte ris agus gu bheil e air"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Sàbhail mar..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Sguir dheth"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Sàbhail"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Faidhlichean deilbh"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Na h-uile faidhle"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Tagh _seòrsa an fhaidhle"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF {sgrìobhainn ioma-dhuilleagach}"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (dùmhlaichte)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (gun chall càileachd)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Cha b' urrainn dhuinn a shàbhaladh ann am faidhle"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+"Mur an sàbhail thu e, thèid atharrachadh sam bith a rinn thu air chall."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "A bheil thu airson an sgrìobhainn làithreach a shàbhaladh?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Tilg air falbh na h-atharraichean"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Cha ghabh an ìomhaigh a shàbhaladh airson a ro-shealladh"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Chan urrainn dhuinn an aplacaid fhosgladh a ro-sheallas an ìomhaigh"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Chan urrainn dhuinn faidhle na cobharach fhosgladh"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Mu dhèidhinn gleus simplidh nan sgana"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Inneal simplidh airson sganadh sgrìobhainnean"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Akerbeltz https://launchpad.net/~fios\n"
+" alasdair caimbeul https://launchpad.net/~alexd-deactivatedaccount"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "A bheil thu airson an sgrìobhainn a shàbhaladh mus dèan sinn fàgail?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Fàg gun a shàbhaladh"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (bun-roghainn)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (dreachd)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (dùmhlachd-bhreacaidh àrd)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Atharraich an _sganair"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Gu fèin-obrachail"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Nas duirche"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Nas soilleire"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Nas lugha"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Barrrachd"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "As lugha"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "As motha"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "A' sàbhaladh na sgrìobhainn..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "A' sàbhaladh duilleag %d a-mach à %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Àirde na h-uinneige ann am piosgailean"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Leud na h-uinneige ann am piosgailean"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE ma tha uinneag na h-aplacaid air a làn-mheudachadh"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Comhair an sganair thairis air an duilleag a tha 'ga sganadh."
+
+#~ msgid "Direction of scan"
+#~ msgstr "Comhair an sgana"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Àirde na h-ìomhaigh a tha 'ga sganadh ann am piosgailean"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Leud na h-ìomhaigh a tha 'ga sganadh ann am piogsailean. Thèid leud na "
+#~ "duilleige mu dheireadh a chaidh a sganadh a chur an-seo."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Àirde na h-ìomhaigh a tha 'ga sganadh ann am piogsailean. Thèid àirde na "
+#~ "duilleige mu dheireadh a chaidh a sganadh a chur an-seo."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Leud na h-ìomhaigh a tha 'ga sganadh ann am piogsailean"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr ""
+#~ "Dùmhlachd-bhreacaidh, ann a dotagan gach òirleach, na h-ìomhaighe a chaidh a "
+#~ "sganadh roimhe."
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr ""
+#~ "Dùmhlachd-bhreacaidh na h-ìomhaighe a chaidh a sganadh turas mu dheireadh"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Thoir sùil air an stàladh agad"
+
+#~ msgid "Files missing"
+#~ msgstr "Tha faidhlichean a dhìth"
diff --git a/po/gl.po b/po/gl.po
new file mode 100644
index 0000000..3c619c9
--- /dev/null
+++ b/po/gl.po
@@ -0,0 +1,850 @@
+# Galician translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2013-10-05 07:56+0000\n"
+"Last-Translator: Fran Diéguez <Unknown>\n"
+"Language-Team: Galician <gl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autorizar"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "Nome de _usuario para o recurso:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Contrasinal:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Anverso e reverso"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Anverso"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Atrás"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Escaner sinxelo"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Documento"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Esc_anear"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Única _páxina"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Todas as páxinas do _alimentador"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Deter o escaneado"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Texto"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Fotografía"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Reordenar as páxinas"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "Correo-_e"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Páxina"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Rotar á _esquerda"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Rotar á _dereita"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Recortar"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Ningún"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Carta"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Personalizado"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Rotar o recorte"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Mover á esquerda"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Mover á dereita"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Axuda"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Contidos"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Iniciar un novo documento"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Novo"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Escanear unha única páxina desde o escaner"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Escanear"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Gardar o documento nun ficheiro"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Gardar"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Deter o escaneo actual"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Deter"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Xirar a páxina á esquerda (sentido contrario ao reloxo)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Rotar á esquerda"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Xirar a páxina á dereita (sentido do reloxo)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Rotar á dereita"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Recortar a páxina seleccionada"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Recortar"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Preferencias"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "_Orixe de escaneo:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "Resolución de _texto:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "Resolución _fotográfica:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Cara a escanear:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Tamaño da páxina:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Brillo:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Contraste:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Calidade:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Escanear documentos"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Dispositivo desde o que escanear"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Dispositivo SANE desde o que adquirir as imaxes."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Tipo de documento que está sendo escaneado"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Tipo de documento a escanear. Esta opción decide a resolución, cores e post-"
+"procesado do escaneado"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Largura do papel en décimas de mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"A largura do papel en décimas de mm (ou 0 para a detección automática do "
+"papel)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Altura do papel en décimas de mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"A altura do papel en décimas de mm (ou 0 para a detección automática do "
+"papel)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Brillo do escaneo"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Axuste de brillo de -100 a 100 (0 é ningún)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Contraste do escaneo"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Axuste de contraste de -100 a 100 (0 é ningún)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Resolución para o escaneado de texto"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Resolución en puntos por polgada a usar cando se escanean textos."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Resolución para o escaneado de fotos"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Resolución en puntos por polgada a usar cando se escanean fotos."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Cara da páxina a escanear"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "O lado da páxina a escanear."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Directorio no que gardar os ficheiros"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"O directorio no que se gardarán os ficheiros. Por omisión usarase o "
+"directorio de documentos."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Valor de calidade a usar na compresión JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Valor de calidade a usar na compresión JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Non hai escáneres dispoñíbeis. Conecte un escáner."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Non foi posíbel conectar co escáner"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Non foi posíbel iniciar o escaneado"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Produciuse un erro na comunicación co escáner"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Mostrar a versión de publicación"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Mostrar mensaxes de depuración"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Arranxar ficheiros PDF xerados con versións antigas de Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Produciuse un fallo ao escanear"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Documento escaneado"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DISPOSITIVO...] - Utilidade de escaneado"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Ejecute «%s --help» para ver unha lista completa das opcións de liña de "
+"ordes dispoñíbeis."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Document.pdf escaneado"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Pechar"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Requírese o nome de usuario e o contrasinal para acceder a «%s»"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Non se detectou ningún escáner"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Verifique que o seu escáner está conectado e aceso"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Gardar como..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Cancelar"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Gardar"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Ficheiros de imaxes"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Todos os ficheiros"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Elixa o _tipo de ficheiro"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (documento de múltiples páxinas)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (comprimido)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (sen perdas)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Produciuse un fallo ao gardar o ficheiro"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Se non garda o ficheiro, os seus cambios perderanse permanentemente."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Gardar o documento actual?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Rexeitar os cambios"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Non foi posíbel gardar a imaxe da miniatura"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Non se pode abrir o aplicativo de vista previa da imaxe"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr "Combinar lados"
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr "Combinar lados (inverso)"
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "Inverter"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Manter sen cambios"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Non é posíbel abrir o ficheiro de axuda"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Este programa é software libre: pode redistribuilo ou modificalo\n"
+"nos termos da GNU General Public License publicada pola\n"
+"Free Software Foundation, na súa versión 3 ou, a súa elección, calquera\n"
+"posterior.\n"
+"\n"
+"Este programa distribúese coa esperanza de que sexa útil,\n"
+"pero SEN NINGUNHA GARANTíA; ni tan sequera a garantía implícita de\n"
+"COMERCIABILIDADE o ADECUACIÓN A UN OBXECTIVO PARTICULAR. Vexa a\n"
+"GNU General Public License para máis detalles.\n"
+"\n"
+"Debe haber recibido una copia de la GNU General Public License\n"
+"con este programa. Si no fuera así, vea <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Acerca de Simple Scan"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Ferramenta sinxela de escaneado de documentos"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Fran Diéguez https://launchpad.net/~frandieguez\n"
+" Manuel Xosé Lemos https://launchpad.net/~mxlemos\n"
+" Marcos Lans https://launchpad.net/~markooss\n"
+" Miguel Anxo Bouzada https://launchpad.net/~mbouzada\n"
+" Robert Ancell https://launchpad.net/~robert-ancell"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Gardar o documento antes de saír?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Saír sen gardar"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d ppp (predeterminada)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d ppp (borrador)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d ppp (alta resolución)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d ppp"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "Novo documento"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Documento"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "Correo electrónico..."
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Imprimir..."
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Axuda"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "Sobre"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Saír"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Cambiar o _escáner"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automático"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Máis escuro"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Máis claro"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Menos"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Máis"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Mínimo"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Máximo"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Gardando o documento..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Gardando páxina %d de %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Uso:\n"
+#~ " %s [DISPOSITIVO...] - Utilidade de escaneo"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Comprobe a súa instalación"
+
+#~ msgid "Files missing"
+#~ msgstr "Faltan ficheiros"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Dirección de escaneado"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Altura da imaxe escaneada en píxeles"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "A dirección do escáner a través da páxina escaneada. Pode ser calquera dos "
+#~ "seguintes: «top-to-bottom» «bottom-to-top» «left-to-right» «right-to-left»"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "O tipo de documento que se vai a escanear. «text» para documentos de texto, "
+#~ "«photo» para fotos. Esta opción determina a resolución, as cores e o "
+#~ "postprocesamento do escaneado."
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "VERDADEIRO se a xanela do aplicativo está maximizada"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Largura da imaxe escaneada"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Altura da xanela en píxeles"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Largura da xanela en píxeles"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Opcións de axuda:\n"
+#~ " -d, --debug Mostra as mensaxes de depuración\n"
+#~ " -v, --version Mostra a versión\n"
+#~ " -h, --help Mostra as opcións de axuda\n"
+#~ " --help-all Mostra todas as opcións de axuda\n"
+#~ " --help-gtk Mostra as opcións de GTK+"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Resolución da última imaxe escaneada"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Resolución en puntos por polgada da imaxe escaneada anteriormente."
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "A cara da páxina que desexe escanear. Pode ser un dos seguintes: «ambos», "
+#~ "«anverso» e «recverso»"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "A dirección do escáner sobre a páxina escaneada."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "A largura da imaxe escaneada. Este valor actualizase co que tivo a última "
+#~ "páxina escaneada."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "A altura da imaxe escaneada. Este valor actualizase co que tivo a última "
+#~ "páxina escaneada."
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Opcións de GTK+:\n"
+#~ " --class=CLASS Clase do programa tal como é usada polo "
+#~ "xestor de xanelas.\n"
+#~ " --name=NAME Nome do programa tal como é usado polo "
+#~ "xestor de xanelas.\n"
+#~ " --screen=SCREEN Pantalla X a usar\n"
+#~ " --sync Facer chamadas X síncronas\n"
+#~ " --gtk-module=MODULES Cargar módulos GTK+ adicionais\n"
+#~ " --g-fatal-warnings Converter todos os avisos en erros fatais"
diff --git a/po/he.po b/po/he.po
new file mode 100644
index 0000000..a4ddf54
--- /dev/null
+++ b/po/he.po
@@ -0,0 +1,847 @@
+# Hebrew translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 09:01+0000\n"
+"Last-Translator: Robert Ancell <robert.ancell@canonical.com>\n"
+"Language-Team: Hebrew <he@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_אימות"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_שם המשתמש עבור המשאב:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_ססמה:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "גב וחזית"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "חזית"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "גב"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "סריקה פשוטה"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "מ_סמך"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "_סריקה"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "עמוד _בודד"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "כל הדפים מהמ_זין"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "ע_צירת הסריקה"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "טקסט"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "צילום"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_דוא״ל"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_עמוד"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "סיבוב _שמאלה"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "סיבוב _ימינה"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_חיתוך"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_ללא"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_מכתב"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "_פוליו"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "ה_תאמה אישית"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_סיבוב חיתוך"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "ע_זרה"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_תוכן"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "התחלת מסמך חדש"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "חדש"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "סריקת עמוד בודד מהסורק"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "סריקה"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "שמירת המסמך לקובץ"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "שמירה"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "עצירת הסריקה הנוכחית"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "עצירה"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "סיבוב העמוד לשמאל (נגד כיוון השעון)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "סיבוב שמאלה"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "סיבוב העמוד לימין (עם כיוון השעון)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "סיבוב ימינה"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "חיתוך העמוד שנבחר"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "חיתוך"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "העדפות"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "_מקור הסריקה:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "ר_זולוציית הטקסט:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_רזולוציית התמונה:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "הצד הנסרק:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "מידות הדף:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "בהירות:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "ניגודיות:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "איכות:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "סריקת מסמכים"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Device to scan from"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "SANE device to acquire images from."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Type of document being scanned"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Width of paper in tenths of a mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Height of paper in tenths of a mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "בהירות הסריקה"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "התאמת הבהירות מ־‎-100 ועד 100 (0 - ללא השפעה)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "ניגודיות הסריקה"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "התאמת הניגודיות מ־‎-100 ועד 100 (0 - ללא השפעה)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Resolution for text scans"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "The resolution in dots-per-inch to use when scanning text."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Resolution for photo scans"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "The resolution in dots-per-inch to use when scanning photos."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Page side to scan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "The page side to scan."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Directory to save files to"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"The directory to save files to. Defaults to the documents directory if unset."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "ערך האיכות לשימוש לדחיסת JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "ערך האיכות לשימוש לדחיסת JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "אין סורקים זמינים. נא לחבר סורק."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "לא ניתן להתחבר לסורק"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "לא ניתן להתחיל בסריקה"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "אירעה שגיאה בעת ההתקשרות עם הסורק"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Show release version"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Print debugging messages"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "תיקון קובצי PDF שנוצרו באמצעות גרסאות ישנות יותר של Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "הסריקה נכשלה"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "מסמך שנסרק"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DEVICE...] - Scanning utility"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Run '%s --help' to see a full list of available command line options."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "מסמך סרוק.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "ס_גירה"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "נדרשים שם משתמש וססמה כדי לגשת אל '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "לא נמצאו סורקים"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "יש לבדוק כי הסורק מחובר ומופעל"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "שמירה בשם..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_ביטול"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_שמירה"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "קובצי תמונה"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "כל הקבצים"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "בחירת _סוג הקובץ"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (מסמך מרובה עמודים)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (דחוס)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (ללא אבדן נתונים)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "שמירת הקובץ נכשלה"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "ללא שמירה, השינויים יאבדו לעד."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "האם לשמור את המסמך הנוכחי?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "התעלמות מהשינויים"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "לא ניתן לשמור את התמונה לתצוגה מקדימה"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "לא ניתן לפתוח את היישום להצגה מקדימה של תמונות"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "לא ניתן לפתוח את קובץ העזרה"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"תכנית זו היא תוכנה חופשית; באפשרותך יכול להפיצה מחדש ו/או לשנות אותה על-פי "
+"תנאי הרישיון הציבורי הכללי של GNU כפי שפורסם על ידי קרן התכנה החופשית; בין "
+"אם גרסה 3 של הרישיון, ובין אם (לפי בחירתך) כל גרסה מאוחרת שלו.\n"
+"\n"
+"תכנית זו מופצת בתקווה שתהיה מועילה, אבל בלא אחריות כלשהי; ואפילו ללא האחריות "
+"המשתמעת בדבר מסחריותה או התאמתה למטרה מסוימת. לפרטים נוספים, ניתן לעיין "
+"ברישיון הציבורי הכללי של GNU.\n"
+"\n"
+"לתכנית זו אמור להיות מצורף עותק של הרישיון הציבורי הכללי של GNU; במידה שלא, "
+"ניתן לעיין ב־<http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "על אודות Simple Scan"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "כלי פשוט לסריקת מסמכים"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Amit Yaron https://launchpad.net/~amityaron87\n"
+" Ddorda https://launchpad.net/~ddorda\n"
+" Dudu Edri https://launchpad.net/~duduedri96\n"
+" Liel Fridman https://launchpad.net/~lielft\n"
+" Robert Ancell https://launchpad.net/~robert-ancell\n"
+" Shlomil https://launchpad.net/~shlomister\n"
+" Yaron https://launchpad.net/~sh-yaron"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "האם לשמור את המסמך בטרם היציאה?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "לצאת ללא שמירה"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (בררת מחדל)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (טיוטה)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (רזולוציה גבוהה)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "ב_חירה בסורק אחר"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "אוטומטי"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "כהה יותר"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "בהיר יותר"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "פחות"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "יותר"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "מזערי"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "מרבי"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "המסמך נשמר...‏"
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "נשמר העמוד %d מתוך %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+
+#~ msgid "Please check your installation"
+#~ msgstr "יש לבדוק את ההתקנה"
+
+#~ msgid "Files missing"
+#~ msgstr "חסרים קבצים"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Height of scanned image in pixels"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE if the application window is maximized"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Direction of scan"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Resolution of last scanned image"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Window height in pixels"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "The resolution in dots-per-inch of the previously scanned image."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Width of scanned image in pixels"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Window width in pixels"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "The direction of the scanner across the scanned page."
diff --git a/po/hr.po b/po/hr.po
new file mode 100644
index 0000000..bf5b203
--- /dev/null
+++ b/po/hr.po
@@ -0,0 +1,850 @@
+# Croatian translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 09:01+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Croatian <hr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Ovlasti"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Korisničko ime za izvor:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Lozinka:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Prednje i stražnje"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Prednje"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Natrag"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Jednostavno skeniranje"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokument"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sk_eniraj"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Jedna _stranica"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Sve stranice iz _uvlakača"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Zaustavi skeniranje"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Tekst"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Fotografija"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_E-pošta"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Stranica"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Rotiraj _lijevo"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Rotiraj _desno"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Izreži"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Ništa"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Prilagođeno"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Rotiraj isječak"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Pomakni ulijevo"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Pomakni udesno"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Pomoć"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Sadržaj"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Započni novi dokument"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Novo"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Skeniraj jednu stranicu sa skenera"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Skeniraj"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Spremi dokument u datoteku"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Spremi"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Prekini trenutno skeniranje"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Zaustavi"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Zaokreni stranicu ulijevo (obrnuto od kazaljke na satu)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Zaokreni ulijevo"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Zaokreni stranicu udesno (u smjeru kazaljke na satu)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Zaokreni udesno"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Izreži odabranu stranicu"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Izreži"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Osobitosti"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "_Izvor skeniranja:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Rezolucija teksta:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Rezolucija slike"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Stranica skeniranja:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Veličina stranice:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Skenirajte dokumente"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Uređaj za skeniranje"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "SANE uređaj iz kojeg se dobiva slika."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Vrsta dokumenat koji se skenira"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Vrsta dokumenta koji se skenira. Ova postavka određuje razlučivost, boju i "
+"naknadnu obradu."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Širina papira u desetinkama milimetra"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Širina papira u desetinkama milimetra (ili 0 za automatsko prepoznavanje "
+"papira)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Visina papira u desetinkama milimetra"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Visina papira u desetinkama milimetra (ili 0 za automatsko prepoznavanje "
+"papira)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Rezolucija za skeniranje teksta"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+"Rezolucija u točkama po inču za korištenje prilikom skeniranja teksta."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Rezolucija za skeniranje fotografija"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+"Rezolucija u točkama po inču za korištenje prilikom skeniranja slika."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Strana lista za skeniranje"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Strana stranice za skeniranje."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Direktorij za pohranu datoteka"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Direktorij za pohranu datoteka. Ako nije postavljeno, koristi se direktorij "
+"dokumenata."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Nema dostupnih skenera. Molim spojite skener."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Nije moguće povezati se na skener"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Početak skeniranja nije moguć"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Greška pri komunikaciji sa skenerom"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Prikaži inačicu izdanja"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Ispiši poruke ispravljanja grešaka"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Popravi PDF datoteke koje je generirala starija inačica Simple Scana"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Neuspjelo skeniranje"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Skenirani dokument"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[UREĐAJ...] - Alat za skeniranje"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Pokrenite '%s --help' kako biste vidjeli potpunu listu dostupnih mogućnosti "
+"naredbenog retka."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Skenirani dokument.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Korisničko ime i lozinka su potrebni za pristup '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Niti jedan skener nije otkriven"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Molim provjerite je li skener spojen i uključen"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Spremi kao..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Slikovne datoteke"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Sve datoteke"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Odaberite _vrstu datoteke"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (dokument od više stranica)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (komprimirano)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (bez gubitaka)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Neuspjelo pohranjivanje datoteke"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Ako ne spremite, promjene će biti trajno izgubljene."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Pohraniti trenutni dokument?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Odbaci promjene"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Spremanje slike za pretpregled nije uspjelo"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Nije moguće otvoriti program za pregled slike"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Nije moguće otvoriti datoteku pomoći"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "O jednostavnom skeniranju"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Alat za jednostavno skeniranje"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Ante Karamatić https://launchpad.net/~ivoks\n"
+" Launchpad Translations Administrators https://launchpad.net/~rosetta\n"
+" Renato Kalanj https://launchpad.net/~renato-kalanj\n"
+" Saša Teković https://launchpad.net/~hseagle2015\n"
+" Tina Kružić https://launchpad.net/~tina-kruzic\n"
+" jfk- https://launchpad.net/~jfk-\n"
+" student4 https://launchpad.net/~iputnik-msn"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Pohraniti dokument prije prekida rada?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Prekini bez spremanja"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (zadano)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (nacrt)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (visoka rezolucija)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Promjeni _Skener"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatski"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Smjer skeniranja"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Smjer skenera preko skeniranih stranica. Može biti: 's vrha na dno' 's dna "
+#~ "na vrh' 's lijeva na desno \",\" s desna na lijevo \""
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Visina skenirane slike u pikselima"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "ISTINA ako je prozor aplikacije maksimalan"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Visina skenirane slike u pikselima. Ova vrijednost se ažurira na vrijednost "
+#~ "zadnje skenirane stranice."
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Rezolucija zadnje skenirane slike"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Vrsta dokumenata koji se skenira. 'tekst' za tekstualne dokumente, 'slika' "
+#~ "za slike. Ova postavka odlučuje o rezoluciji skeniranja, boji i obradi nakon "
+#~ "skeniranja."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Rezolucija u točkama po inču prethodno skenirane slike."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Širina skenirane slike u pikselima"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Širina skenirane slike u pikselima. Ova vrijednost se ažurira na vrijednost "
+#~ "zadnje skenirane stranice."
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Širina prozora u pikselima"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Pomoćne opcije:\n"
+#~ " -d, --debug Ispiši poruke za debuggiranje\n"
+#~ " -v, --version Prikaži verziju programa\n"
+#~ " -h, --help Prikaži pomoćne opcije\n"
+#~ " --help-all Prikaži sve pomoćne opcije\n"
+#~ " --help-gtk Prikaži GTK+ opcije"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Visina prozora u pikselima"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Upotreba:\n"
+#~ " %s [UREĐAJ...] - Korist skeniranja"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ Opcije:\n"
+#~ " --class=CLASS Klasa programa koju koristi upravitelj prozora\n"
+#~ " --name=NAME Ime programa koji koristi upravitelj prozora\n"
+#~ " --screen=SCREEN X zaslon za korištenje\n"
+#~ " --sync Učinite X pozive sinkroniziranima\n"
+#~ " --gtk-module=MODULES Učitavanje dodatnih GTK+ modula\n"
+#~ " -g-fatal-warnings Učinite sva upozorenja kobnima"
+
+#~ msgid "Files missing"
+#~ msgstr "Nedostaju datoteke"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Molim provjerite vašu instalaciju"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr "Strana lista za skeniranje. Može biti: 'obje' 'prednja' 'stražnja'"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Smjer skenera preko skenirane stranice."
diff --git a/po/hu.po b/po/hu.po
new file mode 100644
index 0000000..0445e2e
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,855 @@
+# Hungarian translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2014-02-18 14:14+0000\n"
+"Last-Translator: Gabor Kelemen <kelemeng@openscope.org>\n"
+"Language-Team: Hungarian <hu@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Felhatalmazás"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Felhasználónév az erőforráshoz:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Jelszó:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Előlap és hátlap"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Előlap"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Hátlap"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Simple Scan"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokumentum"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sz_kennelés"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Egy _oldal"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Minden oldal az _adagolóból"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Szkennelés megállítása"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Szöveg"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Fénykép"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Oldalak újrarendezése"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_E-mail"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Oldal"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Forgatás b_alra"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Forgatás _jobbra"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Vágás"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Nincs vágás"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Egyéni"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "Vágott rész fo_rgatása"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Mozgatás balra"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Mozgatás jobbra"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Súgó"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Tartalom"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Új dokumentum létrehozása"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Új"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Egy oldal szkennelése az eszközről"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Szkennelés"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Dokumentum fájlba mentése"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Mentés"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "A jelenlegi szkennelés leállítása"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Leállít"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Az oldal elforgatása balra (az óra járásával ellentétesen)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Forgatás balra"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Az oldal elforgatása jobbra (az óra járásával egyezően)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Forgatás jobbra"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "A kiválasztott oldal vágása"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Vágás"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Beállítások"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Szkennelés _forrása:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Szöveg felbontása:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Fotó felbontása:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Oldal szkennelése:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Oldalméret:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Fényerő:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Kontraszt:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Minőség:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Dokumentumok szkennelése"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "A szkennelő eszkőz"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Képek beszerzése erről a SANE eszközről"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "A szkennelt dokumentum típusa"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"A szkennelt dokumentum típusa. Ez a beállítás meghatározza a beolvasott "
+"oldal felbontását, színeit és utófeldolgozását."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Papír szélessége tizedmilliméterben"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Papír szélessége tizedmilliméterben (0 az automatikus papírfelismeréshez)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Papír magassága tizedmilliméterben"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Papír magassága tizedmilliméterben (0 az automatikus papírfelismeréshez)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "A beolvasás fényereje"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "A fényerő változtatása -100-tól 100-ig (0=nincs)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "A beolvasás kontrasztja"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "A kontraszt változtatása -100-tól 100-ig (0=nincs)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Szövegek szkennelésének felbontása"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Szövegek szkennelésnél használandó DPI felbontás."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Fotók szkennelésének felbontása"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Fotók szkennelésnél használandó DPI felbontás."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Lapok szkennelendő oldala"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "A lap szkennelendő oldala."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Fájlok mentése ebbe a könyvtárba"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"A fájlok mentésének helye. Alapértelmezésben a Dokumentumok mappa, ha nincs "
+"beállítva."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "A minőségi tényező megadása a JPEG tömörítéshez"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "A minőségi tényező megadása a JPEG tömörítéshez."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Nem található szkenner. Csatlakoztasson egyet."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Nem sikerült csatlakozni a szkennerhez"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Nem sikerült elindítani a szkennelést"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Kommunikációs hiba a szkennerrel"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Verziószám megjelenítése"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Hibakeresési üzenetek kiírása"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "A Simple Scan régebbi verzióival készült PDF fájlok javítása"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "A szkennelés meghiúsult"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Beszkennelt dokumentum"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[ESZKÖZ…] – Szkennelő segédprogram"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Futtassa a(z) „%s --help” parancsot a parancssori kapcsolók listájáért."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Szkennelt dokumentum.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Bezárás"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "A(z) „%s” eléréséhez felhasználónév és jelszó szükséges"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Nem található szkenner"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+"Ellenőrizze, hogy a szkenner csatlakoztatva van, és be van-e kapcsolva"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Mentés másként…"
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Mégse"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Mentés"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Képfájlok"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Minden fájl"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Válasszon fájl_típust"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (többoldalas dokumentum)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (tömörített)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (veszteségmentes)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "A fájl mentése sikertelen"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Ha nem ment, akkor a változtatások véglegesen elvesznek."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Mentse az aktuális dokumentumot?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Módosítások eldobása"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "A képfájlt nem lehet elmenteni előnézethez"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Nem nyitható meg az előnézetet megjelenítő alkalmazás"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr "Oldalak egyesítése"
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr "Oldalak egyesítése (fordított)"
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "Fordított"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Maradjon változatlan"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "A súgófájl nem nyitható meg"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Ez a program szabad szoftver, terjesztheti és/vagy módosíthatja a Free "
+"Software Foundation által kiadott GNU General Public License harmadik (vagy "
+"bármely későbbi) változatában foglaltak alapján.\n"
+"\n"
+"Ezt a programot abban a reményben terjesztjük, hogy hasznos lesz, de nem "
+"vállalunk SEMMIFÉLE GARANCIÁT, még olyan értelemben sem, hogy a program "
+"MEGFELELŐ MINŐSÉGŰ, alkalmas-e a KÖZREADÁSRA, vagy EGY BIZONYOS FELADAT "
+"ELVÉGZÉSÉRE. További részletekért tanulmányozza a GNU GPL licencet.\n"
+"\n"
+"A programhoz a GNU General Public License egy példánya is jár, ha nem kapta "
+"meg, itt elolvashatja: <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Simple Scan névjegye"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Egyszerű dokumentumszkennelés"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Gabor Kelemen https://launchpad.net/~kelemeng\n"
+" Krasznecz Zoltán https://launchpad.net/~krasznecz-zoltan\n"
+" Muszela Balázs https://launchpad.net/~bazsi86-deactivatedaccount\n"
+" Mátyás Demeter https://launchpad.net/~mathias-demeter\n"
+" Papp Bence https://launchpad.net/~sclegnrbs\n"
+" Pittmann Tamás https://launchpad.net/~zaivaldi\n"
+" Péter Trombitás https://launchpad.net/~trombipeti\n"
+" Richard Somlói https://launchpad.net/~ricsipontaz\n"
+" Szávics Dániel https://launchpad.net/~szavics-dani-deactivatedaccount\n"
+" csola48 https://launchpad.net/~mail-csordaslaszlo\n"
+" Úr Balázs https://launchpad.net/~urbalazs"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Menti a dokumentumot kilépés előtt?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Kilépés mentés nélkül"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (alapértelmezett)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (vázlat)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (nagy felbontás)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "Új dokumentum"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Dokumentum"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "E-mail…"
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Nyomtatás…"
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Súgó"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "Névjegy"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Kilépés"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "_Szkennerváltás"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatikus"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Sötétebb"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Világosabb"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Kevesebb"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Több"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimum"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maximum"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Dokumentum mentése..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "%d. oldal mentése, összesen %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Files missing"
+#~ msgstr "Hiányzó fájl"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Használat:\n"
+#~ " %s [ESZKÖZ...] - Szkennelő segédprogram"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Ellenőrizze a telepítést"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ beállításai\n"
+#~ " --class=OSZTÁLY A program osztálya, ahogy az ablakkezelő "
+#~ "használja\n"
+#~ " --name=NÉV A programnév, ahogy az ablakkezelő "
+#~ "használja\n"
+#~ " --display=MEGJELENÍTŐ Használandó X-megjelenítő\n"
+#~ " --screen=KÉPERNYŐ Használandó X-képernyő\n"
+#~ " --sync Legyenek szinkron X-hívások\n"
+#~ " --gtk-module=MODULOK További GTK+ modulok betöltése\n"
+#~ " --g-fatal-warnings Minden figyelmeztetés végzetes legyen"
+
+#~ msgid "Direction of scan"
+#~ msgstr "A szkennelés íránya"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "Igaz, ha az alkalmazás teljes képernyős módban van"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "A szkennelés iránya, a lehetséges értékek a következők: „top-to-bottom” "
+#~ "(fentről lefelé), „bottom-to-top” (lentről felfelé) „left-to-right” (balról "
+#~ "jobbra), „right-to-left” (jobbról balra)"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "A szkennelt dokumentum típusa. „text” a szöveges dokumentumokhoz, „photo” a "
+#~ "fotókhoz. Ez a beállítás határozza meg a szkennelt dokumentum felbontását, "
+#~ "színeit és utófeldolgozását."
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Ablak magassága képpontban"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Ablak szélessége képpontban"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Súgókapcsolók:\n"
+#~ " -d, --debug Hibakeresési üzenetek megjelenítése\n"
+#~ " -v, --version Verziószám megjelenítése\n"
+#~ " -h, --help Súgókapcsolók megjelenítése\n"
+#~ " -help-all Minden súgókapcsoló megjelenítése\n"
+#~ " --help-gtk GTK+ kapcsolók megjelenítése"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "A szkennelt kép magassága képpontban"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "A szkennelt kép szélessége képpontban. Mindig a legutolsó szkennelés "
+#~ "eredményét veszi fel."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "A szkennelt kép magassága képpontban. Mindig a legutolsó szkennelés "
+#~ "eredményét veszi fel."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "A szkennelt kép szélessége képpontban"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Az utoljára beszkennelt kép DPI felbontása."
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Az utoljára beszkennelt kép felbontása"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Lapok szkennelendő oldala. A lehetséges értékek: „both” (mindkettő) „front” "
+#~ "(előlap), „back” (hátlap)"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "A szkennelés iránya a szkennelt lap fölött."
diff --git a/po/hy.po b/po/hy.po
new file mode 100644
index 0000000..0031f6f
--- /dev/null
+++ b/po/hy.po
@@ -0,0 +1,706 @@
+# Armenian translation for simple-scan
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-04-17 06:12+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Armenian <hy@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:30+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr ""
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr ""
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr ""
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr ""
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr ""
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Ետ"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr ""
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr ""
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr ""
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr ""
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr ""
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr ""
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr ""
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr ""
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr ""
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr ""
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr ""
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr ""
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr ""
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr ""
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr ""
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr ""
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr ""
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr ""
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr ""
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr ""
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr ""
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr ""
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr ""
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr ""
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr ""
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr ""
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr ""
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr ""
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr ""
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr ""
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr ""
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr ""
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr ""
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr ""
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr ""
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr ""
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr ""
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr ""
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr ""
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr ""
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr ""
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Serj Safarian https://launchpad.net/~safarian"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr ""
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr ""
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr ""
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
diff --git a/po/id.po b/po/id.po
new file mode 100644
index 0000000..727778c
--- /dev/null
+++ b/po/id.po
@@ -0,0 +1,785 @@
+# Indonesian translation for simple-scan
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2014-01-18 00:43+0000\n"
+"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
+"Language-Team: Indonesian <id@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "Otoris_asikan"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "Nama pengg_una untuk sumber daya:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Sandi:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Depan dan Belakang"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Depan"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Belakang"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Pemindai Ringkas"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokumen"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Pind_ai"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Satu _Halaman"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Semua Halaman Dari _Feeder"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "Berhenti _Memindai"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Teks"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "Sur_el"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Halaman"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr ""
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr ""
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr ""
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Nihil"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4x6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Ubahan"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "Puta_r dan Potong"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Pindah Ke Kiri"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Pindah Ke Kanan"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr ""
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Isi"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr ""
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr ""
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Pindai"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr ""
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr ""
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Putar halaman ke kiri (berlawanan arah jarum jam)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr ""
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Putar halaman ke kanan (searah jarum jam)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr ""
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Preferensi"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "_Sumber Pindai:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "Resolusi _Teks:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "Resolusi _Foto:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr ""
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Kecerahan:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Kontras:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Kualitas:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Pindai Dokumen"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Perangkat untuk memindai"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Perangkat SANE yang dipakai untuk mengambil gambar."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Tipe dokumen yang akan dipindai"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Tipe dokumen yang akan dipindai. Pengaturan ini menentukan resolusi, warna, "
+"dan pasca-proses pemindaian."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Lebar kertas dalam persepuluhan milimeter"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Lebar kertas dalam persepuluhan mm (atau 0 untuk deteksi kertas otomatis)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Panjang kertas dalam persepuluh mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Panjang kertas dalam sepersepuluh mm (atau 0 jika kertas dideteksi otomatis)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Kecerahan pemindaian"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Penyesuaian kecerahan dari -100 ke 100 (0 berarti nihil)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Kontras pemindaian"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Penyesuaian kontras dari -100 ke 100 (0 berarti nihil)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Resolusi untuk pemindaian teks"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Resolusi dalam dots-per-inch yang digunakan dalam pemindaian teks."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Resolusi untuk pemindaian foto"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Resolusi dalam dots-per-inch yang digunakan dalam pemindaian foto."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Sisi halaman yang dipindai"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Sisi halaman yang dipindai."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Simpan berkas ke direktori"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Direktori tempat menyimpan berkas. Akan disimpan ke direktori dokumen jika "
+"belum diset."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Nilai kualitas yang akan dipakai untuk kompresi JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Nilai kualitas yang akan dipakai untuk kompresi JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Tidak ada pemindai yang tersedia. Mohon hubungkan pemindai."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Tak dapat terhubung ke pemindai"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Tak dapat memulai pemindaian"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Galat saat berhubungan dengan pemindai"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Tampilkan versi rilis"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Cetak pesan pengawakutuan"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Perbaiki berkas PDF yang dibuat dengan Simple Scan versi lawas"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Gagal memindai"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Dokumen Terpindai"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[PERANGKAT...] - Utilitas pemindaian"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr "Jalankan '%s --help' untuk daftar lengkap opsi yang tersedia."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Dokumen Hasil Pindai.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Tutup"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Nama pengguna dan kata sandi dibutuhkan untuk mengakses '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Tidak ada pemindai yang terdeteksi"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+"Mohon periksa apakah pemindai Anda terhubung dan dalam keadaan menyala"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Simpan Sebagai..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Batal"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Simpan"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Berkas Citra"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Semua Berkas"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Pilih _Tipe Berkas"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (dokumen multi-halaman)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (terkompresi)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (lossless)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Gagal menyimpan berkas"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Jika Anda tidak menyimpan, perubahan akan hilang secara permanen."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Simpan dokumen saat ini?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Buang Perubahan"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Tak dapat menyimpan gambar untuk pratinjau"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Tidak dapat membuka aplikasi pratinjau gambar"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Tak dapat membuka berkas bantuan"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Program ini adalah perangkat lunak bebas: anda dapat mendistribusikan\n"
+"kembali dan/atau memodifikasinya dibawah termsdari GNU General \n"
+"Public License sebagaimana dipublikasi oleh Free Software Foundation,\n"
+"baik lisensi versi 3 maupun (sesuai pilihan anda) versi yang lain.\n"
+"Program ini didistribusikan dengan harapan akan menjadi berguna,\n"
+"namun TANPA PEMBENARAN; bahkan tanpa pembenaran tersirat untuk\n"
+" DIPERDAGANGKAN atau KESESUAIAN UNTUK TUJUAN TERTENTU. lihat\n"
+"GNU General Public License untuk detail selengkapnya.\n"
+"\n"
+"Anda seharusnya mendapat salinan GNU General Public License\n"
+"bersama program ini. Bila tidak, lihat <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Tentang Simple Scan"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Alat pemindai dokumen sederhana"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Abdul Munif Hanafi https://launchpad.net/~nafica-coroz\n"
+" Andika Triwidada https://launchpad.net/~andika\n"
+" Arief Setiadi Wibowo https://launchpad.net/~q-thrynx\n"
+" Budi Prasetyo https://launchpad.net/~bprast1\n"
+" Hace https://launchpad.net/~hardikris\n"
+" La Ode Adam Saputra https://launchpad.net/~laode-saputra\n"
+" Launchpad Translations Administrators https://launchpad.net/~rosetta\n"
+" Putu Wiramaswara Widya https://launchpad.net/~wiramaswara\n"
+" Rahman Yusri Aftian https://launchpad.net/~aftian\n"
+" Trisno Pamuji https://launchpad.net/~tri.snowman\n"
+" Viktor Aditya https://launchpad.net/~victoraditya91\n"
+" Waluyo Adi Siswanto https://launchpad.net/~was-wlk\n"
+" idham khaidir https://launchpad.net/~kenzoabeta\n"
+" imsoft https://launchpad.net/~khoirul-im\n"
+" jemmy surya https://launchpad.net/~jemmy"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Simpan dokumen sebelum keluar"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Keluar tanpa menyimpan"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (default)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (draft)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (resolusi tinggi)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Ganti _Pemindai"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Otomatis"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Lebih Gelap"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Lebih Terang"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Kurang"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Lebih"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimum"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maksimum"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Menyimpan dokumen..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Menyimpan halaman %d dari %d"
+
+#~ msgid "Files missing"
+#~ msgstr "Berkas hilang"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Resolusi pemindaian terakhir"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Arah pemindaian"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Arah pemindaian terhadap halaman yang dipindai."
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE jika jendela aplikasi dimaksimalkan"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Resolusi dalam dots-per-inch dari gambar sebelumnya."
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Tinggi jendela dalam piksel"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Lebar jendela dalam piksel"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Tinggi gambar terpindai dalam piksel"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Lebar gambar terpindai dalam piksel. Nilai ini diupdate sesuai halaman "
+#~ "terakhir yang pernah dipindai."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Tinggi gambar terpindai dalam piksel. Nilai ini diupdate sesuai halaman "
+#~ "terakhir yang pernah dipindai."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Lebar gambar terpindai dalam piksel"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Mohon periksa instalasi Anda"
diff --git a/po/it.po b/po/it.po
new file mode 100644
index 0000000..fb1892a
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,873 @@
+# Italian translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-08-22 07:09+0000\n"
+"Last-Translator: Leonardo Corato <leocor@gmail.com>\n"
+"Language-Team: Italian <it@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autorizza"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Nome utente per la risorsa:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "Pass_word:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Fronte e retro"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Fronte"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Retro"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Simple Scan"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Documento"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "_Acquisisci"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_Pagina singola"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "_Tutte le pagine dal caricatore"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "Ferma l'acqui_sizione"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Testo"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Riordina pagine"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Email"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Pagina"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Ruota a _sinistra"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Ruota a _destra"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Ritaglio"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Nessuno"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "US _Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Personalizzato"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Ruota ritaglio"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Sposta a sinistra"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Sposta a destra"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "A_iuto"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Sommario"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Crea un nuovo documento"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Nuovo"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Acquisisce una pagina singola dallo scanner"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Acquisisci"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Salva documento in un file"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Salva"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Interrompe l'acquisizione in corso"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Ferma"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Ruota la pagina a sinistra (senso antiorario)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Ruota a sinistra"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Ruota la pagina a destra (senso orario)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Ruota a destra"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Ritaglia la pagina selezionata"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Ritaglia"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Preferenze"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "S_orgente di acquisizione:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "Risoluzione _testo:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Risoluzione foto:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Lato acquisizione:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Dimensione pagina:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Luminosità:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Contrasto:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Qualità:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Acquisisci documenti"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Dispositivo di acquisizione"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Dispositivo SANE da cui acquisire le immagini."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Tipo del documento da acquisire"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Tipo del documento da acquisire. Questa impostazione influenza la "
+"risoluzione, il numero dei colori e l'elaborazione successiva "
+"all'acquisizione."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Larghezza del foglio in decimi di mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"L'altezza del foglio in decimi di mm (0 per il rilevamento automatico)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Altezza del foglio in decimi di mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Altezza del foglio in decimi di mm (0 per il rilevamento automatico)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Luminosità dell'acquisizione"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+"La regolazione della luminosità da -100 a 100 (0 per alcuna luminosità)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Contrasto dell'acquisizione"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "La regolazione del contrasto da -100 a 100 (0 per alcun contrasto)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Risoluzione per acquisizione testo"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+"La risoluzione in punti per pollice da usare per l'acquisizione di testi."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Risoluzione per acquisizione foto"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+"La risoluzione in punti per pollice da usare per l'acquisizione di foto."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Lato della pagina da acquisire"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Lato della pagina da acquisire."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Directory dove salvare i file"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"La directory dove salvare i file. Il valore predefinito è la directory dei "
+"documenti."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Indica il valore della qualità per la compressione JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Indica il valore della qualità per la compressione JPEG"
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Nessuno scanner disponibile. Collegare uno scanner."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Impossibile connettersi allo scanner"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Impossibile avviare l'acquisizione"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Errore di comunicazione con lo scanner"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Mostra la versione del rilascio"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Stampa i messaggi di debug"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Corregge file PDF generati con una vecchia versione di Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Acquisizione non riuscita"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Documento acquisito"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DISPOSITIVO...] - Strumento per l'acquisizione"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Eseguire \"%s --help\" per l'elenco completo delle opzioni disponibili a "
+"riga di comando."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Documento-acquisito.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Chiudi"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Sono richiesti nome utente e password per accedere a «%s»"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Nessuno scanner rilevato"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Controllare che lo scanner sia collegato e acceso"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Salva come..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "A_nnulla"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Salva"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "File immagine"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Tutti i file"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Seziona il _tipo di file"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (documento multi-pagina)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (compresso)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (senza perdita di qualità)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Salvataggio file non riuscito"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Se non si salva le modifiche andranno perse per sempre."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Salvare il documento corrente?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Scarta le modifiche"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Impossibile salvare l'immagine per l'anteprima"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+"Impossibile aprire l'applicazione per la visualizzazione delle anteprime"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr "Unisci lati"
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr "Unisci lati (inverso)"
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "Inverso"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Mantieni non modificato"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Impossibile aprire il file di aiuto"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Questo programma è software libero; è possibile ridistribuirlo e/o "
+"modificarlo\n"
+"secondo i termini della licenza GNU General Public License, come pubblicata\n"
+"dalla Free Software Foundation; versione 2 della Licenza, o (a scelta) una\n"
+"versione più recente.\n"
+"\n"
+"Questo programma è distribuito nella speranza che possa risultare utile,\n"
+"ma SENZA ALCUNA GARANZIA, nemmeno la garanzia implicita di \n"
+"COMMERCIABILITÀ o APPLICABILITÀ PER UNO SCOPO PARTICOLARE. Per\n"
+"maggiori dettagli consultare la GNU General Public License.\n"
+"\n"
+"La traduzione in Italiano di questa licenza è solo a fini informativi. Per "
+"la licenza in Inglese con validità legale consultate "
+"<http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Informazioni su Simple Scan"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Semplice strumento per l'acquisizione di documenti"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Alberto https://launchpad.net/~pajeronda\n"
+" Alessio Treglia https://launchpad.net/~quadrispro\n"
+" Claudio Arseni https://launchpad.net/~claudio.arseni\n"
+" DM74S https://launchpad.net/~danielsan474\n"
+" Daniele Napolitano https://launchpad.net/~dnax88\n"
+" Daniele Sapino https://launchpad.net/~daniele-sapino\n"
+" Federico Foschini https://launchpad.net/~undicizeri\n"
+" Federico Pontelli https://launchpad.net/~fpontelli\n"
+" Giasone https://launchpad.net/~giasone\n"
+" Giovanni Mottola https://launchpad.net/~trottola-deactivatedaccount\n"
+" Leonardo Corato https://launchpad.net/~leocor\n"
+" Luca Reverberi https://launchpad.net/~socketreve\n"
+" Marco Lazzaroni https://launchpad.net/~marcolazzaroni\n"
+" Milo Casagrande https://launchpad.net/~milo\n"
+" Paolo Sammicheli https://launchpad.net/~xdatap1\n"
+" Sergio Santoro https://launchpad.net/~tauer92\n"
+" Vincenzo Ninni https://launchpad.net/~wampon\n"
+" alexinfurs https://launchpad.net/~alexinfurs\n"
+" lory https://launchpad.net/~lorenzo-themax\n"
+" matrobriva https://launchpad.net/~matrobriva\n"
+" phede92 https://launchpad.net/~phede92"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Salvare il documento prima di uscire?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Esci senza salvare"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (predefinita)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (bozza)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (alta risoluzione)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "Nuovo documento"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Documento"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "Email..."
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Stampa..."
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Aiuto"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "Informazioni"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Esci"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Cambia _scanner"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatico"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Più scura"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Più chiara"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Minore"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Maggiore"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minima"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Massima"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Salvataggio del documento..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Salvataggio pagina %d di %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Files missing"
+#~ msgstr "File mancanti"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Altezza della finestra in pixel"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Larghezza della finestra in pixel"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Altezza dell'immagine acquisita in pixel"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Direzione dell'acquisizione"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Risoluzione dell'ultima immagine acquisita"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Larghezza dell'immagine acquisita in pixel"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Larghezza dell'immagine acquisita in pixel. Questo valore è aggiornato "
+#~ "all'ultima acquisizione."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Altezza dell'immagine acquisita in pixel. Questo valore è aggiornato "
+#~ "all'ultima acquisizione."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr ""
+#~ "La risoluzione in punti per pollice del documento precedentemente acquisito."
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "VERO se la finestra dell'applicazione è massimizzata"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "La direzione di acquisizione. Può essere uno dei seguenti valori: \"top-to-"
+#~ "bottom\" (dall'alto in basso), \"bottom-to-top\" (dal basso in alto), \"left-"
+#~ "to-right\" (da sinistra a destra), \"right-to-left\" (da destra a sinistra)"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Uso:\n"
+#~ " %s [DISPOSITIVO...] - Strumento di acquisizione"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Opzioni d'aiuto:\n"
+#~ " -d, --debug Visualizza i messaggi di debug\n"
+#~ " -v, --version Mostra la versione in uso\n"
+#~ " -h, --help Mostra il menù di aiuto\n"
+#~ " --help-all Mostra il menù di aiuto completo\n"
+#~ " --help-gtk Mostra le opzioni di GTK+"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Opzioni GTK+:\n"
+#~ " --class=CLASS Classe del programma utilizzata dal "
+#~ "gestore di finestre\n"
+#~ " --name=NAME Nome del programma utilizzato dal gestore "
+#~ "di finestre\n"
+#~ " --screen=SCREEN Screen X da utilizzare\n"
+#~ " --sync Rende le chiamate a X sincrone\n"
+#~ " --gtk-module=MODULES Carica moduli GTK+ aggiuntivi\n"
+#~ " --g-fatal-warnings Rende fatali tutti gli avvertimenti"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Verificare l'installazione"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "I lati della pagina da acquisire. Può essere uno dei seguenti: \"entrambi\" "
+#~ "\"fronte\" \"retro\""
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Tipo di documento da acquisire. \"text\" per documenti di testo, \"photo\" "
+#~ "per fotografie. Questa impostazione influenza la risoluzione "
+#~ "dell'acquisizione, le impostazioni di colore e la post-produzione."
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "La direzione dell'acquisizione lungo la pagina."
diff --git a/po/ja.po b/po/ja.po
new file mode 100644
index 0000000..bfcfebb
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,768 @@
+# Japanese translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 09:03+0000\n"
+"Last-Translator: Shushi Kurose <md81bird@hitaki.net>\n"
+"Language-Team: Japanese <ja@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "認証(_A)"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "リソースに対するユーザ名(_U):"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "パスワード(_P):"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "表面と裏面"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "表面"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "戻る"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "シンプルスキャン"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "ドキュメント(_D)"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "スキャン(_A)"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "一枚のページ(_P)"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "フィーダより全てのページ(_F)"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "スキャン停止(_S)"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "テキスト"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "写真"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "電子メール(_E)"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "ページ(_P)"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "左へ回転(_L)"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "右へ回転(_R)"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "切り抜き(_C)"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "なし(_N)"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "US レター(_L)"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "US リーガル(_G)"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "カスタム(_C)"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "切り抜きを回転(_R)"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "ヘルプ(_H)"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "コンテンツ(_C)"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "新規ドキュメントの作成"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "新規"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "一枚のページをスキャンします"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "スキャン"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "ドキュメントをファイルに保存"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "保存"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "スキャンを停止します"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "停止"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "ページを左回転 (反時計回り)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "左へ回転"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "ページを右回転 (時計回り)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "右へ回転"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "選択した範囲の切り抜き"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "切り抜き"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "設定"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "スキャンする対象(_O):"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "テキストの画素数(_T):"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "写真の画素数(_P):"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "スキャン面:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "ページサイズ:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "明るさ:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "コントラスト:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "品質:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "ドキュメントをスキャンします"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "スキャンするデバイス"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "画像を取得する SANE デバイスです。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "スキャンするドキュメントの種類"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr "スキャンされる文書の種類。この設定により、画像の解像度、色の深度、事後処理が決定されます。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "10mm単位での紙の幅"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "10mm単位の用紙の高さ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr "10mm単位の紙の高さ (または 0 で自動紙検知)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "スキャンの明るさ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "-100から100までの範囲で明るさを調節する (0は無調整)。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "スキャンのコントラスト"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "-100から100までの範囲でコントラストを調節する (0は無調整)。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "テキストスキャンの解像度"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "テキストをスキャンするときの解像度(DPI)です。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "写真スキャンの解像度"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "写真をスキャンするときの解像度(DPI)です。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "スキャンする面"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "スキャンされる面"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "ファイルを保存するディレクトリ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr "ファイルを保存するディレクトリです。設定されていない場合、標準でドキュメントディレクトリに保存されます。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "JPEGの圧縮に使用する品質の値"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "JPEGの圧縮に使用する品質の値です。"
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "利用可能なスキャナがありません。スキャナを接続してください。"
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "スキャナに接続できません"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "スキャンを開始できません"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "スキャナとの通信に失敗しました"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "リリースバージョンを表示"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "デバッグメッセージを表示"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "古いバージョンの Simple Scan によって生成されたPDFファイルを修復する"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "スキャンに失敗しました"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr ""
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[デバイス...] - スキャンユーティリティ"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr "'%s --help' を実行すると利用可能なすべてのコマンドラインオプションの一覧が表示されます"
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "スキャンされたドキュメント.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "閉じる(_C)"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "'%s' にアクセスするにはユーザ名とパスワードが必要です"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "スキャナが検出されていません"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "スキャナが接続されて電源が入っているか確認してください"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "名前を付けて保存..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "キャンセル(_C)"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "保存(_S)"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr ""
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "ファイルの保存に失敗しました"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr ""
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "プレビュー用の画像を保存できません"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Simple Scan について"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "ドキュメントのスキャンを行うシンプルなツールです"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Akira Tanaka https://launchpad.net/~akira-tanaka\n"
+" Hajime Mizuno https://launchpad.net/~mizuno-as\n"
+" Jeroen Hoek https://launchpad.net/~mail-jeroenhoek\n"
+" Jun Kobayashi https://launchpad.net/~jkbys\n"
+" Kenichi Ito https://launchpad.net/~ken-i54k\n"
+" Kentaro Kazuhama https://launchpad.net/~kazken3\n"
+" Koichi Akabe https://launchpad.net/~vbkaisetsu\n"
+" MANABE Akinari https://launchpad.net/~maaanaari\n"
+" Shushi Kurose https://launchpad.net/~kuromabo\n"
+" Tosiki Iga https://launchpad.net/~tosiki-iga"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr ""
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "スキャナを変更(_S)"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr ""
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "暗く"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "明るく"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "弱く"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "強く"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "最小"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "最大"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "ドキュメントを保存しています..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "%2$dページ中%1$dページを保存しています"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Files missing"
+#~ msgstr "ファイルが見つかりません"
+
+#~ msgid "Please check your installation"
+#~ msgstr "インストールされているか確認してください"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "使い方:\n"
+#~ " %s [DEVICE...] - スキャンニング装置"
+
+#~ msgid "Direction of scan"
+#~ msgstr "スキャン方向"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "スキャンされる画像の高さ(ピクセル)"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr "スキャンする面のことです。次のうちから 1 つ選択できます: '両面' '表面' '裏面'"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr "ピクセル単位のスキャンされたイメージの高さです。この値は最後にスキャンしたページのものに更新されます。"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "アプリケーションのウィンドウを最大化するには TRUE にします"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "最後にスキャンした画像の解像度"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "ウィンドウの高さ(ピクセル)"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "ウィンドウの幅(ピクセル)"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "前にスキャンした画像の解像度(DPI)です。"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "スキャン画像の幅(ピクセル)"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "スキャナの走査方向"
diff --git a/po/kk.po b/po/kk.po
new file mode 100644
index 0000000..38836f6
--- /dev/null
+++ b/po/kk.po
@@ -0,0 +1,707 @@
+# Kazakh translation for simple-scan
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-04-17 06:12+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Kazakh <kk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr ""
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr ""
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Құпия сөз:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr ""
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Бет жағы"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Сырты"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr ""
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr ""
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr ""
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr ""
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr ""
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Мәтін"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Фото"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr ""
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr ""
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "_Солға бұру"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "_Оңға бұру"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "Қ_иып жіберу"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Ешнәрсе"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr ""
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr ""
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr ""
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr ""
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr ""
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr ""
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr ""
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Көмек"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "Құра_масы"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Жаңа"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr ""
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Іздеу"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Сақтау"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Тоқтау"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Солға бұру"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Оңға бұру"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Қиып жіберу"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Баптаулары"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr ""
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr ""
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr ""
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr ""
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr ""
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr ""
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr ""
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr ""
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr ""
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr ""
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Қалайша сақтау..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Бүкіл файлдар"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Сақтамасаңыз, өзгерістер қайтпастай жоғалады."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Өзгерістерді ысырып тастау"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr ""
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Көмек ақпараты файлын ашу мүмкін емес"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr ""
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr ""
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" arruah https://launchpad.net/~arruah\n"
+" jmb_kz https://launchpad.net/~jmb-kz"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr ""
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr ""
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Авто"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
diff --git a/po/km.po b/po/km.po
new file mode 100644
index 0000000..1dc9517
--- /dev/null
+++ b/po/km.po
@@ -0,0 +1,790 @@
+# Khmer translation for simple-scan
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-04-17 06:12+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Khmer <km@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "ការ​អនុញ្ញាត"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "ឈ្មោះ​អ្នកប្រើ​ធនធាន ៖"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "ពាក្យសម្ងាត់ ៖"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "មុខ នឹង​ក្រោយ"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "មុខ"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "ថយក្រោយ"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "ស្កេន​ធម្មតា"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "ឯកសារ"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "ស្កេន"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "ទំព័រ​ម្ខាង"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "ទំព័រ​ទាំងអស់​ពី​កម្មវិធី​មតិ"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "ឈប់​ស្កេន"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "អត្ថបទ"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "រូបថត"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "អ៊ីមែល"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "ទំព័រ"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "បង្វិល​ឆ្វេង"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "បង្វិល​ស្ដាំ"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "ច្រឹប"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "គ្មាន"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "សំបុត្រ"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "ស្រប​ច្បាប់"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "ផ្ទាល់ខ្លួន"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "បង្វិល​ការ​ច្រឹប"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "ផ្លាស់ទី​ទៅ​ឆ្វេង"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "ផ្លាស់ទី​ទៅ​ស្ដាំ"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "ជំនួយ"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "មាតិកា"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "ចាប់ផ្ដើម​ឯកសារ​ថ្មី"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "ថ្មី"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "ស្កេន​ទំព័រ​ទោល​ពី​ម៉ាស៊ីន​ស្កេន"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "ស្កេន"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "រក្សាទុក​ឯកសារ​ទៅ​ឯកសារ"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "រក្សាទុក"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "បញ្ឈប់​ការ​ស្កេន​បច្ចុប្បន្ន"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "ឈប់"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "បង្វិល​ទំព័រ​ទៅ​ឆ្វេង (ច្រាស​ទ្រនិច​នាឡិកា)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "បង្វិល​ឆ្វេង"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "បង្វិល​ទំព័រ​ទៅ​ស្ដាំ (ស្រប​ទ្រនិច​នាឡិកា)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "បង្វិល​ស្ដាំ"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "ច្រឹប​ទំព័រ​ដែល​បាន​ជ្រើស"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "ច្រឹប"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "ចំណូលចិត្ត"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "ស្កេន​ប្រភព ៖"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "គុណភាព​បង្ហាញ​អត្ថបទ ៖"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "គុណភាព​បង្ហាញ​រូបថត ៖"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "ស្កេន​ចំហៀង ៖"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "ទំហំ​ទំព័រ ៖"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "ពន្លឺ ៖"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "កម្រិត​ពណ៌ ៖"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "គុណភាព ៖"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "ស្កេន​ឯកសារ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "ឧបករណ៍​ដែល​ត្រូវ​ស្កេន"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "ឧបករណ៍ SANE ដើម្បី​ទៅ​យក​រូបភាព ។"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "ប្រភេទ​ឯកសារ​ដែល​កំពុង​ត្រូវ​បាន​ស្កេន"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"ប្រភេទ​ឯកសារ​ដែល​កំពុង​ត្រូវ​បាន​ស្កេន ។ "
+"ការ​កំណត់​នេះ​អាស្រ័យ​ទៅលើ​គុណភាព​បង្ហាញ ពណ៌ "
+"និង​ការ​ដំណើរការ​ជាមុន​របស់​ម៉ាស៊ីន​ស្កេន ។"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "ទទឹង​ក្រដាស ១/១០ ម.ម"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr "ទទឹង​ក្រដាស ១/១០ ម.ម. (ឬ ០ សម្រាប់​ទិស​ក្រដាស​ស្វ័យប្រវត្តិ) ។"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "កម្ពស់​ក្រដាស ១/១០ ម.ម."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr "កម្ពស់​ក្រដាស ១/១០ ម.ម. (ឬ ០ សម្រាប់​ទិស​ក្រដាស​ស្វ័យប្រវត្តិ) ។"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "ពន្លឺ​វិភាគ​រក"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "ការ​កែតម្រូវ​ពន្លឺ​ពី -១០០ ដល់ ១០០ (០ នឹង​គ្មាន)។"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "កម្រិត​ពណ៌​វិភាគរក"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "ការ​កែតម្រូវ​កម្រិត​ពណ៌​ពី -១០០ ដល់ ១០០ (០ នឹង​គ្មាន)។"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "គុណភាព​បង្ហាញ​សម្រាប់​ការ​ស្កេន​អត្ថបទ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+"គុណភាព​បង្ហាញ​គិតជា​ចំណុច​ក្នុង​មួយ​អ៊ិន្ឈ៍ "
+"ដែល​ត្រូវ​ប្រើ​នៅ​ពេល​ស្កេន​អត្ថបទ ។"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "គុណភាព​បង្ហាញ​សម្រាប់​ការ​ស្កេន​រូបថត"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+"គុណភាព​បង្ហាញ​គិតជា​ចំណុច​ក្នុង​មួយ​អ៊ិន្ឈ៍ "
+"ដែល​ត្រូវ​ប្រើ​នៅ​ពេល​ស្កេន​រូបថត ។"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "ចំហៀង​ទំព័រ​ដែល​ត្រូវ​ស្កេន"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "ចំហៀង​ទំព័រ​ដែល​ត្រូវ​ស្កេន ។"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "ថត​ដែល​ត្រូវ​រក្សាទុក​ឯកសារ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"ថត​ដែល​ត្រូវ​រក្សាទុក​ឯកសារ ។ "
+"លំនាំដើម​ទៅកាន់​ថត​ឯកសារ​ប្រសិនបើ​មិន​បាន​កំណត់ ។"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "តម្លៃ​គុណភាព​​ប្រើ​សម្រាប់ JPEG compression"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "តម្លៃ​គុណភាព​ប្រើ​សម្រាប់ JPEG compression ។"
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "ពុំ​មាន​ម៉ាស៊ីន​ស្កេន​ទេ សូម​តភ្ជាប់​ម៉ាស៊ីន​ស្កេន ។"
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "មិន​អាច​តភ្ជាប់​ម៉ាស៊ីន​ស្កេន​បាន​ទេ"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "មិន​អាច​ចាប់ផ្ដើម​ស្កេន​បាន​ទេ"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "កំហុស​ក្នុង​ការ​ទាក់ទង​ទៅកាន់​ម៉ាស៊ីន​ស្កេន"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "បង្ហាញ​កំណែ​ការ​ចេញផ្សាយ"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "បោះពុម្ព​សារ​បំបាត់​កំហុស"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"ជួសជុល​ឯកសារ PDF ដែល​បាន​បង្កើត​ជាមួយ​កំណែ​ចាស់​របស់​ម៉ាស៊ីន​ស្កេន​ធម្មតា"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "បាន​បរាជ័យ​ក្នុង​ការ​ស្កេន"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "ឯកសារ​ដែល​បាន​ស្កេន"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[ឧបករណ៍...] - ការ​ស្កេន​ឧបករណ៍​ប្រើប្រាស់"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"ដំណើរការ '%s --help' ដើម្បី​មើល​បញ្ជី​ពេញលេញ​នៃ​បន្ទាត់​បញ្ជា​ដែល​មាន ។"
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Document.pdf ដែល​បាន​ស្កេន"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "បិទ"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "ទាមទារ​ឈ្មោះ​អ្នកប្រើ និង​ពាក្យសម្ងាត់​ដើម្បី​ចូលដំណើរការ '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "រក​មិន​ឃើញ​ម៉ាស៊ីន​ស្កេន"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+"សូម​ពិនិត្យមើល​ម៉ាស៊ីន​ស្កេន​របស់​អ្នក​ថា​តើ​បាន​តភ្ជាប់ "
+"និង​បើក​កុងតាក់​ហើយ​ឬនៅ"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "រក្សាទុក​ជា..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "បោះបង់"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "រក្សាទុក"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "ឯកសារ​រូបភាព"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "ឯកសារ​ទាំងអស់"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "ជ្រើស​ប្រភេទ​ឯកសារ"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (ឯកសារ​ច្រើន​ទំព័រ)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (បាន​បង្ហាប់)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (គ្មាន​ការ​បាត់បង់)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "បាន​បរាជ័យ​ក្នុង​ការ​រក្សាទុក​ឯកសារ"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+"ប្រសិនបើ​អ្នក​មិន​រក្សាទុក​ទេ "
+"ការ​ផ្លាស់ប្ដូរ​ទាំងឡាយ​និង​ត្រូវ​បាន​បាត់បង់​ជា​អចិន្ត្រៃយ៍ ។"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "រក្សាទុក​ឯកសារ​បច្ចុប្បន្ន ?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "បោះបង់​ការ​ផ្លាស់ប្ដូរ"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "មិន​អាច​រក្សាទុក​រូបភាព​សម្រាប់​ការ​មើល​ជាមុន​បាន​ទេ"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "មិន​អាច​បើក​កម្មវិធី​មើល​រូបភាព​ជាមុន​បាន​ទេ"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "បញ្ច្រាស"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "មិន​អាច​បើក​ឯកសារ​ជំនួយ​បាន​ទេ"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"នេះ​ជា​កម្មវិធី​ឥត​បង់​ថ្លៃ ៖ អ្នក​អាច​ចែកចាយ និង/ឬ​កែប្រែ​វា​បាន\n"
+"ក្រោម​លក្ខខណ្ឌ​អាជ្ញាប័ណ្ណ​សាធារណៈ​ទូទៅ GNU ដែល​បាន​ចេញផ្សាយ​ដោយ\n"
+"មូលនិធិ​កម្មវិធី​ឥត​បង់​ថ្លៃ ទាំង​អាជ្ញាប័ណ្ណ​កំណែ ៣ ឬ\n"
+"(នៅ​ជម្រើស​របស់​អ្នក) កំណែ​ក្រោយ​ទៀត​ក៏ដោយ ។\n"
+"\n"
+"កម្មវិធី​នេះ​ត្រូវ​បាន​ចែកចាយ​ដោយ​សង្ឃឹម​ថា​នឹង​មាន​ប្រយោជន៍\n"
+"ប៉ុន្តែ​ដោយ​គ្មាន​ការ​ធានា​ណាមួយ​ទេ សូម្បីតែ​ការ​ធានា​ដែល​បាន​បញ្ជាក់​ដោយ\n"
+"ការ​ធ្វើ​ជំនួញ ឬ​ភាព​សមរម្យ​សម្រាប់​គោលបំណង​ជាក់លាក់​ក៏ដោយ ។ សូម​មើល\n"
+"អាជ្ញាប័ណ្ណ​សាធារណៈ​ទូទៅ GNU សម្រាប់​សេចក្ដី​លម្អិត ។\n"
+"\n"
+"អ្នក​គួរតែ​បាន​ទទួល​ច្បាប់​ចម្លង​នៃ​អាជ្ញាប័ណ្ណ​សាធារណៈ​ទូទៅ GNU\n"
+"ជាមួយ​កម្មវិធី​នេះ ។ ប្រសិនបើ​មិន​បាន​ទទួល​ទេ "
+"សូម​មើល<http://www.gnu.org/licenses/> ។"
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "អំពី​ការ​ស្កេន​ធម្មតា"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "ឧបករណ៍​ស្កេន​ធម្មតា"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" KL https://launchpad.net/~sumoisrock\n"
+" Khoem Sokhem https://launchpad.net/~khoemsokhem\n"
+" Noy Shoung https://launchpad.net/~noyshoung\n"
+" Seng Sutha https://launchpad.net/~sutha"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "រក្សាទុក​ឯកសារ​មុន​ពេល​បិទ​ឬ ?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "បិទ​ដោយ​មិន​រក្សាទុក"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (លំនាំដើម)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (ពង្រាង)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (គុណភាព​បង្ហាញ​ខ្ពស់)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "ឯកសារ​ថ្មី"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "ឯកសារ"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "បោះពុម្ព..."
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "ជំនួយ​"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "អំពី"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "ចេញ"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "ប្ដូរ​ម៉ាស៊ីន​ស្កេន"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "ស្វ័យប្រវត្តិ"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "ងងឹត"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "ស្រាល"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "តិចជាង"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "ផ្សេងទៀត"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "អប្បបរមា"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "អតិបរមា"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "កំពុង​រក្សាទុក​ឯកសារ..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "រក្សាទុក​ទំព័រ %d ផុត​សម័យ %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "ទទឹង​បង្អួច​គិតជា​ភិកសែល"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "កម្ពស់​បង្អួច​គិតជា​ភិកសែល"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "ពិត​ប្រសិនបើ​បង្អួច​កម្មវិធី​ត្រូវ​បាន​បង្រួម​អតិបរមា"
+
+#~ msgid "Direction of scan"
+#~ msgstr "ទិស​នៃ​ការ​ស្កេន"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "ទិស​ម៉ាស៊ីន​ស្កេន​កាត់តាម​ទំព័រ​ដែល​បាន​ស្កេន ។"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "ទទឹង​រូបភាព​ដែល​បាន​ស្កេន​គិតជា​ភីកសែល"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "ទទឹង​រូបភាព​ដែល​បាន​ស្កេន​គិតជា​ភីកសែល ។ "
+#~ "តម្លៃ​នេះ​ត្រូវ​បាន​ធ្វើ​បច្ចុប្បន្នភាព​ទៅកាន់​អ្វី​ដែល​ជា​ទំព័រ​ស្កេន​ចុងក្រ"
+#~ "ោយ ។"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "កម្ពស់​រូបភាព​ដែល​បាន​ស្កេន​គិតជា​ភីកសែល"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "កម្ពស់​រូបភាព​ដែល​បាន​ស្កេន​គិតជា​ភីកសែល ។ "
+#~ "តម្លៃ​នេះ​ត្រូវ​បាន​ធ្វើ​បច្ចុប្បន្នភាព​ទៅកាន់​អ្វី​ដែល​ជា​ទំព័រ​ស្កេន​ចុងក្រ"
+#~ "ោយ ។"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "គុណភាព​បង្ហាញ​សម្រាប់​រូបភាព​ដែល​បាន​ស្កេន​ចុងក្រោយ"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr ""
+#~ "គុណភាព​បង្ហាញ​គិតជា​ចំណុច​ក្នុង​មួយ​អ៊ិន្ឈ៍ នៃ​រូបភាព​ដែល​បាន​ស្កេន​មុន ។"
+
+#~ msgid "Files missing"
+#~ msgstr "បាត់​ឯកសារ"
+
+#~ msgid "Please check your installation"
+#~ msgstr "សូម​ពិនិត្យមើល​ការ​ដំឡើង​របស់​អ្នក"
diff --git a/po/ky.po b/po/ky.po
new file mode 100644
index 0000000..d0eda3d
--- /dev/null
+++ b/po/ky.po
@@ -0,0 +1,706 @@
+# Kirghiz translation for simple-scan
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-04-17 06:12+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Kirghiz <ky@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr ""
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr ""
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr ""
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr ""
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr ""
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr ""
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr ""
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr ""
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr ""
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr ""
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr ""
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr ""
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr ""
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr ""
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr ""
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr ""
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr ""
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr ""
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr ""
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr ""
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr ""
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr ""
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr ""
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr ""
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr ""
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr ""
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr ""
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr ""
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr ""
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr ""
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr ""
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr ""
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr ""
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr ""
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr ""
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr ""
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr ""
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr ""
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr ""
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr ""
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr ""
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr ""
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr ""
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr ""
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr ""
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr ""
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr ""
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr ""
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr ""
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr ""
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Saltanat Osmonova https://launchpad.net/~salta007"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr ""
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr ""
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr ""
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
diff --git a/po/lt.po b/po/lt.po
new file mode 100644
index 0000000..f582b62
--- /dev/null
+++ b/po/lt.po
@@ -0,0 +1,720 @@
+# Lithuanian translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 09:03+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Lithuanian <lt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr ""
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr ""
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr ""
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr ""
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr ""
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr ""
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr ""
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr ""
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr ""
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr ""
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr ""
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr ""
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr ""
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr ""
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr ""
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr ""
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr ""
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr ""
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr ""
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr ""
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr ""
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr ""
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr ""
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr ""
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr ""
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Perkelti kairėn"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Perkelti dešinėn"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr ""
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr ""
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr ""
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr ""
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr ""
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr ""
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr ""
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr ""
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr ""
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Skaitymo š_altinis:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr ""
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Skaistis:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Kontrastas:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Kokybė:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Nuskaitomo dokumento tipas. Ši nuostata apsprendžia skaitymo skiriamąją "
+"gebą, spalvas ir baigiamąjį apdorojimą."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Nuskenuoto dokumento skaistis"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Skaisčio derinimas nuo -100 iki 100 (0 nėra)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Nuskenuoto dokumento kontrastas"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Kontrasto derinimas nuo -100 iki 100 (0 nėra)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Puslapio pusė, kurią nuskaityti."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Kokybės reikšmė JPEG glaudinimui"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Kokybės reikšmė JPEG glaudinimui."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr ""
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr ""
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr ""
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Rodyti leidimo versiją"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Išvesti derinimo pranešimus"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Pataisyti PDF failus sugeneruotus su senesnėmis „Paprasto skenavimo“ "
+"versijomis"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr ""
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr ""
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[ĮTAISAS...] - skaitymo paslaugų programa"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Norėdami pamatyti komandų eilutės parametrų sąrašą, paleiskite „%s --help“."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr ""
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Užverti"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr ""
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr ""
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Atsisakyti"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "Į_rašyti"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr ""
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Jeigu neišsaugosite, pakeitimai bus nesugrąžinamai prarasti."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Išsaugoti šį dokumentą?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Atmesti pakeitimus"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Nepavyko išsaugoti paveikslo peržiūrai"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr ""
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr ""
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Aurimas Fišeras https://launchpad.net/~aurimas-gmail\n"
+" Johnsonas https://launchpad.net/~uran54\n"
+" Launchpad Translations Administrators https://launchpad.net/~rosetta\n"
+" Mantas Kriaučiūnas https://launchpad.net/~mantas\n"
+" Rytis Ūsalis https://launchpad.net/~rytis-usalis\n"
+" Vincas Dargis https://launchpad.net/~talkless\n"
+" romasg https://launchpad.net/~romasg"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Išsaugoti dokumentą prieš išeinant iš programos?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Išeiti neišsaugant"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr ""
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatinis"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Tamsesnis"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Šviesesnis"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Mažiau"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Daugiau"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Mažiausia"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Didžiausia"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Saugomas dokumentas..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Saugomas puslapis %d iš %d"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Skaitytuvo kryptis per skaitomą puslapį."
diff --git a/po/lv.po b/po/lv.po
new file mode 100644
index 0000000..ff8c8be
--- /dev/null
+++ b/po/lv.po
@@ -0,0 +1,777 @@
+# Latvian translation for simple-scan
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-10-07 21:28+0000\n"
+"Last-Translator: Rūdolfs Mazurs <Unknown>\n"
+"Language-Team: Latvian <lv@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autorizēties"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "Res_ursa lietotājvārds:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Parole:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Priekšpuse un aizmugure"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Priekšpuse"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Aizmugure"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Vienkārša skenēšana"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokuments"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sk_enēt"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Viena la_pa"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Visas lapas no _padeves"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "Apturēt _skenēšanu"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Teksts"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_E-pasts"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "La_pa"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Pagriezt pa _kreisi"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Pag_riezt pa labi"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "Ap_cirst"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Bez"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Pielāgots"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "Pag_riezt apciršanu"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Pārvietot pa kreisi"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Pārvietot pa labi"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Palīdzība"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Saturs"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Sākt jaunu dokumentu"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Jauns"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Ieskenēt vienu lapu no skenera"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Skenēt"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Saglabāt dokumentu datnē"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Saglabāt"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Apturēt pašreizējo skenēšanu"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Apturēt"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Pagriezt lapu pa kreisi (pretēji pulksteņa rādītāja virzienam)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Pagriezt pa kreisi"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Pagriezt lapu pa labi (pulksteņa rādītāja virzienā)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Pagriezt pa labi"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Apcirst izvēlēto lapu"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Apcirst"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Iestatījumi"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Skenēšanas av_ots:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Teksta izšķirtspēja:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "Fotogrāfijas izšķirts_pēja:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Skenējamā puse:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Lapas izmērs:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Gaišums:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Kontrasts:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Kvalitāte:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Skenēt dokumentus"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Ierīce, no kuras skenēt"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "SANE ierīce, no kuras iegūt attēlus."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Skenējamā dokumenta veids"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Skenējamā dokumenta veids. Šīs iestatījums nosaka skenēšanas izšķirtspēju, "
+"krāsas un pēcapstrādi."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Papīra platums mm desmitdaļās"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Papīra platums mm desmitdaļās (vai 0 automātiskai papīra biezuma "
+"noteikšanai)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Papīra garums mm desmitdaļās"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Papīra garums mm desmitdaļās (vai 0 automātiskai papīra biezuma noteikšanai)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Skenējuma gaišums"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Gaišuma pielāgojums no -100 līdz 100 (0 nozīmē nekāds)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Skenējuma kontrasts"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Kontrasta pielāgojums no -100 līdz 100 (0 nozīmē nekāds)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Teksta skenējumu izšķirtspēja"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Izšķirtspēja punktos/collā, skenējot tekstu."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Fotogrāfiju skenējumu izšķirtspēja"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Izšķirtspēja punktos/collā, skenējot fotogrāfijas."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Skenējamā lapas puse"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Skenējamās lapas puse."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Direktorija, kurā saglabāt datnes"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Direktorija, kurā saglabāt datnes. Pēc noklusējuma datnes tiks glabātas "
+"dokumentu direktorijā."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Kvalitātes vērtība, ko izmantot JPEG saspiešanai"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Kvalitātes vērtība, ko izmantot JPEG saspiešanai."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Skeneris nav atrasts. Lūdzu, pievienojiet skeneri."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Neizdevās savienoties ar skeneri"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Neizdevās sākt skenēšanu"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Kļūda, sazinoties ar skeneri"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Rādīt laidiena versiju"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Drukāt atkļūdošanas ziņojumus"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Salabot PDF datnes, kas ir veidotas ar vecākām Simple Scan versijām"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Neizdevās skenēt"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Skenēts dokuments"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[IERĪCE...] - skenēšanas utilītprogramma"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Palaidiet “%s --help”, lai redzētu pilnu pieejamo komandrindas opciju "
+"sarakstu."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Ieskenēts Dokuments.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Aizvērt"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Lai piekļūtu “%s”, ir vajadzīgs lietotājvārds un parole"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Nav atrasts neviens skeneris"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Lūdzu, pārbaudiet, vai skeneris ir pievienots un ieslēgts"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Saglabāt kā..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "At_celt"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Saglabāt"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Attēlu datnes"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Visas datnes"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Norādīt datnes _tipu"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (vairāku lapu dokuments)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (saspiests)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (bez zudumiem)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Neizdevās saglabāt datni"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Ja nesaglabāsiet, izmaiņas neatgriezeniski pazudīs."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Saglabāt šo dokumentu?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Izmest izmaiņas"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Nevar saglabāt attēlu priekšskatīšanai"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Neizdevās atvērt attēlu priekšskatīšanas lietotni"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "Pagriezt"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Paturēt nemainīti"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Nevar atvērt palīdzības datni"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Šī programma ir brīva programmatūra; jūs varat to izplatīt tālāk un/vai "
+"modificēt saskaņā ar GNU Vispārējās publiskās licences noteikumiem, ko "
+"publicējis Brīvas programmatūras fonds; izmantojiet Licences versiju 3 vai "
+"(pēc jūsu izvēles) jebkuru vēlāku versiju.Šī programma tiek izplatīta "
+"cerībā, ka tā būs noderīga, taču BEZ JEBKĀDĀM GARANTIJĀM; pat bez šķietamām "
+"KOMERCIĀLAS VĒRTĪBAS un PIEMĒROTĪBAS KONKRĒTIEM NOLŪKIEM garantijām. Sīkāku "
+"informāciju meklējiet GNU Vispārējā publiskajā licencē.Jums vajadzēja saņemt "
+"GNU Vispārējās publiskās licences kopiju kopā ar šo programmu; ja jūs to "
+"nesaņēmāt, skatiet <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Par Simple Scan"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Vienkāršs dokumentu skenēšanas rīks"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Jānis-Marks Gailis https://launchpad.net/~jeanmarc-gailis\n"
+" Pēteris Krišjānis https://launchpad.net/~pecisk-gmail\n"
+" Rihards Pfeifle https://launchpad.net/~spr1nt3r\n"
+" Rūdolfs Mazurs https://launchpad.net/~rudolfs-mazurs"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Pirms iziešanas saglabāt dokumentu?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Iziet nesaglabājot"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (noklusējuma)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (melraksts)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (augsta izšķirtspēja)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "Jauns dokuments"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Dokuments"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "Epasts..."
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Drukāt..."
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Palīdzība"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "Par"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Iziet"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Mainīt _skeneri"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automātiski"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Tumšāks"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Gaišāks"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Mazāk"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Vairāk"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimums"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maksimums"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Saglabā dokumentu..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Saglabā lapu %d no %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Skenēšanas virziens"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Skenētā attēla augstums pikseļos"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Skenētā attēla platums pikseļos. Šī vērtība tiek atjaunināta uz pēdējās "
+#~ "skenētās lapas."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Skenētā attēla platums pikseļos"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Loga augstums pikseļos"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Loga platums pikseļos"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Lūdzu, pārbaudiet instalāciju"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Pēdējā skenētā attēla izšķirtspēja"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Skenētā attēla augstums pikseļos. Šī vērtība tiek atjaunināta, ņemot vērā "
+#~ "pēdējo skenēto lapu."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Iepriekšēji skenētā attēla izšķirtspēja punktos/collā."
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Skenera virziens pāri skenējamai lapai."
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "PATIESS, ja lietotnes logs ir maksimizēts"
+
+#~ msgid "Files missing"
+#~ msgstr "Pietrūkst datņu"
diff --git a/po/mhr.po b/po/mhr.po
new file mode 100644
index 0000000..b7cfe09
--- /dev/null
+++ b/po/mhr.po
@@ -0,0 +1,710 @@
+# Mari (Meadow) translation for simple-scan
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-04-17 06:12+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Mari (Meadow) <mhr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr ""
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr ""
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Шолыпмут:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr ""
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Шрифт"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr ""
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Simple Scan"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Документ"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr ""
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Ик _лаштык"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr ""
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Текст"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Фотосӱрет"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr ""
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Лаштык"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr ""
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr ""
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Лектыш"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Иктат"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Серыш"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "US Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Йӱла"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr ""
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Шола"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Пурла"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Полышык"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Содержаний"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "У"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr ""
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr ""
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Аныклаш"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Шогалташ"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr ""
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Лектыш"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Келыштарымаш-влак"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Лаштыкын кугыт"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Ыштыш-кучыш:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr ""
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr ""
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr ""
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr ""
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr ""
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr ""
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Сканироватлыме документ"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr ""
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr ""
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr ""
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr ""
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr ""
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr ""
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr ""
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr ""
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Max Romanov https://launchpad.net/~dr-max-romanov\n"
+" Снежана https://launchpad.net/~snezhana-yandemerova-94"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr ""
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr ""
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr ""
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Пычкемышрак"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
diff --git a/po/ms.po b/po/ms.po
new file mode 100644
index 0000000..8e669e9
--- /dev/null
+++ b/po/ms.po
@@ -0,0 +1,847 @@
+# Malay translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 09:04+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Malay <ms@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Benarkan"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Nama pengguna untuk sumber:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Katalaluan:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Hadapan dan Belakang"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Hadapan"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Ke belakang"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Pengimbas Ringkas"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokumen"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "I_mbas"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_Halaman Tunggal"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Semua Halaman Dari _Suapan"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Henti Imbas"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Teks"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Tertib Semula Halaman"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Emel"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Halaman"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Putar Ke Ki_ri"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Putar Ke Ka_nan"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Crop"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Tiada"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Tersendiri"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Putar & Kerat"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Alih Ke Kiri"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "ALih Ke Kanan"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Bantuan"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Kandungan"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Mulakan dokumen baru"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Baru"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Imbas halaman tunggal dari pengimbas"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Imbas"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Simpan dokumen ke fail"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Simpan"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Hentikan Imbasan semasa"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Henti"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Putar halaman ke kiri (lawan-jam)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Putar Ke Kiri"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Putar halaman ke kanan (arah-jam)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Putar Ke Kanan"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Kerat halaman pilihan"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Kerat"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Keutamaan"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Imbas Su_mber:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "Resolusi _Teks:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "Resolusi _Foto:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Imbas Sisi:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Saiz Halaman:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Kecerahan:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Beza Jelas:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Kualiti:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Imbas Dokumen"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Peranti untuk diimbas dari"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Peranti SANE untuk memperoleh imej dari."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Jenis dokumen yang diimbas"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Jenis dokumen yang akan diimbas. Tetapan ini menentukan resolusi, warna dan "
+"post-pemproses imbasan."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Lebar kertas dalam persepuluh mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Lebar kertas dalam persepuluh mm (atau 0 untuk pengesanan kertas secara "
+"automatik)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Tinggi ketar dalam persepuluh mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Tinggi kertas dalam persepuluh mm (atau 0 untuk pengesanan kertas secara "
+"automatik)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Kecerahan imbasan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Pelarasan kecerahan dari -100 hingga 100 (0 tiada perubahan)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Beza jelas imbasan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Pelarasan beza jelas dari -100 hingga 100 (0 tiada perubahan)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Resolusi untuk imbasan teks"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Resolusi dalam titik-se-inci yang digunakan semasa mengimbas teks."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Resolusi untuk imbasan foto"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Resolusi dalam titik-se-inci yang digunakan semasa mengimbas foto."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Sisi halaman untuk diimbaskan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Sisi halaman untuk diimbas."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Direktori untuk menyimpan fail ke"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Direktori untuk menyimpan fail. Nilai lalai direktori dokumen jika tidak "
+"ditetapkan."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Nilai kualiti yang digunakan untuk pemampatan JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Nilai kualiti yang digunakan untuk pemampatan JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Tiada pengimbas hadir. Sila sambungkan pengimbas."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Tidak boleh menyambung kepada pengimbas"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Tidak boleh memulakan imbasan"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Ralat berkomunikasi dengan pengimbas"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Papar versi keluaran"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Papar mesej penyahpepijatan"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Baiki fail PDF yang dijana dengan versi lama Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Gagal mengimbas"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Dokumen Terimbas"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DEVICE...] - Utiliti mengimbas"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Jalankan '%s --help' untuk melihat senarai penuh pilihan baris perintah yang "
+"ada."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Dokumen Diimbas.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Tutup"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Nama pengguna dan kata laluan diperlukan untuk mencapai '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Tiada pengimbas dikesan"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Sila semak pengimbas anda sama ada ia bersambung dan dihidupkan"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Simpan Sebagai..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Batal"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Simpan"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Fail Imej"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Semua Fail"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Pilih Jenis _Fail"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (dokumen berbilang-halaman)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (termampat)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (tidak hilang)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Gagal menyimpan fail"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Jika anda tidak simpan, semua perubahan akan hilang."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Simpan dokumen semasa"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Abai Perubahan"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Tidak boleh menyimpan imej untuk pratonton"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Tidak boleh membuka aplikasi partonton imej"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr "Gabung sisi"
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr "Gabung sisi (songsang)"
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "Songsang"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Kekal tidak berubah"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Tidak boleh membuka fail bantuan"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Perisian ini adalah perisian bebas; anda boleh mengedarkannya dan/atau "
+"mengubahsuainya dibawah terma Pelesenan Awam Am GNU yang diterbitkan oleh "
+"Free Software Foundation, versi 3.\\n\n"
+"\n"
+"Perisian ini diedarkan dengan harapan ianya akan berguna, TANPA SEBARANG "
+"JAMINAN; termasuk juga KESESUAIAN UNTUK DIPASARKAN, JAMINAN KUALITI, atau "
+"JAMINAN ATAS APA JUA SEBAB. Sila lihat GNU General Public License untuk "
+"maklumat lanjut.\n"
+"\n"
+"Anda seharusnya menerima satu salinan Lesen Awam Am GNU bersama-sama dengan "
+"pengurus skrip Nautilus; jika tidak, laporkannya ke Free Software "
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Mengenai Pengimbas Ringkas"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Alat mengimbas dokumen mudah"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" CL TAN https://launchpad.net/~tcl111985\n"
+" Khairul Aizat Kamarudzzaman https://launchpad.net/~fenris\n"
+" Launchpad Translations Administrators https://launchpad.net/~rosetta\n"
+" abuyop https://launchpad.net/~abuyop\n"
+" ahmad akmal bin mohd idris https://launchpad.net/~mamahopsk87"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Simpan dokumen sebelum keluar?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Keluar tanpa Menyimpan"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (tersedia)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (draf)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (resolusi tinggi)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "Dokumen Baharu"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Dokumen"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "Emel..."
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Cetak..."
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Bantuan"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "Perihal"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Keluar"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Ubah _Pengimbas"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatik"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Lebih Gelap"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Lebih Cerah"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Kurang"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Lagi"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimum"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maksimum"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Menyimpan dokumen..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Menyimpan halaman %d daripada %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Arah imbasan"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "BENAR jika tetingkap aplikasi dimaksimakan"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Resolusi imej terakhir yang diimbas"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Arah pengimbas menerusi halaman yang diimbas. Ia boleh jadi salah satu yang "
+#~ "berikut: 'atas-ke-bawah' 'bawah-ke-atas' 'kiri-ke-kanan' 'kanan-ke-kiri'"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Tinggi imej terimbas dalam piksel"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Lebar imej terimbas dalam piksel"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Lebar tetingkap dalam piksel"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Tinggi tetingkap dalam piksel"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Penggunaan:\n"
+#~ " %s [DEVICE...] - Utiliti pengimbasan"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Sila semak pemasangan anda"
+
+#~ msgid "Files missing"
+#~ msgstr "Fail hilang"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Lebar imej yang diimbas dalam piksel. Nilai ini dikemaskini berdasarkan "
+#~ "halaman yang terakhir diimbas."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Tinggi imej yang diimbas dalam piksel. Nilai ini dikemaskini merujuk pada "
+#~ "halaman yang terakhir diimbas."
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Sisi halaman untuk diimbaskan. ia boleh salah satu seperti berikut: 'kedua-"
+#~ "dua' 'hadapan' 'belakang'"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Resolusi dalam titik-se-inci imej yang terdahulu diimbas."
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Pilihan Bantuan:\n"
+#~ " -d, --debug Papar mesej penyahpepijat\n"
+#~ " -v, --version Papar versi pelepasan\n"
+#~ " -h, --help Papar pilihan bantuan\n"
+#~ " --help-all Papar semua pilihan bantuan\n"
+#~ " --help-gtk Papar pilihan GTK+"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Jenis dokumen yang diimbaskan. 'teks' untuk dokumen teks, 'foto' untuk foto. "
+#~ "Tetapan ini menentukan resolusi, warna dan pra-pemprosesan imbasan."
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Pilihan GTK+:\n"
+#~ " --class=CLASS Kelas program yang digunakan oleh pengurus tetingkap\n"
+#~ " --name=NAME Nama program yang digunakan oleh pengurus tetingkap\n"
+#~ " --screen=SCREEN Skrin X yang digunakan\n"
+#~ " --sync Lakukan penyegerakan panggilan X\n"
+#~ " --gtk-module=MODULES Muat modul GTK+ tambahan\n"
+#~ " --g-fatal-warnings Jadikan semua amaran mati"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Arah pengimbas merentasi halaman terimbas."
diff --git a/po/my.po b/po/my.po
new file mode 100644
index 0000000..4aedaa2
--- /dev/null
+++ b/po/my.po
@@ -0,0 +1,778 @@
+# Burmese translation for simple-scan
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-04-17 06:12+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Burmese <my@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:30+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_A ခွင့်ပြုခြင်း"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Username for resource:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Pစကားဝှက်"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "အရှေ့နှင့်အနောက်"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "အရှေ့"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "နောက်သို့"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "ရိုးရိုး Scan ဖတ်ခြင်း"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dစာရွက်စာတမ်း"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sc_an"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_P ရိုးရိုး Scan ဖတ်ခြင်း"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "_F Feeder မှ စာမျက်နှာအားလုံး"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_S Scan ရပ်မည်။"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "စာ"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "ဓာတ်ပုံ"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Eအီးမေး"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Pစာမျက်နှာ"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "_L ဘယ်ဖက်လှည့်ပါ။"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "_R ညာဖက်သို့လှည့်မည်။"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_C ဖြတ်ပါ။"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Nဘာမှမဟုတ်"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_L စာ"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Custom"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Rotate Crop"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "ဘယ်ဖက်သို့ရွှေ့ပါ။"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "ညာဖက်သို့ရွှေ့ပါ။"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_H အကူအညီ"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_ C ခေါင်းစဉ်"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "အသစ်စတင်ရန်"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "အသစ်"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Scanner ထဲမှ စာမျက်နှာ တစ်ရွက်တည်းကို Scan ဖတ်မည်။"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Scan"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "ဖိုင် တစ်ခုထဲသို့ စာရွက်စာတမ်း ကိုသိမ်းပါ။"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "သိမ်းဆည်းပါ"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "ယခု Scan ဖတ်နေခြင်းကိုရပ်မည်။"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "ရပ်မည်"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "စာမျက်နှာကို ဘယ်ဖက်သို့လှည့်ပါ။(နာရီလက်တံပြောင်းပြန်)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "ဘယ်ဖက် လှည့်ပါ။"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "စာမျက်နှာကို ညာဖက်သို့လှည့်ပါ။ (နာရီလက်တံ)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "ညာဖက်လှည့်ပါ။"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "ရွေးချယ်ထားသောစာမျက်နှာကို ဖြတ်ပါ။"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "ဖြတ်ပါ။"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Preferences"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Scan S_ource:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Text Resolution:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Pဓာတ်ပုံ resolution-"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Scan Side:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "စာရွက်အရွယ်အစား"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Scan Documents"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "ဘယ်ကိရိယာမှ Scan ဖတ်မည်..."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "SANE device to acquire images from."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Scan ဖတ်မည့် စာရွက်စာတမ်း အမျိုးအစား"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Width of paper in tenths of a mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Height of paper in tenths of a mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Resolution for text scans"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "The resolution in dots-per-inch to use when scanning text."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Resolution for photo scans"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "The resolution in dots-per-inch to use when scanning photos."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Page side to scan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "The page side to scan."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "ဖိုင်ကိုသိမ်းရန်အတွက်နေရာ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"The directory to save files to. Defaults to the documents directory if unset."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Scanner နှင့်ချိတ်ဆက်ထားခြင်းမရှိပါ။ Scanner နှင့်ချိတ်ဆက်ပါ။"
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Scanner နှင့်မချိတ်ဆက်နိုင်ပါ။"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Scan မစတင်နိုင်ပါ။"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Scanner နှင့်ချိတ်ဆက်ရင်းအမှားအယွင်းဖြစ်ခဲ့သည်။"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "ထုတ်လုပ်သော ဗားရှင်းကို ပြပါ"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Debugging messages ကိုစာရွက်ထုတ်မည်။"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Fix PDF files generated with older versions of Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Scan မဖတ်ဖြစ်ပါ။"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Scan ဖတ်ပြီးသော စာရွက်စာတမ်း"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DEVICE...] - Scanning utility"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr "အမိန့်ပေး စာရင်း အပြည့်အစုံမြင်ရရန် '%s--help' ဖြင့် ခိုင်းပါ"
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Scanned Document.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "'%s' ကိုသုံးရန်အတွက်သုံးစွဲသူအမည်နှင့် စကားဝှက်လိုအပ်ပါသည်။"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Scanner ရှာမတွေ့ပါ။"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+"သင်၏ Scanner ကိုချိတ်ဆက်ပြီးကြောင်း၊ "
+"ပါဝါဖွင့်ထားကြောင်းသေချာအောင်ပြန်လည်စစ်ဆေးပါ။"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Save As..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Image Files"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "ဖိုင်အလုံးစုံ"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "_T ဖိုင်အမျိုးအစားရွေးပါ။"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (multi-page document)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (compressed)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (lossless)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "ဖိုင်ကိုမသိမ်းဖြစ်ပါ။"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "မသိမ်းပါက၊ ပြောင်းလဲမူများသည် လုံးဝပျက်သွားပါလိမ့်မည်။"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "ယခုစာရွက်စာတမ်းကိုသိမ်းမလား။"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Discard Changes"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "ကြည့်ရူရန်အတွက် ပုံများကိုမသိမ်းနိုင်ပါ။"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Unable to open image preview application"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "အကူအညီဖိုင်ကို မဖွင့်နိုင်ပါ။"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "ရိုးရှင်းစွာ Scan ဖတ်ခြင်းအကြောင်း"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Simple document scanning tool"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Bone Pyae Sone https://launchpad.net/~bonepyaesone\n"
+" Pyae Sone https://launchpad.net/~gipsyhnh"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "မပိတ်ခင် စာရွက်စာတမ်းများကိုသိမ်းမလား။"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "မသိမ်းပဲနှင့်ထွက်မည်။"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (default)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (draft)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (high resolution)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Change _Scanner"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "အလိုအလျှောက်"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Height of scanned image in pixels"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Scan ၏ လားရာ"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "The direction of the scanner across the scanned page."
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE if the application window is maximized"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Resolution of last scanned image"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Window height in pixels"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "The resolution in dots-per-inch of the previously scanned image."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Width of scanned image in pixels"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Window width in pixels"
+
+#~ msgid "Files missing"
+#~ msgstr "ဖိုင်များပျောက်နေပါသည်။"
+
+#~ msgid "Please check your installation"
+#~ msgstr "သင်၏ စက်ထဲသို့သွင်းခြင်းကို ပြန်လည်စစ်ဆေးပါ။"
diff --git a/po/nb.po b/po/nb.po
new file mode 100644
index 0000000..74b057b
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,848 @@
+# Norwegian Bokmal translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2014-09-02 16:41+0000\n"
+"Last-Translator: Kjetil Birkeland Moe <kjetil@skifremme.no>\n"
+"Language-Team: Norwegian Bokmal <nb@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-09-03 06:05+0000\n"
+"X-Generator: Launchpad (build 17196)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autoriser"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Brukernavn for ressurs:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Passord:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "For- og bakside"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Forside"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Bakside"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Simple Scan"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokument"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sk_ann"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Enkel _side"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Alle sider fra papirmater"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Stopp skanning"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Tekst"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Bilde"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Omplasser sider"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_E-post"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Side"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Roter mot _venstre"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Roter mot _høyre"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Beskjær"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Ingen"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "US _Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "US Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "E_gendefinert"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Roter beskjæringsområdet"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Flytt til venstre"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Flytt til høyre"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Hjelp"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Innhold"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Begynn et nytt dokument"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Ny"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Skann én enkel side fra skanneren"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Skann"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Lagre dokument til fil"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Lagre"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Stopp skanning"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Stopp"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Roter siden til venstre (mot urviseren)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Roter mot venstre"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Roter siden til høyre (med urviseren)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Roter mot høyre"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Beskjær valgt side"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Beskjær"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Innstillinger"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Hent fra:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Tekstoppløsning"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Bildeoppløsning:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Skann side:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Sidestørrelse:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Lysstyrke:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Kontrast:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Kvalitet:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Skann dokumenter"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Enhet det skal skannes fra"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "SANE-enhet som bilder skal hentes fra."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Dokumenttype som skannes"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Dokumenttype som skal scannes. Denne innstillingen endrer oppløsning, farger "
+"og etterbehandling."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Papirbredde i tiendels millimeter"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Papirbredden i tiendels millimeter (eller 0 for automatisk gjenkjenning)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Papirhøyde i tiendels millimeter"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Papirhøyde i tiendels millimeter (eller 0 for automatisk gjenkjenning)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Skanningens ysstyrke"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Justering av lysstyrke fra -100 til 100 (0 betyr ingen lys)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Skanningens kontrastforsterkning"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+"Justering av kontrast fra -100 til 100 (en verdi på 0 gir ingen "
+"forsterkning)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Oppløsning for tekstskanning"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Oppløsningen i punkter-per-tomme for skanning av tekst."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Oppløsning for bildeskanning"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Oppløsning i punkter-per-tomme for skanning av bilder."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Side som skal skannes"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Siden som skal scannes."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Lagre filer i mappe"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr "Mappen filer skal lagres til. Standard er dokumentmappen."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Kvalitetsverdi som skal brukes til JPEG-komprimering"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Kvalitetsverdi som skal brukes til JPEG-komprimering"
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Ingen skanner tilgjengelig. Vennligst koble til en skanner."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Klarte ikke å koble til skanneren"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Klarte ikke å sette i gang skanneren"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Det oppsto en kommunikasjonsfeil mellom skanneren og datamaskinen"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Vis utgivelsesversjon"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Vis feilsøkingsmeldinger"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Reparer PDF-filer som er opprettet med eldre versjoner av Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Klarte ikke å utføre skanningen"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Skannet dokument"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[ENHET...] - Scanneutstyr"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Kjør «%s --help» for å se en full liste over tilgjengelige kommandolinjevalg."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Skannet_dokument.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Lukk"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Behøver brukernavn og passord for å få tilgang til '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Fant ingen skannere"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Undersøk om skanneren er riktig tilkoblet, og at den er slått på"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Lagre som..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Avbryt"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Lagre"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Bildefiler"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Alle Filer"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Velg fil_type"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (flersidig dokument)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (komprimert)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (tapsfri)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Lagring av fil mislyktes"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Hvis du ikke lagrer vil endringene gå tapt."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Lagre gjeldende dokument?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Forkast endringer"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Kunne ikke lagre forhåndsvisning"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Åpning av forhåndsvisning mislyktes"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr "Kombiner sider"
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr "Kombiner sider (omvendt)"
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "Omvendt"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Behold uendret"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Kan ikke åpne hjelpfil"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Om Simple Scan"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Enkelt verktøy for å skanne dokumenter"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Hans Rødtang https://launchpad.net/~hansrodtang\n"
+" Kenneth Salvesen https://launchpad.net/~kesalves\n"
+" Kjetil Birkeland Moe https://launchpad.net/~kjetilbmoe\n"
+" Kåre Birger Lapstuen https://launchpad.net/~lapstue\n"
+" Mats Taraldsvik https://launchpad.net/~meastp\n"
+" Åka Sikrom https://launchpad.net/~akrosikam"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Lagre dokumentet før du avslutter?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Avslutt uten å lagre"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (standard)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (kladd)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (høy oppløsning)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "Nytt dokument"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Dokument"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "E-post …"
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Skriv ut …"
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Hjelp"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "Om"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Avslutt"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Bytt _skanner"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatisk"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Mørkere"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Lysere"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Mindre"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Mer"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimum"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maksimum"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Lagrer dokument …"
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Lagrer side nr. %d av %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Files missing"
+#~ msgstr "Manglende filer"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Høyde på skannede bilder, i pixler"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Skanneretning"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Oppløsning på sist skannede bilde"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Retning skanneren skal gjøre over siden. Den kan være en av følgende: 'topp-"
+#~ "til-bunn' 'bunn-til-topp' 'venstre-til-høyre' 'høyre-til-venstre'"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Dokumenttype som skannes. 'tekst' for tekstdokumenter, 'bilde' for bilder. "
+#~ "Denne innstillinger bestemmer oppløsning, farger og etterbehandling for "
+#~ "skanningen."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Bredden på skannede bilder, i pixler. Denne verdien settes til størrelsen "
+#~ "fra sist skannede side."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Høyden på skannet bilde, i pixler. Verdien settes til sist skannede side."
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "SANN hvis programvinduet er maksimert"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Oppløsning i punkter-per-tomme til sist utførte skanning."
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Vindushøyde i pixler"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Vindusbredde i pixler"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Bredde på skannet bilde, i pixler"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Alternativer for hjelp:\n"
+#~ " -d, --debug Vis feilsøkingsinformasjon\n"
+#~ " -v, --version Vis utgivelsesinformasjon\n"
+#~ " -h, --help Vis alternativer for hjelp\n"
+#~ " --help-all Vis alle alternativer for hjelp\n"
+#~ " --help-gtk Vis alternativer for GTK+"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Bruk:\n"
+#~ " %s [ENHET...] - Skanneutstyr"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Vennligst undersøk installasjonen"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Siden som skal skannes. Det kan være én av følgende: 'begge' 'forside' "
+#~ "'bakside'"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Retningen til scanneren over den scannede siden."
diff --git a/po/nl.po b/po/nl.po
new file mode 100644
index 0000000..0e61ef9
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,870 @@
+# Dutch translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 09:04+0000\n"
+"Last-Translator: Robert Ancell <robert.ancell@canonical.com>\n"
+"Language-Team: Dutch <nl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "Toest_aan"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "Gebr_uikersnaam voor bron:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Wachtwoord:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Voor- en achterzijde"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Voorzijde"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Achterzijde"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Scannen"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Document"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sc_annen"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Enkele _pagina"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Alle pagina's van in_voer"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "Scan _stoppen"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Tekst"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_E-mailen"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Pagina"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "_Linksom draaien"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "_Rechtsom draaien"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Bijsnijden"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Geen"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "VS _Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "VS Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Aangepast"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "Bijsnijden d_raaien"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Naar links verplaatsen"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Naar rechts verplaatsen"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Hulp"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Inhoud"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Een nieuw document beginnen"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Nieuw"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Een enkele pagina scannen"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Scannen"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Document naar een bestand opslaan"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Opslaan"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "De huidige scan stoppen"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Stoppen"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "De pagina linksom draaien (tegen de klok in)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Linksom draaien"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "De pagina rechtsom draaien (met de klok mee)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Rechtsom draaien"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "De geselecteerde pagina bijsnijden"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Bijsnijden"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Voorkeuren"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Scanner:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Tekstresolutie:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Fotoresolutie:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Scangrootte:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Paginagrootte:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Helderheid:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Contrast:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Kwaliteit:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Documenten scannen"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Te gebruiken scanapparaat"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "SANE-apparaat om beeld van te ontvangen"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Type document dat gescand wordt"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Het type document dat gescand wordt. Deze instelling bepaalt de te scannen "
+"resolutie, kleuren en nabewerking."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Breedte van het papier in tienden van een mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"De breedte van het papier in tienden van een mm (of 0 voor automatische "
+"papierdetectie)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Hoogte van het papier in tienden van een mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"De hoogte van het papier in tienden van een mm (of 0 voor automatische "
+"papierdetectie)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Helderheid van de scan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Aanpassing van de helderheid van -100 tot 100 (0 is geen)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Contrast van de scan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Aanpassing van het contrast van -100 tot 100 (0 is geen)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Resolutie voor gescande tekst"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+"De te gebruiken resolutie in punten-per-inch (dtp) tijdens het scannen van "
+"tekst."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Resolutie voor gescande foto's"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+"De te gebruiken resolutie in punten-per-inch (dtp) tijdens het scannen van "
+"foto's."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Te scannen paginazijde"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "De paginazijde om te scannen."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Map om bestanden in op te slaan"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"De map waarin bestanden worden opgeslagen. Dit is standaard de map "
+"Documenten indien niet ingesteld."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "De kwaliteitswaarde die gebruikt zal worden voor JPEG-compressie"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "De kwaliteitswaarde die gebruikt zal worden voor JPEG-compressie."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+"Geen scanners beschikbaar. Sluit een scanner aan om dit programma te "
+"gebruiken."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Kan niet verbinden met de scanner"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Kan de scan niet starten"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Fout tijdens het communiceren met de scanner"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Uitgaveversie tonen"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Debugberichten weergeven"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"PDF-bestanden repareren die gegenereerd zijn door oudere versies van Simple "
+"Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Scannen is mislukt"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Gescand document"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[APPARAAT...] - Hulpmiddel voor scannen"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Voer ‘%s --help’ uit om een volledige lijst van alle opdrachtregelopties te "
+"zien."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Gescand document.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Sluiten"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Gebruikersnaam en wachtwoord vereist om toegang te krijgen tot '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Geen scanners gevonden"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Controleer of uw scanner is aangesloten en is ingeschakeld"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Opslaan als..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Annuleren"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Opslaan"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Afbeeldingsbestanden"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Alle bestanden"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Bestands_type selecteren"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (document met meerdere pagina's)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (gecomprimeerd)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (lossless)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Bestand opslaan mislukt"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Als u niet opslaat, zullen wijzigingen permanent verloren gaan."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Huidige document opslaan?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Wijzigingen negeren"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Opslaan van afbeelding voor voorvertoning mislukt"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Kan toepassing voor voorvertoning van afbeelding niet openen"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Kon hulpbestand niet openen"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Dit programma is vrije software: u mag het verspreiden en/of wijzigen onder\n"
+"de voorwaarden van de GNU General Public License zoals gepubliceerd\n"
+"door de Free Software Foundation, onder versie 3 van de licentie of\n"
+"(naar uw keuze) een latere versie.\n"
+"\n"
+"Dit programma is gedistribueerd in de hoop dat het nuttig zal zijn maar "
+"ZONDER\n"
+"ENIGE GARANTIE; zelfs zonder de impliciete garanties die GEBRUIKELIJK\n"
+"ZIJN IN DE HANDEL of voor BRUIKBAARHEID VOOR EEN SPECIFIEK DOEL.\n"
+"Zie de GNU General Public License voor meer details.\n"
+"\n"
+"U zou een kopie van de GNU General Public License moeten\n"
+"ontvangen samen met dit programma. Als dat niet het geval is, zie\n"
+"<http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Info over Scanhulpmiddel"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Eenvoudig hulpmiddel voor het scannen van documenten"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Elco https://launchpad.net/~eajnab\n"
+" Hannie Dumoleyn https://launchpad.net/~lafeber-dumoleyn\n"
+" Jeroen Hoek https://launchpad.net/~mail-jeroenhoek\n"
+" Martijn Bastiaan https://launchpad.net/~hmb1\n"
+" Michaël Van Dorpe https://launchpad.net/~michael-vandorpe\n"
+" Rachid https://launchpad.net/~rachidbm\n"
+" Robert Ancell https://launchpad.net/~robert-ancell\n"
+" Sense Egbert Hofstede https://launchpad.net/~sense\n"
+" Sven Vranckx https://launchpad.net/~sven-vranckx\n"
+" Tico https://launchpad.net/~co-ti\n"
+" Tino Meinen https://launchpad.net/~a-t-meinen\n"
+" Wouter Bolsterlee https://launchpad.net/~uws\n"
+" cumulus007 https://launchpad.net/~cumulus-007\n"
+" kay https://launchpad.net/~kay20\n"
+" rob https://launchpad.net/~rvdb"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Document opslaan voor afsluiten?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Afsluiten zonder opslaan"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (standaard)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (klad)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (hoge resolutie)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "_Scanner wijzigen"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatisch"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Donkerder"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Lichter"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Minder"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Meer"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimum"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maximum"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Bezig met opslaan van document..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Bezig met opslaan van pagina %d van %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Files missing"
+#~ msgstr "Ontbrekende bestanden"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Gebruik:\n"
+#~ " %s [APPARAAT...] - Hulpmiddel voor scannen"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Controleer uw installatie"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ Opties:\n"
+#~ " --class=KLASSE Programmaklasse, zoals gebruikt door de "
+#~ "vensterbeheerder\n"
+#~ " --name=NAAM Programmanaam, zoals gebruikt door de "
+#~ "vensterbeheerder\n"
+#~ " --screen=SCHERM Te gebruiken X-scherm\n"
+#~ " --sync X-aanroepen synchroon maken\n"
+#~ " --gtk-module=MODULES Aanvullende GTK+-modules laden\n"
+#~ " --g-fatal-warnings Alle waarschuwingen fataal maken"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE als het programmavenster gemaximaliseerd is"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Scanrichting"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Vensterhoogte in pixels"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Vensterbreedte in pixels"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Hulpopties:\n"
+#~ " -d, --debug Debugberichten weergeven\n"
+#~ " -v, --version Versienummer weergeven\n"
+#~ " -h, --help Hulpopties weergeven\n"
+#~ " --help-all Alle hulpopties weergeven\n"
+#~ " --help-gtk GTK+-opties weergeven"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "De richting van de scanner over de gescande pagina. Dit kan een van de "
+#~ "volgende waarden zijn: 'top-to-bottom' 'bottom-to-top' 'left-to-right' "
+#~ "'right-to-left'"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Type document dat gescand wordt. 'text' voor tekstdocumenten, 'photo' voor "
+#~ "foto's. Deze instelling bepaalt de scanresolutie, de kleuren en naverwerking."
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Hoogte van gescande afbeelding in pixels"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "De hoogte van de gescande afbeelding in pixels. Deze waarde representeert de "
+#~ "laatst gescande pagina."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr ""
+#~ "De resolutie in punten-per-inch (dtp) van de vorige gescande afbeelding."
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Resolutie van laatste gescande afbeelding"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "De breedte van de gescande afbeelding in pixels. Deze waarde representeert "
+#~ "de laatst gescande pagina."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Breedte van gescande afbeelding in pixels"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "De te scannen paginazijde. Mogelijke waarden zijn ‘both’, ‘front’ en ‘back’."
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "De richting van de scanner over de te scannen pagina."
diff --git a/po/oc.po b/po/oc.po
new file mode 100644
index 0000000..e873eca
--- /dev/null
+++ b/po/oc.po
@@ -0,0 +1,854 @@
+# Occitan (post 1500) translation for simple-scan
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2013-10-15 16:43+0000\n"
+"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
+"Language-Team: Occitan (post 1500) <oc@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autorizar"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Utilizaire :"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "Sen_hal :"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Recto verso"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Fàcia"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Precedenta"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Aisina de numerizacion simpla"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Document"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Nu_merizar"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_Pagina unica"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Totas las paginas del _nauc"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Arrestar la numerizacion"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Tèxte"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Fòto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Corrièl"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Pagina"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Pivotar cap a es_quèrra"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Pivotar cap a _drecha"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "Re_quadrar"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Pas cap"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter (US)"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "_Legal (US)"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Personalizar"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "Pivota_r la seleccion"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Se desplaçar cap a esquèrra"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Se desplaçar cap a drecha"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Ajuda"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Ensenhador"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Crear un document novèl"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Novèl"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Numerizar una sola pagina dempuèi lo scanner"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Numerizar"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Enregistrar lo document dins un fichièr"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Enregistrar"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Arrestar la numerizacion en cors"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Arrèsta"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+"Pivotar la pagina cap a esquèrra (sens invèrse de las agulhas d'una mòstra)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Rotacion a esquèrra"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Pivotar la pagina cap a drecha (sens de las agulhas d'una mòstra)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Rotacion a drecha"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Requadrar la pagina seleccionada"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Requadrar"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Preferéncias"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "F_ont de numerizacion :"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "Resolucion del _Tèxte :"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "Resolucion de la _fòto :"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Fàcia de numerizar :"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Talha de la pagina :"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Luminositat :"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Contraste :"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Qualitat :"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Numerizar de documents"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Numerizar dempuèi"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Periferic SANE d'utilizar per l'aquisicion dels imatges."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Natura del document que va èsser numerizat"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Tipe de document numerizat. Aqueste reglatge definís la resolucion de "
+"numerizacion, las colors e lo post-tractament."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Largor del papièr en desens de mm."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"La largor del papièr en desens de mm (o 0 per una deteccion automatica del "
+"papièr)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Nautor del papièr en desens de mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"La nautor del papièr en desens de mm (o 0 per una deteccion automatica del "
+"papièr)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Luminositat de la numerizacion"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Ajustament de la luminositat de -100 a 100 (0 per pas cap)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Contraste de la numerizacion"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Ajustament del contraste de -100 a 100 (0 per pas cap)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Resolucion per de numerizacions de tèxtes"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+"La resolucion en punts per poce d'utilizar al moment de la numerizacion de "
+"tèxte."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Resolucion per de numerizacions de fòtos"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+"La resolucion en punts per poce d'utilizar al moment de la numerizacion de "
+"fòtos."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Fàcia(s) de la pagina de numerizar"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Lo costat de la pagina de numerizar."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Dorsièr ont los fichièrs son enregistrats"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Lo dorsièr ont los fichièrs son enregistrats. S'es pas definit, lo dorsièr "
+"documents serà utilizat per defaut."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Taus de qualitat d'utilizar per la compression JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Taus de qualitat d'utilizar per la compression JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Cap de periferic de numerizacion pas disponible. Connectatz-ne un."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Impossible de se connectar al scanner"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Impossible d'aviar la numerizacion"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Error de comunicacion amb lo scanner"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Aficha la version del logicial"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Afichar los messatges de desbugatge"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Corregir los fichièrs PDF generats amb las ancianas versions de Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Fracàs de la numerizacion"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Document numerizat"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DEVICE...] - Aisina de numerizacion"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Aviatz « %s --help » per veire la lista completa de opcions disponiblas en "
+"linha de comanda"
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Document.pdf numerizat"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Tampar"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Nom d'utilizaire e senhal necessaris per accedir a « %s »"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Cap de scanner es pas estat detectat"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Verificatz que vòstre scanner es connectat e jos tension"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Enregistrar jos..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "A_nullar"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Salvar"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Fichièrs imatges"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Totes los fichièrs"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Seleccionatz lo _tipe de fichièr"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (document multipaginas)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (compressat)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (sens pèrda)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Impossible d'enregistrar lo fichièr"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "S'enregistratz pas, las modificacions seràn perdudas definitivament."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Enregistrar lo document actual ?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Abandonar las modificacions"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Impossible d'enregistrar l'imatge per lo previsualizar"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Impossible de dobrir l'aplicacion de previsualizacion d'imatge"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Impossible de dobrir lo fichièr d'ajuda"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Aqueste programa es liure, lo podètz redistribuir e/o lo modificar\n"
+"segon los tèrmes de la licéncia publica generala (GPL) GNU publicada\n"
+"per la Free Software Foundation, dins sa version 3 o superiora\n"
+"(coma volètz).\n"
+"\n"
+"Aqueste programa es distribuit dins l'esper d'èsser util, mas\n"
+"SENS CAP DE GARANTIA, inclusas las garantias de \n"
+"COMERCIALIZACION o d'ADAPTACION A UNA TÒCA ESPECIFICA.\n"
+"Consultez la licence publique générale GNU pour plus de détails.\n"
+"\n"
+"Vos cal aver recebut una còpia de la licéncia publica generala GNU\n"
+"al meteis temps qu'aqueste programa ; s'es pas lo cas, consultatz\n"
+"<http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "A prepaus de Simple Scan"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Numerizar simplament vòstres documents"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Cédric VALMARY (Tot en òc) https://launchpad.net/~cvalmary\n"
+" Quentin Pagès https://launchpad.net/~kwentin"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Enregistrar lo document abans de quitar ?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Quitar sens enregistrar"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d ppp (per defaut)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d ppp (borrolhon)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d ppp (nauta resolucion)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d ppp"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Cambiar de _scanner"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatic"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Mai escur"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Mai clar"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Mens"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Mai"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimum"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maximum"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Enregistrament del document..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Enregistrament de la pagina %d sus %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4 &#xD7; 6"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Nautor de l'imatge numerizat en pixèls"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Sens de numerizacion"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Resolucion del darrièr imatge numerizat"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Direccion del balejatge al moment de la numerizacion de la pagina. Aquela "
+#~ "pòt èsser : d'amont cap aval ; d'aval cap amont ; d'esquèrra cap a drecha ; "
+#~ "de drecha cap a esquèrra"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Natura del document que serà numerizat. « tèxte » pels documents tèxte, "
+#~ "« fòto » per las fotografias. Aquel paramètre determina la resolucion de la "
+#~ "numerizacion, lo nombre de colors e los tractaments posteriors."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "La nautor de l'imatge numerizat en pixèls. Aquesta valor es mesa a jorn en "
+#~ "foncion de la darrièra pagina numerizada."
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "VERAI se la fenèstra de l'aplicacion es maximizada"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "La resolucion del darrièr imatge numerizat en punts per poce."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "La largor de l'imatge numerizat en pixèls. Aquesta valor es mesa a jorn en "
+#~ "foncion de la darrièra pagina numerizada."
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Nautor de la fenèstra en pixèls"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Largor de la fenèstra en pixèls"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Largor de l'imatge numerizat en pixèls"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Opcions d'ajuda :\n"
+#~ " -d, --debug Aficha los messatges d'error\n"
+#~ " -v, --version Aficha lo numèro de version\n"
+#~ " -h, --help Aficha las opcions d'ajuda\n"
+#~ " --help-all Aficha totas las opcions d'ajuda\n"
+#~ " --help-gtk Aficha las opcions de GTK+"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Usatge :\n"
+#~ " %s [PERIFERIC...] - utilitari de numerizacion"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Opcions GTK+ :\n"
+#~ " --class=CLASSA Classa del programa tala coma utilizada pel gestionari de "
+#~ "fenèstras\n"
+#~ " --name=NOM Nom del programa tal coma utilizat pel gestionari de fenèstras\n"
+#~ " --screen=ECRAN Ecran X d'utilizar\n"
+#~ " --sync Rendre los apèls X sincròns\n"
+#~ " --gtk-module=MODULS Cargar de moduls GTK+ suplementaris\n"
+#~ " --g-fatal-warnings Rendre totes los avertiments fatals"
+
+#~ msgid "Files missing"
+#~ msgstr "Fichièrs mancants"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Verificatz vòstra installacion"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "La o las fàcias de la pagina de numerizar. Aquò pòt èsser : « Recto verso », "
+#~ "« Recto » o « Verso »"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Lo sens de l'escanèr per rapòrt a la pagina numerizada."
diff --git a/po/pa.po b/po/pa.po
new file mode 100644
index 0000000..8104b87
--- /dev/null
+++ b/po/pa.po
@@ -0,0 +1,728 @@
+# Punjabi translation for simple-scan
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-04-17 06:12+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Punjabi <pa@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "ਪਰਮਾਣਿਤ(_A)"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "ਸਰੋਤ ਲਈ ਯੂਜ਼ਰ-ਨਾਂ(_U):"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "ਪਾਸਵਰਡ(_P):"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "ਅੱਗੇ ਅਤੇ ਪਿੱਛੇ"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "ਅੱਗੇ"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "ਪਿੱਛੇ"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "ਸੌਖਾ ਸਕੈਨ"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "ਡੌਕੂਮੈਂਟ(_D)"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "ਸਕੈਨ ਕਰੋ(_a)"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "ਇੱਕਲਾ ਸਫ਼ਾ(_P)"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "ਫੀਡਰ ਤੋਂ ਸਭ ਸਫ਼ੇ(_F)"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "ਸਕੈਨ ਨੂੰ ਰੋਕੋ(_S)"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "ਟੈਕਸਟ"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "ਫੋਟੋ"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "ਈਮੇਲ(_E)"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "ਸਫ਼ਾ(_P)"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "ਖੱਬੇ ਘੁੰਮਾਓ(_L)"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "ਸੱਜੇ ਘੁੰਮਾਓ(_R)"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "ਕਰੋਪ ਕਰੋ(_C)"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "ਕੁਝ ਨਹੀਂ(_N)"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "ਪੱਤਰ(_L)"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "ਲੀਗਲ(_g)"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "ਕਸਟਮ(_C)"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "ਕਰੋਪ ਨੂੰ ਘੁੰਮਾਓ(_R)"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "ਮੱਦਦ(_H)"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "ਸਮੱਗਰੀ(_C)"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "ਨਵਾਂ ਡੌਕੂਮੈਂਟ ਸ਼ੁਰੂ ਕਰੋ"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "ਨਵਾਂ"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "ਸਕੈਨਰ ਤੋਂ ਇੱਕਲਾ ਸਫ਼ਾ ਸਕੈਨ ਕਰੋ"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "ਸਕੈਨ"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "ਡੌਕੂਮੈਂਟ ਫਾਇਲ ਵਿੱਚ ਸੰਭਾਲੋ"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "ਸੰਭਾਲੋ"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "ਮੌਜੂਦਾ ਸਕੈਨ ਰੋਕੋ"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "ਰੋਕੋ"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "ਸਫ਼ੇ ਨੂੰ ਖੱਬੇ ਘੁੰਮਾਉ (ਘੜੀ ਦੀ ਉਲਟ ਦਿਸ਼ਾ ਵਿੱਚ)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "ਖੱਬੇ ਘੁੰਮਾਓ"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "ਸਫ਼ੇ ਨੂੰ ਸੱਜੇ ਘੁੰਮਾਉ (ਘੜੀ ਦੀ ਦਿਸ਼ਾ ਵਿੱਚ)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "ਸੱਜੇ ਘੁੰਮਾਓ"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "ਚੁਣੇ ਸਫ਼ੇ ਨੂੰ ਕਰੋਪ ਕਰੋ"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "ਕਰੋਪ ਕਰੋ"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "ਮੇਰੀ ਪਸੰਦ"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "ਸਕੈਨ ਸਰੋਤ(_o):"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "ਟੈਕਸਟ ਰੈਜ਼ੋਲੂਸ਼ਨ(_T):"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "ਫੋਟੋ ਰੈਜ਼ੋਲੂਸ਼ਨ(_P):"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "ਸਕੈਨ ਸਾਈਡ"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "ਸਫਾ ਆਕਾਰ:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "ਸਕੈਨ ਕੀਤੇ ਡੌਕੂਮੈਂਟ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "ਸਕੈਨ ਕਰਨ ਲਈ ਜੰਤਰ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "ਚਿੱਤਰ ਲੈਣ ਲਈ ਸੈਨ (SANE) ਜੰਤਰ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "ਸਕੈਨ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਡੌਕੂਮੈਂਟ ਦੀ ਕਿਸਮ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "ਟੈਕਸਟ ਸਕੈਨ ਲਈ ਰੈਜ਼ੋਲੂਸ਼ਨ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "ਫੋਟੋ ਸਕੈਨ ਲਈ ਰੈਜੋਲੂਸ਼ਨ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "ਸਕੈਨ ਕਰਨ ਲਈ ਸਫ਼ੇ ਦਾ ਪਾਸਾ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "ਫਾਇਲਾਂ ਸੰਭਾਲਣ ਲਈ ਡਾਇਰੈਕਟਰੀ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"ਫਾਇਲਾਂ ਸੰਭਾਲਣ ਲਈ ਡਾਇਰੈਕਟਰੀ ਹੈ। ਜੇ ਸੈੱਟ ਨਾ ਕੀਤਾ ਤਾਂ ਡਿਫਾਲਟ ਡੌਕੂਮੈਂਟ ਡਾਇਰੈਕਟਰੀ "
+"ਹੈ।"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "ਕੋਈ ਵੀ ਸਕੈਨਰ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ। ਸਕੈਨਰ ਨਾਲ ਕੁਨੈਕਟ ਕਰੋ ਜੀ।"
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "ਸਕੈਨਰ ਨਾਲ ਜੁੜਨ ਲਈ ਅਸਮਰੱਥ"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "ਸਕੈਨ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਅਸਮਰੱਥ"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "ਸਕੈਨਰ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr ""
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr ""
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "ਸਕੈਨ ਕਰਨ ਲਈ ਫੇਲ੍ਹ"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "ਸਕੈਨ ਕੀਤੇ ਡੌਕੂਮੈਂਟ"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "ਸਕੈਨ ਕੀਤਾ ਡੌਕੂਮੈਂਟ.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "'%s' ਵਰਤਣ ਲਈ ਯੂਜ਼ਰ-ਨਾਂ ਅਤੇ ਪਾਸਵਰਡ ਚਾਹੀਦਾ ਹੈ"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "ਕੋਈ ਸਕੈਨਰ ਨਹੀਂ ਮਿਲਿਆ"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "ਆਪਣੇ ਜੁੜ ਹੋਏ ਸਕੈਨਰ ਨੂੰ ਚੈੱਕ ਕਰੋ ਅਤੇ ਚਾਲੂ ਕਰੋ"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "ਇੰਝ ਸੰਭਾਲੋ..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "ਚਿੱਤਰ ਫਾਇਲਾਂ"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "ਸਭ ਫਾਇਲਾਂ"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "ਫਾਇਲ ਕਿਸਮ ਚੁਣੋ(_T)"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (ਬਹੁ-ਸਫ਼ਾ ਡੌਕੂਮੈਂਟ)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (compressed)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (lossless)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "ਫਾਇਲ ਸੰਭਾਲਣ ਲਈ ਫੇਲ੍ਹ ਹੈ"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "ਜੇ ਤੁਸੀਂ ਨਾ ਸੰਭਾਲਿਆ ਤਾਂ ਸਭ ਬਦਲਾਅ ਖਤਮ ਹੋ ਜਾਣਗੇ।"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "ਮੌਜੂਦਾ ਡੌਕੂਮੈਂਟ ਸੰਭਾਲਣਾ ਹੈ?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "ਬਦਲਾਅ ਅਣਡਿੱਠੇ"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr ""
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "ਚਿੱਤਰ ਝਲਕ ਐਪਲੀਕੇਸ਼ਨ ਖੋਲ੍ਹਣ ਲਈ ਅਸਮਰੱਥ"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "ਮੱਦਦ ਫਾਇਲ ਖੋਲ੍ਹਣ ਲਈ ਅਸਮਰੱਥ"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "ਸੈਂਪਲ ਸਕੈਨ ਬਾਰੇ"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "ਸੈਂਪਲ ਡੌਕੂਮੈਂਟ ਸਕੈਨਿੰਗ ਟੂਲ"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" A S Alam https://launchpad.net/~aalam-users"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "ਕੀ ਬੰਦ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਡੌਕੂਮੈਂਟ ਸੰਭਾਲਣਾ ਹੈ?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "ਬਿਨਾਂ ਸੰਭਾਲੇ ਬੰਦ ਕਰਨਾ ਹੈ"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (ਡਿਫਾਲਟ)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (draft)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (ਵੱਧ ਰੈਜ਼ੋਲੂਸ਼ਨ)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "ਸਕੈਨਰ ਬਦਲੋ(_S)"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "ਆਟੋਮੈਟਿਕ"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Direction of scan"
+#~ msgstr "ਸਕੈਨ ਦੀ ਦਿਸ਼ਾ"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "ਵਰਤੋਂ:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+
+#~ msgid "Please check your installation"
+#~ msgstr "ਆਪਣੀ ਇੰਸਟਾਲੇਸ਼ਨ ਚੈੱਕ ਕਰੋ ਜੀ"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "ਆਖਰੀ ਸਕੈਨ ਕੀਤੇ ਚਿੱਤਰ ਦਾ ਰੈਜ਼ੋਲੂਸ਼ਨ"
diff --git a/po/pl.po b/po/pl.po
new file mode 100644
index 0000000..3811b65
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,868 @@
+# Polish translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2014-07-06 15:24+0000\n"
+"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "Upow_ażnij"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "Nazwa _użytkownika dla zasobu:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Hasło:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Przód i tył"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Przód"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Tył"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Proste skanowanie"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokument"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sk_anowanie"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_Pojedyncza strona"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "_Wszystkie strony z podajnika"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "Zatrzymaj _skanowanie"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Tekst"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Zdjęcie"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Zmień kolejność stron"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_E-mail"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Strona"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Obróć w _lewo"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Obróć w p_rawo"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Przytnij"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Brak"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Własny"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "Ob_róć obszar przycięcia"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Przesuń w lewo"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Przesuń w prawo"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "Pomo_c"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Spis treści"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Tworzy nowy dokument"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Nowy"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Skanuje pojedynczą stronę ze skanera"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Skanuj"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Zapisuje dokument do pliku"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Zapisz"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Zatrzymuje bieżące skanowanie"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Zatrzymaj"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Obraca stronę w lewo (przeciwnie do ruchu wskazówek zegara)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Obróć w lewo"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Obraca stronę w prawo (zgodnie z ruchem wskazówek zegara)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Obróć w prawo"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Przycina wybraną stronę"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Przytnij"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Preferencje"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Źródło skan_owania:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Rozdzielczość tekstu:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "Rozdzielczość z_djęcia:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Skanowanie stron:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Rozmiar strony:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Jasność:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Kontrast:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Jakość:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Skanowanie dokumentów"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Urządzenie skanujące"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Urządzenie SANE do pobierania obrazu."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Typ skanowanego dokumentu"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Typ skanowanego dokumentu. To ustawienie decyduje o rozdzielczości "
+"skanowania, kolorach i przetwarzaniu końcowym."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Szerokość papieru w dziesiątkach milimetrów"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Szerokość papieru w dziesiątkach milimetrów (lub 0 dla automatycznego "
+"wykrywania papieru)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Wysokość papieru w dziesiątkach milimetrów"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Wysokość papieru w dziesiątkach milimetrów (lub 0 dla automatycznego "
+"wykrywania papieru)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Jasność skanowania"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Dostosowanie jasności, od -100 do 100 (0 oznacza brak)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Kontrast skanowania"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Dostosowanie kontrastu, od -100 do 100 (0 oznacza brak)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Rozdzielczość skanowanego tekstu"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+"Rozdzielczość do użycia podczas skanowania tekstu w punktach na cal (DPI)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Rozdzielczość skanowanych zdjęć"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+"Rozdzielczość do użycia podczas skanowania zdjęć w punktach na cal (DPI)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Strona do skanowania"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Strona kartki do skanowania."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Katalog do zapisania plików"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Katalog do zapisywania plików. Jeśli nie ustawiono, używa domyślnego "
+"katalogu Dokumenty."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Wartość jakości używana do kompresji JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Wartość jakości używana do kompresji JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Brak dostępnych skanerów. Proszę podłączyć skaner."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Nie można połączyć ze skanerem"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Nie można rozpocząć skanowania"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Błąd podczas komunikacji ze skanerem"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Wyświetla informacje o wersji"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Wyświetla komunikaty diagnozowania błędów"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Naprawia pliki PDF utworzone przy użyciu starszych wersji programu"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Skanowanie się nie powiodło"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Zeskanowany dokument"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[URZĄDZENIE] - Narzędzie do skanowania"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Wykonanie polecenia \"%s --help\" wyświetli pełną listę dostępnych opcji "
+"wiersza poleceń."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Zeskanowany dokument.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "Za_mknij"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Uzyskanie dostępu do \"%s\" wymaga podania nazwy użytkownika i hasła"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Nie wykryto żadnego skanera"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Proszę sprawdzić, czy skaner jest podłączony i włączony"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Zapisz jako..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Anuluj"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Zapisz"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Pliki obrazów"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Wszystkie pliki"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Proszę wybrać _typ pliku"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (dokument wielostronicowy)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (skompresowany)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (bezstratny)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Zapisanie pliku się nie powiodło"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Zmiany zostaną bezpowrotnie utracone, jeśli nie zostaną zapisane."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Zapisać bieżący dokument?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Odrzuć zmiany"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Nie można zapisać podglądu obrazu"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Nie można otworzyć programu podglądu obrazów"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr "Połącz strony"
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr "Połącz strony (odwrotnie)"
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "Odwrotnie"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Bez zmiany"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Nie można otworzyć pliku pomocy"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Niniejszy program jest wolnym oprogramowaniem; można go rozprowadzać dalej\n"
+"i/lub modyfikować na warunkach Powszechnej Licencji Publicznej GNU, wydanej\n"
+"przez Fundację Wolnego Oprogramowania (Free Software Foundation) - według\n"
+"wersji trzeciej tej Licencji lub którejś z późniejszych wersji.\n"
+"\n"
+"Niniejszy program rozpowszechniany jest z nadzieją, iż będzie on użyteczny -"
+"\n"
+"jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji\n"
+"PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH\n"
+"ZASTOSOWAŃ. W celu uzyskania bliższych informacji należy zapoznać się z\n"
+"Powszechną Licencją Publiczną GNU.\n"
+"\n"
+"Z pewnością wraz z niniejszym programem dostarczono także egzemplarz\n"
+"Powszechnej Licencji Publicznej GNU (GNU General Public License); jeśli nie\n"
+"- proszę odwiedzić stronę internetową <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "O programie"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Proste narzędzie do skanowania dokumentów"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Arkadiusz Błasiak https://launchpad.net/~ares1112\n"
+" GTriderXC https://launchpad.net/~gtriderxc\n"
+" Kuba Mędrek https://launchpad.net/~kubix-medrek\n"
+" Marcin Kozioł https://launchpad.net/~lord-dark666\n"
+" Michał Sawicz https://launchpad.net/~saviq\n"
+" Miłosz Kosobucki https://launchpad.net/~mikom\n"
+" P.W. https://launchpad.net/~piwsko\n"
+" Piotr Drąg https://launchpad.net/~raven46\n"
+" Piotr Sokół https://launchpad.net/~psokol\n"
+" Piotr Strębski https://launchpad.net/~strebski\n"
+" Piotr Łukomiak https://launchpad.net/~pioluk\n"
+" Rafał Szalecki https://launchpad.net/~perex\n"
+" Szymon Waliczek https://launchpad.net/~majster-pl\n"
+" Tomasz 'Zen' Napierala https://launchpad.net/~tzn\n"
+" Tomasz Dominikowski https://launchpad.net/~dominikowski\n"
+" Wiatrak https://launchpad.net/~wiatrak."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Zapisać dokument przed zakończeniem programu?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Zakończ bez zapisywania"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d DPI (domyślnie)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d DPI (szkic)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d DPI (wysoka rozdzielczość)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d DPI"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "Nowy dokument"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Dokument"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "E-mail..."
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Wydrukuj..."
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Pomoc"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "O programie"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Zakończ"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Zmień _skaner"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatyczny"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Ciemniej"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Jaśniej"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Mniejszy"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Większy"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimalnie"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maksymalnie"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Zapisywanie dokumentu..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Zapisywanie strony %d z %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4x6\""
+
+#~ msgid "Files missing"
+#~ msgstr "Nie można odnaleźć plików"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Użycie:\n"
+#~ " %s [URZĄDZENIE...] - Narzędzie do skanowania"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Wysokość zeskanowanego obrazu w pikselach"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Kierunek skanowania"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Rozdzielczość ostatnio zeskanowanego obrazu"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Kierunek skanowania na skanowanej stronie. Może być jednym z następujących: "
+#~ "\"top-to-bottom\" (od góry do dołu), \"bottom-to-top\" (od dołu do góry), "
+#~ "\"left-to-right\" (od lewej do prawej), \"right-to-left\" (od prawej do "
+#~ "lewej)"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Typ skanowanego dokumentu. Wartość \"text\" (tekst) dla dokumentów "
+#~ "tekstowych, \"photo\" (zdjęcie) dla zdjęć. To ustawienie decyduje o "
+#~ "rozdzielczości skanowania, kolorach i możliwości późniejszej obróbki."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Szerokość zeskanowanego obrazu w pikselach. Ta wartość jest aktualizowana do "
+#~ "tej, jaka wynosiła podczas ostatniego skanowania."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Wysokość zeskanowanego obrazu w pikselach. Ta wartość jest aktualizowana do "
+#~ "tej, jaka wynosiła podczas ostatniego skanowania."
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "Wartość \"True\", jeśli okno programu jest zmaksymalizowane"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Rozdzielczość ostatnio skanowanego obrazu w punktach na cal (dpi)."
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Wysokość okna w pikselach"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Szerokość okna w pikselach"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Szerokość zeskanowanego obrazu w pikselach"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Opcje pomocy:\n"
+#~ " -d, --debug Wyświetla komunikaty drukowania\n"
+#~ " -v, --version Wyświetla wersję programu\n"
+#~ " -h, --help Wyświetla opcje pomocy\n"
+#~ " --help-all Wyświetla wszystkie opcje pomocy\n"
+#~ " --help-gtk Wyświetla opcje GTK+"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Proszę sprawdzić poprawność instalacji"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Strona do skanowania. Może wynosić jedną z wartości: \"both\" (obie), "
+#~ "\"front\" (przód), \"back\" (tył)"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Opcje GTK+:\n"
+#~ " --class=KLASA Klasa programu używana przez menedżera "
+#~ "okien\n"
+#~ " --name=NAZWA Nazwa programu używana przez menedżera "
+#~ "okien\n"
+#~ " --screen=EKRAN Używany ekran X\n"
+#~ " --sync Synchroniczne wywołania X\n"
+#~ " --gtk-module=MODUŁY Wczytuje dodatkowe moduły biblioteki GTK+\n"
+#~ " --g-fatal-warnings Wszystkie ostrzeżenia są krytyczne"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Kierunek skanowania strony."
diff --git a/po/pt.po b/po/pt.po
new file mode 100644
index 0000000..a4cbb4a
--- /dev/null
+++ b/po/pt.po
@@ -0,0 +1,878 @@
+# Portuguese translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2014-07-24 15:38+0000\n"
+"Last-Translator: Paulo Henriques <Unknown>\n"
+"Language-Team: Portuguese <pt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autorizar"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "Nome do _utilizador para o recurso:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Palavra-Passe:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Frente e Verso"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Frente"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Verso"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Digitalização Simples"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Documento"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Digit_alizar"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_Página Única"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Todas as páginas a partir do _Alimentador"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Parar Digitalização"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Texto"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Reordenar Páginas"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Email"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Página"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Rodar para a _Esquerda"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Rodar para a _Direita"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Cortar"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Nenhum"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Carta"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Personalizar"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Rodar Recorte"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Mover para a Esquerda"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Mover para a Direita"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Ajuda"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Conteúdos"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Iniciar um novo documento"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Novo"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Digitalizar uma página no digitalizador"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Digitalizar"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Guardar documento num ficheiro"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Guardar"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Parar a digitalização actual"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Parar"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Rodar a página para a esquerda (contra ponteiros do relógio)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Rodar para a Esquerda"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Rodar a página para a direita (ponteiros do relógio)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Rodar para a Direita"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Cortar a página selecionada"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Recortar"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Preferências"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Origem da Digitalizaçã_o:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "Resolução do _Texto:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Resolução da Foto:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Lado da digitalização"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Tamanho da Página:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Brilho:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Contraste:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Qualidade:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Digitalizar Documentos"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Dispositivo de onde digitalizar"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Dispositivo SANE para obter imagens"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Tipo do documento a ser digitalizado"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Tipo de documento a ser digitalizado. Esta configuração decide sobre a "
+"resolução de digitalização, cores e pós-processamento."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Largura do papel em milímetros"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"A largura do papel em milimetros (ou 0 para detecção automática de papel)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Altura da folha em décimos de mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"A altura do papel em milímetros (ou 0 para detecção automática de papel)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Brilho da digitalização"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "O ajuste do brilho desde -100 a 100 (0 sendo nenhum)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Contraste da digitalização"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "O ajuste do contraste desde -100 a 100 (0 sendo nada)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Resolução para digitalização de textos"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+"A resolução em pontos-por-polegada a ser usada quando digitalizar texto."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Resolução para digitalização de fotos"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+"A resolução em pontos-por-polegadas a ser usada quando digitalizar fotos."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Lado da página a digitalizar"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "O lado da página para digitalizar."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Pasta para guardar os ficheiros"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"O directório no qual salvar os ficheiros. Usa o directório de documentos "
+"predefinido se não for configurado."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Valor de qualidade a usar na compressão JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Valor de qualidade a usar na compressão JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Nenhum digitalizador disponível. Por favor, ligue um scanner."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Impossível ligar ao scanner"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Não é possível iniciar a digitalização"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Erro de comunicação com scanner"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Mostrar a versão de lançamento"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Imprimir mensagens de depuração"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Compatibilizar ficheiros PDF gerados por versões mais antigas do Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Falhou ao digitalizar"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Documento digitalizado"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DEVICE...] - Utilitário de digitalização"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Execute '%s --help' para consultar uma lista completa das opções de linha de "
+"comando disponíveis."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Documento Digitalizado.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "Fechar"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "É necessário utilizador e palavra-passe para aceder a '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Nenhum scanner detectado"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Verifique se o seu scanner está conectado e ligado"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Guardar Como..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "Cancelar"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "Guardar"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Ficheiros de imagem"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Todos os ficheiros"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Seleccionar _Tipo de ficheiro"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (documento multi-página)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (comprimido)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (sem perdas)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Falhou ao guardar o ficheiro"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Se não guardar, as alteração serão perdidas permanentemente."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Guardar documento actual?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Descartar Alterações"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Incapaz de gravar imagem para pré-visualização"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Não foi possível abrir a aplicação de visualização de imagem"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr "Combinar lados"
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr "Combinar Lados (inverso)"
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "Inverter"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Manter inalterado"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Não foi possível abrir o ficheiro da ajuda"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Este programa é software livre: você pode redistribuí-lo e/ou modificá-lo\n"
+"sob os termos da Licença Pública Geral GNU como publicado pela\n"
+"Free Software Foundation, seja a versão 3 da licença, ou (na sua opinião)\n"
+"alguma versão posterior.\n"
+"\n"
+"Este programa é distribuído na esperança de que seja útil, mas\n"
+"SEM NENHUMA GARANTIA; mesmo a garantia implicada de COMERCIALIZAÇÃO\n"
+"ou APTIDÃO PARA UMA FINALIDADE PARTICULAR. Veja a Licença Pública\n"
+"Geral GNU para mais detalhes.\n"
+"\n"
+"Você deve ter recebido uma cópia da Licença Pública Geral GNU juntamente a "
+"\n"
+"este programa. Caso contrário, veja <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Acerca do Digitalização Simples (Simple Scan)"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Ferramenta simples para digitalizar documentos"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Alessio Treglia https://launchpad.net/~quadrispro\n"
+" Alexandre Fidalgo https://launchpad.net/~alexandremagnos15\n"
+" Almufadado https://launchpad.net/~almufadado\n"
+" André Lopes https://launchpad.net/~zipatei\n"
+" António PT https://launchpad.net/~antoniopt\n"
+" Carlos Manuel https://launchpad.net/~crolidge\n"
+" Claudio Novais https://launchpad.net/~claudiocn\n"
+" Daniel Carvalho https://launchpad.net/~danielcarvalhobt\n"
+" David Gomes https://launchpad.net/~davidgomes\n"
+" Diogo Lavareda https://launchpad.net/~diogolavareda\n"
+" Fernando Carvalho https://launchpad.net/~phaetonkde\n"
+" Filipe André Pinho https://launchpad.net/~pinhoadas\n"
+" Flavio https://launchpad.net/~flaviocarpin\n"
+" Gusrubin https://launchpad.net/~gusrubin\n"
+" Hélder Portela https://launchpad.net/~helderp666\n"
+" IvoGuerreiro https://launchpad.net/~ivoguerreiro\n"
+" Jaime Pereira https://launchpad.net/~jaimepereira\n"
+" Jose Almeida https://launchpad.net/~josealmeida\n"
+" Luis Pratas https://launchpad.net/~luispratas\n"
+" Marco Paulo Martins Sousa https://launchpad.net/~marcomsousa\n"
+" Maria Loureiro https://launchpad.net/~cloureiro\n"
+" Paulo Henriques https://launchpad.net/~pajohenriques\n"
+" Ricardo Conde https://launchpad.net/~turotulco\n"
+" Robert Ancell https://launchpad.net/~robert-ancell\n"
+" Sérgio Faria https://launchpad.net/~sergio91pt\n"
+" Tiago Carrondo https://launchpad.net/~tcarrondo\n"
+" Tiago Silva https://launchpad.net/~tiagosilva\n"
+" joao dourado https://launchpad.net/~sjdourado\n"
+" styluss https://launchpad.net/~styluss"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Guardar documento antes de sair?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Sair SEM Guardar"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (predefinido)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (rascunho)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (alta-resolução)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d ppp"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "Novo Documento"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Documento"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "E-mail..."
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Imprimir..."
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Ajuda"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "Sobre"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Sair"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Alterar _digitalizador"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automático"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Escurecer"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Clarear"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Menos"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Mais"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Mínimo"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Máximo"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "A guardar o documento..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "A guardar a página %d de %d"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Por favor, verifique a sua instalação"
+
+#~ msgid "Files missing"
+#~ msgstr "Ficheiros em falta"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Utilização:\n"
+#~ " %s [DISPOSITIVO...] - Utilitário de digitalização"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Altura da imagem digitalizada em pixeis"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Direcção da digitalização"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Resolução da última imagem digitalizada"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "VERDADE se a janela da aplicação está maximizada."
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "A direcção do digitalizador através da página digitalizada pode ser uma das "
+#~ "seguintes: 'de cima para baixo' 'de baixo para cima' 'esquerda para direita' "
+#~ "'direita para esquerda'"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "A altura da imagem digitalizada em pixels. Este valor é actualizado com o "
+#~ "valor da última página digitalizada."
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "O lado da página para digitalizar. Pode ser uma das seguintes: 'ambas' "
+#~ "'frente' 'verso'"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Tipo de documento a ser digitalizado. 'texto' para documentos de texto, "
+#~ "'foto' para fotos. Este ajuste define a resolução de digitalização, cores e "
+#~ "pós-processamento."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "A largura da imagem digitalizada em pixels. Este valor é actualizado com o "
+#~ "valor da última imagem que foi digitalizada."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr ""
+#~ "A resolução em pontos-por-polegada da imagem anteriormente digitalizada."
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Altura da janela em pixels"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Largura da janela em pixels"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Opções de ajuda:\n"
+#~ " -d, --debug Imprime mensagens de depuração\n"
+#~ " -v, --version Mostra a versão do lançamento\n"
+#~ " -h, --help Mostra as opções de ajuda\n"
+#~ " --help-all Mostra todas as opções de ajuda\n"
+#~ " --help-gtk Mostra as opções do GTK+"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Largura da imagem digitalizada em pixels"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Opções GTK+:\n"
+#~ "--class=CLASS Classe do Programa tal como usado pelo gestor de "
+#~ "janelas\n"
+#~ "--name=NAME Nome do Programa tal como usado pelo gestor de "
+#~ "janelas\n"
+#~ "--screen=SCREEN Ecrã X a ser usado\n"
+#~ "--sync Fazer a chamadas ao ecrã X sincronas\n"
+#~ "--gtk-module=MODULES Carregar módulos GTK+ adicionais\n"
+#~ "--g-fatal-warnings Tornar todos os avisos fatais"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "A direção do scanner através da página digitalizada."
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644
index 0000000..1cc74ed
--- /dev/null
+++ b/po/pt_BR.po
@@ -0,0 +1,873 @@
+# Brazilian Portuguese translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2013-04-16 12:21+0000\n"
+"Last-Translator: Neliton Pereira Jr. <nelitonpjr@gmail.com>\n"
+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autorizar"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "Nome de _usuário para o recurso:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Senha:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Frente e verso"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Frente"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Verso"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Digitalizador simples"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Documento"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Digit_alizar"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_Página única"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Todas as páginas do ali_mentador"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "Par_ar digitalização"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Texto"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_E-mail"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Página"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Girar à _esquerda"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Girar à di_reita"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "Re_cortar"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Nenhum"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Carta"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "_Ofício"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Personalizar"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "Gira_r área recortada"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Mover para a esquerda"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Mover para a direita"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "A_juda"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Conteúdo"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Iniciar um novo documento"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Novo"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Digitalizar uma página no digitalizador"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Digitalizar"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Salvar documento em arquivo"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Salvar"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Parar a digitalização atual"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Parar"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Girar a página à esquerda (sentido anti-horário)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Girar à esquerda"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Girar a página à direita (sentido horário)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Girar à direita"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Recortar a página selecionada"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Recortar"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Preferências"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Origem da digitalizaçã_o:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "Resolução do _texto:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "Resolução da _foto:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Lado a digitalizar:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Tamanho da página:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Brilho:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Contraste:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Qualidade:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Digitalizar documentos"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Dispositivo de onde digitalizar"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Dispositivo de onde o SANE adquirire imagens."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Tipo do documento a ser digitalizado"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Tipo de documento a ser digitalizado. Esta configuração define a resolução "
+"da digitalização, cores e pós-processamento."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Largura do papel em décimos de milímetro"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"A largura do papel em décimos de mm (ou 0 para detecção automática de papel)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Altura do papel em décimos de milímetro"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"A altura do papel em décimos de milímetro (ou 0 para detecção automática de "
+"papel)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Luminosidade do digitalizador"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "O ajuste de luminosidade de -100 para 100 (0 sendo nenhum)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Contraste do digitalizador"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "O ajuste do contraste de -100 para 100 (0 sendo nenhum)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Resolução para digitalização de textos"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+"A resolução em pontos por polegada a ser usada na digitalização e textos."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Resolução para digitalização de fotos"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+"A resolução em pontos por polegadas a ser usada na digitalização de fotos."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Lado da página a ser digitalizado"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "O lado da página a ser digitalizado."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Diretório para salvar arquivos"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"O diretório no qual salvar os arquivos. Se não configurado, o diretório "
+"Documentos é usado como padrão."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Qualidade para usar na compressão JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Qualidade para usar na compressão JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+"Nenhum digitalizador disponível. Por favor, conecte um digitalizador."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Não foi possível conectar-se ao digitalizador"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Não foi possível iniciar o digitalizador"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Erro na comunicação com o digitalizador"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Mostrar versão de lançamento"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Imprimir mensagens de depuração"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Corrigir arquivos PDF gerados com versões anteriores do Digitalizador simples"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Falha ao digitalizar"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Documento digitalizado"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DISPOSITIVO...] - Utilitário de digitalização"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Execute '%s --help' para ver a lista completa de opções disponíveis para "
+"linha de comando."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Documento digitalizado.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "Fe_char"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "É necessário o nome de usuário e senha para acessar '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Nenhum digitalizador detectado"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Por favor verifique se o seu digitalizador está conectado e ligado"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Salvar como..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Cancelar"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Salvar"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Arquivos de imagem"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Todos os arquivos"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Selecionar _tipo de arquivo"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (documento com múltiplas páginas)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (comprimido)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (sem perdas)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Falha ao salvar o arquivo"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Se você não salvar, as alterações serão permanentemente perdidas."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Salvar documento atual?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Descartar alterações"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Não é possível salvar imagem para visualização"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Não foi possível abrir o aplicativo de visualização de imagem"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Não foi possível abrir o arquivo de ajuda"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Este programa é uma software livre: você pode redistribuí-lo e/ou modificá-"
+"lo\n"
+"sob os termos da Licença Pública Geral GNU conforme publicada pela\n"
+"Free Software Foundation, seja a versão 3 da licença, ou (se preferir)\n"
+"alguma versão posterior.\n"
+"\n"
+"Este programa é distribuído na expectativa de que seja útil, mas\n"
+"SEM NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIALIZAÇÃO\n"
+"ou ADEQUAÇÃO PARA UMA FINALIDADE EM PARTICULAR. Veja a Licença Pública\n"
+"Geral GNU para mais detalhes.\n"
+"\n"
+"Você deve ter recebido uma cópia da Licença Pública Geral GNU juntamente a\n"
+"este programa. Caso contrário, acesse <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Sobre o Digitalizador simples"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Ferramenta simples para digitalizar documentos"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Almufadado https://launchpad.net/~almufadado\n"
+" André Gondim https://launchpad.net/~andregondim\n"
+" Benjamim Gois https://launchpad.net/~benjamim-gois\n"
+" Celio Alves https://launchpad.net/~celio.alves\n"
+" Celio Ricardo Quaio Goetten https://launchpad.net/~celioric\n"
+" Celso H. L. S. Junior https://launchpad.net/~celsojunior\n"
+" Fábio Nogueira https://launchpad.net/~fnogueira\n"
+" Matheus Pacheco de Andrade https://launchpad.net/~matheusp-andrade-"
+"deactivatedaccount\n"
+" Neliton Pereira Jr. https://launchpad.net/~nelitonpjr\n"
+" Pablo Diego Moço https://launchpad.net/~pablodm89\n"
+" Paulo José https://launchpad.net/~pauloup\n"
+" Paulo Pernomian https://launchpad.net/~paulopernomian\n"
+" Rafael Neri https://launchpad.net/~rafepel\n"
+" Rafael Zenni https://launchpad.net/~rafaeldz\n"
+" Salomão Carneiro de Brito https://launchpad.net/~salomaocar\n"
+" Tiago Hillebrandt https://launchpad.net/~tiagohillebrandt\n"
+" Vitor da Silva Gonçalves https://launchpad.net/~vitorsgoncalves\n"
+" Vítor Avelino https://launchpad.net/~vitoravelino\n"
+" andbelo https://launchpad.net/~andbelo\n"
+" kahue https://launchpad.net/~kahuemm\n"
+" millemiglia https://launchpad.net/~dnieper650"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Salvar o documento antes de sair?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Sair sem salvar"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (padrão)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (rascunho)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (alta resolução)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d ppp"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Alterar _digitalizador"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automático"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Mais escuro"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Mais claro"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Menos"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Mais"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Mínima"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Máxima"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Salvando documento..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Salvando página %d de %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Por favor verifique a sua instalação"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Opções do GTK+:\n"
+#~ " --class=CLASS Classe de programa como usada pelo "
+#~ "gerenciador de janelas\n"
+#~ " --name=NAME Nome do programa como usado pelo "
+#~ "gerenciador de janelas\n"
+#~ " --screen=SCREEN Tela X a ser usada\n"
+#~ " --sync Torna as chamadas do X síncronas\n"
+#~ " --gtk-module=MODULES Carrega módulos adicionais do GTK+\n"
+#~ " --g-fatal-warnings Torna todos os avisos fatais"
+
+#~ msgid "Files missing"
+#~ msgstr "Arquivos faltando"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Uso:\n"
+#~ " %s [DISPOSITIVO...] - Utilitário de escaneamento"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Altura da imagem digitalizada em pixels"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Altura da janela em pixels"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Largura da janela em pixels"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Largura da imagem digitalizada em pixels"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr ""
+#~ "A resolução em pontos por polegada da imagem previamente digitalizada."
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Resolução da última imagem digitalizada"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "A altura da imagem digitalizada em pixels. Este valor é atualizado com o "
+#~ "valor da última página digitalizada."
+
+#~ msgid "Direction of scan"
+#~ msgstr "Direção da digitalização"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "A direção do digitalizador através da página digitalizada pode ser uma das "
+#~ "seguintes: 'de cima para baixo' 'de baixo para cima' 'esquerda para direita' "
+#~ "'direita para esquerda'"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Tipo de documento sendo digitalizado. 'texto' para documentos de texto, "
+#~ "'foto' para fotos. Este ajuste define a resolução de digitalização, cores e "
+#~ "pós-processamento."
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Opções de ajuda:\n"
+#~ " -d, --debug Imprime mensagens de depuração\n"
+#~ " -v, --version Mostra a versão do lançamento\n"
+#~ " -h, --help Mostra as opções de ajuda\n"
+#~ " --help-all Mostra todas as opções de ajuda\n"
+#~ " --help-gtk Mostra as opções do GTK+"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "O lado da página para digitalizar. Pode ser uma das seguintes: 'ambas' "
+#~ "'frente' 'verso'"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "A largura da imagem digitalizada em pixels. Este valor é atualizado com o "
+#~ "valor da última imagem que foi digitalizada."
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "VERDADEIRO se a janela do aplicativo estiver maximizada"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "A direção em que o digitalizador percorre a página digitalizada."
diff --git a/po/ro.po b/po/ro.po
new file mode 100644
index 0000000..b2ff513
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,858 @@
+# Romanian translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+# Lucian Adrian Grijincu <lucian.grijincu@gmail.com>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-09-11 18:43+0000\n"
+"Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
+"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+"Language: ro\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autorizează"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "Numele de _utilizator pentru resursă:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Parolă:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Față și verso"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Față"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Verso"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Scanare simplă"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Document"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sc_anează"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "O singură _pagină"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Toate paginile de la tava cu _foi de hârtie"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "Oprește _scanarea"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Text"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Email"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Pagină"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Rotește la _stânga"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Rotește la _dreapta"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "De_cupează"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Niciunul"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Scrisoare"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Personalizat"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Rotește zona decupată"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Mută la stânga"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Mută la dreapta"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Ajutor"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Cuprins"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Începeți un document nou"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Nou"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Scanați o singură pagină din scaner"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Scanează"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Salvează documentul ca fișier"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Salvează"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Oprește scanarea curentă"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Oprește"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Rotește pagina la stânga (în sens invers acelor de ceasornic)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Rotește la stânga"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Rotește pagina la dreapta (în sensul acelor de ceasornic)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Rotește la dreapta"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Decupează pagina selectată"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Decupează"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Preferințe"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "S_ursă scanare:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "Rezoluție _text:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "Rezoluție _foto :"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Partea scanată:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Dimensiunea paginii:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Luminozitate:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Contrast:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Calitate:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Scanează documente"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Dispozitiv de folosit pentru scanare"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Dispozitivul SANE din care se preiau imaginile."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Tipul de document scanat"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Tipul de document care va fi scanat. Această opțiune determină rezoluția de "
+"scanare, culoarea și post-procesarea."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Lățimea hârtiei în zecimi de mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Lățimea hârtiei în zecimi de mm (sau 0 pentru detectarea automată a hârtiei)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Înălțimea hârtiei în zecimi de mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Înălțimea hârtiei în zecimi de mm (sau 0 pentru detectarea automată a "
+"hârtiei)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Luminozitate scanare"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Reglare luminozitate de la -100 la 100 (0 fiind nimic)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Contrast scanare"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Reglare contrast de la -100 la 100 (0 fiind nimic)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Rezoluția pentru scanări text"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Rezoluția în dpi (dots-per-inch) folosită la scanarea de text."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Rezoluția pentru scanări foto"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Rezoluția în dpi (dots-per-inch) folosită la scanarea fotografiilor."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Partea de scanat a paginii"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Fața paginii care va fi scanată."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Dosarul în care să se salveze fișierele"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Dosarul în care să se salveze fișierele. Dacă nu este definit, fișierele "
+"sunt salvate în dosarul de documente."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Valoare calitate pentru compresia JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Valoare calitate pentru compresia JPEG"
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Nu există niciun scaner disponibil. Conectați un scaner."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Nu s-a putut realiza conexiunea la scaner"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Nu s-a putut porni scanarea"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Eroare la comunicarea cu scanerul"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Arată versiunea"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Afișează mesajele pentru depanare"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Repară fișiere PDF generate cu versiuni mai vechi ale programului scanare "
+"simplă"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Scanarea a eșuat"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Document scanat"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "DISPOZITIV...] - Utilitar pentru scanare"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Rulați „%s --help” pentru a consulta lista completă a opțiunilor pentru "
+"comenzile mediului text."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Document scanat.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "Înc_hide"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Sunt necesare numele de utilizator și parola pentru a accesa „%s”"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Nu a fost detectat niciun scaner"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Verificați dacă scanerul este conectat și pornit"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Salvează ca..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Anulare"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Salvează"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Fișiere imagine"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Toate fișierele"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Alegeți _tipul de fișier"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (document cu mai multe pagini)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (comprimat)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (fără pierderi)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Salvarea fișierului a eșuat"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Dacă nu salvați, modificările vor fi pierdute definitiv."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Salvați documentul curent?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Renunță la modificări"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Nu se poate salva imaginea pentru a prezenta o previzualizare"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Nu s-a putut deschide aplicația de previzualizare a imaginilor"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Nu se poate deschide fișierul de ajutor"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Acest program este liber: îl puteți redistribui și/sau modifica în "
+"conformitate cu\n"
+"termenii Licenței Publice Generale GNU, așa cum este publicată de către\n"
+"Free Software Foundation, fie versiunea 3 a Licenței, fie\n"
+"(la alegerea dumneavoastră) orice versiune ulterioară.\n"
+"\n"
+"Acest program este distribuit cu speranța că va fi util,\n"
+"dar FĂRĂ NICIO GARANȚIE; nici măcar cu garanția implicită de\n"
+"VANDABILITATE sau CONFORMITATE CU UN ANUMIT SCOP. Consultați\n"
+"Licența Publică Generală GNU pentru mai multe detalii.\n"
+"\n"
+"Dumneavoastră ar trebui să fi primit o copie a Licenței Publice Generale "
+"GNU\n"
+"împreună cu acest program. În caz contrar, consultați "
+"<http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Despre „Scanare simplă”"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Utilitar pentru scanarea simplă a documentelor"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Adi Roiban https://launchpad.net/~adiroiban\n"
+" Angelescu https://launchpad.net/~titus0818\n"
+" Claudia Cotună https://launchpad.net/~special4ti\n"
+" Dan Telecan https://launchpad.net/~telecan-dan\n"
+" Lucian Adrian Grijincu https://launchpad.net/~lucian.grijincu\n"
+" Marian Vasile https://launchpad.net/~marianvasile-ubuntu\n"
+" ValentinV https://launchpad.net/~valentinverde\n"
+" sfantu https://launchpad.net/~sfantus1"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Salvați documentul înainte de ieșire?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Închide fără a salva"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (implicit)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (ciornă)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (rezoluție înaltă)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Schimbă _scanerul"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automată"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Mai întunecat"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Mai luminos"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Mai puțin"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Mai mult"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minim"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maxim"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Se salvează documentul..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Se salvează pagina %d din %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Verificați instalarea"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Utilizare:\n"
+#~ " %s [DISPOZITIV...] - Utilitar de scanare"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Rezoluția ultimei imagini scanate"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Lățimea imaginii scanate, în pixeli"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Direcția scanării"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Înălțimea imaginii scanate, în pixeli"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "ADEVĂRAT dacă fereastra aplicației este mărită la maximum"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Direcția scanerului peste pagina scanată. Poate fi una dintre următoarele: "
+#~ "„top-to-bottom”, „bottom-to-top”, „left-to-right”, „right-to-left”"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Înălțimea imaginii scanate, în pixeli. Această valoare este actualizată la "
+#~ "cea corespunzătoare paginii scanate precedent."
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Partea de scanat a paginii. Poate fi una din următoarele: „ambele”, „față”, "
+#~ "„verso”"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Rezoluția în dpi (dots-per-inch) a imaginii scanate precedent."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Lățimea imaginii scanate, în pixeli. Această valoare este actualizată la cea "
+#~ "corespunzătoare paginii scanate precedent."
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Tipul de document scanat. „text” pentru documentele în format text, „photo” "
+#~ "pentru fotografii. Aceste configurări decid rezoluția, culorile și post-"
+#~ "procesarea scanării."
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Înălțimea ferestrei, în pixeli"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Lățimea ferestrei, în pixeli"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Opțiuni de ajutor:\n"
+#~ " -d, --debug Tipărește mesajele de depanare\n"
+#~ " -v, --version Afișează versiunea lansată\n"
+#~ " -h, --help Afișează opțiuni de ajutor\n"
+#~ " --help-all Afișează toate opțiunile de ajutor\n"
+#~ " --help-gtk Afișează opțiuni GTK+"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Opțiuni GTK+:\n"
+#~ " --class=CLASĂ Clasa de program folosită de "
+#~ "administratorul de ferestre\n"
+#~ " --name=NUME Nume program folosit de administratorul de "
+#~ "ferestre\n"
+#~ " --screen=ECRAN Ecranul X folosit\n"
+#~ " --sync Efectuează X apeluri sincrone\n"
+#~ " --gtk-module=MODULE Încarcă module GTK+ adiționale\n"
+#~ " --g-fatal-warnings Consideră toate avertismentele fatale"
+
+#~ msgid "Files missing"
+#~ msgstr "Lipsesc fișierele"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Direcția scanerului față de pagina scanată."
diff --git a/po/ru.po b/po/ru.po
new file mode 100644
index 0000000..8f15dbb
--- /dev/null
+++ b/po/ru.po
@@ -0,0 +1,871 @@
+# Russian translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2014-07-10 05:43+0000\n"
+"Last-Translator: Jay ZDLin <Unknown>\n"
+"Language-Team: Russian <ru@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "Р_азрешить"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "Имя поль_зователя для ресурса:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Пароль:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Обе стороны"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Лицевая сторона"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Обратная сторона"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Простое сканирование"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Документ"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "От_сканировать"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Одна _страница"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Все страницы из _автоподатчика"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Остановить сканирование"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Текст"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Фотография"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Организация страниц"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "Отправить по _электронной почте"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Страница"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Повернуть в_лево"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Повернуть в_право"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Обрезать"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Нет"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "US _Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "US Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Другое..."
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Повернуть выбранное"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Переместить влево"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Переместить вправо"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Справка"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Содержание"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Создать новый документ"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Создать"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Отсканировать одну страницу со сканера"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Отсканировать"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Сохранить документ в файл"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Сохранить"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Прервать выполняемое сканирование"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Завершить"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Повернуть страницу влево (против часовой стрелки)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Повернуть влево"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Повернуть страницу вправо (по часовой стрелке)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Повернуть вправо"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Обрезать выбранную страницу"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Обрезать"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Параметры"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Ист_очник сканирования:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "Р_азрешение текста:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Разрешение фотографии:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Сканируемая сторона:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Размер листа:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Яркость:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Контрастность:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Качество:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Сканирование документов"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Устройство сканирования"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Устройство SANE для получения изображений."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Тип сканируемого документа"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Тип сканируемого документа. Эта настройка отвечает за разрешение, глубину "
+"цвета и пост-обработку."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Ширина бумаги, см"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr "Ширина бумаги в десятках мм (или 0 для автоматического определения)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Высота бумаги в десятых долях мм"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr "Высота бумаги в десятках мм (или 0 для автоматического определения)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Яркость изображения"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Значение яркости от -100 до 100 (0 — без изменений)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Контрастность изображения"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Значение контрастности от -100 до 100 (0 — без изменений)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Разрешение для сканирования текста"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Разрешение в точках на дюйм при сканировании текста."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Разрешение для сканирования фотографий"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Разрешение в точках на дюйм при сканировании фотографий."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Сторона страницы для сканирования"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Сторона страницы для сканирования."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Папка для сохранения файлов"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Папка для сохранения файлов. По умолчанию используется папка с документами."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Значение качества, используемого для сжатия JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Значение качества, используемого для сжатия JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Нет доступного сканера. Подключите его."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Не могу подключиться к сканеру"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Не могу начать сканирование"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Ошибка при работе со сканером"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Показать версию"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Показать сообщения отладки"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Исправить PDF-файлы, созданные предыдущими версиями Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Сканирование не удалось"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Отсканированный документ"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DEVICE...] — Устройство сканирования"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr "Выполните '%s --help', чтобы вывести полный список доступных опций."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Сканированный документ.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Закрыть"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Для доступа к '%s' нужны имя пользователя и пароль"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Сканеры не обнаружены"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Пожалуйста, проверьте, что сканер подсоединён и включен"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Сохранить как..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Отменить"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "Со_хранить"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Файлы изображений"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Все файлы"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Выберите _тип файла"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (многостраничный документ)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (сжатый)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (без потерь в качестве)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Не удалось сохранить файл"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Если не выполнить сохранение, все изменения будут утеряны."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Сохранить текущий документ?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Отменить изменения"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Не удалось сохранить изображение для предварительного просмотра"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Невозможно открыть программу для просмотра изображений"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr "Объединить стороны"
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr "Объединить стороны (в обратном порядке)"
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "В обратном порядке"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Оставить без изменений"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Не удалось открыть файл справки"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Эта программа является свободным программным обеспечением: вы можете "
+"распространять и/или модифицировать её согласно условиям Открытого "
+"лицензионного соглашения GNU (GNU General Public License), опубликованного "
+"Free Software Foundation, версии 3 или (на ваш выбор) более поздней. \n"
+"Эта программа распространяется с надеждой на то, что она будет полезна "
+"пользователям, однако БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; не гарантируется также "
+"КОММЕРЧЕСКОЕ КАЧЕСТВО или ВОЗМОЖНОСТЬ РЕШЕНИЯ ОПРЕДЕЛЕННЫХ ЗАДАЧ. Более "
+"подробная информация содержится в тексте Открытого лицензионного соглашения "
+"GNU (GNU General Public License). \n"
+"Копия текста Открытого лицензионного соглашения GNU (GNU General Public "
+"License) должная поставляться с этой программой. В остальных случаях "
+"пройдите по ссылке: <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "О программе"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Простой инструмент для сканирования документов"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Aleksey Kabanov https://launchpad.net/~ak099\n"
+" Alexander Telenga https://launchpad.net/~telenga\n"
+" Alexandre Prokoudine https://launchpad.net/~alexandre-prokoudine\n"
+" Alexey Kotlyarov https://launchpad.net/~koterpillar\n"
+" Andrew Sudarikov https://launchpad.net/~andrey-interra\n"
+" Arsa Chernikov https://launchpad.net/~arsa-chernikov\n"
+" Artem Popov https://launchpad.net/~artfwo\n"
+" AsstZD https://launchpad.net/~eskaer-spamsink\n"
+" Dmitri Konoplev https://launchpad.net/~knoplef\n"
+" Dmitriy \"Simplehuman\" Fedorov https://launchpad.net/~simplehuman\n"
+" Dmitry Shachnev https://launchpad.net/~mitya57\n"
+" Dr Gregory House https://launchpad.net/~greghouse\n"
+" DronAn[BY] https://launchpad.net/~andyak77\n"
+" Eugene Marshal https://launchpad.net/~lowrider\n"
+" Evgeny https://launchpad.net/~evgeny-ig\n"
+" Igor Zubarev https://launchpad.net/~igor.zubarev\n"
+" Int https://launchpad.net/~howrudoin\n"
+" Ivan Bulychev https://launchpad.net/~vanyok\n"
+" Jay ZDLin https://launchpad.net/~black-buddha666\n"
+" KEIII https://launchpad.net/~cashagent\n"
+" Net4Hack https://launchpad.net/~networkforhackers\n"
+" Novichkov Alexander https://launchpad.net/~berkut\n"
+" Oleg https://launchpad.net/~oleg-devyatilov\n"
+" Oleg Koptev https://launchpad.net/~koptev-oleg\n"
+" Pavel Nazarov https://launchpad.net/~alsvartr\n"
+" Sergey Loshakov https://launchpad.net/~sergeylo\n"
+" Sergey Sedov https://launchpad.net/~serg-sedov\n"
+" Stanislav Bazhenov https://launchpad.net/~stanislav-bajenov\n"
+" Stas Solovey https://launchpad.net/~whats-up\n"
+" Victor Mireyev https://launchpad.net/~victor-mireyev\n"
+" Vitaly Zawullon Katraev https://launchpad.net/~zawullon\n"
+" evilzipik https://launchpad.net/~evilzipik\n"
+" vasilisc https://launchpad.net/~vasilisc\n"
+" Илья Калитко https://launchpad.net/~kalitko-ilya007"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Сохранить документ перед выходом?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Выйти без сохранения"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (по умолчанию)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (черновик)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (высокое разрешение)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "Новый документ"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Документ"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "Отправить..."
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Печать..."
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Справка"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "О программе"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Завершить"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Сменить _сканер"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Выбрать автоматически"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Темнее"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Светлее"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Меньше"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Больше"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Мин."
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Макс."
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Сохранение документа..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Сохранение страницы %d из %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Использование:\n"
+#~ " %s [УСТРОЙСТВО...] - Инструмент для сканирования"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Параметры GTK+:\n"
+#~ " --class=КЛАСС Класс программы в оконном менеджере\n"
+#~ " --name=НАЗВАНИЕ Название программы в оконном менеджере\n"
+#~ " --screen=ЭКРАН Используемый экран X\n"
+#~ " --sync Сделать вызовы X синхронными\n"
+#~ " --gtk-module=МОДУЛИ Загрузить дополнительные модули GTK+\n"
+#~ " --g-fatal-warnings Сделать все предупреждения фатальными"
+
+#~ msgid "Files missing"
+#~ msgstr "Файлы отсутствуют"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Пожалуйста, проверьте правильность установки программы"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Высота отсканированного изображения в пикселах"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Направление сканирования"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Высота отсканированного изображения в пикселах. Это значение обновляется при "
+#~ "каждом новом сканировании."
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Направление сканирования. Возможны следующие варианты: 'top-to-bottom' "
+#~ "'bottom-to-top' 'left-to-right' 'right-to-left'"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE, если окно приложения развёрнуто на весь экран"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr ""
+#~ "Разрешение в точках на дюйм предыдущего отсканированного изображения."
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Разрешение последнего отсканированного изображения"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Высота окна в пикселах"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Ширина окна в пикселах"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Использование:\n"
+#~ " -d, --debug выводить отладочные сообщения\n"
+#~ " -v, --version показать информацию о версии\n"
+#~ " -h, --help показать эту справку\n"
+#~ " --help-all показать все ключи справки\n"
+#~ " --help-gtk показать ключи GTK+"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Ширина отсканированного изображения в пикселах. Это значение обновляется при "
+#~ "каждом новом сканировании."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Ширина отсканированного изображения в пикселах"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Сторона страницы для сканирования. Может быть: 'с обоих сторон', 'лицевая', "
+#~ "'обратная'"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Направление сканирования страницы."
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Тип сканируемого документа. 'Текст' для текстовых документов, 'Фотография' "
+#~ "для фотографий. Выбор типа определяет разрешение, цвета и пост-обработку при "
+#~ "сканировании."
diff --git a/po/sd.po b/po/sd.po
new file mode 100644
index 0000000..3aac221
--- /dev/null
+++ b/po/sd.po
@@ -0,0 +1,712 @@
+# Sindhi translation for simple-scan
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-04-17 06:12+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Sindhi <sd@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_اجازت ڏيو"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr ""
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_ڳجھو لفظ:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "اڳيون ۽ پويون"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "اڳيون"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "پوئتي"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "سادو اسڪين"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_دستاويز"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "_اسڪين"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "هڪڙو _صفحو"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr ""
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "اسڪين _روڪيو"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "تحرير"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "فوٽو"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_ايميل"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_صفحو"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "_کاٻي ڦيرايو"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "_ساڄي ڦيرايو"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_ڪاٽيو"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_ڪوبه نه"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_مرضي مطابق"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr ""
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "کاٻي چوريو"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "ساڄي چوريو"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_مدد"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_مواد"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "نئون دستاويز بنايو"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "نئون"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "اسڪينر مان هڪڙو صفحو اسڪين ڪريو"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "اسڪين"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "دستاويز کي فائل ۾ سانڍيو"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "سانڍيو"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "هلندڙ اسڪين روڪيو"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "روڪيو"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "کاٻي ڦيرايو"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "ساڄي ڦيرايو"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "چونڊيل صفحي کي ڪاٽيو"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "ڪاٽيو"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "ترجيحون"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "پاسو اسڪين ڪريو:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "صفحي جي ماپ:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "دستاويزات اسڪين ڪريو"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "اسڪين ڪرڻ لاءِ اوزار"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "اسڪين ٿيندڙ دستاويز جو قسم"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "اسڪين ڪرڻ لاءِ صفحي جو پاسو"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "فائلون سانڍڻ لاءِ خانو"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr ""
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr ""
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr ""
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr ""
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr ""
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "اسڪين ڪرڻ ۾ ناڪامي"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "اسڪين ٿيل دستاويز"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "اسڪين دستاويز.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr ""
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "هينئن سانڍيو..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "شڪل فائلون"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "تمام فائلون"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "فائل جو _قسم چونڊيو"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "فائل سانڍڻ ۾ ناڪامي"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "هاڻوڪو دستاويز سانڍيو؟"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "تبديليون منسوخ ڪريو"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr ""
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "سهڪاري فائل ڀرڻ ۾ ناڪام"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "سادي اسڪين بابت"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "سادو دستاويز اسڪين ڪندڙ اوزار"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Abdul-Rahim Nizamani https://launchpad.net/~ghaffari"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "نڪرڻ کان پهرين دستاويز سانڍيو؟"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "سانڍڻ بغير نڪرو"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "اسڪينر _تبديل ڪريو"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "پاڻمرادو"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
+
+#~ msgid "Direction of scan"
+#~ msgstr "اسڪين جو رخ"
+
+#~ msgid "Files missing"
+#~ msgstr "فائلون وڃايل"
diff --git a/po/se.po b/po/se.po
new file mode 100644
index 0000000..536c03d
--- /dev/null
+++ b/po/se.po
@@ -0,0 +1,706 @@
+# Northern Sami translation for simple-scan
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-08-18 11:22+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Northern Sami <se@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr ""
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr ""
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Beassansátni:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr ""
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Ovdabealli"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Maŋos"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Simple Scan"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokumeanta"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr ""
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr ""
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr ""
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Teaksta"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Fotografiija"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_E-boasta"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr ""
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr ""
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr ""
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Čuohpa"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr ""
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr ""
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr ""
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr ""
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr ""
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr ""
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr ""
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr ""
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Sirdde olgešguvlui"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Veahkki"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr ""
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Ođđa"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr ""
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Oza"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Vurke"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Bisset"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr ""
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Jorat olgešguvlui"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr ""
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Oidimat"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr ""
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr ""
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr ""
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr ""
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr ""
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr ""
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr ""
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr ""
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr ""
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr ""
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Vurke nugo …"
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Buot fiillat"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr ""
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr ""
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Simple Scan-dieđut"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr ""
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Christopher Forster https://launchpad.net/~christopherforster"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr ""
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr ""
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automáhtalaš"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
diff --git a/po/shn.po b/po/shn.po
new file mode 100644
index 0000000..53b78e1
--- /dev/null
+++ b/po/shn.po
@@ -0,0 +1,704 @@
+# Shan translation for simple-scan
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-04-17 06:12+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Shan <shn@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr ""
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr ""
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr ""
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr ""
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr ""
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr ""
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr ""
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr ""
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr ""
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr ""
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr ""
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr ""
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr ""
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr ""
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr ""
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr ""
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr ""
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr ""
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr ""
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr ""
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr ""
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr ""
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr ""
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr ""
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr ""
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr ""
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr ""
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr ""
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr ""
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr ""
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr ""
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr ""
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr ""
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr ""
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr ""
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr ""
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr ""
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr ""
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr ""
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr ""
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr ""
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr ""
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr ""
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr ""
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr ""
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr ""
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr ""
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr ""
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr ""
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr ""
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr ""
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr ""
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr ""
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
diff --git a/po/sk.po b/po/sk.po
new file mode 100644
index 0000000..b138f29
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,830 @@
+# Slovak translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 09:07+0000\n"
+"Last-Translator: Robert Ancell <robert.ancell@canonical.com>\n"
+"Language-Team: Slovak <sk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Schváliť"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Užívateľské meno pre zdroj:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Heslo:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr ""
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr ""
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr ""
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Jednoduché skenovanie"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokument"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr ""
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_Jedna stránka"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "_Všetky stránky zo zásobníka"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Zastaviť skenovanie"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Text"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Fotografia"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr ""
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Stránka"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Otočiť _doľava"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Otočiť do_prava"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Orezanie"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "Žia_dne"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "US _List"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Vlastné"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Otočiť výrez"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Pomocník"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr ""
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Vytvoriť nový dokument"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Nový"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Oskenovať jednu stránku zo skeneru"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Skenovať"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Uložiť"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr ""
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Otočiť doľava"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Otočiť doprava"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Orezanie"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Predvoľby"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Zdroj s_kenovania:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr ""
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Jas:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Kontrast:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Kvalita:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Skenovať dokumenty"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Zariadenie z ktorého skenovať"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Zariadenie SANE z ktorého získať obrázky."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Druh dokumentu ktorý sa skenuje"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Typ dokumentu ktorý sa skenuje. Toto nastavenie určuje rozlíšenie, farby a "
+"spracovanie tohto skenu."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Žiaden skener nie je k dispozícii. Prosím pripojte skener."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Nie je možné pripojiť sa ku skeneru"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Nie je možné začať skenovať"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Chyba v komunikácii so skenerom"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Zobrazí verziu vydania"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Vypíše správy ladenia"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Opraviť .pdf súbory vytvorené staršími verziami programu Jednoduché "
+"skenovanie"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Skenovanie zlyhalo"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr ""
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[ZARIADENIE…] - Nástroj na skenovanie"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Zoznam všetkých dostupných volieb príkazového riadka zobrazíte spustením „%s "
+"--help“."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Naskenovaný dokument.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Meno používateľa a heslo je vyžadované pre prístup k '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Žiadne skenery neboli nájdené"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Prosím skontrolujte či je skener pripojený a zapnutý"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Uložiť ako..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr ""
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Ukladanie súboru zlyhalo"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr ""
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Nepodarilo sa uložiť obraz na náhľad"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Tento program je slobodný softvér: môžete ho šíriť a/alebo upravovať podľa "
+"podmienok Všeobecnej verejnej licencie GNU (GNU General Public Licence) "
+"vydanej Nadáciou slobodného softvéru (Free Software Foundation) a to buď "
+"podľa verzie 3 tejto licencie, alebo (podľa vášho uváženia) ktorejkoľvek "
+"neskoršej verzie.\n"
+"\n"
+"Tento program je šírený v nádeji, že bude užitočný, avšak BEZ AKEJKOĽVEK "
+"ZÁRUKY. Neposkytujú sa ani odvodené záruky PREDAJNOSTI alebo VHODNOSTI PRE "
+"URČITÝ ÚČEL. Ďalšie podrobnosti nájdete vo Všeobecnej verejnej licencii "
+"GNU.\n"
+"\n"
+"Spolu s týmto programom by ste mali obdržať kópiu Všeobecnej verejnej "
+"licencie GNU. Ak sa tak nestalo, navštívte <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "O programe Jednoduché skenovanie"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Nástroj na jednoduché skenovanie dokumentov"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" 6205 https://launchpad.net/~6205-reactivated-deactivatedaccount\n"
+" Alessio Treglia https://launchpad.net/~quadrispro\n"
+" Laco Gubík https://launchpad.net/~laco\n"
+" Pavol Klačanský https://launchpad.net/~pavolzetor\n"
+" Robert Ancell https://launchpad.net/~robert-ancell"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr ""
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Zmeniť _skener"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr ""
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Ukladá sa dokument…"
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Ukladá sa %d. strana z %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Prosím skontrolujte vašu inštaláciu"
+
+#~ msgid "Files missing"
+#~ msgstr "Chýbajúce súbory"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Smer skeneru naprieč skenovanou stránkou. Môže to byť jedno z následujúcich: "
+#~ "'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE pokiaľ je aplikačné okno v maximálnej veľkosti"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Smer skenovania"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Druh dokumentu ktorý sa skenuje. 'text' pre textové dokumenty, 'photo' pre "
+#~ "fotografie. Táto hodnota určuje rozlíšenie skenovania, farby a koncové "
+#~ "spracovanie."
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Výška okna v pixeloch"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Šírka okna v pixeloch"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Šírka skenovaného obrázku. Táto hodnota sa aktualizuje podľa poslednej "
+#~ "skenovanej stránky."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Výška skenovaného obrázku. Táto hodnota sa aktualizuje podľa poslednej "
+#~ "skenovanej stránky."
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Možnosti pomocníka:\n"
+#~ " -d, --debug Zobraziť ladiace správy\n"
+#~ " -v, --version Zobraziť verziu vydania\n"
+#~ " -h, --help Zobraziť možnosti pomocníka\n"
+#~ " --help-all Zobraziť všetky možnosti pomocníka\n"
+#~ " --help-gtk Zobraziť GTK+ možnosti"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Použitie:\n"
+#~ " %s [ZARIADENIE...] - Skenovacia pomôcka"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ Options:\n"
+#~ " --class=TRIEDA Trieda programu použitá správcom okien\n"
+#~ " --name=MENO Meno programu použité správcom okien\n"
+#~ " --screen=OBRAZOVKA X obrazovka ktorá sa má použiť\n"
+#~ " --sync Zmeniť X volania na asynchrónne\n"
+#~ " --gtk-module=MODULY Zaviesť dodatočné GTK+ moduly\n"
+#~ " --g-fatal-warnings Zmeniť všetky upozornenia na terminálne"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Výška skenovaného obrázku"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Šírka skenovaného obrázku v pixeloch"
diff --git a/po/sl.po b/po/sl.po
new file mode 100644
index 0000000..df8051c
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,850 @@
+# Slovenian translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 09:19+0000\n"
+"Last-Translator: Andrej Znidarsic <andrej.znidarsic@gmail.com>\n"
+"Language-Team: Slovenian <sl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Pooblasti"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Uporabniško ime za vir:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Geslo:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Prednja in hrbtna stran"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Prednja stran"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Hrbtna stran"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Enostavno optično branje"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokument"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Op_tično branje"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Ena _stran"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Vse strani iz _podajalnika"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Zaustavi optično branje"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Besedilo"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Fotografija"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Elektronska pošta"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Stran"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Zavrti _levo"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Zavrti _desno"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Obreži"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Brez"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Pismo"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Velikost ZDA Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Po meri"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Zavrti obrezovano območje"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Premakni levo"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Premakni desno"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "Pomo_č"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Vsebina"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Začni nov dokument"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Novo"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Optično branje ene strani iz optičnega bralnika"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Optično branje"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Shrani dokument v datoteko"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Shrani"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Zaustavi trenutno optično branje"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Zaustavi"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Obrni stran v levo (nasprotna smer urinega kazalca)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Zavrti levo"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Obrni stran v desno (smer urinega kazalca)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Zavrti desno"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Obreži izbrano stran"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Obreži"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Možnosti"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "_Vir optičnega branja:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Ločljivost besedila:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Ločljivost fotografij:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Stran optičnega branja:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Velikost strani:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Svetlost:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Kontrast:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Kakovost:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Optično preberite dokumente"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Naprava za optično branje"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Naprava SANE za pridobivanje slik."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Vrsta optično branega dokumenta"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Vrsta dokumenta za optično branje. Ta nastavitev določi ločljivost tiskanja, "
+"barve in poobdelovo."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Širina papirja v desetinkah milimetra"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Širina papirja v desetinkah milimetra (ali 0 za samodejno zaznavanje)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Višina papirja v desetinkah milimetra"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Višina papirja v desetinkah milimetra (ali 0 za samodejno zaznavanje "
+"papirja)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Svetlost optičnega branja"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Prilagoditev svetlosti od -100 do 100 (0 kot brez)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Kontrast optičnega branja"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Prilagoditev kontrasta od -100 do 100 (0 kot brez)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Ločljivost za optično branje besedil"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Ločljivost optičnega branja besedil v točkah na palec (dpi)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Ločljivost za optično branje fotografij"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Ločljivost optičnega branja fotografij v točkah na palec (dpi)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Stran strani za optično branje"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Stran strani za optično branje."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Mapa za shranjevanje datotek"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Mapa za shranjevanje datotek. Privzeto mapa dokumentov, če ni nastavljena."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Vrednost kakovosti za stiskanje JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Vrednost kakovosti za stiskanje JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Ni optičnih bralnikov na voljo. Priklopite optični bralnik."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Z optičnim bralnikom se ni mogoče povezati"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Optičnega branja ni mogoče začeti"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Napaka med sporazumevanjem z optičnim bralnikom"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Pokaži podrobnosti različice"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Izpiši razhroščevalna sporočila"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Popravi datoteke PDF ustvarjene s starejšimi različicami programa Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Optično branje je spodletelo"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Optično bran dokument"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[NAPRAVA ...] - pripomoček optičnega branja"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr "Za popoln seznam možnosti ukazne vrstice zaženite '%s --help'."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Optično bran dokument.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Zapri"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Za dostop do '%s' je zahtevano uporabniško ime in geslo"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Optičnega bralnika ni mogoče zaznati"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Preverite, če je vaš optični bralnik povezan in vklopljen"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Shrani kot ..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Prekliči"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Shrani"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Slikovne datoteke"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Vse datoteke"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Izberite _vrsto datoteke"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (večstranski dokument)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (stisnjen)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (brez izgub)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Shranjevanje datoteke je spodletelo"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "V primeru, da sprememb ne shranite, bodo trajno izgubljene."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Naj bo trenutni dokument shranjen?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Zavrzi vse spremembe"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Ni bilo mogoče shraniti slike za predogled"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Ni mogoče odpreti programa predogleda slik"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Ni mogoče odpreti datoteke pomoči"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Ta program je prosta programska oprema; program lahko širite in/ali "
+"spreminjate\n"
+"pod pogoji Splošnega javnega dovoljenja kot je objavljena s strani Free "
+"Software \n"
+"Foundation; ali različico 3 Licence ali (na vašo željo) katerakoli kasnejša "
+"različica.\n"
+"\n"
+"Ta program je distribuiran v upanju da bo uporaben,\n"
+"toda BREZ KAKRŠNIHKOLI ZAGOTOVIL; tudi brez impliciranih\n"
+"zagotovila za PRODAJO ali PRIMERNOST ZA DOLOČEN NAMEN. \n"
+"Oglejte si GNU General Public Licence za več podrobnosti.\n"
+"\n"
+"Skupaj s programom bi morali prejeti tudi kopijo splošnega javnega potrdila; "
+"\n"
+"v primeru, da kopije niste prejeli si oglejte <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "O programu"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Preprosto orodje za optično branje dokumentov"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Andrej Znidarsic https://launchpad.net/~andrej.znidarsic\n"
+" Damir Jerovšek https://launchpad.net/~jierro\n"
+" Klemen Košir https://launchpad.net/~klemen.kosir\n"
+" Robert Hrovat https://launchpad.net/~robi-hipnos\n"
+" Sasa Batistic https://launchpad.net/~sasa-batistic\n"
+" grofaty https://launchpad.net/~grofaty"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Ali naj bo dokument pred končanjem programa shranjen?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Končaj brez shranjevanja"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d točk na palec (privzeto)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d točk na palec (osnutek)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d točk na palec (visoka ločljivost)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d točk na palec"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Spremeni _optični bralnik"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Samodejno"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Temenjše"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Svetlejše"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Manj"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Več"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Najmanj"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Največ"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Shranjevanje dokumenta ..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Shranjevanje strani %d od %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Files missing"
+#~ msgstr "Datoteke manjkajo"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "PRAV, če je okno programa razpeto"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Višina okna v točkah"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Širina okna v točkah"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Možnosti pomoči\n"
+#~ " -d, --debug Natisne sporočila razhroščevanja\n"
+#~ " -v, --version Pokaže podrobnosti različice\n"
+#~ " -h, --help Pokaže možnosti pomoči\n"
+#~ " --help-all Pokaže vse možnosti pomoči\n"
+#~ " --help-gtk Pokaže možnosti GTK+"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Stran strani za optično branje. Lahko je eno od naslednjega: 'obe' 'spredaj' "
+#~ "'zadaj'"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Višina optično prebrane slike v točkah"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Smer optičnega branja"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Ločljivost zadnjega optičnega branja"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Smer optičnega branja čez optično brano stran. Lahko je ena od naslednjih: "
+#~ "'od-zgoraj-navzdol' 'od-spodaj-navzgor' 'od-leve-proti-desni' 'od-desne-"
+#~ "proti-levi'"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Višina optično brane slike v točkah. Ta vrednost je posodobljena na vrednost "
+#~ "zadnje optično prebrane strani."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Ločljivost zadnjega optičnega branja v točkah na palec (dpi)"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Vrsta optično branega dokumenta. 'besedilo' za dokumente z besedilom, "
+#~ "'fotografije' za fotografije. Ta nastavitev določi ločljivost optičnega "
+#~ "branja, barve in nadaljnje obdvelovanje"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Širina optično brane slike v točkah. Ta vrednost je posodobljena na vrednost "
+#~ "zadnje optično brane strani."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Širina optično brane slike v točkah"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Uporaba:\n"
+#~ " %s [NAPRAVA ...] - Pripomoček optičnega branja"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Možnosti GTK+:\n"
+#~ " --class=CLASS Programski razred uporabljen v upravljalniku oken\n"
+#~ " --name=NAME Ime programa, ki je uporabljen v upravljalniku oken\n"
+#~ " --screen=SCREEN Zaslon X za uporabo\n"
+#~ " --sync Uskladi klice X\n"
+#~ " --gtk-module=MODULES Naloži dodatnemodule GTK+\n"
+#~ " --g-fatal-warnings Naredi vsa opozorila usodna"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Preverite svojo namestitev"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Smer optičnega bralnika na optično brani strani."
diff --git a/po/sq.po b/po/sq.po
new file mode 100644
index 0000000..eab711a
--- /dev/null
+++ b/po/sq.po
@@ -0,0 +1,811 @@
+# Albanian translation for simple-scan
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 09:08+0000\n"
+"Last-Translator: Alket Rexhepi <alketii@gmail.com>\n"
+"Language-Team: Albanian <sq@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:30+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Autorizo"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Emri i përdoruesit për resursin:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Fjalëkalim:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Para dhe Mbrapa"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Përball"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Mbrapa"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Skanim i thjeshtë"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokumenti"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Sk_anim"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Faqe_e_vetme"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Të Gjitha Faqet Nga _Ushqyesi"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Ndalo Skanimin"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Tekst"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Email"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Faqe"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Rrotullo _Majtas"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Rrotullo _Djathtas"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "Preje"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Asnjë"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Shkronjë"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Sipas përdoruesit"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Prerje me Rrotullim"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Lëvize Majtas"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Lëvize Djathtas"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Ndihmë"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Përmbajtje"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Filloje një dokument të ri"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "I ri"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Skanoje një faqe të thjeshtë prej skanerit"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Skanim"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Ruaje dokumentin tek një fajll"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Ruaj"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Ndaloje skanimin e tanishëm"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Ndalo"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Rrotulloje faqen majtas (kundër akrepave të orës)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Rrotullo Majtas"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Rrotullo faqen në të djathtë"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Rrotullo Djathtas"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Preje faqen e përzgjedhur"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Prej"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Parapëlqimet"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Skanoje b_urimin"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Rezolucioni i Tekstit:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Rezolucioni i Fotos:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Skanoje anën"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Përmasa e Faqes:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Ndriçimi:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Kontrasti:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Cilësia:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Skanoj Dokumentet"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Paisje për te skanuar prej"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Pajisja SANE prej të cilës do merren imazhet."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Lloji i dokumentit që do të skanohet"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Tipi i dokumentit që do të skanohet. Ky parametër vendos rezolucionin e "
+"skanimit, ngjyrat dhe pas përpunimin."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Gjerësia e letrës në të dhjetat e mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Gjerësia e letrës në të dhjetat e mm (ose 0 për dallim automatik të letrës)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Lartësia e letrës në dhjetat e një mm"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Lartësia e letrës në të dhjetat e mm (ose 0 për dallim automatik të letrës)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Ndriçimi i shkëlqimit"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Rregullimi i ndriçimit nga -100 tek 100 (0 është asnjë)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Kontrasti i skanimit"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Rregullimi i kontrastit nga -100 tek 100 (0 është asnjë)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Rezulucion per skanimet e teksteve"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Rezolucioni në pika për inç që do të përdoret kur skanohet tekst."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Rezulucion për skanimet e fotove"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Rezolucioni në pika për inç që do të përdoret kur skanohen foto."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Anë e faqes për tu skanuar"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Ana e faqes që do të skanohet."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Vend për ti ruajtur gjërat"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Drejtoria ku do të ruhen skedarët. Parazgjedhja është drejtoria e "
+"dokumentëve nëse nuk zgjidhet ndonjë tjetër."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Vlera e cilësisë që do të përdoret në ngjashjen e JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Vlera e cilësisë që do të përdoret në ngjashjen e JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Nuk ka skanera të disponueshëm. Ju lutemi të lidhni një skaner."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Nuk jemi në gjendje të lidhim një skaner"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Nuk munda të nis skanimin"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Gabim gjatë komunikimit me skanerin"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Shfaq versionin e programit"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Printo mesazhet e gabimeve"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Rregullo skedarët PDF të krijuar nga versione më të vjetra të Skanimit të "
+"Thjeshtë"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Skanimi dështoi"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Dokumenti i Skanuar"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DEVICE...] - Mjet i skanimit"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Nis '%s --ndihmë' për të parë një listë të plotë të linjave të disponueshme "
+"të komandës."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Dokumenti i Skanuar.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Mbylle"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Emri i përdoruesit dhe skanimi kërkohet për të hyrë në '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Nuk u dalluan skanera"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+"Ju lutemi të kontrolloni nëse skaneri juaj është i lidhur dhe i ndezur"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Ruaje Si..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Anullo"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Ruaje"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Kartela Pamje"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Të Gjithë Skedarët"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Zgjidh Llojin e _Skedarit"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (dokument shumë faqësh)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (i ngjeshur)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (pa humbje)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Dështuam në ruajtjen e skedarit"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Nëse nuk ruani, ndryshimet do të humbasin përgjithmonë."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Ta ruaj dokumentin e tanishëm?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Anullo Ndryshimet"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Nuk jemi në gjendje ta ruajmë imazhin për parapamje"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Nuk jam në gjendje të hap programin për parapamjen e imazhit"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "E pamundur hapja e file të ndihmës"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Ky program është falas: ju mund ta shpërndani atë/ose modifikoni\n"
+"atë nën termat e Liçensës së Përgjithshme Publike të GNU siç publikohet nga\n"
+"Fondacioni i Programeve Falas, si për versionin 3 të liçensës, ose\n"
+"(sipas zgjedhjes suaj) çdo version të mëvonshëm.\n"
+"\n"
+"Ky program shpërndahet me shpresën se do të jetë i dobishëm,\n"
+"por PA ASNJË GARANCI; madje edhe pa garancinë e shprehur se\n"
+"do jetë i TREGTUESHËM apo i PËRSHTATSHËM PËR NJË QËLLIM TË VEÇANTË. Shikoni\n"
+"Liçensën e Përgjithshme Publike GNU për më tepër detaje.\n"
+"\n"
+"Ju duhet të keni marrë një kopje të Liçensës së Përgjithshme Publike të GNU\n"
+"me këtë program. Nëse jo, shikoni <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Rreth Skanimit të Thjeshtë"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Mjet i thjeshtë për skanimin e dokumenteve"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Alket Rexhepi https://launchpad.net/~alketii\n"
+" Gent Thaçi https://launchpad.net/~gentthaci\n"
+" Vilson Gjeci https://launchpad.net/~vilsongjeci"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Ta ruaj dokumentin para daljes?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Dil pa e ruajtur"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (e parazgjedhur)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (i thjeshtë)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (rezolucion i lartë)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Ndrysho _Skanerin"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatik"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Më e Errët"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Më e lehtë"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Më Pak"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Më tepër"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimum"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maksimum"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Ruajtje e dokumentit..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Ruajtja e faqes %d nga %d"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Drjetim i skanimit"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Lartësia e figurës së skanuar në pixella"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Lartësia e dritares në piksel"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Gjerësia e dritares në piksel"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Përdorimi:\n"
+#~ " %s [DEVICE...] - Mjeti skanues"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Ju lutemi të kontrolloni instalimin tuaj"
+
+#~ msgid "Files missing"
+#~ msgstr "Skedarët mungojnë"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "E VËRTETË nëse dritarja e programit është maksimizuar"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Rezulucioni i imazhit të fundit të skanuar"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Drejtimi i skanerit përmes faqes së skanuar."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Gjerësia e imazhit të skanuar në pikselë. Kjo vlerë përditësohet në vlerën e "
+#~ "faqes së fundit."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Lartësia e imazhit të skanuar në pikselë. Kjo vlerë përditësohet sipas faqes "
+#~ "së fundit të skanuar."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Rezolucioni në pika për inç i faqes së mëparshme të skanuar."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Gjerësia e imazhit të skanuar në pikselë"
diff --git a/po/sr.po b/po/sr.po
new file mode 100644
index 0000000..253bd6b
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,857 @@
+# Serbian translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2014.
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2014-02-28 14:28+0000\n"
+"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
+"Language-Team: Serbian translators\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:31+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+"Language: sr\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Овласти"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Корисничко име за извор:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Лозинка:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Лице и позадина"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Лице"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Позадина"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Обично скенирање"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Документ"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "С_кенирај"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Једну _страницу"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Све странице из _фиоке"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Заустави скенирање"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Текст"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Слика"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Ел. пошта"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Страница"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Окрени на _лево"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Окрени на _десно"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Опсеци"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Ништа"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "А_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "А_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "А_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Америчко писмо"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "_Легал"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Произвољно"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Заокрени опсечено"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Помери улево"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Помери удесно"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "По_моћ"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Садржај"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Покрените нови документ"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Ново"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Скенирајте једну страницу са скенера"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Скенирај"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Сачувајте документ у датотеку"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Сачувај"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Зауставите текуће скенирање"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Заустави"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Окрените страну на лево (супротно смеру казаљке на сату)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Окрени на лево"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Окрените страну на десно (у смеру казаљке на сату)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Окрени на десно"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Одрежите изабрану страну"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Одрежи"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Поставке"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Извор _скенирања:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "Резолуција _текста:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "Ре_золуција слике:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Странице за скенирање:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Величина странице:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Освјетљај:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Контраст:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Квалитет:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Скенирајте документе"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Уређај са ког ће се скенирати"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "САНЕ уређај са ког ће се унети слике."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Врста документа који ће бити скениран"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Врста документа који ће бити скениран. Ово подешавање одлучује о резолуцији, "
+"бојама и завршној обради скенирања."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Ширина папира у десетом делу милиметра"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Ширина папира у десетом делу милиметра (или 0 за самостално откривање "
+"папира)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Висина папира у десетом делу милиметра"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Висина папира у десетом делу милиметра (или 0 за самостално откривање "
+"папира)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Осветљај скенирања"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Дотеривање осветљаја од -100 до 100 (0 значи ништа)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Контраст скенирања"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Дотеривање контраста од -100 до 100 (0 значи ништа)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Резолуција за скенирања текста"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+"Резолуција у тачкама-по-инчу (dpi) која ће бити коришћена при скенирању "
+"текста."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Резолуција за скенирања слика"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+"Резолуција у тачкама-по-инчу (dpi) која ће бити коришћена при скенирању "
+"фотографија."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Страна странице за скенирање"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Страна странице за скенирање."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Директоријум за чување датотека"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Директоријум у коме ће бити сачуване датотеке. Ако није постављено онда је "
+"то основни директоријум докумената."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Вредност квалитета за ЈПЕГ сажимање"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Вредност квалитета која ће се користити за ЈПЕГ сажимање."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Нема доступних скенера. Молим прикључите скенер."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Не могу да се повежем са скенером"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Не могу да започнем скенирање"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Грешка у коминикацији са скенером"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Приказује издање програма"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Исписује поруке за отклањање грешака"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Поправи ПДФ датотеке створене старијим издањима Једноставног скенирања"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Нисам успео да скенирам"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Скенирани документ"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[УРЕЂАЈ...] — алатка за скенирање"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Покрените „%s --help“ за потпуни списак свих опција из командне линије."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Скенирани документ.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Затвори"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Корисничко име и лозинка су обавезни за приступ „%s“"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Нема откривених скенера"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Проверите да ли је скенер повезан и укључен"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Сачувај као..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Откажи"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Сачувај"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Датотеке слика"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Све датотеке"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "_Изабери врсту датотеке"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "ПДФ (документ са више страна)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "ЈПЕГ (сажето)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "ПНГ (без губитака)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Нисам успео да сачувам датотеку"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Уколико не сачувате, измене ће бити трајно изгубљене."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Да сачувам текући документ?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Одбаци измене"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Не могу да сачувам слику за преглед"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Не могу да отворим програм за приказивање слика"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Не могу да отворим датотеку помоћи"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Овај програм је слободан софтвер: можете га делити и/или\n"
+"мењати под условима Гнуове Опште јавне лиценце коју је\n"
+"објавила Задужбина слободног софтвера, било верзије 3\n"
+"лиценце, или (по вашем избору) било које новије верзије.\n"
+"\n"
+"Овај програм се расподељује у нади да ће бити користан,\n"
+"али БЕЗ ИКАКВЕ ГАРАНЦИЈЕ, чак и без примењене гаранције\n"
+"ТРЖИШНЕ ВРЕДНОСТИ или ПРИЛАГОЂЕНОСТИ ОДРЕЂЕНОЈ НАМЕНИ.\n"
+"Погледајте ГНУ Општу јавну лиценцу за више детаља.\n"
+"\n"
+"Требали сте да примите примерак ГНУ Опште јавне лиценце\n"
+"уз овај програм. Ако нисте, погледајте:\n"
+"http://www.gnu.org/licenses/."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "О Једноставном скенирању"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Једноставна алатка за скенирање докумената"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Ivan Petrovic https://launchpad.net/~ivanpetrovic\n"
+" Kosava https://launchpad.net/~kosava\n"
+" Launchpad Translations Administrators https://launchpad.net/~rosetta\n"
+" Michael Hoth https://launchpad.net/~hoth-einbeck\n"
+" Марко М. Костић https://launchpad.net/~marko-m-kostic\n"
+" Мирослав Николић https://launchpad.net/~lipek"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Да сачувам документ пре него што изађем?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Изађи без чувања"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d тпи (основно)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d тпи (нацрт)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d тпи (висока резолуција)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d тпи"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Промени _скенер"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Самостално"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Тамније"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Светлије"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Мање"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Више"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Најмање"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Највише"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Чувам документ..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Чувам %d. страницу од укупно %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Проверите вашу инсталацију"
+
+#~ msgid "Files missing"
+#~ msgstr "Недостају датотеке"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Правац скенирања"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Резолуција последње скениране слике"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Резолуција у тачкама-по-инчу (dpi) претходно скениране слике."
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Висина скениране слике у тачкама"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "ТАЧНО ако је прозор програма увећан"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Усмерење скенера преко скениране странице."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Ширина скениране слике у тачкама"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Висина прозора у тачкама"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Ширина прозора у тачкама"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Усмерење скенера преко скениране странице. Може бити једна од следећих "
+#~ "вредности: „top-to-bottom“ (одозго-на-доле), „bottom-to-top“ (одоздо-на-"
+#~ "горе), „left-to-right“ (слева-на-десно) или „right-to-left“ (сдесна-на-лево)."
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Страна странице за скенирање. Може бити једна од следећих вредности: „both“ "
+#~ "(обе), „front“ (наличје) или „back“ (позадина)."
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Врста документа који ће бити скениран. „text“ (текст) за документа, „photo“ "
+#~ "(фотографија) за фотографије. Ово подешавање одлучује о резолуцији, бојама и "
+#~ "завршној обради скенирања."
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Коришћење:\n"
+#~ " %s [УРЕЂАЈ...] — алатка за скенирање"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Опције помоћи:\n"
+#~ " -d, --debug Исписује поруке за исправљање грешака\n"
+#~ " -v, --version Исписује издање програма\n"
+#~ " -h, -?, --help Приказује опције помоћи\n"
+#~ " --help-all Приказује све опције помоћи\n"
+#~ " --help-gtk Приказује Гтк+ опције"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Гтк+ опције:\n"
+#~ " --class=CLASS Класа програма коју користи управљач "
+#~ "прозора\n"
+#~ " --name=NAME Име програма које користи управљач "
+#~ "прозора\n"
+#~ " --screen=SCREEN Икс екран за коришћење\n"
+#~ " --sync Усаглашава позиве Икса\n"
+#~ " --gtk-module=MODULES Учитава допунске Гтк+ модуле\n"
+#~ " --g-fatal-warnings Чини сва упозорења кобним"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Ширина скениране слике у тачкама. Ова вредност се аутоматски поставља на "
+#~ "величину последње скениране странице."
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Висина скениране слике у тачкама. Ова вредност се аутоматски поставља на "
+#~ "величину последње скениране странице."
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 0000000..750abd6
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,856 @@
+# Swedish translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 09:08+0000\n"
+"Last-Translator: Daniel Nylander <yeager@ubuntu.com>\n"
+"Language-Team: Swedish <sv@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "A_uktorisera"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Användarnamn för källa:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Lösenord:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Fram- och baksida"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Framsida"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Baksida"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Enkel bildinläsning"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokument"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "Läs _in"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Enkel _sida"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Alla sidor från _matare"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Stoppa inläsning"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Text"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Foto"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Ändra sidordning"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_E-post"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Sida"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Rotera åt _vänster"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Rotera åt _höger"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Beskär"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Ingen"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4x6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "An_passad"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Rotera beskär"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Hjälp"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Innehåll"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Starta ett nytt dokument"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Nytt"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Läs in en enstaka sida från bildläsaren"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Läs in"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Spara dokument till en fil"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Spara"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Stoppa den aktuella bildinläsningen"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Stoppa"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Rotera sidan åt vänster (motsols)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Rotera åt vänster"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Rotera sidan åt höger (medsols)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Rotera åt höger"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Beskär den valda sidan"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Beskär"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Inställningar"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Inläsnings_källa:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Textupplösning:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Fotoupplösning:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Inläsningssida:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Sidstorlek:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Ljusstyrka:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Kontrast:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Kvalitet:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Läs in dokument"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Enhet att läsa in från"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "SANE-enhet att hämta in bilder från."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Typ av dokument som ska läsas in"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Typ av dokument att läsa in. Denna inställning bestämmer inläsningens "
+"upplösning, färger och efterbehandling."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Bredd på pappret i tiondels millimeter"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Bredd på pappret i tiondels millimeter (eller 0 för automatisk "
+"pappersidentifiering)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Höjd på pappret i tiondels millimeter"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Höjd på pappret i tiondels millimeter (eller 0 för automatisk "
+"pappersidentifiering)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Ljusstyrka i skanningen"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Instöllningen av ljusstyrkan från -100 till 100 (0 betyder ingen)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Kontrasten på skanningen"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Inställningen av kontrast från -100 till 100 (0 betyder ingen)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Upplösning för textinläsningar"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Upplösning i punkter per tum att använda när text läses in."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Upplösning för fotoinläsningar"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Upplösningen i punkter per tum att använda när foton läses in."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Sida att läsa in"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Papprets sida att läsa in."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Katalog att spara filer i"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Katalogen att spara filer i. Standardvärdet är dokumentkatalogen om den inte "
+"är inställd."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Kvalitets värde i JPEG kompression"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Kvalitets värde i JPEG kompression"
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Inga bildläsare finns tillgängliga. Anslut en bildläsare."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Kan inte ansluta till bildläsare"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Kan inte starta inläsning"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Fel i kommunikation med bildläsare"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Visa utgåvans version"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Skriv ut felsökningsmeddelanden"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Laga PDF-filer som skapades med äldre versioner av Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Misslyckades med att läsa in"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Inläst dokument"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[ENHET...] - Bildinläsningsverktyg"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Kör \"%s --help\" för en komplett lista över tillgängliga "
+"kommandoradsflaggor."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Inläst dokument.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Stäng"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Användarnamn och lösenord krävs för åtkomst till \"%s\""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Inga bildinläsare hittades"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Kontrollera att din bildläsare är ansluten och påslagen"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Spara som..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Avbryt"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Spara"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Bildfiler"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Alla filer"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Välj fil_typ"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (flersidigt dokument)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (komprimerad)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (förlustfri)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Misslyckades med att spara filen"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Om du inte sparar så kommer ändringarna att gå förlorade."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Spara aktuellt dokument?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Förkasta ändringar"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Kunde inte spara bild för förhandsvisning"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Kunde inte öppna förhandsvisningsprogrammet för bilder"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr "Kombinera sidor"
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr "Kombinera sidor (omvänt)"
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "Omvänt"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Behåll oförändrad"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Kunde inte öppna hjälpfilen"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Detta program är fri programvara. Du kan distribuera det och/eller\n"
+"modifiera det under villkoren i GNU General Public License, publicerad\n"
+"av Free Software Foundation, antingen version 3 eller (om du så vill)\n"
+"någon senare version.\n"
+"\n"
+"Detta program distribueras i hopp om att det ska vara användbart,\n"
+"men UTAN NÅGON SOM HELST GARANTI, även utan underförstådd\n"
+"garanti om SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT\n"
+"SPECIELLT ÄNDAMÅL. Se GNU General Public License för ytterligare\n"
+"information.\n"
+"\n"
+"Du bör ha fått en kopia av GNU General Public License tillsammans\n"
+"med detta program. Om inte, se <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Om Enkel bildinläsning"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Enkelt verktyg för inläsning av dokument"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Anders Pamdal https://launchpad.net/~anders-pamdal\n"
+" Arve Eriksson https://launchpad.net/~031299870-telia\n"
+" Daniel Nylander https://launchpad.net/~yeager\n"
+" Erik Hellberg https://launchpad.net/~erik-hellberg85\n"
+" Jens Askengren https://launchpad.net/~jens-askengren\n"
+" Peter Ahlgren https://launchpad.net/~peter.ahlgren\n"
+" Simba https://launchpad.net/~the-funnyboy\n"
+" Simon Hammarström https://launchpad.net/~simmeson\n"
+" Teodor Jönsson https://launchpad.net/~teodor-jonsson-sogeti-"
+"deactivatedaccount"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Spara dokumment innan du avslutar?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Avsluta utan att spara"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (standard)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (utkast)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (hög upplösning)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "Nytt dokument"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Dokument"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "E-post..."
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Skriv ut..."
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Hjälp"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "Om"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Avsluta"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "Byt _bildinläsare"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Automatiskt"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Mörkare"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Ljusare"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Mindre"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Mer"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Minimum"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Maximum"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Sparar dokument..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Sparar sida %d av %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Riktning för inläsning"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Användning:\n"
+#~ " %s [ENHET...] - Inläsningsverktyg"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Kontrollera din installation"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Höjd för den inlästa bilden i bildpunkter"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Upplösning för senaste inlästa bild"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Bredd för den inlästa bilden i bildpunkter"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Fönsterhöjd i bildpunkter"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Fönsterbredd i bildpunkter"
+
+#~ msgid "Files missing"
+#~ msgstr "Filer saknas"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE om programfönstret är maximerat"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Hjälpflaggor:\n"
+#~ " -d, --debug Skriv ut felsökningsmeddelanden\n"
+#~ " -v, --version Visa utgåvans version\n"
+#~ " -h, --help Visa hjälpflaggor\n"
+#~ " --help-all Visa alla hjälpflaggor\n"
+#~ " --help-gtk Visa GTK+-flaggor"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+-flaggor:\n"
+#~ " --class=KLASS Programklass som används av "
+#~ "fönsterhanteraren\n"
+#~ " --name=NAMN Programnamn som används av "
+#~ "fönsterhanteraren\n"
+#~ " --screen=SKÄRM X-skärm att använda\n"
+#~ " --sync Gör X-anrop synkrona\n"
+#~ " --gtk-module=MODULER Läs in ytterligare GTK+-moduler\n"
+#~ " --g-fatal-warnings Gör alla varningar ödesdigra"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Höjd för den inlästa bilden i bildpunkter. Detta värde uppdateras till vad "
+#~ "som senaste inlästa bilden använde."
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Riktningen för bildläsaren över den inlästa sidan. Det kan vara en av "
+#~ "följande: \"top-to-bottom\" \"bottom-to-top\" \"left-to-right\" \"right-to-"
+#~ "left\""
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "Upplösningen i punkter per tum för den föregående inlästa bilden."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Bredd för den inlästa bilden i bildpunkter. Detta värde uppdateras till vad "
+#~ "som senaste inlästa bilden använde."
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Typ av dokument som läses in. \"text\" för textdokument, \"photo\" för "
+#~ "foton. Denna inställning bestämmer inläsningens upplösning, färger och "
+#~ "efterbehandling."
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Sidan att läsa in. Det kan vara en av följande: \"both\" \"front\" \"back\""
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Riktningen för bildläsaren över den inlästa sidan."
diff --git a/po/ta.po b/po/ta.po
new file mode 100644
index 0000000..18f7466
--- /dev/null
+++ b/po/ta.po
@@ -0,0 +1,709 @@
+# Tamil translation for simple-scan
+# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2014-03-22 13:36+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Tamil <ta@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_அனுமதியளி"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr ""
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr ""
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "முன் மற்றும் பின்"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "முன்னால்"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "பின் செல்க"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr ""
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr ""
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr ""
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "தனி _பக்கம்"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "அனைத்து பக்கங்களை பீடர் இருந்து உள்ளன"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "உரை"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr ""
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_மின்னஞ்சல்"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr ""
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "இடதுபுறமாக சுழற்று"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr ""
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_ வெட்டு"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr ""
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr ""
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr ""
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr ""
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr ""
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr ""
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "(_C) தனிப்பயன்"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr ""
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "வலப்பக்கம் நகர்"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_உதவி"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_உள்ளடக்கங்கள்"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr ""
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr ""
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr ""
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr ""
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr ""
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr ""
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "வலப்பக்கம் சுழற்று"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "தேர்வு செய்த பக்கத்தை வெட்டு"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr ""
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "பக்க அளவு:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr ""
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr ""
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr ""
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr ""
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr ""
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr ""
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr ""
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr ""
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr ""
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr ""
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr ""
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr ""
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr ""
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr ""
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr ""
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" P. Suresh https://launchpad.net/~monni-suresh\n"
+" Ramesh https://launchpad.net/~rame20002007\n"
+" SyedKhaleel Jageer https://launchpad.net/~jskcse4\n"
+" mano-மனோ https://launchpad.net/~manoj-neyveli"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr ""
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr ""
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr ""
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
diff --git a/po/te.po b/po/te.po
new file mode 100644
index 0000000..7fc6711
--- /dev/null
+++ b/po/te.po
@@ -0,0 +1,839 @@
+# Telugu translation for simple-scan
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 09:08+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Telugu <te@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "అధికారమిచ్చు(_A)"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "వనరుకు వాడుకరిపేరు(_U):"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "సంకేతపదం(_P):"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "ముందు మరియు వెనుక"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "ముందుభాగం"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "వెనుకకు"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "సింపుల్ స్కాన్"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "పత్రం (_D)"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "స్కాన్(_a)"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "ఒక పేజీ(_P)"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "ఫీడర్ నుండి అన్ని పేజీలు(_F)"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "స్కాన్ ఆపు(_S)"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "పాఠ్యం"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "ఫొటో"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "ఈమెయిల్(_E)"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "పేజీ(_P)"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "ఎడమవైపు తిప్పు (_L)"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "కుడివైపు తిప్పు(_R)"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "క్రాప్ చేయి(_C)"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "ఏదీకాదు(_N)"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "లెటర్ (_L)"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "లీగల్ (_g)"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "మలచుకొను(_C)"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "క్రాప్‌చేసినదానిని తిప్పు(_R)"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "ఎడమకు జరుపు"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "కుడి వైపు జరుపు"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "సహాయం (_H)"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "విషయసూచిక(_C)"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "ఒక కొత్త పత్రాన్ని ప్రాంరంభించు"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "కొత్త"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "స్కానర్ నుండి ఒకే ఒక పేజీ స్కాన్ చేయి"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "స్కాన్"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "పత్రాన్ని ఫైలులో దాచు"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "భద్రపరచు"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "ప్రస్తుత స్కాన్ ఆపు"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "ఆపు"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "ఎడమవైపుకు త్రిప్పు (అపసవ్య)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "ఎడమవైపు తిప్పు"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "కుడి వైపుకు త్రిప్పు (సవ్య)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "కుడివైపు తిప్పు"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "ఎంపికైన పెజీ అంచులుసవరించు"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "అంచులుసవరించు"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "ప్రాధాన్యతలు"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "స్కాన్ మూలం (_o):"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "పాఠ విభాజకత (_T)"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "ఫొటో విభాజకత(_P)"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "స్కాన్ చేయు ప్రక్క:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "పేజీ పరిమాణం:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "పత్రాలు స్కాన్ చేయు"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "స్కాన్ చేయుటకు పరికరం"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "బొమ్మలు తెచ్చుకొనుటకు SANE పరికరం."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "స్కాన్ చేయబడుచున్న పత్ర రకం"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "పేపర్ వెడల్పు (మిమీ లో దశాంశభాగం)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"పేపర్ వెడల్పు మిల్లీమీటర్ లో దశాంశభాగాలలో (లేక 0 స్వయంచాలక పేపర్ పొడవు "
+"కనుగొనటానికి)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "పేపర్ ఎత్తు (మిమీలో దశాంశభాగం)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"పేపర్ పొడవు మిల్లీమీటర్ లో దశాంశభాగాలలో (లేక 0 స్వయంచాలక పేపర్ పొడవు "
+"కనుగొనటానికి)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "పాఠ్య స్కాన్‌లకు విభాజకత"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "పాఠం స్కాన్ చేయుటకు వాడవలసిన విభాజకత (అంగుళానికి చుక్కలు)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "ఫొటో స్కాన్‌లకు విభాజకత"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "ఫొటోలు స్కాన్ చేయుటకు వాడవలసిన విభాజకత (అంగుళానికి చుక్కలు)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "ఏ వైపునుంచి పేజీని స్కాన్‌చేయాలి"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "పేజీని స్కాన్ చేయవలసిన భాగం."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "ఫైళ్లు దాచవలసిన సంచయం"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"ఫైళ్లు దాచవలసిన సంచయం. గమ్యస్థానం ఇవ్వనట్లైతే పత్రాల (Documents) అప్రమేయ "
+"సంచయం వాడబడుతుంది."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "ఏ స్కానర్‌లు అందుబాటులోలేవు. దయచేసి ఒక స్కానర్‌ను అనుసంధానించండి."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "స్కానర్‌కు అనుసంధానించలేకపోతోంది"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "స్కాన్ ప్రారంభించుట వీలుకాలేదు"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "స్కానర్‌తో వర్తమాన దోషం"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "విడుదల రూపాంతరాన్ని చూపించు"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "దోషశుద్ధి సందేశాలను ముద్రించు"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "స్కాన్‌చేయుటలో విఫలమైంది"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "స్కాన్‌చేయబడిన పత్రం"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr "అందుబాటులో వున్న అదేశ వరుస ఐచ్చికముల కొరకు '%s --help' నడుపు."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "స్కాన్‌చేయబడిన పత్రం.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "'%s' వాడుటకు వాడుకరిపేరు మరియు సంకేతపదం కావాలి"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "ఏ స్కానర్‌లు కనిపెట్టబడలేదు"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+"మీ స్కానర్ విద్యుత్తుచే చేతనమై కంప్యూటర్‌కు అనుసంధానమైనదో లేదో చూడండి."
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "ఇలా దాచు..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "బొమ్మ ఫైళ్లు"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "అన్ని ఫైళ్ళు"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "ఫైల్ రకం ఎంచుకోండి( _T)"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (బహుళ-పేజి పత్రం)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (కుదించిన)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (నష్టంలేని)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "ఫైల్ దాచుటలో విఫలమైంది"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "ఒకవేళ మీరు దాచకపోతే, మార్పులను శాశ్వతముగా కోల్పోతారు."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "ప్రస్తుత పత్రాన్ని దాచాలా?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "మార్పులు వదలివేయి"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "మునుజూపు కొరకు బొమ్మను భద్రపరుచులేకపోతున్నది"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "బొమ్మ మునుజూపు అనువర్తనం తెరచుట వీలుకాలేదు"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "సహాయ ఫైలు తెరువలేకపోయింది"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"ఈ ప్రోగ్రామ్ ‌వుచిత సాఫ్ట్వేర్: మీరు తిరిగి పంపిణీ లేక మార్పులు, ఫ్రీ "
+"సాఫ్ట్వేర్ ఫౌండేషన్ వారి GNU General Public License రూపాంతరము 3 లేక తరువాతి "
+"రూపాంతరం(మీ కిష్టమైతే) చేయవచ్చు.\n"
+"\n"
+"\n"
+"ఈ ప్రోగ్రామ్ వుపయోగంగా వుంటుందని పంపిణీ చేస్తున్నాము. ఏవిధమైన హామీ, "
+"వ్యాపారయోగ్యమని, లేక ఒకనొక పనికి తగినదని హామీలు లేవు. మరిన్ని వివరాలకు "
+"చూడండి GNU General Public License\n"
+"\n"
+"GNU General Public License మీకు దీనితో ఇచ్చి వుండాలి\n"
+" లేనిచో చూడండి <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "సింపుల్ స్కాన్ గురించి"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "సులభంగా పత్ర స్కానింగ్‌చేయు సాధనం"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Launchpad Translations Administrators https://launchpad.net/~rosetta\n"
+" Praveen Illa https://launchpad.net/~telugulinux\n"
+" arjuna rao chavala https://launchpad.net/~arjunaraoc\n"
+" వీవెన్ https://launchpad.net/~veeven"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "నిష్క్రమించేముందు పత్రాన్ని దాచాలా?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "దాచకుండా నిష్క్రమించు"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (అప్రమేయ)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (చిత్తు)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (ఉన్నత విభాజకత)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "స్కానర్‌ను మార్చు(_S)"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "స్వయంచాలక"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE అనువర్తనం విండో గరిష్ఠ పరిమాణంలో చూపబడుతున్నట్లైతే"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr "స్కాన్ చేయుటకు పేజీ భాగం. రెండువైపుల పైన, వెనుక,"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "ఇటీవల స్కాన్ చేయబడిన బొమ్మ విభాజకత (అంగుళానికి చుక్కలు)"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "స్కాన్ మార్గం స్కాన్ పేజీపై. 'పైనుండి క్రిందికి' ' క్రింది నుండి పైకి' "
+#~ "'ఎడమనుండికుడి' 'కుడినుండిఎడమ'"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "స్కాన్ చేయబడుచున్న పత్ర రకం 'పాఠం' పాఠ్యపత్రములకు, 'ఫోటో' ఫొటోలకొరకు. ఈ "
+#~ "అమరిక స్కాన్ విభాజకత, రంగులు మరియు స్కాన్ చేసినతరువాత పనులు నిర్ణయించును"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "స్కాన్‌చేయబడిన బొమ్మ ఎత్తు(పిక్సెళ్ళలో)"
+
+#~ msgid "Direction of scan"
+#~ msgstr "స్కాన్‌చేయు దిశ"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "ఇటీవలి స్కాన్‌చేయబడిన బొమ్మ విభాజకత"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "స్కాన్ చేయబడిన బొమ్మ ఎత్తు పిక్సెళ్ళలో. ఇటీవలి స్కాన్‌చేసిన పేజీ అధారంగా ఈ "
+#~ "విలువ మార్చబడుతుంది."
+
+#~ msgid "Window height in pixels"
+#~ msgstr "విండో ఎత్తు పిక్సెళ్ళలో"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "విండో వెడల్పు పిక్సెళ్ళలో"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "స్కాన్ చేయబడిన బొమ్మ వెడల్పు పిక్సెళ్ళలో. ఇటీవలి స్కాన్‌చేసిన పేజీ అధారంగా "
+#~ "ఈ సంఖ్యమార్చబడుతుంది."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "స్కాన్‌చేయబడిన బొమ్మ వెడల్పు(పిక్సెళ్ళలో)"
+
+#~ msgid "Files missing"
+#~ msgstr "కనబడని ఫైళ్లు"
+
+#~ msgid "Please check your installation"
+#~ msgstr "దయచేసి మీ స్థాపనని సరిచూసుకోండి"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "సహాయ ఎంపికలు:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "వాడుక:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ ఎంపికలు:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
diff --git a/po/th.po b/po/th.po
new file mode 100644
index 0000000..cd4b9d4
--- /dev/null
+++ b/po/th.po
@@ -0,0 +1,843 @@
+# Thai translation for simple-scan
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 09:09+0000\n"
+"Last-Translator: AnuchitChalothorn <anoochit@gmail.com>\n"
+"Language-Team: Thai <th@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_อนุญาต"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_ชื่อผู้ใช้ทรัพยากร :"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "รหัส_ผ่าน:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "หน้าและหลัง"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "หน้า"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "หลัง"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Simple Scan"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "เ_อกสาร"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "สแกน"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_หน้าเดี่ยว"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "ทุกหน้าจาก_ตัวป้อนกระดาษ"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_หยุดสแกน:"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "ข้อความ"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "ภาพถ่าย"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_อีเมล"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_หน้า"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "หมุน_ซ้าย"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "หมุน_ขวา"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_ตัด"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "ไ_ม่มี"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_จดหมาย"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_กำหนดเอง"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "หมุ_นภาพตัด"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "ย้ายไปทางซ้าย"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "ย้ายไปทางขวา"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_วิธีใช้"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "เ_นื้อหา"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "เริ่มเอกสารใหม่"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "สร้าง"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "สแกนหน้าเดียวจากเครื่องสแกน"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "สแกน"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "บันทึกเอกสารเป็นแฟ้ม"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "บันทึก"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "หยุดการสแกนขณะนี้"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "หยุด"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "หมุนหน้าไปทางซ้าย (ทวนเข็มนาฬิกา)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "หมุนซ้าย"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "หมุนหน้าไปทางขวา (ตามเข็มนาฬิกา)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "หมุนขวา"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "ตัดหน้าที่เลือก"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "ตัด"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "คุณสมบัติ"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "แ_หล่งสแกน:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "ความละเอียด_ข้อความ:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "ความละเอียด_ภาพถ่าย:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "สแกนด้าน:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "ขนาดกระดาษ :"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "สแกนเอกสาร"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "เครื่องสแกนจาก"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "อุปกรณ์ SANE เพื่อรับภาพจาก"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "ชนิดของเอกสารที่ถูกสแกน"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"ชนิดของเอกสารที่จะสแกน การตั้งค่านี้มีผลต่อความละเอียดการสแกน สี "
+"และการประมวลผลหลังสแกน"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "ความกว้างของกระดาษใน 10 ของมิลลิเมตร"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"ความกว้างของกระดาษใน 10 ของมิลลิเมตร (หรือ 0 สำหรับการตรวจสอบกระดาษอัตโนมัติ)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "ความสูงของกระดาษใน 10 ของมิลลิเมตร"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"ความสูงของกระดาษใน 10 ของมิลลิเมตร (หรือ 0 สำหรับการตรวจสอบกระดาษอัตโนมัติ)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "ความละเอียดการสแกนข้อความ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "ความละเอียด เป็นจุดต่อนิ้วที่จะใช้เมื่อการสแกนข้อความ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "ความละเอียดการสแกนภาพถ่าย"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "ความละเอียด เป็นจุดต่อนิ้วที่จะใช้เมื่อการสแกนภาพ"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "หน้ากระดาษ ด้านที่จะสแกน"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "ด้านกระดาษที่จะสแกน"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "ไดเรคทอรีเพื่อบันทึกไฟล์"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"ไดเรกทอรีที่ใช้บันทึกแฟ้ม ค่าเริ่มต้นไดเรกทอรีสำหรับเอกสารถ้าไม่มีการตั้งค่า"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "เครื่องสแกนไม่สามารถใช้ได้ โปรดเชื่อมต่อเครื่องสแกน"
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "ไม่สามารถเชื่อมต่อเครื่องสแกน"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "ไม่สามารถเริ่มต้นการสแกน"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "การสื่อสารกับเครื่องสแกนผิดพลาด"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "แสดงรุ่นที่ออก"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "แสดงข้อความข้อบกพร่อง"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "ซ่อมแฟ้ม PDF ที่ถูกสร้างด้วย Simple Scan รุ่นที่เก่ากว่า"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "การสแกนล้มเหลว"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "เอกสารที่สแกนแล้ว"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DEVICE...] - เครื่องมือกำลังสแกน"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr "เรียก '%s --help' เพื่อดูตัวเลือกทั้งหมดที่มีของบรรทัดคำสั่ง"
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "สแกน Document.pdf แล้ว"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "ต้องการชื่อผู้ใช้และรหัสผ่านเพื่อเข้าใช้ '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "ไม่พบเครื่องสแกน"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "กรุณาตรวจสอบการเชื่อมต่อเครื่องสแกนของคุณและเปิดเครื่อง"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "บันทึกเป็น..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "แฟ้มภาพ"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "แฟ้มทั้งหมด"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "เลือก_ประเภทแฟ้ม"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (เอกสารหลายหน้า)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (บีบอัดแล้ว)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (lossless)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "การบันทึกแฟ้มล้มเหลว"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "ถ้าคุณไม่บันทึกการแก้ไขทั้งหมดจะสูญหายอย่างถาวร"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "บันทึกเอกสารปัจจุบัน"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "ยกเลิกการเปลี่ยนแปลง"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "ไม่สามารถบัญทึกรูปภาพตัวอย่าง"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "ไม่สามารถเปิดโปรแกรมแสดงภาพได้"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "ไม่สามารถเปิดแฟ้มเอกสารวิธีใช้"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "เกี่ยวกับ Simple Scan"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "เครื่องมือสแกนเอกสารอย่างง่าย"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Anuchit Chalothorn https://launchpad.net/~anuchit-redlinesoft\n"
+" AnuchitChalothorn https://launchpad.net/~anuchit\n"
+" Manop Pornpeanvichanon(มานพ พรเพียรวิชานนท์) "
+"https://launchpad.net/~manoppornpeanvichanon\n"
+" SiraNokyoongtong https://launchpad.net/~gumara\n"
+" kijjaz https://launchpad.net/~kijjaz-gmail"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "บันทึกเอกสารก่อนปิดหรือไม่?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "ปิดโดยไม่บันทึก"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (ค่าปริยาย)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (ภาพร่าง)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (ความละเอียดสูง)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "เ_ปลี่ยนเครื่องสแกน"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "อัตโนมัติ"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Direction of scan"
+#~ msgstr "ทิศทางของการสแกน"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "ความสูงของภาพที่สแกน เป็นพิกเซล"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "ความละเอียดของภาพที่สแกนล่าสุด"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "เป็นจริง ถ้าหน้าต่างโปรแกรมขนายเต็มหน้าจอ"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "ทิศทางการสแกนข้ามหน้าสแกน มีความสามารถดังนี้: 'บน-ไป-ล่าง' 'ล่าง-ไป-บน' "
+#~ "'ซ้าย-ไป-ขวา' 'ขวา-ไป-ซ้าย'"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "ความสูงของภาพที่สแกน เป็นพิกเซล ค่านี้มีการปรับปรุงจากหน้าที่สแกนล่าสุด"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr "สแกนหน้ากระดาษ สามารถสแกนได้จากนี้ :'ทั้งคู่' 'หน้า' 'หลัง'"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "ความละเอียด เป็นจุดต่อ นิ้วของภาพที่สแกนก่อนหน้านี้"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "ความกว้างของภาพที่สแกน เป็นพิกเซล ค่านี้มีการปรับปรุงจากหน้าที่สแกนล่าสุด"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "ชนิดของเอกสารที่ถูกสแกน 'ข้อความ'สำหรับเอกสารข้อความ'รูปภาพ'สำหรับภาพถ่าย "
+#~ "การตั้งค่านี้ตัดสินใจในการสแกนความละเอียดของสีและหลังการประมวลผล"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "ความกว้างของภาพที่ สแกนเป็นพิกเซล"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "ความสูงของหน้าต่างเป็นพิกเซล"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "ความกว้างของหน้าต่างเป็นพิกเซล"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "ตัวเลือก GTK+:\n"
+#~ " --class=CLASS "
+#~ "คลาสของโปรแกรมตามที่ใช้โดยโปรแกรมจัดการหน้าต่าง\n"
+#~ " --name=NAME "
+#~ "ชื่อของโปรแกรมตามที่ใช้โดยโปรแกรมจัดการหน้าต่าง\n"
+#~ " --screen=SCREEN สกรีน X ที่จะใช้\n"
+#~ " --sync ทำให้การเรียก X เป็นแบบหยุดคอย "
+#~ "(synchronous)\n"
+#~ " --gtk-module=MODULES โหลดมอดูล GTK+ เพิ่มเติม\n"
+#~ " --g-fatal-warnings ถือว่าคำเตือนต่างๆ "
+#~ "ที่เกิดขึ้นเป็นความผิดพลาดร้ายแรง"
+
+#~ msgid "Files missing"
+#~ msgstr "ไม่พบแฟ้ม"
+
+#~ msgid "Please check your installation"
+#~ msgstr "กรุณาตรวจสอบการติดตั้งของคุณ"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "ทิศทางของสแกนเนอร์ตอนสแกนผ่านหน้ากระดาษ"
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
index 0000000..ecfaf72
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,866 @@
+# Turkish translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 09:09+0000\n"
+"Last-Translator: Robert Ancell <robert.ancell@canonical.com>\n"
+"Language-Team: Turkish <tr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Yetkilendir"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "Kaynak için _kullanıcı adı:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Parola:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Ön ve Arka taraf"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Ön taraf"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Arka taraf"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Basit Tarama"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Belge"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "T_ara"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "_Tek Sayfa"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Kaynaktaki Tüm _Sayfalar"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "_Taramayı Durdur"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Metin"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Fotoğraf"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Eposta"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Sayfa"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "_Sola Döndür"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Sa_ğa Çevir"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Kırp"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Hiçbiri"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Harf"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Ya_sal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Özel"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Kırpmayı Döndür"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Sola Taşı"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Sağa Taşı"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Yardım"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_İçindekiler"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Yeni bir belge başlat"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Yeni"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Tarayıcıdan tek bir sayfa tara"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Tara"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Belgeyi bir dosyaya kaydet"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Kaydet"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Geçerli taramayı durdur"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Durdur"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Sayfayı sola döndür (saat yönünün tersine)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Sola Döndür"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Sayfayı sağa döndür (saat yönünde)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Sağa Döndür"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Seçili sayfayı kırp"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Kırp"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Tercihler"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Ta_rama Kaynağı:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "_Metin Çözünürlüğü:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "_Fotoğraf Çözünürlüğü:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Taranacak taraf:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Sayfa Boyutu:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Parlaklık:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Karşıtlık:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Kalite:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Belgeleri Tara"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Tarama yapılacak aygıt"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Görüntülerin alınacağı SANE aygıtı"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Taranacak belgenin türü"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Taranacak belge türü. Bu ayar tarama kalitesi, renkler ve son işlemlere göre "
+"belirlenir."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Ondabirlik mm cinsinden kağıdın genişliği"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Ondabirlik mm cinsinden kağıdın genişliği ( ya da otomatik kağıt tespiti "
+"için 0)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Ondabirlik mm cinsinden kağıdın yüksekliği"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Ondabirlik mm cinsinden kağıdın yüksekliği ( ya da otomatik kağıt tespiti "
+"için 0)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Tarama parlaklığı"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "-100'den 100'e (0 hiçbiri) parlaklık ayarlaması"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Tarama karşıtlığı"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "-100'den 100'e (0 hiçbiri) karşıtlık ayarlaması"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Metin taramaları için çözünürlük"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+"Metin tararken kullanılacak inç başına nokta sayısı cinsinden çözünürlük."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Fotoğraf taramaları için çözünürlük"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+"Fotoğrafları tararken kullanılacak inç başına nokta sayısı cinsinden "
+"çözünürlük."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Taranacak sayfa tarafı"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Taranacak sayfa yüzü."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Dosyaların kaydedileceği dizin"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Dosyaların kaydedileceği dizin. Ayarlanmadıysa, belgeler dizini "
+"varsayılandır."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "JPEG sıkıştırması için kalite değeri"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "JPEG sıkıştırması için kalite değeri"
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "Mevcut hiçbir tarayıcı yok. Lütfen bir tarayıcı bağlayın."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Tarayıcıya bağlanılamadı"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Tarama başlatılamadı"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Tarayıcı ile iletişim kurulamıyor"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Dağıtım sürümünü göster"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Hata ayıklama iletilerini yazdır"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "Basit Tarama'nın eski sürümlerince üretilen PDF dosyalarını düzelt"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Tarama başarısız oldu"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Taranmış Belge"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[AYGIT...] - Tarama uygulaması"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Kullanılabilir komut satırı seçeneklerinin tam listesini görmek için '%s --"
+"help' komutunu çalıştırın."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Taranan Belge.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "_Kapat"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "'%s' kaynağına erişmek için kullanıcı adı ve parola gerekiyor"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Tarayıcı bulunamadı"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Lütfen tarayıcınızın bağlı ve açık olduğundan emin olun"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Farklı Kaydet..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Vazgeç"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "_Kaydet"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Resim Dosyaları"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Tüm Dosyalar"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Dosya _Türünü Seç"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (çok sayfalı belge)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (sıkıştırılmış)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (kayıpsız)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Dosya kaydedilemedi"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Eğer kaydetmezseniz, değişiklikler tamamen kaybedilecek."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Mevcut belgeyi kaydet?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Değişiklikleri Geri Al"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Görüntü, önizleme için kaydedilemiyor"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Görüntü ön izleme uygulaması açılamıyor"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Yardım dosyası açılamıyor"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Bu program özgür yazılımdır: Yeniden dağıtabilir ve/veya Özgür Yazılım Vakfı "
+"tarafından yayınlanmış 3. sürüm lisans veya isterseniz herhangi sonraki "
+"sürüm ile GNU Genel Kamu Lisansı sözleşmesi altında düzenleyebilirsiniz.\n"
+"\n"
+"Bu program HERHANGİ GARANTİSİ OLMAKSIZIN; hatta TİCARETE UYGUNLUK veya BELLİ "
+"BİR AMACA UYGUNLUK garantisi bile olmaksızın, kullanışlı olması umularak "
+"dağıtıldı.\n"
+"Daha fazla bilgi için GNU Genel Kamu Lisansı'na bakın.\n"
+"\n"
+"Bu program ile birlikte GNU Genel Kamu Lisansı'nın bir kopyasını almış "
+"olmalısınız.\n"
+"Eğer almadıysanız bile şuraya bakınız: <http://www.gnu.org/licenses/>"
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Basit Tarama Hakkında"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Basit bir belge tarama aracı"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Angel Spy https://launchpad.net/~dilara.ekinci\n"
+" Cihan Ersoy https://launchpad.net/~cihan.ersoy\n"
+" Efe Çiftci https://launchpad.net/~efeciftci\n"
+" Erkut Tiryakioglu https://launchpad.net/~erkut-tiryakioglu\n"
+" Fatih Bostancı https://launchpad.net/~fbostanci\n"
+" Hasan Yılmaz https://launchpad.net/~hasanyilmaz\n"
+" Kaan Y. https://launchpad.net/~mr-kxyzup\n"
+" Mesut Muhammet Şahin https://launchpad.net/~messah\n"
+" Murat Bişkin https://launchpad.net/~muratbiskin\n"
+" Mustafa Yılmaz https://launchpad.net/~apshalasha\n"
+" Robert Ancell https://launchpad.net/~robert-ancell\n"
+" Yalçın Can https://launchpad.net/~yalcin.can\n"
+" aries https://launchpad.net/~sonagirbas\n"
+" kulkke https://launchpad.net/~kulkke\n"
+" mandza https://launchpad.net/~filmovi\n"
+" ubuntuki https://launchpad.net/~aleverzurumlu\n"
+" İbrahim Çelik https://launchpad.net/~ibrahimcelik89"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Çıkmadan önce belgeyi kaydet?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Kaydetmeden Çık"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (varsayılan)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (taslak)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (yüksek çözünürlük)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "_Tarayıcı Değiştir"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Otomatik"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Daha Koyu"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "Daha Açık"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "Daha Az"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "Daha Fazla"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "En Az"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "En Çok"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Belge kaydediliyor..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Kaydedilen sayfa: %d / %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Usage:\n"
+#~ " %s [AYGIT...] - Tarama aracı"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ Seçenekleri: \n"
+#~ " --class=SINIF Pencere yöneticisi tarafından kullanılan "
+#~ "program sınıfı\n"
+#~ " --name=İSİM Pencere yöneticisi tarafından kullanılacak "
+#~ "program ismi\n"
+#~ " --screen=EKRAN Kullanılacak X ekranı\n"
+#~ " --sync X çağrılarını eş zamanlı yapar\n"
+#~ " --gtk-module=MODULLER Tüm ek GTK+ modullerini yükler\n"
+#~ " --g-fatal-warnings Tüm uyarıları ölümcül yapar"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Lütfen kurulumunuzu denetleyiniz"
+
+#~ msgid "Files missing"
+#~ msgstr "Dosyalar eksik"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Pencerenin piksel cinsinden yüksekliği"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Taranan görüntünün piksel cinsinden genişliği"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Pencerenin piksel cinsinden genişliği"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Yardım Seçenekleri:\n"
+#~ " -d, --debug Hata ayıklama iletilerini yaz\n"
+#~ " -v, --version Sürüm numarasını göster\n"
+#~ " -h, --help Yardım seçeneklerini göster\n"
+#~ " -help-all Tüm yardım seçeneklerini göster\n"
+#~ " --help-gtk GTK+ seçeneklerini göster"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Tarama yönü"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Taranan görüntünün piksel cinsinden yüksekliği"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Tarayıcının taranan sayfa boyunca yönü. Şunlardan biri olabilir: 'yukarıdan "
+#~ "aşağıya' 'aşağıdan yukarıya' 'soldan sağa' 'sağdan sola'"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Taranan görüntünün piksel cinsinden yüksekliği. Bu değer en son taranan "
+#~ "sayfaya göre güncellenir."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr ""
+#~ "Bir önceki taranan görüntünün inç başına nokta sayısı cinsinden çözünürlüğü."
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "En son taranan görüntünün çözünürlüğü"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Taranan görüntünün piksel cinsinden genişliği. Bu değer en son taranan "
+#~ "sayfaya göre güncellenir."
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Taranan belgenin türü. Metin belgeleri için 'metin', fotoğraflar için "
+#~ "'fotoğraf'. Bu ayar tarama çözünürlüğünü, renkleri ve tarama sonrası "
+#~ "işlemleri belirler."
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Taranacak sayfa tarafı. Şu seçeneklerden biri olabilir: 'her iki taraf' 'ön "
+#~ "taraf' 'arka taraf'"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "Uygulama penceresi ekranı kapladığında DOĞRU (TRUE)"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Tarayıcının taranmış sayfa boyunca yönü."
diff --git a/po/ug.po b/po/ug.po
new file mode 100644
index 0000000..520c0c0
--- /dev/null
+++ b/po/ug.po
@@ -0,0 +1,851 @@
+# Uyghur translation for simple-scan
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-08-07 01:17+0000\n"
+"Last-Translator: Sahran <Unknown>\n"
+"Language-Team: Uyghur Computer Science Association <ubuntu-l10n-"
+"ug@lists.launchpad.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+"X-Poedit-Language: Uighur\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "كىملىك دەلىللە(_A)"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "مەنبەنىڭ ئىشلەتكۈچى ئاتى(_U):"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "ئىم(_P):"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "ئالدى-كەينى"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "ئالدى"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "كەينى"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "ئاددىي شويلىلاش"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "پۈتۈك(_D)"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "شويلىلا(_A)"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "بىرلا بەت(_P)"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "كىرگۈزۈلگەن ھەممە بەتلەر(_F)"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "شويلىلاشنى توختات(_S)"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "تېكىست"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "سۈرەت"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "ئېلخەت(_E)"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "بەت(_P)"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "سولغا چۆرگىلەت(_L)"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "ئوڭغا چۆرگىلەت(_R)"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "قىرقى(_C)"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "يوق(_N)"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "US Legal(_G)"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "ئىختىيارى(_C)"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "قىرقىغاننى چۆرگىلەت(_R)"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "ئوڭغا يۆتكە"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "ياردەم(_H)"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "مەزمۇنلار(_C)"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "يېڭى ھۆججەت قۇرىدۇ"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "يېڭى"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "شويلىلىغۇچتىن پەقەت بىر بەتنىلا شويلىلايدۇ"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "شويلىلاش"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "پۈتۈكنى ھۆججەتكە ساقلايدۇ"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "ساقلا"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "نۆۋەتتىكى شويلىلاش باسقۇچىنى توختىتىدۇ"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "توختا"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "بەتنى سولغا چۆرگىلىتىدۇ(سائەت يۆلىنىشىگە قارشى)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "سولغا چۆرگىلەت"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "بەتنى ئوڭغا چۆرگىلىتىدۇ (سائەت يۆلىنىشىدە)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "ئوڭغا چۆرگىلەت"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "تاللانغان بەتنى قىرقىيدۇ"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "قىرقى"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "مايىللىق"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "شويلىلاش مەنبەسى(_O):"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "تېكىست ئېنىقلىقى(_T):"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "سۈرەت ئېنىقلىقى(_P):"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "شويلىلايدىغان يۈزى:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "قەغەز چوڭلۇقى:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "يورۇقلۇقى:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "سېلىشتۇرما دەرىجىسى:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "سۈپىتى:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "پۈتۈك شويلىلاش"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "شويلىلايدىغان ئۈسكۈنە"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "رەسىمگە ئېرىشىدىغان SANE ئۈسكۈنىسى."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "شويلىلانغان پۈتۈكنىڭ تىپى"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"ھۆججەت تىپى تەكشۈرۈلۈۋاتىدۇ، بۇ تەڭشەك بولسا ئېنىقلىق دەرىجىسى، رەڭگى ۋە "
+"كېيىنكى بىرتەرەپ قىلىشنى بېكىتىدۇ."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "قەغەزنىڭ ئوندىن بىر مىللىمېتىرلىق كەڭلىكى"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"قەغەزنىڭ ئوندىن بىر مىللىمېتىرلىق كەڭلىكى (ياكى قەغەزنى ئۆزلۈكىدىن بايقاش "
+"ئۈچۈن 0 )"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "قەغەز ئېگىزلىكى (mm 0.1 ئېنىقلىقىدا)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"قەغەزنىڭ ئوندىن بىر مىللىمېتىرلىق ئېگىزلىكى (ياكى قەغەزنى ئۆزلۈكىدىن بايقاش "
+"ئۈچۈن 0 )"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "شويلىلاش يورۇقلۇقى"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "يورۇقلۇق تەڭشىكى -100 دىن 100 گىچە(0 تەڭشەلمىگەن)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "شويلىلاش ئاق-قارىلىقى"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "ئاق-قارىلىق تەڭشىكى -100 دىن 100 گىچە(0 تەڭشەلمىگەن)."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "تېكىست شويلىلاشنىڭ ئېنىقلىقى"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "DPI (چېكىت ھەر دىيۇيم) تېكىستلەرگە ئىشلىتىدىغان قىممەت"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "سۈرەت شويلىلاشنىڭ ئېنىقلىقى"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "DPI (چېكىت ھەر دىيۇيم) سۈرەتلەرگە ئىشلىتىدىغان قىممەت"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "شويلىلايدىغان بەت يۈزى"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "شويلىلايدىغان بەت يۈزى."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "ھۆججەتنى ساقلايدىغان مۇندەرىجە"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"ھۆججەتنى ساقلايدىغان مۇندەرىجە. بەلگىلەنمىگەن ۋاقىتتا ئىشلىتىدىغان "
+"مۇندەرىجىدۇر."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "JPEG پرېسىنىڭ سۈپىتىنى بەلگىلەيدىغان قىممەت"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "JPEG پرېسىنىڭ سۈپىتىنى بەلگىلەيدىغان قىممىتى."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "شويلىلىغۇچ مەۋجۇت ئەمەس. شويلىلىغۇچنى چېتىڭ."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "شويلىلىغۇچقا باغلانغىلى بولمىدى"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "شويلىلاشنى باشلىغىلى بولمىدى"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "شويلىلىغۇچ بىلەن ئالاقە باغلاشتا خاتالىق كۆرۈلدى"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "نەشرىنى كۆرسەت"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "سازلاش ئۇچۇرلىرىنى كۆرسەت"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"كونا نەشردىكى «ئاددىي شويلىلاش» ئارقىلىق ياسالغان PDF ھۆججىتىنى ئوڭلاش"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "شويلىلاش مەغلۇپ بولدى"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "شويلىلانغان ھۆججەت"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[ئۈسكۈنە...] - شويلىلاش قورالى."
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"'%s --help' ئىجرا قىلىنسا بۇيرۇق قۇرى تاللانمىسىنىڭ تولۇق تىزىمى كۆرۈنىدۇ."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "شويلىلانغان Document.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "ياپ(_C)"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "‹%s› كىرىش ئۈچۈن ئىشلەتكۈچى نامى ۋە مەخپىي نومۇر كېرەك"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "شويلىلىغۇچ تېپىلمىدى"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "شويلىلىغۇچ چېتىلغانمۇ توكى ئۇلانغانمۇ تەكشۈرۈڭ"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "باشقا ئاتتا ساقلا…"
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "ئەمەلدىن قالدۇر(_C)"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "ساقلا(_S)"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "سۈرەت ھۆججەتلىرى"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "بارلىق ھۆججەتلەر"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "ھۆججەت تىپىنى تاللا(_T)"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (كۆپ بەتلىك پۈتۈكلەر)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (پرېسلانغان)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (خورىماس)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "ھۆججەتكە ساقلىغىلى بولمىدى"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "ساقلانمىسا، ئۆزگەرتىشلەرنىڭ ھەممىسى مەڭگۈلۈككە يوقىلىدۇ"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "ھازىرقى پۈتۈكنى ساقلىسۇنمۇ؟"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "ئۆزگەرتىشنى تاشلىۋەت"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "ئالدىن كۆرىدىغان رەسىمنى ساقلىغىلى بولمىدى."
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "رەسىمنى ئالدىن كۆرۈش پروگراممىسىنى قوزغاتقىلى بولمىدى"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "ياردەم ھۆججىتىنى ئاچقىلى بولمىدى"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"بۇ بىر ئەركىن دېتال، سىز بۇنى تارقاتسىڭىز ياكى\n"
+"ئۆزگەرتسىڭىز بولىدۇ، ئەمما Free Software Foundation \n"
+"دىن بەلگىلەنگەن GNU General Public نىڭ قائىدىسىگە رىئايە\n"
+"قىلىشىڭىز لازىم: ئۈچىنچى نۇسخىسىدا ياكى ئۇنىڭ كەينىدىكى \n"
+"نۇسخىسىدا.\n"
+"بۇ پروگرامما ھېچقانداق بىر كاپالەتنى ئۈستىگە ئالمايدۇ،\n"
+"ھەم بۇنى سېتىشقا كاپالەتلىك قىلمايدۇ، بۇ بىر سىزنىڭ \n"
+"ئىشلىتىشىڭىز ئۈچۈن ياسالغان پروگرامما.\n"
+"بۇ توغرىسىدىكى ئۇچۇرلارنى GNU General Public License \n"
+"دىن ئۇقۇڭ.\n"
+"\n"
+"سىز بۇ پروگرامما بىلەن بىر GNU General Public License\n"
+"نىڭ كۆچۈرمىسىگە ئېرىشكەن بۆلىشىڭىز مۇمكىن، بولمىسا ئۇنى \n"
+"<http://www.gnu.org/licenses/> دا تاپالايسىز."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "«ئاددىي شويلىلاش» ھەققىدە"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "ئاددىي پۈتۈك شويلىلاش قورالى"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" BULBUL https://launchpad.net/~bulbul-mm\n"
+" Burkut https://launchpad.net/~burkut-k\n"
+" Gheyret T.Kenji https://launchpad.net/~gheyretkenji\n"
+" Robert Ancell https://launchpad.net/~robert-ancell\n"
+" Sahran https://launchpad.net/~sahran\n"
+" Shatur.uigur https://launchpad.net/~azimat\n"
+" azimat https://launchpad.net/~azimat-uigur\n"
+" umar tumur https://launchpad.net/~umar-tumur"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "ئاخىرلاشتۇرۇشتىن ئاۋۋال ھازىرقى پۈتۈكنى ساقلىسۇنمۇ؟"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "ساقلىماي ئاخىرلاشتۇر"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (كۆڭۈلدىكى)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (دەسلەپكى نۇسخا)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (يۇقىرى ئېنىقلىق)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "شويلىلىغۇچنى ئالماشتۇرۇڭ(_S)"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "ئاپتوماتىك"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "قارىراق"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "يورۇقراق"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "كىچىك"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "تېخىمۇ كۆپ"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "ئەڭ كىچىك"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "ئەڭ چوڭ"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "پۈتۈكنى ساقلاۋاتىدۇ…"
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "ساقلاۋاتقىنى %d/%d - بەت"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "سكەنلىگەن بەتنىڭ سىكەن يۆلىنشىگە بولغان ماسلىقى تۆۋەندىكىدىن بىرسى بۇلىشى "
+#~ "مۇنكىن: ‹ئۈستىدىن ئاستىغا›، ‹ئاستىدىن ئۈستىگە›، ‹سولدىن ئوڭغا›، ‹ئوڭدىن "
+#~ "سولغا›"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "سكەنلىگەن رەسىمنىڭ تىپى. تېكىست ھۆججەتلەر ئۈچۈن ‹تېكىست›، رەسىملەر ئۈچۈن "
+#~ "ر‹رەسىم›. بۇ سەپلىمە سكەن ئېنىقلىقىنى، رەڭ ۋە كېيىنكى باسقۇچلارنى "
+#~ "بەلگىلەيدۇ."
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "ئىشلىتىلىشى\n"
+#~ "%s[ئەسۋاب...] - سكەن قورالى"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "ياردەم تاللانمىلىرى:\n"
+#~ "-d,--debug Debug-ئۇچۇرلىرىنى كۆرسىتىدۇ\n"
+#~ "-v,--نۇسخا نۇسخا نۇمۇرىنى كۆرسىتىدۇ\n"
+#~ "-h,--ياردەم ياردەم تاللانمىلىرىنى كۆرسىتىدۇ\n"
+#~ "-help-all ھەممە ياردەم تاللانمىلىرىنى كۆرسىتىدۇ\n"
+#~ "-help-gtk GTK+ تاللانمىلىرىنى كۆرسىتىدۇ"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTk+ تاللانمىلىرى:\n"
+#~ "--class= كۆزنەك باشقۇرغۇچى ئىشلىتىدىغان پروگگرام تۈرى\n"
+#~ "--name=كۆزنەك باشقۇرغۇچى ئىشلىتىدىغان نام\n"
+#~ "--screen= ئشلىتىلىدغان X ئېكرانى\n"
+#~ "--sync X- ماس قەدەملەشتۈرۈشنى قوزغىتىشنى ئىجرا قىلىش\n"
+#~ "--gtk-module باشقا بىر GTK+ Module نى قوزغىتىش\n"
+#~ "--g-fatal-warnigs ھەممە ئاگاھلاندۇرۇشلار خەتەرگە ئايلىندۇ"
+
+#~ msgid "Files missing"
+#~ msgstr "ھۆججەت تېپىلمىدى"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "تەسۋىر ئالغۇچ تەسۋىرگە ئېلىنىپ بولغان بەتتىن ئۆتىدۇ."
+
+#~ msgid "Window height in pixels"
+#~ msgstr "كۆزنەك ئېگىزلىكى (پىكسېل)"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "كۆزنەك كەڭلىكى (پىكسېل)"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE ئەپ كۆزنەك چوڭايتىلغان بولسا"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "تەسۋىر يايىدىغان سۈرەتنىڭ كەڭلىكى (پىكسېل). بۇ ئاخىرقى قېتىملىق تەسۋىر "
+#~ "يايغان بەتنىڭ قىممىتى."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "تەسۋىر يايىدىغان سۈرەتنىڭ كەڭلىكى (پىكسېل)"
+
+#~ msgid "Direction of scan"
+#~ msgstr "تەسۋىر يېيىش يۆنىلىشى"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "تەسۋىر يايغان سۈرەتنىڭ ئېگىزلىكى (پىكسېل)"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "تەسۋىر يايغان سۈرەتنىڭ ئېگىزلىكى (پىكسېل). بۇ ئاخىرقى قېتىم تەسۋىر يايغان "
+#~ "بەتنىڭ قىممىتى."
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "ئاخىرقى قېتىم تەسۋىر يايغان رەسىمنىڭ ئېنىقلىقى (چېكىت ھەر دىيۇيم)"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "ئاخىرقى قېتىم تەسۋىر يايغان رەسىمنىڭ ئېنىقلىقى"
+
+#~ msgid "Please check your installation"
+#~ msgstr "ئورنىتىشنى تەكشۈرۈپ بېقىڭ"
diff --git a/po/uk.po b/po/uk.po
new file mode 100644
index 0000000..f2eb755
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,852 @@
+# Ukrainian translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+#
+# Yuri Chornoivan <yurchor@gmail.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 11:28+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
+"Language-Team: Ukrainian <translation@linux.org.ua>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Уповноваження"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "_Користувач ресурсу:"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Пароль:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Передній і зворотний боки"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Передній бік"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Зворот"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Просте сканування"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "Д_окумент"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "С_канування"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Одинарна _сторінка"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Всі сторінки з _лотка"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "П_рипинити сканування"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Текстовий"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Фотографія"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "Перевпорядкувати сторінки"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Надіслати ел. поштою"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "С_торінка"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Обернути _ліворуч"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Обернути п_раворуч"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Обрізати"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Без обрізання"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "_Нетипові"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Обернути область обрізання"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "Пересунути ліворуч"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "Пересунути праворуч"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Довідка"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Вміст"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "Почати новий документ"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Створити"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "Сканувати одну сторінку"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Сканувати"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "Зберегти документ до файла"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Зберегти"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "Припинити поточне сканування"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Зупинити"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "Обертати сторінку ліворуч (проти годинникової стрілки)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Обернути ліворуч"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "Обертати сторінку праворуч (за годинниковою стрілкою)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "Обернути праворуч"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "Обрізати позначену сторінку"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Обрізати"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Налаштування"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "_Джерело даних сканування:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "Роздільна здатність _тексту:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "Роздільна здатність _фотографій:"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "Бік сканування:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "Розмір сторінки:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Яскравість:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Контрастність:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Якість:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "Сканувати документи"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "Пристрій сканування"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "Пристрій SANE, з якого слід отримувати зображення."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "Тип документа, який ви скануєте"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Тип документа, який сканується. За значенням цього параметра визначається "
+"роздільна здатність сканування, кольори та способи остаточної обробки."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "Ширина паперу у десятих міліметра"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Ширина паперу у десятих міліметра (або 0 для автоматичного визначення паперу)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "Висота паперу у десятих міліметра"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+"Висота паперу у десятих міліметра (або 0 для автоматичного визначення паперу)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Яскравість сканування"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Коригування яскравості від -100 до 100 (0 — не коригувати)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Контрастність сканування"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Коригування контрастності від -100 до 100 (0 — не коригувати)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "Роздільна здатність для сканування тексту"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "Роздільна здатність у точках на дюйм для сканування тексту."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "Роздільна здатність для сканування фотографій"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "Роздільна здатність у точках на дюйм для сканування фотографій."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "Бік сторінки, який слід сканувати"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Бік сторінки, який буде скановано."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "Каталог збережених файлів"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+"Каталог, до якого слід зберігати файли. Якщо не буде вказано, типовим "
+"вважатиметься каталог документів."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Значення якості, яке буде використано під час стискання JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Значення якості, яке буде використано під час стискання JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+"Не вдалося виявити жодного сканера. Будь ласка, з’єднайте сканер з "
+"комп’ютером."
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Не вдалося з’єднатися зі сканером"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Не вдалося розпочати сканування"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Помилка під час спроби обміну даними зі сканером"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Показати версію випуску"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Показувати діагностичні повідомлення"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Виправити файли PDF, створені за допомогою застарілих версій Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Помилка сканування"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "Сканований документ"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[ПРИСТРІЙ...] — програма для сканування"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Виконайте « %s --help», щоб побачити повний перелік доступних параметрів "
+"командного рядка."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Сканований документ.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "За_крити"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Для доступу до «%s» слід вказати ім’я користувача та пароль"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Сканерів не виявлено"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Будь ласка, перевірте, чи з’єднано ваш сканер і чи увімкнено його"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Зберегти як..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "_Скасувати"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "З_берегти"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "Файли зображень"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Всі файли"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "Вибрати _тип файла"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (багатосторінковий документ)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (стиснений)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (без втрат)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Не вдалося зберегти файл"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "Якщо ви не збережете внесені зміни, їх буде втрачено остаточно."
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "Зберегти поточний документ?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "Відкинути зміни"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Не вдалося зберегти зображення для попереднього перегляду"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "Не вдалося запустити програму для перегляду зображення"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr "З’єднувати збоку"
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr "З’єднувати збоку (у зворотному порядку)"
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr "У зворотному порядку"
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "Не змінювати"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "Не вдалося відкрити файл довідки"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Ця програма є вільним програмним забезпеченням; ви можете поширювати її "
+"і/або змінювати її за умов дотримання GNU General Public License у тому "
+"вигляді, у якому її оприлюднено Free Software Foundation; версії 3 цієї "
+"ліцензії, або (за потреби) будь-якої пізнішої версії.\n"
+"\n"
+"Ця програма поширюється у сподіванні, що вона буде корисною, але БЕЗ БУДЬ-"
+"ЯКИХ ГАРАНТІЙ; навіть без очевидної гарантії КОМЕРЦІЙНОЇ ЦІННОСТІ або "
+"ПРИДАТНОСТІ ДЛЯ ЯКОЇСЬ МЕТИ. Докладніше про це ви можете дізнатися з \n"
+"GNU General Public License.\n"
+"Разом з цією програмою ви маєте отримати копію GNU General Public License. "
+"Якщо ви її не отримали, зверніться за адресою "
+"<http://www.gnu.org/licenses/>, щоб дізнатися про подальші дії."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Про «Просте сканування»"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Інструмент для спрощення сканування документів"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Sergiy Gavrylov https://launchpad.net/~gavro\n"
+" Serhey Kusyumoff (Сергій Кусюмов) https://launchpad.net/~sergemine\n"
+" Yuri Chornoivan https://launchpad.net/~yurchor-gmail\n"
+" passtas https://launchpad.net/~passtas"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "Зберегти документ перед виходом?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Вийти без збереження"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d т/д (типова)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d т/д (чернетка)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d т/д (висока роздільність)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d т/д"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "Новий документ"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "Документ"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "Надіслати ел. поштою…"
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "Надрукувати…"
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "Довідка"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "Про програму"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "Вийти"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "З_мінити сканер"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Автоматично"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "темніше"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "світліше"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "менше"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "більше"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "Мінімальна"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "Максимальна"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "Збереження документа…"
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "Зберігаємо сторінку %d з %d"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Користування:\n"
+#~ " %s [ПРИСТРІЙ...] — інструмент сканування"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Параметри GTK+:\n"
+#~ " --class=КЛАС Клас програми, який використовуватиметься "
+#~ "інструментом керування вікнами\n"
+#~ " --name=НАЗВА Назва програми, що використовуватиметься "
+#~ "інструментом керування вікнами\n"
+#~ " --screen=ЕКРАН Екран сервера X, яким слід скористатися\n"
+#~ " --sync Синхронізувати виклики X\n"
+#~ " --gtk-module=МОДУЛІ Завантажити додаткові модулі GTK+\n"
+#~ " --g-fatal-warnings Завершувати роботу у разі появи попереджень"
+
+#~ msgid "Files missing"
+#~ msgstr "Не виявлено таких файлів"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Будь ласка, перевірте, чи належним чином встановлено програму"
+
+#~ msgid "Direction of scan"
+#~ msgstr "Напрямок сканування"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "Якщо позначено, вікно програми буде максимізовано"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "Напрямок сканування сторінки. Може мати такі значення: «top-to-bottom» "
+#~ "(згори вниз), «bottom-to-top» (знизу вгору), «left-to-right» (зліва "
+#~ "праворуч), «right-to-left» (справа ліворуч)"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr ""
+#~ "Тип документа, який ви скануєте. «text» — текстовий документ, «photo» — "
+#~ "фотографії. Значення цього параметра впливає на роздільну здатність "
+#~ "сканування, використання кольорів та остаточну обробку зображення."
+
+#~ msgid "Window height in pixels"
+#~ msgstr "Висота вікна у пікселях"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "Ширина вікна у пікселях"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "Додаткові параметри:\n"
+#~ " -d, --debug Виводити діагностичні повідомлення\n"
+#~ " -v, --version Показати відомості щодо випуску\n"
+#~ " -h, --help Показати довідку щодо параметрів\n"
+#~ " --help-all Показати всі параметри\n"
+#~ " --help-gtk Показати параметри GTK+"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "Висота сканованого зображення у пікселях"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr ""
+#~ "Висота сканованого зображення у пікселях. Це значення буде оновлено на те, "
+#~ "яке було використано для попереднього зображення."
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr ""
+#~ "Ширина сканованого зображення у пікселях. Це значення буде оновлено на те, "
+#~ "яке було використано для попереднього зображення."
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "Ширина сканованого зображення у пікселях"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr ""
+#~ "Роздільна здатність у точках на дюйм попереднього сканованого зображення."
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "Роздільна здатність попереднього сканованого зображення"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr ""
+#~ "Бік паперу, який слід сканувати. Може мати такі значення: 'both' 'front' "
+#~ "'back'"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Напрямок сканування на сканованій сторінці."
diff --git a/po/ur.po b/po/ur.po
new file mode 100644
index 0000000..ccd5b8e
--- /dev/null
+++ b/po/ur.po
@@ -0,0 +1,711 @@
+# Urdu translation for simple-scan
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-04-17 06:12+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Urdu <ur@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr ""
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr ""
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr ""
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr ""
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr ""
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "پیچھے"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr ""
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr ""
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr ""
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr ""
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr ""
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "عبارت"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "تصویر"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr ""
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr ""
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr ""
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr ""
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr ""
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr ""
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr ""
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr ""
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr ""
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr ""
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr ""
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr ""
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "نیا"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr ""
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr ""
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "محفوظ کریں"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "رکیۓ"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr ""
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr ""
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "ترجیحات"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr ""
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr ""
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr ""
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr ""
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr ""
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr ""
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr ""
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr ""
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr ""
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr ""
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr ""
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr ""
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr ""
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr ""
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr ""
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr ""
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Midhat Ali https://launchpad.net/~midhatali\n"
+" Shehzad Ashiq Ali https://launchpad.net/~shehzadashiq\n"
+" Shoaib Mirza https://launchpad.net/~monymirza"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr ""
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr ""
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr ""
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
diff --git a/po/uz.po b/po/uz.po
new file mode 100644
index 0000000..b60a0a1
--- /dev/null
+++ b/po/uz.po
@@ -0,0 +1,714 @@
+# Uzbek translation for simple-scan
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-04-17 06:12+0000\n"
+"Last-Translator: Launchpad Translations Administrators <Unknown>\n"
+"Language-Team: Uzbek <uz@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr ""
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr ""
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Maxfiy soʻz:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "Olidi va Orqasi"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "Oldingi"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "Orqaga"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Simple Scan"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Dokument"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "_Skan qilish"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr ""
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr ""
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Matn"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Rasm"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "_Email"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr ""
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Chapga burish"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "_O'nga burish"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Kesish"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Yoʻq"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Xat"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr ""
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr ""
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr ""
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Yordam"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "_Tarkibi"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "Yangi"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr ""
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "Skan qilish"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "Saqlash"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "Toʻxtatish"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "Chapga burish"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "O'nga burish"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "Kesish"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Мослашлар"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr ""
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr ""
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr ""
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr ""
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr ""
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr ""
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr ""
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr ""
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Релиз версиясини кўрсатиш"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "Дебаг хабарларини чоп қилиш"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr ""
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr ""
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr ""
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Мавжуд буйруқлар ва мосламаларнинг тўлиқ рўйхатини кўриш учун '%s --help''ни "
+"ишга туширинг."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr ""
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr ""
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr ""
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr ""
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr ""
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "Hamma fayllar"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr ""
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr ""
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Simple Scan haqida"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr ""
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Sardorbek Pulatov https://launchpad.net/~prockrammer"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "Saqlamasdan chiqib ketish"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (default)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "_Skaner almashrirish"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "Avtomatik"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr ""
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Files missing"
+#~ msgstr "Fayllar topilmadi"
diff --git a/po/vi.po b/po/vi.po
new file mode 100644
index 0000000..94d4b20
--- /dev/null
+++ b/po/vi.po
@@ -0,0 +1,766 @@
+# Vietnamese translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-07-23 09:09+0000\n"
+"Last-Translator: Robert Ancell <robert.ancell@canonical.com>\n"
+"Language-Team: Vietnamese <vi@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "_Xác thực"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr ""
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "_Mật khẩu:"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr ""
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr ""
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr ""
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "Quét đơn giản"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "_Tài liệu"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr ""
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "Trang Đơn"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "Tất cả trang từ _Khay (Feeder)"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "Văn bản"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "Ảnh chụp"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr ""
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "_Trang"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "Xoay _trái"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "Xoay _Phải"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "_Xén"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "_Không có"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "_Letter"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "Le_gal"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr ""
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "Tự _chọn"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "_Xoay phần Xén trên màn hình (_Rotate Crop)"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr ""
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr ""
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "_Trợ giúp"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr ""
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr ""
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr ""
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr ""
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr ""
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr ""
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr ""
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr ""
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr ""
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr ""
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr ""
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "Tùy thích"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "Quét _Nguồn:"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr ""
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr ""
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr ""
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr ""
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "Độ sáng:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "Độ tương phản:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "Chất lượng:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr ""
+"Loại tài liệu đang quét hình. Tùy chọn này sẽ quyết định độ phân giải quét "
+"hình, màu và quy trình xử lý sau quét hình."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "Độ sáng quét hình"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "Chỉnh độ sáng từ -100 đến 100 (0 là không có)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "Độ tương phản quét hình"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "Chỉnh độ tương phản từ -100 đến 100 (0 là không có)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "Bên trang cần quét hình."
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr ""
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "Xác định chất lượng khi nén ảnh dạng JPEG"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "Xác định chất lượng khi nén ảnh dạng JPEG."
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr ""
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "Không nối được với máy quét hình"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "Không quét hình được"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "Lỗi khi giao dịch với máy quét hình"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "Hiện phiên bản phát hành"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "In ra thông tin gỡ lỗi"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr ""
+"Chỉnh các tệp PDF đã được tạo ra bởi các phiên bản cũ hơn của Simple Scan"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "Quét hình thất bại"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr ""
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[DEVICE...] - Công cụ quét hình"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr ""
+"Chạy lệnh '%s --help' để xem danh sách tất cả các tùy chọn dòng lệnh."
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "Tài liệu quét.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr ""
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "Tên đăng nhập và mật mã cần thiết để truy cập '%s'"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "Không phát hiện máy quét hình nào hết"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "Vui lòng kiểm tra đã cắm và bật máy quét hình chưa"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "Lưu thành..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr ""
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr ""
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr ""
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr ""
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr ""
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr ""
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr ""
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "Không lưu được tệp"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr ""
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr ""
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr ""
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "Không lưu được ảnh cho xem trước"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr ""
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr ""
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"Phần mềm này là phần mềm tự do: bạn có thể phân phối lại cũng như sửa đổi\n"
+"nó căn cứ vào giấy phép GNU General Public License do\n"
+"Free Software Foundation đã công bố, theo phiên bản 3 của giấy phép, hoặc\n"
+"(tùy thích) bất kỳ phiên bản sau.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "Về Simple Scan"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "Công cụ đơn giản để quét tài liệu"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Duong H. Nguyen https://launchpad.net/~cmpitg\n"
+" Robert Ancell https://launchpad.net/~robert-ancell\n"
+" Vu Do Quynh https://launchpad.net/~vu-do-quynh"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr ""
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr ""
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr ""
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr ""
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr ""
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr ""
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr ""
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr ""
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "Tối hơn"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr ""
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr ""
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr ""
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr ""
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr ""
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr ""
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr ""
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "Cách dùng:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "Lựa chọn GTK+ :\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+
+#~ msgid "Please check your installation"
+#~ msgstr "Vui lòng kiểm tra lại việc cài đặt"
+
+#~ msgid "Files missing"
+#~ msgstr "Thiếu các tệp"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "Hướng quét trang của máy quét hình"
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644
index 0000000..b329eec
--- /dev/null
+++ b/po/zh_CN.po
@@ -0,0 +1,834 @@
+# Chinese (Simplified) translation for simple-scan
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-09-20 08:05+0000\n"
+"Last-Translator: Dennis Kuang <Unknown>\n"
+"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "认证(_A)"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "资源用户名(_U):"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "密码(_P):"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "正面和背面"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "正面"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "背面"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "扫描易"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "文档(_D)"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "扫描(_A)"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "单页(_P)"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "传送来的所有页面(_F)"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "停止扫描(_S)"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "文本"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "照片"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr ""
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "电子邮件(_E)"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "页面(_P)"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "向左旋转(_L)"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "向右旋转(_R)"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "剪裁(_C)"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "无(_N)"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "信件(_L)"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "法定(_G)"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "自定义(_C)"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "旋转剪裁(_R)"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "左移"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "右移"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "帮助(_H)"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "内容(_C)"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "开始一个新的文档"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "新建"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "从扫描仪扫描一个单页"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "扫描"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "将文档保存为文件"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "保存"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "停止当前扫描"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "停止"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "左旋页面 (逆时针)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "逆时针旋转"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "右旋页面 (顺时针)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "顺时针旋转"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "裁剪选中的页面"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "剪裁"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "首选项"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "扫描来源(_O):"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "文字分辨率(_T):"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "图像分辨率(_P):"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "扫描页面:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "页面大小:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "亮度:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "对比度:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "质量:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "扫描文档"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "扫描设备"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "从 SANE 设备获取图像。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "扫描文档的类型"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr "要扫描的文件类型。此设置将决定扫描的分辨率、色彩和预处理。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "纸张的宽度 (以 0.1mm 计)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr "纸张的宽度 (以 0.1mm 计,0 代表自动检查纸张)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "纸张的高度 (以 0.1mm 计)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr "纸张的高度 (以 0.1mm 计,0 代表自动检查纸张)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "扫描亮度"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "从 -100 到 100 的亮度调节(0 为不作调节)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "扫描对比度"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "从 -100 到 100 的对比度调节(0 为不作调节)"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "文本扫描分辨率"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "上次扫描文档的分辨率 (点/英寸)。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "照片扫描分辨率"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "扫描照片时使用的分辨率 (点/英寸)。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "扫描纸张的哪面"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "要扫描的页面。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "保存文件的文件夹:"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr "用于保存文件的文件夹。如果不设置,默认使用 文档 文件夹。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "JPEG 压缩质量"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "JPEG 压缩质量"
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "没有可用的扫描仪。请连接一个扫描仪。"
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "无法连接到扫描仪"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "无法开始扫描"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "与扫描仪通信错误"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "显示版本信息"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "显示调试信息"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "修复旧版扫描易生成的 PDF 文件"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "扫描失败"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "扫描的文档"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[设备...] - 扫描工具"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr "运行“%s --help”来查看可用命令行选项的完整列表。"
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "扫描的文件.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "关闭(_C)"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "使用“%s”需要用户名和密码"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "没有发现扫描仪"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "请检查您的扫描仪已经连接并且打开"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "保存为..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "取消(_C)"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "保存(_S)"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "图像文件"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "所有文件"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "选择文件类型(_T)"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (多页文档)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (压缩)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (无损)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "保存文件错误"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "如果您不保存,变更将永久丢失。"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "保存当前文档?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "放弃更改"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "无法保存用以预览的图像"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "无法打开图像预览软件"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr ""
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "无法打开帮助文件"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"本程序为自由软件;您可依据自由软件基金会所发布的 GNU 通用公共授权条款,\n"
+"对本程序进行重新分发和/或修改;无论您依据的是本授权的第三版,或(您自由\n"
+"选择的)任一日后发行的版本。\n"
+"\n"
+"本程序是基于使用目的而加以发布,然而不承担何担保责任;亦无对适售性或特\n"
+"定目的适用性所为的默示性担保。详情请参照 GNU 通用公共授权。\n"
+"\n"
+"您应已收到附随于本程序的 GNU 通用公共授权的副本;如果没有,请参照\n"
+"<http://www.gnu.org/licenses/>."
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "关于扫描易"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "简易的文件扫描工具"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Alexey Kotlyarov https://launchpad.net/~koterpillar\n"
+" Aron Xu https://launchpad.net/~happyaron\n"
+" Carlos Gong https://launchpad.net/~bfsugxy\n"
+" David Gao https://launchpad.net/~davidgao1001\n"
+" Dennis Kuang https://launchpad.net/~denniskrq\n"
+" Dingyuan Wang https://launchpad.net/~abcdoyle888\n"
+" Heling Yao https://launchpad.net/~hyao\n"
+" Jimhu https://launchpad.net/~huyiwei\n"
+" Wang Dianjin https://launchpad.net/~tuhaihe\n"
+" Wylmer Wang https://launchpad.net/~wantinghard\n"
+" Xhacker Liu https://launchpad.net/~xhacker\n"
+" YunJian https://launchpad.net/~tld5yj\n"
+" YunQiang Su https://launchpad.net/~wzssyqa\n"
+" ZhangCheng https://launchpad.net/~xxzc\n"
+" zixue.liu https://launchpad.net/~zixue"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "退出前保存文档?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "退出且不保存"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (默认)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (草稿)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (高分辨率)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr ""
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr ""
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr ""
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr ""
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr ""
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr ""
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr ""
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "更换扫描仪(_S)"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "自动"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "较深"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "稍浅"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "较少"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "更多"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "最小值"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "最大值"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "正在保存文档..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "正在保存 %d/%d 页"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "用法:\n"
+#~ " %s [设备...] - 扫描工具"
+
+#~ msgid "Please check your installation"
+#~ msgstr "请检查您的安装"
+
+#~ msgid "Files missing"
+#~ msgstr "文件丢失"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ 选项:\n"
+#~ " --class=CLASS 窗口管理器所用的程序类\n"
+#~ " --name=NAME 窗口管理器所用的程序名\n"
+#~ " --screen=SCREEN 要使用的 X 屏幕\n"
+#~ " --sync 同步 X 调用\n"
+#~ " --gtk-module=MODULES 加载额外的 GTK+ 模块\n"
+#~ " --g-fatal-warnings 将所有警告置为致命"
+
+#~ msgid "Direction of scan"
+#~ msgstr "扫描方向"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr "扫描仪扫描页面的方式。可以是如下几种:顶部到底部、底部到顶部、左边到右边,右边到左边"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr "扫描文档的类型。“文本”适用于文本文档,“照片”适用于照片。这些设置将会决定扫描分辨率、色彩和预处理。"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "帮助选项:\n"
+#~ " -d, --debug 输出调试信息\n"
+#~ " -v, --version 显示版本信息\n"
+#~ " -h, --help 显示帮助选项\n"
+#~ " --help-all 显示所有帮助选项\n"
+#~ " --help-gtk 显示 GTK+ 选项"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "TRUE 如果应用程序窗口是最大化的"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "上次扫描图片的分辨率 (点/英寸)。"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "上次扫描的图片分辨率"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "所扫描图像的的高度 (以像素计)"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr "所扫描图像的宽度 (以像素计)。这是上次扫描的页面的值。"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr "所扫描图像的高度 (以像素计)。这是上次扫描的页面的值。"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "窗口高度 (像素)"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "窗口宽度 (像素)"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "所扫描图像的宽度 (以像素计)。"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr "扫描纸张的哪面。可以是以下值:“正面” “背面” “均扫描”"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "扫描仪相对于被扫描页面的方向。"
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100644
index 0000000..cd87955
--- /dev/null
+++ b/po/zh_TW.po
@@ -0,0 +1,825 @@
+# Chinese (Traditional) translation for simple-scan
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the simple-scan package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: simple-scan\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2014-08-18 17:31+1200\n"
+"PO-Revision-Date: 2012-10-25 09:21+0000\n"
+"Last-Translator: Walter Cheuk <wwycheuk@gmail.com>\n"
+"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-19 06:32+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Button to submit authorization dialog
+#: ../data/simple-scan.ui.h:2
+msgid "_Authorize"
+msgstr "授權(_A)"
+
+#. Label beside username entry
+#: ../data/simple-scan.ui.h:4
+msgid "_Username for resource:"
+msgstr "資源的使用者名稱(_U):"
+
+#. Label beside password entry
+#: ../data/simple-scan.ui.h:6
+msgid "_Password:"
+msgstr "密碼(_P):"
+
+#. Combo box label for scanning both sides of a page
+#: ../data/simple-scan.ui.h:8
+msgid "Front and Back"
+msgstr "正面與背面"
+
+#. Combo box label for scanning the front side of a page
+#: ../data/simple-scan.ui.h:10
+msgid "Front"
+msgstr "正面"
+
+#. Combo box label for scanning the back side of a page
+#: ../data/simple-scan.ui.h:12
+msgid "Back"
+msgstr "背面"
+
+#. Title of scan window
+#: ../data/simple-scan.ui.h:14 ../data/simple-scan.desktop.in.h:1
+msgid "Simple Scan"
+msgstr "掃描易"
+
+#. Label on document menu (contains actions for this document, e.g. save, print)
+#: ../data/simple-scan.ui.h:16
+msgid "_Document"
+msgstr "文件(_D)"
+
+#. Scan menu item
+#: ../data/simple-scan.ui.h:18
+msgid "Sc_an"
+msgstr "掃描(_A)"
+
+#. Toolbar scan menu item to scan a single page from the scanner
+#: ../data/simple-scan.ui.h:20
+msgid "Single _Page"
+msgstr "單一頁面(_P)"
+
+#. Toolbar scan menu item to scan all pages from a document feeder
+#: ../data/simple-scan.ui.h:22
+msgid "All Pages From _Feeder"
+msgstr "來自進紙匣的所有頁面(_F)"
+
+#. Menu entry to stop current scan
+#: ../data/simple-scan.ui.h:24
+msgid "_Stop Scan"
+msgstr "停止掃描(_S)"
+
+#: ../data/simple-scan.ui.h:25
+msgid "Text"
+msgstr "文字"
+
+#: ../data/simple-scan.ui.h:26
+msgid "Photo"
+msgstr "相片"
+
+#. Menu item to reorder pages
+#. Title of dialog to reorder pages
+#: ../data/simple-scan.ui.h:28 ../src/ui.vala:1181 ../src/ui.vala:1694
+msgid "Reorder Pages"
+msgstr "重新排列頁面"
+
+#. Label on email menu item
+#: ../data/simple-scan.ui.h:30
+msgid "_Email"
+msgstr "電子郵件(_E)"
+
+#. Page menu (contains action for each page, e.g. delete, crop)
+#: ../data/simple-scan.ui.h:32
+msgid "_Page"
+msgstr "頁面(_P)"
+
+#. Menu item to rotate page to left (anti-clockwise)
+#: ../data/simple-scan.ui.h:34
+msgid "Rotate _Left"
+msgstr "向左旋轉(_L)"
+
+#. Menu item to rotate page to right (clockwise)
+#: ../data/simple-scan.ui.h:36
+msgid "Rotate _Right"
+msgstr "向右旋轉(_R)"
+
+#. Label for page crop submenu
+#: ../data/simple-scan.ui.h:38
+msgid "_Crop"
+msgstr "裁切(_C)"
+
+#. Radio button for no crop
+#: ../data/simple-scan.ui.h:40
+msgid "_None"
+msgstr "無(_N)"
+
+#. Radio button for cropping page to A4 size
+#: ../data/simple-scan.ui.h:42
+msgid "A_4"
+msgstr "A_4"
+
+#. Radio button for cropping page to A5 size
+#: ../data/simple-scan.ui.h:44
+msgid "A_5"
+msgstr "A_5"
+
+#. Radio button for cropping page to A6 size
+#: ../data/simple-scan.ui.h:46
+msgid "A_6"
+msgstr "A_6"
+
+#. Radio button for cropping page to US letter size
+#: ../data/simple-scan.ui.h:48
+msgid "_Letter"
+msgstr "美規信紙 (_Letter)"
+
+#. Radio button for cropping to page to US legal size
+#: ../data/simple-scan.ui.h:50
+msgid "Le_gal"
+msgstr "美規長信紙 (Le_gal)"
+
+#. Radio button for cropping page to 4x6 inch
+#: ../data/simple-scan.ui.h:52
+msgid "4×6"
+msgstr "4×6"
+
+#. Radio button for cropping to custom page size
+#: ../data/simple-scan.ui.h:54
+msgid "_Custom"
+msgstr "自訂(_C)"
+
+#. Menu item to rotate the crop area
+#: ../data/simple-scan.ui.h:56
+msgid "_Rotate Crop"
+msgstr "旋轉裁切區域(_R)"
+
+#. Menu item to move the selected page to the left
+#: ../data/simple-scan.ui.h:58
+msgid "Move Left"
+msgstr "左移"
+
+#. Menu item to move the selected page to the right
+#: ../data/simple-scan.ui.h:60
+msgid "Move Right"
+msgstr "右移"
+
+#. Label on help menu
+#: ../data/simple-scan.ui.h:62
+msgid "_Help"
+msgstr "幫助(_H)"
+
+#. Help|Contents menu
+#: ../data/simple-scan.ui.h:64
+msgid "_Contents"
+msgstr "內容(_C)"
+
+#. Tooltip for new document button
+#: ../data/simple-scan.ui.h:66
+msgid "Start a new document"
+msgstr "起始一份新文件"
+
+#: ../data/simple-scan.ui.h:67
+msgid "New"
+msgstr "新增"
+
+#. Tooltip for scan toolbar button
+#: ../data/simple-scan.ui.h:69
+msgid "Scan a single page from the scanner"
+msgstr "從掃描器掃描單一頁面"
+
+#. Label on scan toolbar item
+#: ../data/simple-scan.ui.h:71
+msgid "Scan"
+msgstr "掃描"
+
+#. Tooltip for save toolbar button
+#: ../data/simple-scan.ui.h:73
+msgid "Save document to a file"
+msgstr "將文件儲存至檔案"
+
+#: ../data/simple-scan.ui.h:74 ../src/ui.vala:1695
+msgid "Save"
+msgstr "儲存"
+
+#. Tooltip for stop button
+#: ../data/simple-scan.ui.h:76
+msgid "Stop the current scan"
+msgstr "停止目前的掃描"
+
+#: ../data/simple-scan.ui.h:77
+msgid "Stop"
+msgstr "停止"
+
+#. Tooltip for rotate left (counter-clockwise) button
+#: ../data/simple-scan.ui.h:79
+msgid "Rotate the page to the left (counter-clockwise)"
+msgstr "將頁面向左旋轉 (逆時針方向)"
+
+#. Label on rotate page left (anti-clockwise) item
+#: ../data/simple-scan.ui.h:81
+msgid "Rotate Left"
+msgstr "向左旋轉"
+
+#. Tooltip for rotate right (clockwise) button
+#: ../data/simple-scan.ui.h:83
+msgid "Rotate the page to the right (clockwise)"
+msgstr "將頁面向右旋轉 (順時針方向)"
+
+#. Label on rotate page right (clockwise) item
+#: ../data/simple-scan.ui.h:85
+msgid "Rotate Right"
+msgstr "向右旋轉"
+
+#: ../data/simple-scan.ui.h:86
+msgid "Crop the selected page"
+msgstr "裁切所選的頁面"
+
+#: ../data/simple-scan.ui.h:87
+msgid "Crop"
+msgstr "裁切"
+
+#. Title of preferences dialog
+#: ../data/simple-scan.ui.h:89 ../src/ui.vala:1702
+msgid "Preferences"
+msgstr "偏好設定"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:91
+msgid "Scan S_ource:"
+msgstr "掃描來源(_O):"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:93
+msgid "_Text Resolution:"
+msgstr "文字解析度(_T):"
+
+#. Label beside scan source combo box
+#: ../data/simple-scan.ui.h:95
+msgid "_Photo Resolution:"
+msgstr "相片解析度(_P):"
+
+#. Label beside scan side combo box
+#: ../data/simple-scan.ui.h:97
+msgid "Scan Side:"
+msgstr "掃描面:"
+
+#. Label beside page size combo box
+#: ../data/simple-scan.ui.h:99
+msgid "Page Size:"
+msgstr "頁面大小:"
+
+#. Label beside brightness scale
+#: ../data/simple-scan.ui.h:101
+msgid "Brightness:"
+msgstr "亮度:"
+
+#. Label beside contrast scale
+#: ../data/simple-scan.ui.h:103
+msgid "Contrast:"
+msgstr "反差:"
+
+#. Label beside quality scale
+#: ../data/simple-scan.ui.h:105
+msgid "Quality:"
+msgstr "品質:"
+
+#: ../data/simple-scan.desktop.in.h:2
+msgid "Scan Documents"
+msgstr "掃描文件"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:1
+msgid "Device to scan from"
+msgstr "要從哪個裝置掃描"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:2
+msgid "SANE device to acquire images from."
+msgstr "取得影像用的 SANE 裝置。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:3
+msgid "Type of document being scanned"
+msgstr "掃描中文件的類型"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:4
+msgid ""
+"Type of document being scanned. This setting decides on the scan resolution, "
+"colors and post-processing."
+msgstr "掃描中文件的類型。這個設定值決定掃描的解析度、色彩、後製處理。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:5
+msgid "Width of paper in tenths of a mm"
+msgstr "以 0.1 mm 為單位的紙張寬度"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:6
+msgid ""
+"The width of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr "以 0.1 mm 為單位的紙張寬度 (或 0 以作為自動紙張偵測)。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:7
+msgid "Height of paper in tenths of a mm"
+msgstr "以 0.1 mm 為單位的紙張高度"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:8
+msgid ""
+"The height of the paper in tenths of a mm (or 0 for automatic paper "
+"detection)."
+msgstr "以 0.1 mm 為單位的紙張高度 (或 0 以作為自動紙張偵測)。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:9
+msgid "Brightness of scan"
+msgstr "掃描亮度"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:10
+msgid "The brightness adjustment from -100 to 100 (0 being none)."
+msgstr "調整亮度,由 -100 至 100 (0 代表無)。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:11
+msgid "Contrast of scan"
+msgstr "掃描反差"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:12
+msgid "The contrast adjustment from -100 to 100 (0 being none)."
+msgstr "調整反差,由 -100 至 100 (0 代表無)。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:13
+msgid "Resolution for text scans"
+msgstr "文字掃描的解析度"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:14
+msgid "The resolution in dots-per-inch to use when scanning text."
+msgstr "當掃描文字時使用的解析度,單位為 dpi。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:15
+msgid "Resolution for photo scans"
+msgstr "相片掃描的解析度"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:16
+msgid "The resolution in dots-per-inch to use when scanning photos."
+msgstr "當掃描相片時使用的解析度,單位為 dpi。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:17
+msgid "Page side to scan"
+msgstr "要掃描的頁面"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:18
+msgid "The page side to scan."
+msgstr "要掃描的頁面。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:19
+msgid "Directory to save files to"
+msgstr "儲存檔案的目錄"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:20
+msgid ""
+"The directory to save files to. Defaults to the documents directory if unset."
+msgstr "儲存檔案到何目錄。如果沒有預設值的話,設值會是「文件」目錄。"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:21
+msgid "Quality value to use for JPEG compression"
+msgstr "JPEG 壓縮品質"
+
+#: ../data/org.gnome.SimpleScan.gschema.xml.in.h:22
+msgid "Quality value to use for JPEG compression."
+msgstr "JPEG 壓縮品質。"
+
+#. Error displayed when no scanners to scan with
+#: ../src/scanner.vala:840
+msgid "No scanners available. Please connect a scanner."
+msgstr "沒有可用的掃描器。請連接一部掃描器。"
+
+#. Error displayed when cannot connect to scanner
+#: ../src/scanner.vala:870
+msgid "Unable to connect to scanner"
+msgstr "無法連接到掃描器"
+
+#. Error display when unable to start scan
+#: ../src/scanner.vala:1222
+msgid "Unable to start scan"
+msgstr "無法起始掃描"
+
+#. Error displayed when communication with scanner broken
+#: ../src/scanner.vala:1235 ../src/scanner.vala:1332
+msgid "Error communicating with scanner"
+msgstr "與掃描器溝通時發生錯誤"
+
+#. Help string for command line --version flag
+#: ../src/simple-scan.vala:21
+msgid "Show release version"
+msgstr "顯示發行版本"
+
+#. Help string for command line --debug flag
+#: ../src/simple-scan.vala:24
+msgid "Print debugging messages"
+msgstr "列印除錯訊息"
+
+#: ../src/simple-scan.vala:26
+msgid "Fix PDF files generated with older versions of Simple Scan"
+msgstr "修正由舊版本「簡易掃描」產生的 PDF 檔案"
+
+#. Title of error dialog when scan failed
+#: ../src/simple-scan.vala:297
+msgid "Failed to scan"
+msgstr "掃描失敗"
+
+#. Default filename to use when saving document (and extension will be added, e.g. .jpg)
+#: ../src/simple-scan.vala:316
+msgid "Scanned Document"
+msgstr "掃描的文件"
+
+#. Arguments and description for --help text
+#: ../src/simple-scan.vala:543
+msgid "[DEVICE...] - Scanning utility"
+msgstr "[裝置...] - 掃描公用程式"
+
+#. Text printed out when an unknown command-line argument provided
+#: ../src/simple-scan.vala:554
+#, c-format
+msgid "Run '%s --help' to see a full list of available command line options."
+msgstr "執行「%s --help」來查看所有命令列可用選項的完整清單。"
+
+#: ../src/ui.vala:188
+msgid "Scanned Document.pdf"
+msgstr "掃描的文件.pdf"
+
+#: ../src/ui.vala:316 ../src/ui.vala:1746
+msgid "_Close"
+msgstr "關閉(_C)"
+
+#. Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization
+#: ../src/ui.vala:324
+#, c-format
+msgid "Username and password required to access '%s'"
+msgstr "要存取「%s」需要提供使用者名稱與密碼"
+
+#. Warning displayed when no scanners are detected
+#: ../src/ui.vala:369
+msgid "No scanners detected"
+msgstr "沒有偵測到掃描器"
+
+#. Hint to user on why there are no scanners detected
+#: ../src/ui.vala:371
+msgid "Please check your scanner is connected and powered on"
+msgstr "請檢查您的掃描器是否連接,並且是否開啟電源"
+
+#. Save dialog: Dialog title
+#: ../src/ui.vala:507 ../src/ui.vala:1696
+msgid "Save As..."
+msgstr "另存為..."
+
+#: ../src/ui.vala:510 ../src/ui.vala:672
+msgid "_Cancel"
+msgstr "取消(_C)"
+
+#: ../src/ui.vala:511 ../src/ui.vala:673
+msgid "_Save"
+msgstr "儲存(_S)"
+
+#. Save dialog: Filter name to show only image files
+#: ../src/ui.vala:521
+msgid "Image Files"
+msgstr "影像檔"
+
+#. Save dialog: Filter name to show all files
+#: ../src/ui.vala:527
+msgid "All Files"
+msgstr "所有檔案"
+
+#.
+#: ../src/ui.vala:532
+msgid "Select File _Type"
+msgstr "選取檔案類型(_T)"
+
+#. Save dialog: Label for saving in PDF format
+#: ../src/ui.vala:546
+msgid "PDF (multi-page document)"
+msgstr "PDF (多頁文件)"
+
+#. Save dialog: Label for saving in JPEG format
+#: ../src/ui.vala:552
+msgid "JPEG (compressed)"
+msgstr "JPEG (壓縮)"
+
+#. Save dialog: Label for saving in PNG format
+#: ../src/ui.vala:558
+msgid "PNG (lossless)"
+msgstr "PNG (無損)"
+
+#. Title of error dialog when save failed
+#: ../src/ui.vala:647
+msgid "Failed to save file"
+msgstr "儲存檔案失敗"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:670
+msgid "If you don't save, changes will be permanently lost."
+msgstr "如果您不儲存,變更將會永久消失。"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:706
+msgid "Save current document?"
+msgstr "是否儲存目前文件?"
+
+#. Button in dialog to create new document and discard unsaved document
+#: ../src/ui.vala:708
+msgid "Discard Changes"
+msgstr "放棄變更"
+
+#. Error message display when unable to save image for preview
+#: ../src/ui.vala:990
+msgid "Unable to save image for preview"
+msgstr "無法儲存影像以供預覽"
+
+#. Error message display when unable to preview image
+#: ../src/ui.vala:1002
+msgid "Unable to open image preview application"
+msgstr "無法開啟影像預覽應用程式"
+
+#. Label on button for combining sides in reordering dialog
+#: ../src/ui.vala:1204
+msgid "Combine sides"
+msgstr ""
+
+#. Label on button for combining sides in reverse order in reordering dialog
+#: ../src/ui.vala:1214
+msgid "Combine sides (reverse)"
+msgstr ""
+
+#. Label on button for reversing in reordering dialog
+#: ../src/ui.vala:1224
+msgid "Reverse"
+msgstr ""
+
+#. Label on button for cancelling page reordering dialog
+#: ../src/ui.vala:1234
+msgid "Keep unchanged"
+msgstr "維持不變"
+
+#. Error message displayed when unable to launch help browser
+#: ../src/ui.vala:1449
+msgid "Unable to open help file"
+msgstr "無法開啟幫助文件檔案"
+
+#. The license this software is under (GPL3+)
+#: ../src/ui.vala:1470
+msgid ""
+"This program is free software: you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation, either version 3 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program. If not, see <http://www.gnu.org/licenses/>."
+msgstr ""
+"本程式為自由軟體;您可依據自由軟體基金會所發表的 GNU "
+"通用公眾授權條款,對本程式再次發佈和/或修改;無論您依據的是本授權的第三版,或(依您的選擇而定)任何較新的版本。\n"
+"\n"
+"本程式發佈的目的是希望它有用,然而沒有任何保證;亦無對適售性或特定目的適用性所為的暗示性保證。詳情請參照 GNU 通用公眾授權。\n"
+"\n"
+"您應已收到附隨於本程式的 GNU 通用公眾授權的副本;如果沒有,請參照 <http://www.gnu.org/licenses/>。"
+
+#. Title of about dialog
+#: ../src/ui.vala:1473
+msgid "About Simple Scan"
+msgstr "關於「簡易掃描」"
+
+#. Description of program
+#: ../src/ui.vala:1476
+msgid "Simple document scanning tool"
+msgstr "簡易文件掃描工具"
+
+#: ../src/ui.vala:1485
+msgid "translator-credits"
+msgstr ""
+"Launchpad Contributions:\n"
+" Cheng-Chia Tseng https://launchpad.net/~zerng07\n"
+" Chien-Hao Wu https://launchpad.net/~pinychwu\n"
+" Robert Ancell https://launchpad.net/~robert-ancell\n"
+" Roy Chan https://launchpad.net/~roy-chan-linux\n"
+" Walter Cheuk https://launchpad.net/~wwycheuk\n"
+" Yu - Sian , Liu https://launchpad.net/~thomasysliu\n"
+" nckuhuahua https://launchpad.net/~nckuhuahua"
+
+#. Text in dialog warning when a document is about to be lost
+#: ../src/ui.vala:1507
+msgid "Save document before quitting?"
+msgstr "在結束前要儲存文件嗎?"
+
+#. Button in dialog to quit and discard unsaved document
+#: ../src/ui.vala:1509
+msgid "Quit without Saving"
+msgstr "直接退出而不儲存"
+
+#. Preferences dialog: Label for default resolution in resolution list
+#: ../src/ui.vala:1633
+#, c-format
+msgid "%d dpi (default)"
+msgstr "%d dpi (預設)"
+
+#. Preferences dialog: Label for minimum resolution in resolution list
+#: ../src/ui.vala:1636
+#, c-format
+msgid "%d dpi (draft)"
+msgstr "%d dpi (草稿)"
+
+#. Preferences dialog: Label for maximum resolution in resolution list
+#: ../src/ui.vala:1639
+#, c-format
+msgid "%d dpi (high resolution)"
+msgstr "%d dpi (高解析度)"
+
+#. Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch)
+#: ../src/ui.vala:1642
+#, c-format
+msgid "%d dpi"
+msgstr "%d dpi"
+
+#: ../src/ui.vala:1688
+msgid "New Document"
+msgstr "新文件"
+
+#: ../src/ui.vala:1693
+msgid "Document"
+msgstr "文件"
+
+#: ../src/ui.vala:1697
+msgid "Email..."
+msgstr "電子郵件..."
+
+#: ../src/ui.vala:1698
+msgid "Print..."
+msgstr "列印..."
+
+#: ../src/ui.vala:1706
+msgid "Help"
+msgstr "求助"
+
+#: ../src/ui.vala:1707
+msgid "About"
+msgstr "關於"
+
+#: ../src/ui.vala:1708
+msgid "Quit"
+msgstr "結束"
+
+#. Button in error infobar to open preferences dialog and change scanner
+#: ../src/ui.vala:1748
+msgid "Change _Scanner"
+msgstr "變更掃描器(_S)"
+
+#. Combo box value for automatic paper size
+#: ../src/ui.vala:1754
+msgid "Automatic"
+msgstr "自動"
+
+#: ../src/ui.vala:1804
+msgid "Darker"
+msgstr "較深"
+
+#: ../src/ui.vala:1806
+msgid "Lighter"
+msgstr "較淺"
+
+#: ../src/ui.vala:1814
+msgid "Less"
+msgstr "少"
+
+#: ../src/ui.vala:1816
+msgid "More"
+msgstr "多"
+
+#: ../src/ui.vala:1824
+msgid "Minimum"
+msgstr "最小"
+
+#: ../src/ui.vala:1826
+msgid "Maximum"
+msgstr "最大"
+
+#: ../src/ui.vala:1867
+msgid "Saving document..."
+msgstr "正在儲存文件..."
+
+#: ../src/ui.vala:2017
+#, c-format
+msgid "Saving page %d out of %d"
+msgstr "正在儲存 %2$d 頁中的第 %1$d 頁"
+
+#~ msgid "4&#xD7;6"
+#~ msgstr "4&#xD7;6"
+
+#~ msgid "Direction of scan"
+#~ msgstr "掃描的方向"
+
+#~ msgid "Resolution of last scanned image"
+#~ msgstr "上次掃描影像的解析度"
+
+#~ msgid "Window height in pixels"
+#~ msgstr "視窗高度,單位為像素"
+
+#~ msgid "Window width in pixels"
+#~ msgstr "視窗寬度,單位為像素"
+
+#~ msgid "Please check your installation"
+#~ msgstr "請檢查您的安裝是否完整"
+
+#~ msgid "The resolution in dots-per-inch of the previously scanned image."
+#~ msgstr "之前掃描的影像其解析度,單位為 dpi。"
+
+#~ msgid ""
+#~ "Type of document being scanned. 'text' for text documents, 'photo' for "
+#~ "photos. This setting decides on the scan resolution, colors and post-"
+#~ "processing."
+#~ msgstr "掃描中文件的類型。「文字」表示文字型文件,「相片」表示相片型文件。此設定值會決定掃描解析度、色彩,以及後製處理。"
+
+#~ msgid "TRUE if the application window is maximized"
+#~ msgstr "如果應用程式視窗最大化時為 TRUE"
+
+#, c-format
+#~ msgid ""
+#~ "Help Options:\n"
+#~ " -d, --debug Print debugging messages\n"
+#~ " -v, --version Show release version\n"
+#~ " -h, --help Show help options\n"
+#~ " --help-all Show all help options\n"
+#~ " --help-gtk Show GTK+ options"
+#~ msgstr ""
+#~ "求助選項:\n"
+#~ " -d, --debug 顯示除蟲訊息\n"
+#~ " -v, --version 顯示發佈版本\n"
+#~ " -h, --help 顯示求助選項\n"
+#~ " --help-all 顯示所有求助選項\n"
+#~ " --help-gtk 顯示 GTK+ 選項"
+
+#, c-format
+#~ msgid ""
+#~ "Usage:\n"
+#~ " %s [DEVICE...] - Scanning utility"
+#~ msgstr ""
+#~ "用法:\n"
+#~ " %s [裝置...] - 掃瞄工具"
+
+#, c-format
+#~ msgid ""
+#~ "GTK+ Options:\n"
+#~ " --class=CLASS Program class as used by the window "
+#~ "manager\n"
+#~ " --name=NAME Program name as used by the window "
+#~ "manager\n"
+#~ " --screen=SCREEN X screen to use\n"
+#~ " --sync Make X calls synchronous\n"
+#~ " --gtk-module=MODULES Load additional GTK+ modules\n"
+#~ " --g-fatal-warnings Make all warnings fatal"
+#~ msgstr ""
+#~ "GTK+ 選項:\n"
+#~ " --class=CLASS 如同視窗管理程式使用的程式類別\n"
+#~ " --name=NAME 如同視窗管理程式使用的程式名稱\n"
+#~ " --screen=SCREEN 要使用的 X 螢幕\n"
+#~ " --sync 讓 X 呼叫同步化\n"
+#~ " --gtk-module=MODULES 載入額外的 GTK+ 模組\n"
+#~ " --g-fatal-warnings 將所有警告設為嚴重的"
+
+#~ msgid "Height of scanned image in pixels"
+#~ msgstr "掃描影像的高度,單位為像素"
+
+#~ msgid ""
+#~ "The height of scanned image in pixels. This value is updated to what the "
+#~ "last scanned page was."
+#~ msgstr "掃描影像的高度,單位為像素。此數值會根據最近一次掃描頁面的情況更新。"
+
+#~ msgid ""
+#~ "The width of scanned image in pixels. This value is updated to what the last "
+#~ "scanned page was."
+#~ msgstr "掃描影像的寬度,單位為像素。此值會根據最近一次掃描頁面的情況更新。"
+
+#~ msgid "Width of scanned image in pixels"
+#~ msgstr "掃描影像的寬度,單位為像素"
+
+#~ msgid ""
+#~ "The page side to scan. It can be one of the following: 'both' 'front' 'back'"
+#~ msgstr "要掃描的頁面。它可以是下列之一:「both」(兩者)、「front」(正面)、「back」(背面)"
+
+#~ msgid ""
+#~ "The direction of the scanner across the scanned page. It can be one of the "
+#~ "following: 'top-to-bottom' 'bottom-to-top' 'left-to-right' 'right-to-left'"
+#~ msgstr ""
+#~ "掃描器橫越掃描頁面的方向。它可以是下列之一:「top-to-bottom」(頂端到底部)、「bottom-to-top」(底部到頂端)、「left-to-"
+#~ "right」(左到右)、「right-to-left」(右到左)"
+
+#~ msgid "The direction of the scanner across the scanned page."
+#~ msgstr "掃描器跨越掃描頁面的方向。"
+
+#~ msgid "Files missing"
+#~ msgstr "缺少檔案"
diff --git a/simple-scan.doap b/simple-scan.doap
new file mode 100644
index 0000000..de2ac8e
--- /dev/null
+++ b/simple-scan.doap
@@ -0,0 +1,21 @@
+<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
+ xmlns:foaf="http://xmlns.com/foaf/0.1/"
+ xmlns:gnome="http://api.gnome.org/doap-extensions#"
+ xmlns="http://usefulinc.com/ns/doap#">
+
+ <name xml:lang="en">simple-scan</name>
+ <shortdesc xml:lang="en">Document Scanning Application</shortdesc>
+ <homepage rdf:resource="https://launchpad.net/simple-scan" />
+ <download-page rdf:resource="http://people.ubuntu.com/~robert-ancell/simple-scan/" />
+ <bug-database rdf:resource="https://bugs.launchpad.net/simple-scan" />
+ <category rdf:resource="http://api.gnome.org/doap-extensions#desktop" />
+
+ <maintainer>
+ <foaf:Person>
+ <foaf:name>Robert Ancell</foaf:name>
+ <foaf:mbox rdf:resource="mailto:robert.ancell@gmail.com" />
+ <gnome:userid>rancell</gnome:userid>
+ </foaf:Person>
+ </maintainer>
+</Project>
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..d317e66
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,58 @@
+bin_PROGRAMS = simple-scan
+
+resources.c: $(top_srcdir)/data/simple-scan.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies --sourcedir=$(top_srcdir)/data/ $(top_srcdir)/data/simple-scan.gresource.xml)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(top_srcdir)/data/ --generate-source $<
+
+simple_scan_SOURCES = \
+ config.vapi \
+ book.vala \
+ book-view.vala \
+ colord.vapi \
+ page.vala \
+ page-view.vala \
+ sane.vapi \
+ simple-scan.vala \
+ scanner.vala \
+ ui.vala \
+ autosave-manager.vala \
+ resources.c
+
+simple_scan_VALAFLAGS = \
+ --pkg=zlib \
+ --pkg=gudev-1.0 \
+ --pkg=gio-2.0 \
+ --pkg=gtk+-3.0 \
+ --gresources=$(top_srcdir)/data/simple-scan.gresource.xml \
+ --debug \
+ --target-glib 2.38
+
+if HAVE_COLORD
+simple_scan_VALAFLAGS += -D HAVE_COLORD
+endif
+
+simple_scan_CFLAGS = \
+ -w \
+ $(SIMPLE_SCAN_CFLAGS) \
+ $(COLORD_CFLAGS) \
+ $(WARN_CFLAGS) \
+ -DVERSION=\"$(VERSION)\" \
+ -DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\" \
+ -DLOCALE_DIR=\"$(localedir)\" \
+ -DUI_DIR=\"$(datadir)/simple-scan/\" \
+ -DICON_DIR=\"$(datadir)/simple-scan/icons\" \
+ -DGCONF_DIR=\"/apps/simple-scan\" \
+ -DSIMPLE_SCAN_BINARY=\"simple-scan\"
+
+simple_scan_LDADD = \
+ $(SIMPLE_SCAN_LIBS) \
+ $(COLORD_LIBS) \
+ -lsane \
+ -lm
+
+CLEANFILES = \
+ $(patsubst %.vala,%.c,$(filter %.vala, $(SOURCES))) \
+ resources.c \
+ *_vala.stamp
+
+DISTCLEANFILES = \
+ Makefile.in
diff --git a/src/Makefile.in b/src/Makefile.in
new file mode 100644
index 0000000..0c0a632
--- /dev/null
+++ b/src/Makefile.in
@@ -0,0 +1,851 @@
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+bin_PROGRAMS = simple-scan$(EXEEXT)
+@HAVE_COLORD_TRUE@am__append_1 = -D HAVE_COLORD
+subdir = src
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am book.c \
+ book-view.c page.c page-view.c simple-scan.c scanner.c ui.c \
+ autosave-manager.c $(top_srcdir)/depcomp \
+ $(srcdir)/simple_scan_vala.stamp
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_simple_scan_OBJECTS = simple_scan-book.$(OBJEXT) \
+ simple_scan-book-view.$(OBJEXT) simple_scan-page.$(OBJEXT) \
+ simple_scan-page-view.$(OBJEXT) \
+ simple_scan-simple-scan.$(OBJEXT) \
+ simple_scan-scanner.$(OBJEXT) simple_scan-ui.$(OBJEXT) \
+ simple_scan-autosave-manager.$(OBJEXT) \
+ simple_scan-resources.$(OBJEXT)
+simple_scan_OBJECTS = $(am_simple_scan_OBJECTS)
+am__DEPENDENCIES_1 =
+simple_scan_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+simple_scan_LINK = $(CCLD) $(simple_scan_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+VALACOMPILE = $(VALAC) $(AM_VALAFLAGS) $(VALAFLAGS)
+AM_V_VALAC = $(am__v_VALAC_@AM_V@)
+am__v_VALAC_ = $(am__v_VALAC_@AM_DEFAULT_V@)
+am__v_VALAC_0 = @echo " VALAC " $@;
+am__v_VALAC_1 =
+SOURCES = $(simple_scan_SOURCES)
+DIST_SOURCES = $(simple_scan_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COLORD_CFLAGS = @COLORD_CFLAGS@
+COLORD_LIBS = @COLORD_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+HELP_DIR = @HELP_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+ITSTOOL = @ITSTOOL@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIMPLE_SCAN_CFLAGS = @SIMPLE_SCAN_CFLAGS@
+SIMPLE_SCAN_LIBS = @SIMPLE_SCAN_LIBS@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+YELP_LC_DIST = @YELP_LC_DIST@
+YELP_LC_MEDIA_LINKS = @YELP_LC_MEDIA_LINKS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+simple_scan_SOURCES = \
+ config.vapi \
+ book.vala \
+ book-view.vala \
+ colord.vapi \
+ page.vala \
+ page-view.vala \
+ sane.vapi \
+ simple-scan.vala \
+ scanner.vala \
+ ui.vala \
+ autosave-manager.vala \
+ resources.c
+
+simple_scan_VALAFLAGS = --pkg=zlib --pkg=gudev-1.0 --pkg=gio-2.0 \
+ --pkg=gtk+-3.0 \
+ --gresources=$(top_srcdir)/data/simple-scan.gresource.xml \
+ --debug --target-glib 2.38 $(am__append_1)
+simple_scan_CFLAGS = \
+ -w \
+ $(SIMPLE_SCAN_CFLAGS) \
+ $(COLORD_CFLAGS) \
+ $(WARN_CFLAGS) \
+ -DVERSION=\"$(VERSION)\" \
+ -DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\" \
+ -DLOCALE_DIR=\"$(localedir)\" \
+ -DUI_DIR=\"$(datadir)/simple-scan/\" \
+ -DICON_DIR=\"$(datadir)/simple-scan/icons\" \
+ -DGCONF_DIR=\"/apps/simple-scan\" \
+ -DSIMPLE_SCAN_BINARY=\"simple-scan\"
+
+simple_scan_LDADD = \
+ $(SIMPLE_SCAN_LIBS) \
+ $(COLORD_LIBS) \
+ -lsane \
+ -lm
+
+CLEANFILES = \
+ $(patsubst %.vala,%.c,$(filter %.vala, $(SOURCES))) \
+ resources.c \
+ *_vala.stamp
+
+DISTCLEANFILES = \
+ Makefile.in
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+simple-scan$(EXEEXT): $(simple_scan_OBJECTS) $(simple_scan_DEPENDENCIES) $(EXTRA_simple_scan_DEPENDENCIES)
+ @rm -f simple-scan$(EXEEXT)
+ $(AM_V_CCLD)$(simple_scan_LINK) $(simple_scan_OBJECTS) $(simple_scan_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_scan-autosave-manager.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_scan-book-view.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_scan-book.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_scan-page-view.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_scan-page.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_scan-resources.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_scan-scanner.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_scan-simple-scan.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_scan-ui.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+simple_scan-book.o: book.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-book.o -MD -MP -MF $(DEPDIR)/simple_scan-book.Tpo -c -o simple_scan-book.o `test -f 'book.c' || echo '$(srcdir)/'`book.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-book.Tpo $(DEPDIR)/simple_scan-book.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='book.c' object='simple_scan-book.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-book.o `test -f 'book.c' || echo '$(srcdir)/'`book.c
+
+simple_scan-book.obj: book.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-book.obj -MD -MP -MF $(DEPDIR)/simple_scan-book.Tpo -c -o simple_scan-book.obj `if test -f 'book.c'; then $(CYGPATH_W) 'book.c'; else $(CYGPATH_W) '$(srcdir)/book.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-book.Tpo $(DEPDIR)/simple_scan-book.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='book.c' object='simple_scan-book.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-book.obj `if test -f 'book.c'; then $(CYGPATH_W) 'book.c'; else $(CYGPATH_W) '$(srcdir)/book.c'; fi`
+
+simple_scan-book-view.o: book-view.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-book-view.o -MD -MP -MF $(DEPDIR)/simple_scan-book-view.Tpo -c -o simple_scan-book-view.o `test -f 'book-view.c' || echo '$(srcdir)/'`book-view.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-book-view.Tpo $(DEPDIR)/simple_scan-book-view.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='book-view.c' object='simple_scan-book-view.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-book-view.o `test -f 'book-view.c' || echo '$(srcdir)/'`book-view.c
+
+simple_scan-book-view.obj: book-view.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-book-view.obj -MD -MP -MF $(DEPDIR)/simple_scan-book-view.Tpo -c -o simple_scan-book-view.obj `if test -f 'book-view.c'; then $(CYGPATH_W) 'book-view.c'; else $(CYGPATH_W) '$(srcdir)/book-view.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-book-view.Tpo $(DEPDIR)/simple_scan-book-view.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='book-view.c' object='simple_scan-book-view.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-book-view.obj `if test -f 'book-view.c'; then $(CYGPATH_W) 'book-view.c'; else $(CYGPATH_W) '$(srcdir)/book-view.c'; fi`
+
+simple_scan-page.o: page.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-page.o -MD -MP -MF $(DEPDIR)/simple_scan-page.Tpo -c -o simple_scan-page.o `test -f 'page.c' || echo '$(srcdir)/'`page.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-page.Tpo $(DEPDIR)/simple_scan-page.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='page.c' object='simple_scan-page.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-page.o `test -f 'page.c' || echo '$(srcdir)/'`page.c
+
+simple_scan-page.obj: page.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-page.obj -MD -MP -MF $(DEPDIR)/simple_scan-page.Tpo -c -o simple_scan-page.obj `if test -f 'page.c'; then $(CYGPATH_W) 'page.c'; else $(CYGPATH_W) '$(srcdir)/page.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-page.Tpo $(DEPDIR)/simple_scan-page.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='page.c' object='simple_scan-page.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-page.obj `if test -f 'page.c'; then $(CYGPATH_W) 'page.c'; else $(CYGPATH_W) '$(srcdir)/page.c'; fi`
+
+simple_scan-page-view.o: page-view.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-page-view.o -MD -MP -MF $(DEPDIR)/simple_scan-page-view.Tpo -c -o simple_scan-page-view.o `test -f 'page-view.c' || echo '$(srcdir)/'`page-view.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-page-view.Tpo $(DEPDIR)/simple_scan-page-view.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='page-view.c' object='simple_scan-page-view.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-page-view.o `test -f 'page-view.c' || echo '$(srcdir)/'`page-view.c
+
+simple_scan-page-view.obj: page-view.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-page-view.obj -MD -MP -MF $(DEPDIR)/simple_scan-page-view.Tpo -c -o simple_scan-page-view.obj `if test -f 'page-view.c'; then $(CYGPATH_W) 'page-view.c'; else $(CYGPATH_W) '$(srcdir)/page-view.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-page-view.Tpo $(DEPDIR)/simple_scan-page-view.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='page-view.c' object='simple_scan-page-view.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-page-view.obj `if test -f 'page-view.c'; then $(CYGPATH_W) 'page-view.c'; else $(CYGPATH_W) '$(srcdir)/page-view.c'; fi`
+
+simple_scan-simple-scan.o: simple-scan.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-simple-scan.o -MD -MP -MF $(DEPDIR)/simple_scan-simple-scan.Tpo -c -o simple_scan-simple-scan.o `test -f 'simple-scan.c' || echo '$(srcdir)/'`simple-scan.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-simple-scan.Tpo $(DEPDIR)/simple_scan-simple-scan.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='simple-scan.c' object='simple_scan-simple-scan.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-simple-scan.o `test -f 'simple-scan.c' || echo '$(srcdir)/'`simple-scan.c
+
+simple_scan-simple-scan.obj: simple-scan.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-simple-scan.obj -MD -MP -MF $(DEPDIR)/simple_scan-simple-scan.Tpo -c -o simple_scan-simple-scan.obj `if test -f 'simple-scan.c'; then $(CYGPATH_W) 'simple-scan.c'; else $(CYGPATH_W) '$(srcdir)/simple-scan.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-simple-scan.Tpo $(DEPDIR)/simple_scan-simple-scan.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='simple-scan.c' object='simple_scan-simple-scan.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-simple-scan.obj `if test -f 'simple-scan.c'; then $(CYGPATH_W) 'simple-scan.c'; else $(CYGPATH_W) '$(srcdir)/simple-scan.c'; fi`
+
+simple_scan-scanner.o: scanner.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-scanner.o -MD -MP -MF $(DEPDIR)/simple_scan-scanner.Tpo -c -o simple_scan-scanner.o `test -f 'scanner.c' || echo '$(srcdir)/'`scanner.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-scanner.Tpo $(DEPDIR)/simple_scan-scanner.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scanner.c' object='simple_scan-scanner.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-scanner.o `test -f 'scanner.c' || echo '$(srcdir)/'`scanner.c
+
+simple_scan-scanner.obj: scanner.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-scanner.obj -MD -MP -MF $(DEPDIR)/simple_scan-scanner.Tpo -c -o simple_scan-scanner.obj `if test -f 'scanner.c'; then $(CYGPATH_W) 'scanner.c'; else $(CYGPATH_W) '$(srcdir)/scanner.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-scanner.Tpo $(DEPDIR)/simple_scan-scanner.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scanner.c' object='simple_scan-scanner.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-scanner.obj `if test -f 'scanner.c'; then $(CYGPATH_W) 'scanner.c'; else $(CYGPATH_W) '$(srcdir)/scanner.c'; fi`
+
+simple_scan-ui.o: ui.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-ui.o -MD -MP -MF $(DEPDIR)/simple_scan-ui.Tpo -c -o simple_scan-ui.o `test -f 'ui.c' || echo '$(srcdir)/'`ui.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-ui.Tpo $(DEPDIR)/simple_scan-ui.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ui.c' object='simple_scan-ui.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-ui.o `test -f 'ui.c' || echo '$(srcdir)/'`ui.c
+
+simple_scan-ui.obj: ui.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-ui.obj -MD -MP -MF $(DEPDIR)/simple_scan-ui.Tpo -c -o simple_scan-ui.obj `if test -f 'ui.c'; then $(CYGPATH_W) 'ui.c'; else $(CYGPATH_W) '$(srcdir)/ui.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-ui.Tpo $(DEPDIR)/simple_scan-ui.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ui.c' object='simple_scan-ui.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-ui.obj `if test -f 'ui.c'; then $(CYGPATH_W) 'ui.c'; else $(CYGPATH_W) '$(srcdir)/ui.c'; fi`
+
+simple_scan-autosave-manager.o: autosave-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-autosave-manager.o -MD -MP -MF $(DEPDIR)/simple_scan-autosave-manager.Tpo -c -o simple_scan-autosave-manager.o `test -f 'autosave-manager.c' || echo '$(srcdir)/'`autosave-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-autosave-manager.Tpo $(DEPDIR)/simple_scan-autosave-manager.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='autosave-manager.c' object='simple_scan-autosave-manager.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-autosave-manager.o `test -f 'autosave-manager.c' || echo '$(srcdir)/'`autosave-manager.c
+
+simple_scan-autosave-manager.obj: autosave-manager.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-autosave-manager.obj -MD -MP -MF $(DEPDIR)/simple_scan-autosave-manager.Tpo -c -o simple_scan-autosave-manager.obj `if test -f 'autosave-manager.c'; then $(CYGPATH_W) 'autosave-manager.c'; else $(CYGPATH_W) '$(srcdir)/autosave-manager.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-autosave-manager.Tpo $(DEPDIR)/simple_scan-autosave-manager.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='autosave-manager.c' object='simple_scan-autosave-manager.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-autosave-manager.obj `if test -f 'autosave-manager.c'; then $(CYGPATH_W) 'autosave-manager.c'; else $(CYGPATH_W) '$(srcdir)/autosave-manager.c'; fi`
+
+simple_scan-resources.o: resources.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-resources.o -MD -MP -MF $(DEPDIR)/simple_scan-resources.Tpo -c -o simple_scan-resources.o `test -f 'resources.c' || echo '$(srcdir)/'`resources.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-resources.Tpo $(DEPDIR)/simple_scan-resources.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='resources.c' object='simple_scan-resources.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-resources.o `test -f 'resources.c' || echo '$(srcdir)/'`resources.c
+
+simple_scan-resources.obj: resources.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -MT simple_scan-resources.obj -MD -MP -MF $(DEPDIR)/simple_scan-resources.Tpo -c -o simple_scan-resources.obj `if test -f 'resources.c'; then $(CYGPATH_W) 'resources.c'; else $(CYGPATH_W) '$(srcdir)/resources.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple_scan-resources.Tpo $(DEPDIR)/simple_scan-resources.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='resources.c' object='simple_scan-resources.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_scan_CFLAGS) $(CFLAGS) -c -o simple_scan-resources.obj `if test -f 'resources.c'; then $(CYGPATH_W) 'resources.c'; else $(CYGPATH_W) '$(srcdir)/resources.c'; fi`
+$(srcdir)/book.c: $(srcdir)/simple_scan_vala.stamp
+ @if test -f $@; then :; else rm -f $(srcdir)/simple_scan_vala.stamp; fi
+ @if test -f $@; then :; else \
+ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/simple_scan_vala.stamp; \
+ fi
+$(srcdir)/book-view.c: $(srcdir)/simple_scan_vala.stamp
+ @if test -f $@; then :; else rm -f $(srcdir)/simple_scan_vala.stamp; fi
+ @if test -f $@; then :; else \
+ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/simple_scan_vala.stamp; \
+ fi
+$(srcdir)/page.c: $(srcdir)/simple_scan_vala.stamp
+ @if test -f $@; then :; else rm -f $(srcdir)/simple_scan_vala.stamp; fi
+ @if test -f $@; then :; else \
+ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/simple_scan_vala.stamp; \
+ fi
+$(srcdir)/page-view.c: $(srcdir)/simple_scan_vala.stamp
+ @if test -f $@; then :; else rm -f $(srcdir)/simple_scan_vala.stamp; fi
+ @if test -f $@; then :; else \
+ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/simple_scan_vala.stamp; \
+ fi
+$(srcdir)/simple-scan.c: $(srcdir)/simple_scan_vala.stamp
+ @if test -f $@; then :; else rm -f $(srcdir)/simple_scan_vala.stamp; fi
+ @if test -f $@; then :; else \
+ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/simple_scan_vala.stamp; \
+ fi
+$(srcdir)/scanner.c: $(srcdir)/simple_scan_vala.stamp
+ @if test -f $@; then :; else rm -f $(srcdir)/simple_scan_vala.stamp; fi
+ @if test -f $@; then :; else \
+ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/simple_scan_vala.stamp; \
+ fi
+$(srcdir)/ui.c: $(srcdir)/simple_scan_vala.stamp
+ @if test -f $@; then :; else rm -f $(srcdir)/simple_scan_vala.stamp; fi
+ @if test -f $@; then :; else \
+ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/simple_scan_vala.stamp; \
+ fi
+$(srcdir)/autosave-manager.c: $(srcdir)/simple_scan_vala.stamp
+ @if test -f $@; then :; else rm -f $(srcdir)/simple_scan_vala.stamp; fi
+ @if test -f $@; then :; else \
+ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/simple_scan_vala.stamp; \
+ fi
+$(srcdir)/simple_scan_vala.stamp: config.vapi book.vala book-view.vala colord.vapi page.vala page-view.vala sane.vapi simple-scan.vala scanner.vala ui.vala autosave-manager.vala
+ $(AM_V_at)rm -f $@ && echo stamp > $@-t
+ $(AM_V_VALAC)$(am__cd) $(srcdir) && $(VALAC) $(simple_scan_VALAFLAGS) $(VALAFLAGS) -C config.vapi book.vala book-view.vala colord.vapi page.vala page-view.vala sane.vapi simple-scan.vala scanner.vala ui.vala autosave-manager.vala
+ $(AM_V_at)mv -f $@-t $@
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -rm -f $(srcdir)/autosave-manager.c
+ -rm -f $(srcdir)/book-view.c
+ -rm -f $(srcdir)/book.c
+ -rm -f $(srcdir)/page-view.c
+ -rm -f $(srcdir)/page.c
+ -rm -f $(srcdir)/scanner.c
+ -rm -f $(srcdir)/simple-scan.c
+ -rm -f $(srcdir)/simple_scan_vala.stamp
+ -rm -f $(srcdir)/ui.c
+ -rm -f autosave-manager.c
+ -rm -f book-view.c
+ -rm -f book.c
+ -rm -f page-view.c
+ -rm -f page.c
+ -rm -f scanner.c
+ -rm -f simple-scan.c
+ -rm -f ui.c
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \
+ distclean distclean-compile distclean-generic distclean-tags \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-binPROGRAMS install-data install-data-am \
+ install-dvi install-dvi-am install-exec install-exec-am \
+ install-html install-html-am install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+ ps ps-am tags tags-am uninstall uninstall-am \
+ uninstall-binPROGRAMS
+
+
+resources.c: $(top_srcdir)/data/simple-scan.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies --sourcedir=$(top_srcdir)/data/ $(top_srcdir)/data/simple-scan.gresource.xml)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(top_srcdir)/data/ --generate-source $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/autosave-manager.c b/src/autosave-manager.c
new file mode 100644
index 0000000..de3f9ca
--- /dev/null
+++ b/src/autosave-manager.c
@@ -0,0 +1,2721 @@
+/* autosave-manager.c generated by valac 0.24.0, the Vala compiler
+ * generated from autosave-manager.vala, do not modify */
+
+/*
+ * Copyright (C) 2011 Timo Kluck
+ * Authors: Timo Kluck <tkluck@infty.nl>
+ * Robert Ancell <robert.ancell@canonical.com>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <glib/gstdio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_AUTOSAVE_MANAGER (autosave_manager_get_type ())
+#define AUTOSAVE_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_AUTOSAVE_MANAGER, AutosaveManager))
+#define AUTOSAVE_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_AUTOSAVE_MANAGER, AutosaveManagerClass))
+#define IS_AUTOSAVE_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_AUTOSAVE_MANAGER))
+#define IS_AUTOSAVE_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_AUTOSAVE_MANAGER))
+#define AUTOSAVE_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_AUTOSAVE_MANAGER, AutosaveManagerClass))
+
+typedef struct _AutosaveManager AutosaveManager;
+typedef struct _AutosaveManagerClass AutosaveManagerClass;
+typedef struct _AutosaveManagerPrivate AutosaveManagerPrivate;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define TYPE_BOOK (book_get_type ())
+#define BOOK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BOOK, Book))
+#define BOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BOOK, BookClass))
+#define IS_BOOK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BOOK))
+#define IS_BOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BOOK))
+#define BOOK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BOOK, BookClass))
+
+typedef struct _Book Book;
+typedef struct _BookClass BookClass;
+#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
+#define _book_unref0(var) ((var == NULL) ? NULL : (var = (book_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _g_key_file_unref0(var) ((var == NULL) ? NULL : (var = (g_key_file_unref (var), NULL)))
+
+#define TYPE_SCAN_DIRECTION (scan_direction_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _page_unref0(var) ((var == NULL) ? NULL : (var = (page_unref (var), NULL)))
+#define _g_dir_close0(var) ((var == NULL) ? NULL : (var = (g_dir_close (var), NULL)))
+typedef struct _ParamSpecAutosaveManager ParamSpecAutosaveManager;
+
+struct _AutosaveManager {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ AutosaveManagerPrivate * priv;
+};
+
+struct _AutosaveManagerClass {
+ GTypeClass parent_class;
+ void (*finalize) (AutosaveManager *self);
+};
+
+struct _AutosaveManagerPrivate {
+ guint update_timeout;
+ GHashTable* page_filenames;
+ Book* book_;
+};
+
+typedef enum {
+ SCAN_DIRECTION_TOP_TO_BOTTOM,
+ SCAN_DIRECTION_LEFT_TO_RIGHT,
+ SCAN_DIRECTION_BOTTOM_TO_TOP,
+ SCAN_DIRECTION_RIGHT_TO_LEFT
+} ScanDirection;
+
+struct _ParamSpecAutosaveManager {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer autosave_manager_parent_class = NULL;
+static gchar* autosave_manager_AUTOSAVE_DIR;
+static gchar* autosave_manager_AUTOSAVE_DIR = NULL;
+static gchar* autosave_manager_AUTOSAVE_FILENAME;
+static gchar* autosave_manager_AUTOSAVE_FILENAME = NULL;
+static gchar* autosave_manager_AUTOSAVE_PATH;
+static gchar* autosave_manager_AUTOSAVE_PATH = NULL;
+
+gpointer autosave_manager_ref (gpointer instance);
+void autosave_manager_unref (gpointer instance);
+GParamSpec* param_spec_autosave_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_autosave_manager (GValue* value, gpointer v_object);
+void value_take_autosave_manager (GValue* value, gpointer v_object);
+gpointer value_get_autosave_manager (const GValue* value);
+GType autosave_manager_get_type (void) G_GNUC_CONST;
+gpointer page_ref (gpointer instance);
+void page_unref (gpointer instance);
+GParamSpec* param_spec_page (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_page (GValue* value, gpointer v_object);
+void value_take_page (GValue* value, gpointer v_object);
+gpointer value_get_page (const GValue* value);
+GType page_get_type (void) G_GNUC_CONST;
+gpointer book_ref (gpointer instance);
+void book_unref (gpointer instance);
+GParamSpec* param_spec_book (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_book (GValue* value, gpointer v_object);
+void value_take_book (GValue* value, gpointer v_object);
+gpointer value_get_book (const GValue* value);
+GType book_get_type (void) G_GNUC_CONST;
+#define AUTOSAVE_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_AUTOSAVE_MANAGER, AutosaveManagerPrivate))
+enum {
+ AUTOSAVE_MANAGER_DUMMY_PROPERTY
+};
+AutosaveManager* autosave_manager_new (void);
+AutosaveManager* autosave_manager_construct (GType object_type);
+static void _page_unref0_ (gpointer var);
+static void _g_free0_ (gpointer var);
+void autosave_manager_load (AutosaveManager* self);
+Book* autosave_manager_get_book (AutosaveManager* self);
+void book_clear (Book* self);
+static gchar* autosave_manager_get_value (AutosaveManager* self, GKeyFile* file, const gchar* group_name, const gchar* key, const gchar* _default_);
+static gint autosave_manager_get_integer (AutosaveManager* self, GKeyFile* file, const gchar* group_name, const gchar* key, gint _default_);
+GType scan_direction_get_type (void) G_GNUC_CONST;
+static gboolean autosave_manager_get_boolean (AutosaveManager* self, GKeyFile* file, const gchar* group_name, const gchar* key, gboolean _default_);
+Page* page_new_from_data (gint scan_width, gint scan_height, gint rowstride, gint n_channels, gint depth, gint dpi, ScanDirection scan_direction, const gchar* color_profile, guchar* pixels, int pixels_length1, gboolean has_crop, const gchar* crop_name, gint crop_x, gint crop_y, gint crop_width, gint crop_height);
+Page* page_construct_from_data (GType object_type, gint scan_width, gint scan_height, gint rowstride, gint n_channels, gint depth, gint dpi, ScanDirection scan_direction, const gchar* color_profile, guchar* pixels, int pixels_length1, gboolean has_crop, const gchar* crop_name, gint crop_x, gint crop_y, gint crop_width, gint crop_height);
+void book_append_page (Book* self, Page* page);
+void autosave_manager_cleanup (AutosaveManager* self);
+void autosave_manager_on_page_added (AutosaveManager* self, Page* page);
+void autosave_manager_on_scan_finished (AutosaveManager* self, Page* page);
+static void _autosave_manager_on_scan_finished_page_scan_finished (Page* _sender, gpointer self);
+void autosave_manager_on_changed (AutosaveManager* self);
+static void _autosave_manager_on_changed_page_crop_changed (Page* _sender, gpointer self);
+void autosave_manager_on_page_removed (AutosaveManager* self, Page* page);
+static void autosave_manager_save_pixels (AutosaveManager* self, Page* page);
+static void autosave_manager_save (AutosaveManager* self, gboolean do_timeout);
+void autosave_manager_on_cleared (AutosaveManager* self);
+static gboolean ___lambda3_ (AutosaveManager* self);
+static void autosave_manager_real_save (AutosaveManager* self);
+static gboolean ____lambda3__gsource_func (gpointer self);
+guint book_get_n_pages (Book* self);
+Page* book_get_page (Book* self, gint page_number);
+gboolean page_get_has_data (Page* self);
+gint page_get_scan_width (Page* self);
+gint page_get_scan_height (Page* self);
+gint page_get_rowstride (Page* self);
+gint page_get_n_channels (Page* self);
+gint page_get_depth (Page* self);
+gint page_get_dpi (Page* self);
+ScanDirection page_get_scan_direction (Page* self);
+const gchar* page_get_color_profile (Page* self);
+gboolean page_get_has_crop (Page* self);
+const gchar* page_get_crop_name (Page* self);
+gint page_get_crop_x (Page* self);
+gint page_get_crop_y (Page* self);
+gint page_get_crop_width (Page* self);
+gint page_get_crop_height (Page* self);
+guchar* page_get_pixels (Page* self, int* result_length1);
+void autosave_manager_set_book (AutosaveManager* self, Book* value);
+static void _autosave_manager_on_page_added_book_page_added (Book* _sender, Page* page, gpointer self);
+static void _autosave_manager_on_page_removed_book_page_removed (Book* _sender, Page* page, gpointer self);
+static void _autosave_manager_on_changed_book_reordered (Book* _sender, gpointer self);
+static void _autosave_manager_on_cleared_book_cleared (Book* _sender, gpointer self);
+static void autosave_manager_finalize (AutosaveManager* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+static void _page_unref0_ (gpointer var) {
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ (var == NULL) ? NULL : (var = (page_unref (var), NULL));
+#line 189 "autosave-manager.c"
+}
+
+
+static void _g_free0_ (gpointer var) {
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ var = (g_free (var), NULL);
+#line 196 "autosave-manager.c"
+}
+
+
+AutosaveManager* autosave_manager_construct (GType object_type) {
+ AutosaveManager* self = NULL;
+ GHashFunc _tmp0_ = NULL;
+ GEqualFunc _tmp1_ = NULL;
+ GHashTable* _tmp2_ = NULL;
+#line 57 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ self = (AutosaveManager*) g_type_create_instance (object_type);
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = g_direct_hash;
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp1_ = g_direct_equal;
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp2_ = g_hash_table_new_full (_tmp0_, _tmp1_, _page_unref0_, _g_free0_);
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_hash_table_unref0 (self->priv->page_filenames);
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ self->priv->page_filenames = _tmp2_;
+#line 57 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return self;
+#line 219 "autosave-manager.c"
+}
+
+
+AutosaveManager* autosave_manager_new (void) {
+#line 57 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return autosave_manager_construct (TYPE_AUTOSAVE_MANAGER);
+#line 226 "autosave-manager.c"
+}
+
+
+static gpointer _page_ref0 (gpointer self) {
+#line 152 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return self ? page_ref (self) : NULL;
+#line 233 "autosave-manager.c"
+}
+
+
+void autosave_manager_load (AutosaveManager* self) {
+ Book* _tmp0_ = NULL;
+ Book* _tmp1_ = NULL;
+ GHashTable* _tmp2_ = NULL;
+ GKeyFile* file = NULL;
+ GKeyFile* _tmp3_ = NULL;
+ gchar* pages = NULL;
+ GKeyFile* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gchar** _tmp12_ = NULL;
+ gchar** _tmp13_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 62 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (self != NULL);
+#line 64 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_debug ("autosave-manager.vala:64: Loading autosave information");
+#line 66 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = autosave_manager_get_book (self);
+#line 66 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp1_ = _tmp0_;
+#line 66 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ book_clear (_tmp1_);
+#line 67 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp2_ = self->priv->page_filenames;
+#line 67 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_hash_table_remove_all (_tmp2_);
+#line 69 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp3_ = g_key_file_new ();
+#line 69 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ file = _tmp3_;
+#line 268 "autosave-manager.c"
+ {
+ GKeyFile* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 72 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp4_ = file;
+#line 72 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp5_ = autosave_manager_AUTOSAVE_PATH;
+#line 72 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_load_from_file (_tmp4_, _tmp5_, G_KEY_FILE_NONE, &_inner_error_);
+#line 72 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_inner_error_ != NULL) {
+#line 280 "autosave-manager.c"
+ goto __catch27_g_error;
+ }
+ }
+ goto __finally27;
+ __catch27_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp6_ = NULL;
+#line 70 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ e = _inner_error_;
+#line 70 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _inner_error_ = NULL;
+#line 76 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp6_ = e;
+#line 76 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (!g_error_matches (_tmp6_, G_FILE_ERROR, G_FILE_ERROR_NOENT)) {
+#line 297 "autosave-manager.c"
+ GError* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp7_ = e;
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp8_ = _tmp7_->message;
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_warning ("autosave-manager.vala:77: Could not load autosave infomation; not rest" \
+"oring any autosaves: %s", _tmp8_);
+#line 306 "autosave-manager.c"
+ }
+#line 78 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_error_free0 (e);
+#line 78 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_key_file_unref0 (file);
+#line 78 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return;
+#line 314 "autosave-manager.c"
+ }
+ __finally27:
+#line 70 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_inner_error_ != NULL) {
+#line 70 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_key_file_unref0 (file);
+#line 70 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 70 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_clear_error (&_inner_error_);
+#line 70 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return;
+#line 327 "autosave-manager.c"
+ }
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp9_ = file;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp10_ = autosave_manager_get_value (self, _tmp9_, "simple-scan", "pages", "");
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ pages = _tmp10_;
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp11_ = pages;
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp13_ = _tmp12_ = g_strsplit (_tmp11_, " ", 0);
+#line 339 "autosave-manager.c"
+ {
+ gchar** page_name_collection = NULL;
+ gint page_name_collection_length1 = 0;
+ gint _page_name_collection_size_ = 0;
+ gint page_name_it = 0;
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ page_name_collection = _tmp13_;
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ page_name_collection_length1 = _vala_array_length (_tmp12_);
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ for (page_name_it = 0; page_name_it < _vala_array_length (_tmp12_); page_name_it = page_name_it + 1) {
+#line 351 "autosave-manager.c"
+ gchar* _tmp14_ = NULL;
+ gchar* page_name = NULL;
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp14_ = g_strdup (page_name_collection[page_name_it]);
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ page_name = _tmp14_;
+#line 358 "autosave-manager.c"
+ {
+ const gchar* _tmp15_ = NULL;
+ gint scan_width = 0;
+ GKeyFile* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint scan_height = 0;
+ GKeyFile* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gint rowstride = 0;
+ GKeyFile* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint n_channels = 0;
+ GKeyFile* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gint depth = 0;
+ GKeyFile* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ gint dpi = 0;
+ GKeyFile* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gchar* scan_direction_name = NULL;
+ GKeyFile* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ ScanDirection scan_direction = 0;
+ const gchar* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+ GQuark _tmp40_ = 0U;
+#line 93 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ static GQuark _tmp39_label0 = 0;
+#line 93 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ static GQuark _tmp39_label1 = 0;
+#line 93 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ static GQuark _tmp39_label2 = 0;
+#line 93 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ static GQuark _tmp39_label3 = 0;
+#line 401 "autosave-manager.c"
+ gchar* color_profile = NULL;
+ GKeyFile* _tmp41_ = NULL;
+ const gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ gchar* pixels_filename = NULL;
+ GKeyFile* _tmp45_ = NULL;
+ const gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ gboolean has_crop = FALSE;
+ GKeyFile* _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+ gboolean _tmp50_ = FALSE;
+ gchar* crop_name = NULL;
+ GKeyFile* _tmp51_ = NULL;
+ const gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ const gchar* _tmp54_ = NULL;
+ gint crop_x = 0;
+ GKeyFile* _tmp55_ = NULL;
+ const gchar* _tmp56_ = NULL;
+ gint _tmp57_ = 0;
+ gint crop_y = 0;
+ GKeyFile* _tmp58_ = NULL;
+ const gchar* _tmp59_ = NULL;
+ gint _tmp60_ = 0;
+ gint crop_width = 0;
+ GKeyFile* _tmp61_ = NULL;
+ const gchar* _tmp62_ = NULL;
+ gint _tmp63_ = 0;
+ gint crop_height = 0;
+ GKeyFile* _tmp64_ = NULL;
+ const gchar* _tmp65_ = NULL;
+ gint _tmp66_ = 0;
+ guchar* pixels = NULL;
+ gint pixels_length1 = 0;
+ gint _pixels_size_ = 0;
+ const gchar* _tmp67_ = NULL;
+ Page* page = NULL;
+ gint _tmp76_ = 0;
+ gint _tmp77_ = 0;
+ gint _tmp78_ = 0;
+ gint _tmp79_ = 0;
+ gint _tmp80_ = 0;
+ gint _tmp81_ = 0;
+ ScanDirection _tmp82_ = 0;
+ const gchar* _tmp83_ = NULL;
+ guchar* _tmp84_ = NULL;
+ gint _tmp84__length1 = 0;
+ gboolean _tmp85_ = FALSE;
+ const gchar* _tmp86_ = NULL;
+ gint _tmp87_ = 0;
+ gint _tmp88_ = 0;
+ gint _tmp89_ = 0;
+ gint _tmp90_ = 0;
+ Page* _tmp91_ = NULL;
+ GHashTable* _tmp92_ = NULL;
+ Page* _tmp93_ = NULL;
+ Page* _tmp94_ = NULL;
+ const gchar* _tmp95_ = NULL;
+ gchar* _tmp96_ = NULL;
+ Book* _tmp97_ = NULL;
+ Book* _tmp98_ = NULL;
+ Page* _tmp99_ = NULL;
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp15_ = page_name;
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_debug ("autosave-manager.vala:83: Loading automatically saved page %s", _tmp15_);
+#line 85 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp16_ = file;
+#line 85 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp17_ = page_name;
+#line 85 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp18_ = autosave_manager_get_integer (self, _tmp16_, _tmp17_, "scan-width", 0);
+#line 85 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ scan_width = _tmp18_;
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp19_ = file;
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp20_ = page_name;
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp21_ = autosave_manager_get_integer (self, _tmp19_, _tmp20_, "scan-height", 0);
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ scan_height = _tmp21_;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp22_ = file;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp23_ = page_name;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp24_ = autosave_manager_get_integer (self, _tmp22_, _tmp23_, "rowstride", 0);
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ rowstride = _tmp24_;
+#line 88 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp25_ = file;
+#line 88 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp26_ = page_name;
+#line 88 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp27_ = autosave_manager_get_integer (self, _tmp25_, _tmp26_, "n-channels", 0);
+#line 88 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ n_channels = _tmp27_;
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp28_ = file;
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp29_ = page_name;
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp30_ = autosave_manager_get_integer (self, _tmp28_, _tmp29_, "depth", 0);
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ depth = _tmp30_;
+#line 90 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp31_ = file;
+#line 90 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp32_ = page_name;
+#line 90 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp33_ = autosave_manager_get_integer (self, _tmp31_, _tmp32_, "dpi", 0);
+#line 90 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ dpi = _tmp33_;
+#line 91 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp34_ = file;
+#line 91 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp35_ = page_name;
+#line 91 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp36_ = autosave_manager_get_value (self, _tmp34_, _tmp35_, "scan-direction", "");
+#line 91 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ scan_direction_name = _tmp36_;
+#line 92 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ scan_direction = SCAN_DIRECTION_TOP_TO_BOTTOM;
+#line 93 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp37_ = scan_direction_name;
+#line 93 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp38_ = _tmp37_;
+#line 93 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp40_ = (NULL == _tmp38_) ? 0 : g_quark_from_string (_tmp38_);
+#line 93 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_tmp40_ == ((0 != _tmp39_label0) ? _tmp39_label0 : (_tmp39_label0 = g_quark_from_static_string ("TOP_TO_BOTTOM")))) {
+#line 93 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ switch (0) {
+#line 538 "autosave-manager.c"
+ default:
+ {
+#line 96 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ scan_direction = SCAN_DIRECTION_TOP_TO_BOTTOM;
+#line 97 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ break;
+#line 545 "autosave-manager.c"
+ }
+ }
+ } else if (_tmp40_ == ((0 != _tmp39_label1) ? _tmp39_label1 : (_tmp39_label1 = g_quark_from_static_string ("LEFT_TO_RIGHT")))) {
+#line 93 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ switch (0) {
+#line 551 "autosave-manager.c"
+ default:
+ {
+#line 99 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ scan_direction = SCAN_DIRECTION_LEFT_TO_RIGHT;
+#line 100 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ break;
+#line 558 "autosave-manager.c"
+ }
+ }
+ } else if (_tmp40_ == ((0 != _tmp39_label2) ? _tmp39_label2 : (_tmp39_label2 = g_quark_from_static_string ("BOTTOM_TO_TOP")))) {
+#line 93 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ switch (0) {
+#line 564 "autosave-manager.c"
+ default:
+ {
+#line 102 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ scan_direction = SCAN_DIRECTION_BOTTOM_TO_TOP;
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ break;
+#line 571 "autosave-manager.c"
+ }
+ }
+ } else if (_tmp40_ == ((0 != _tmp39_label3) ? _tmp39_label3 : (_tmp39_label3 = g_quark_from_static_string ("RIGHT_TO_LEFT")))) {
+#line 93 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ switch (0) {
+#line 577 "autosave-manager.c"
+ default:
+ {
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ scan_direction = SCAN_DIRECTION_RIGHT_TO_LEFT;
+#line 106 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ break;
+#line 584 "autosave-manager.c"
+ }
+ }
+ }
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp41_ = file;
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp42_ = page_name;
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp43_ = autosave_manager_get_value (self, _tmp41_, _tmp42_, "color-profile", "");
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ color_profile = _tmp43_;
+#line 109 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp44_ = color_profile;
+#line 109 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (g_strcmp0 (_tmp44_, "") == 0) {
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (color_profile);
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ color_profile = NULL;
+#line 604 "autosave-manager.c"
+ }
+#line 111 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp45_ = file;
+#line 111 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp46_ = page_name;
+#line 111 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp47_ = autosave_manager_get_value (self, _tmp45_, _tmp46_, "pixels-filename", "");
+#line 111 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ pixels_filename = _tmp47_;
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp48_ = file;
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp49_ = page_name;
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp50_ = autosave_manager_get_boolean (self, _tmp48_, _tmp49_, "has-crop", FALSE);
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ has_crop = _tmp50_;
+#line 113 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp51_ = file;
+#line 113 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp52_ = page_name;
+#line 113 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp53_ = autosave_manager_get_value (self, _tmp51_, _tmp52_, "crop-name", "");
+#line 113 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ crop_name = _tmp53_;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp54_ = crop_name;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (g_strcmp0 (_tmp54_, "") == 0) {
+#line 115 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (crop_name);
+#line 115 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ crop_name = NULL;
+#line 638 "autosave-manager.c"
+ }
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp55_ = file;
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp56_ = page_name;
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp57_ = autosave_manager_get_integer (self, _tmp55_, _tmp56_, "crop-x", 0);
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ crop_x = _tmp57_;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp58_ = file;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp59_ = page_name;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp60_ = autosave_manager_get_integer (self, _tmp58_, _tmp59_, "crop-y", 0);
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ crop_y = _tmp60_;
+#line 118 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp61_ = file;
+#line 118 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp62_ = page_name;
+#line 118 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp63_ = autosave_manager_get_integer (self, _tmp61_, _tmp62_, "crop-width", 0);
+#line 118 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ crop_width = _tmp63_;
+#line 119 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp64_ = file;
+#line 119 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp65_ = page_name;
+#line 119 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp66_ = autosave_manager_get_integer (self, _tmp64_, _tmp65_, "crop-height", 0);
+#line 119 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ crop_height = _tmp66_;
+#line 121 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ pixels = NULL;
+#line 121 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ pixels_length1 = 0;
+#line 121 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _pixels_size_ = pixels_length1;
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp67_ = pixels_filename;
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (g_strcmp0 (_tmp67_, "") != 0) {
+#line 682 "autosave-manager.c"
+ gchar* path = NULL;
+ const gchar* _tmp68_ = NULL;
+ const gchar* _tmp69_ = NULL;
+ gchar* _tmp70_ = NULL;
+ GFile* f = NULL;
+ const gchar* _tmp71_ = NULL;
+ GFile* _tmp72_ = NULL;
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp68_ = autosave_manager_AUTOSAVE_DIR;
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp69_ = pixels_filename;
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp70_ = g_build_filename (_tmp68_, _tmp69_, NULL);
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ path = _tmp70_;
+#line 125 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp71_ = path;
+#line 125 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp72_ = g_file_new_for_path (_tmp71_);
+#line 125 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ f = _tmp72_;
+#line 704 "autosave-manager.c"
+ {
+ GFile* _tmp73_ = NULL;
+ guint8* _tmp74_ = NULL;
+ gsize _tmp75_;
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp73_ = f;
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_file_load_contents (_tmp73_, NULL, &_tmp74_, &_tmp75_, NULL, &_inner_error_);
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ pixels = (g_free (pixels), NULL);
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ pixels = _tmp74_;
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ pixels_length1 = _tmp75_;
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _pixels_size_ = pixels_length1;
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_inner_error_ != NULL) {
+#line 723 "autosave-manager.c"
+ goto __catch28_g_error;
+ }
+ }
+ goto __finally28;
+ __catch28_g_error:
+ {
+ GError* e = NULL;
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ e = _inner_error_;
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _inner_error_ = NULL;
+#line 132 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_warning ("autosave-manager.vala:132: Failed to load pixel information");
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_error_free0 (e);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_object_unref0 (f);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (path);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ pixels = (g_free (pixels), NULL);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (crop_name);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (pixels_filename);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (color_profile);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (scan_direction_name);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (page_name);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ continue;
+#line 757 "autosave-manager.c"
+ }
+ __finally28:
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_inner_error_ != NULL) {
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_object_unref0 (f);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (path);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ pixels = (g_free (pixels), NULL);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (crop_name);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (pixels_filename);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (color_profile);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (scan_direction_name);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (page_name);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ page_name_collection = (_vala_array_free (page_name_collection, page_name_collection_length1, (GDestroyNotify) g_free), NULL);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (pages);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_key_file_unref0 (file);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_clear_error (&_inner_error_);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return;
+#line 790 "autosave-manager.c"
+ }
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_object_unref0 (f);
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (path);
+#line 796 "autosave-manager.c"
+ }
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp76_ = scan_width;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp77_ = scan_height;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp78_ = rowstride;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp79_ = n_channels;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp80_ = depth;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp81_ = dpi;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp82_ = scan_direction;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp83_ = color_profile;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp84_ = pixels;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp84__length1 = pixels_length1;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp85_ = has_crop;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp86_ = crop_name;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp87_ = crop_x;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp88_ = crop_y;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp89_ = crop_width;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp90_ = crop_height;
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp91_ = page_new_from_data (_tmp76_, _tmp77_, _tmp78_, _tmp79_, _tmp80_, _tmp81_, _tmp82_, _tmp83_, _tmp84_, _tmp84__length1, _tmp85_, _tmp86_, _tmp87_, _tmp88_, _tmp89_, _tmp90_);
+#line 137 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ page = _tmp91_;
+#line 152 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp92_ = self->priv->page_filenames;
+#line 152 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp93_ = page;
+#line 152 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp94_ = _page_ref0 (_tmp93_);
+#line 152 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp95_ = pixels_filename;
+#line 152 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp96_ = g_strdup (_tmp95_);
+#line 152 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_hash_table_insert (_tmp92_, _tmp94_, _tmp96_);
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp97_ = autosave_manager_get_book (self);
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp98_ = _tmp97_;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp99_ = page;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ book_append_page (_tmp98_, _tmp99_);
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _page_unref0 (page);
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ pixels = (g_free (pixels), NULL);
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (crop_name);
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (pixels_filename);
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (color_profile);
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (scan_direction_name);
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (page_name);
+#line 868 "autosave-manager.c"
+ }
+ }
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ page_name_collection = (_vala_array_free (page_name_collection, page_name_collection_length1, (GDestroyNotify) g_free), NULL);
+#line 873 "autosave-manager.c"
+ }
+#line 62 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (pages);
+#line 62 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_key_file_unref0 (file);
+#line 879 "autosave-manager.c"
+}
+
+
+static gchar* autosave_manager_get_value (AutosaveManager* self, GKeyFile* file, const gchar* group_name, const gchar* key, const gchar* _default_) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (file != NULL, NULL);
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (group_name != NULL, NULL);
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (key != NULL, NULL);
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (_default_ != NULL, NULL);
+#line 896 "autosave-manager.c"
+ {
+ gchar* _tmp0_ = NULL;
+ GKeyFile* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp1_ = file;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp2_ = group_name;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp3_ = key;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp4_ = g_key_file_get_value (_tmp1_, _tmp2_, _tmp3_, &_inner_error_);
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = _tmp4_;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_inner_error_ != NULL) {
+#line 916 "autosave-manager.c"
+ goto __catch29_g_error;
+ }
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp5_ = _tmp0_;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = NULL;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ result = _tmp5_;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (_tmp0_);
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return result;
+#line 929 "autosave-manager.c"
+ }
+ goto __finally29;
+ __catch29_g_error:
+ {
+ GError* e = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ e = _inner_error_;
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _inner_error_ = NULL;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp6_ = _default_;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ result = _tmp7_;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_error_free0 (e);
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return result;
+#line 951 "autosave-manager.c"
+ }
+ __finally29:
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_clear_error (&_inner_error_);
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return NULL;
+#line 960 "autosave-manager.c"
+}
+
+
+static gint autosave_manager_get_integer (AutosaveManager* self, GKeyFile* file, const gchar* group_name, const gchar* key, gint _default_) {
+ gint result = 0;
+ GError * _inner_error_ = NULL;
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (file != NULL, 0);
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (group_name != NULL, 0);
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (key != NULL, 0);
+#line 975 "autosave-manager.c"
+ {
+ gint _tmp0_ = 0;
+ GKeyFile* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp1_ = file;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp2_ = group_name;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp3_ = key;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp4_ = g_key_file_get_integer (_tmp1_, _tmp2_, _tmp3_, &_inner_error_);
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = _tmp4_;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_inner_error_ != NULL) {
+#line 994 "autosave-manager.c"
+ goto __catch30_g_error;
+ }
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ result = _tmp0_;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return result;
+#line 1001 "autosave-manager.c"
+ }
+ goto __finally30;
+ __catch30_g_error:
+ {
+ GError* e = NULL;
+ gint _tmp5_ = 0;
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ e = _inner_error_;
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _inner_error_ = NULL;
+#line 177 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp5_ = _default_;
+#line 177 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ result = _tmp5_;
+#line 177 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_error_free0 (e);
+#line 177 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return result;
+#line 1020 "autosave-manager.c"
+ }
+ __finally30:
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_clear_error (&_inner_error_);
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return 0;
+#line 1029 "autosave-manager.c"
+}
+
+
+static gboolean autosave_manager_get_boolean (AutosaveManager* self, GKeyFile* file, const gchar* group_name, const gchar* key, gboolean _default_) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 181 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 181 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (file != NULL, FALSE);
+#line 181 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (group_name != NULL, FALSE);
+#line 181 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (key != NULL, FALSE);
+#line 1044 "autosave-manager.c"
+ {
+ gboolean _tmp0_ = FALSE;
+ GKeyFile* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp1_ = file;
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp2_ = group_name;
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp3_ = key;
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp4_ = g_key_file_get_boolean (_tmp1_, _tmp2_, _tmp3_, &_inner_error_);
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = _tmp4_;
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_inner_error_ != NULL) {
+#line 1063 "autosave-manager.c"
+ goto __catch31_g_error;
+ }
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ result = _tmp0_;
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return result;
+#line 1070 "autosave-manager.c"
+ }
+ goto __finally31;
+ __catch31_g_error:
+ {
+ GError* e = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 183 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ e = _inner_error_;
+#line 183 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _inner_error_ = NULL;
+#line 189 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp5_ = _default_;
+#line 189 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ result = _tmp5_;
+#line 189 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_error_free0 (e);
+#line 189 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return result;
+#line 1089 "autosave-manager.c"
+ }
+ __finally31:
+#line 183 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 183 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_clear_error (&_inner_error_);
+#line 183 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return FALSE;
+#line 1098 "autosave-manager.c"
+}
+
+
+void autosave_manager_cleanup (AutosaveManager* self) {
+ guint _tmp0_ = 0U;
+ GDir* dir = NULL;
+ GError * _inner_error_ = NULL;
+#line 193 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (self != NULL);
+#line 195 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_debug ("autosave-manager.vala:195: Deleting autosave records");
+#line 197 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = self->priv->update_timeout;
+#line 197 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_tmp0_ > ((guint) 0)) {
+#line 1114 "autosave-manager.c"
+ guint _tmp1_ = 0U;
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp1_ = self->priv->update_timeout;
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_source_remove (_tmp1_);
+#line 1120 "autosave-manager.c"
+ }
+#line 199 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ self->priv->update_timeout = (guint) 0;
+#line 1124 "autosave-manager.c"
+ {
+ GDir* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GDir* _tmp4_ = NULL;
+ GDir* _tmp5_ = NULL;
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp3_ = autosave_manager_AUTOSAVE_DIR;
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp4_ = g_dir_open (_tmp3_, (guint) 0, &_inner_error_);
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp2_ = _tmp4_;
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_inner_error_ != NULL) {
+#line 1138 "autosave-manager.c"
+ goto __catch32_g_error;
+ }
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp5_ = _tmp2_;
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp2_ = NULL;
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_dir_close0 (dir);
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ dir = _tmp5_;
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_dir_close0 (_tmp2_);
+#line 1151 "autosave-manager.c"
+ }
+ goto __finally32;
+ __catch32_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ e = _inner_error_;
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _inner_error_ = NULL;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp6_ = e;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp7_ = _tmp6_->message;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_warning ("autosave-manager.vala:208: Failed to delete autosaves: %s", _tmp7_);
+#line 209 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_error_free0 (e);
+#line 209 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_dir_close0 (dir);
+#line 209 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return;
+#line 1175 "autosave-manager.c"
+ }
+ __finally32:
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_inner_error_ != NULL) {
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_dir_close0 (dir);
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_clear_error (&_inner_error_);
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return;
+#line 1188 "autosave-manager.c"
+ }
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ while (TRUE) {
+#line 1192 "autosave-manager.c"
+ gchar* filename = NULL;
+ GDir* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gchar* path = NULL;
+ const gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+#line 214 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp8_ = dir;
+#line 214 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp9_ = g_dir_read_name (_tmp8_);
+#line 214 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp10_ = g_strdup (_tmp9_);
+#line 214 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ filename = _tmp10_;
+#line 215 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp11_ = filename;
+#line 215 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_tmp11_ == NULL) {
+#line 216 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (filename);
+#line 216 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ break;
+#line 1219 "autosave-manager.c"
+ }
+#line 217 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp12_ = autosave_manager_AUTOSAVE_DIR;
+#line 217 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp13_ = filename;
+#line 217 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp14_ = g_build_filename (_tmp12_, _tmp13_, NULL);
+#line 217 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ path = _tmp14_;
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp15_ = path;
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_unlink (_tmp15_);
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (path);
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (filename);
+#line 1237 "autosave-manager.c"
+ }
+#line 193 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_dir_close0 (dir);
+#line 1241 "autosave-manager.c"
+}
+
+
+static void _autosave_manager_on_scan_finished_page_scan_finished (Page* _sender, gpointer self) {
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_on_scan_finished ((AutosaveManager*) self, _sender);
+#line 1248 "autosave-manager.c"
+}
+
+
+static void _autosave_manager_on_changed_page_crop_changed (Page* _sender, gpointer self) {
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_on_changed ((AutosaveManager*) self);
+#line 1255 "autosave-manager.c"
+}
+
+
+void autosave_manager_on_page_added (AutosaveManager* self, Page* page) {
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+#line 222 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (self != NULL);
+#line 222 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (page != NULL);
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = page;
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_connect (_tmp0_, "scan-finished", (GCallback) _autosave_manager_on_scan_finished_page_scan_finished, self);
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp1_ = page;
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_connect (_tmp1_, "crop-changed", (GCallback) _autosave_manager_on_changed_page_crop_changed, self);
+#line 1274 "autosave-manager.c"
+}
+
+
+void autosave_manager_on_page_removed (AutosaveManager* self, Page* page) {
+ Page* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ Page* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ gchar* filename = NULL;
+ GHashTable* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+ gconstpointer _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GHashTable* _tmp10_ = NULL;
+ Page* _tmp11_ = NULL;
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (self != NULL);
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (page != NULL);
+#line 230 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = page;
+#line 230 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_parse_name ("scan-finished", TYPE_PAGE, &_tmp1_, NULL, FALSE);
+#line 230 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _autosave_manager_on_scan_finished_page_scan_finished, self);
+#line 231 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp2_ = page;
+#line 231 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_parse_name ("crop-changed", TYPE_PAGE, &_tmp3_, NULL, FALSE);
+#line 231 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _autosave_manager_on_changed_page_crop_changed, self);
+#line 233 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp4_ = self->priv->page_filenames;
+#line 233 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp5_ = page;
+#line 233 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp6_ = g_hash_table_lookup (_tmp4_, _tmp5_);
+#line 233 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp7_ = g_strdup ((const gchar*) _tmp6_);
+#line 233 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ filename = _tmp7_;
+#line 234 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp8_ = filename;
+#line 234 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_tmp8_ != NULL) {
+#line 1321 "autosave-manager.c"
+ const gchar* _tmp9_ = NULL;
+#line 235 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp9_ = filename;
+#line 235 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_unlink (_tmp9_);
+#line 1327 "autosave-manager.c"
+ }
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp10_ = self->priv->page_filenames;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp11_ = page;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_hash_table_remove (_tmp10_, _tmp11_);
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (filename);
+#line 1337 "autosave-manager.c"
+}
+
+
+void autosave_manager_on_scan_finished (AutosaveManager* self, Page* page) {
+ Page* _tmp0_ = NULL;
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (self != NULL);
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (page != NULL);
+#line 241 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = page;
+#line 241 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_save_pixels (self, _tmp0_);
+#line 242 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_save (self, FALSE);
+#line 1353 "autosave-manager.c"
+}
+
+
+void autosave_manager_on_changed (AutosaveManager* self) {
+#line 245 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (self != NULL);
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_save (self, TRUE);
+#line 1362 "autosave-manager.c"
+}
+
+
+void autosave_manager_on_cleared (AutosaveManager* self) {
+ GHashTable* _tmp0_ = NULL;
+#line 250 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (self != NULL);
+#line 252 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = self->priv->page_filenames;
+#line 252 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_hash_table_remove_all (_tmp0_);
+#line 253 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_save (self, TRUE);
+#line 1376 "autosave-manager.c"
+}
+
+
+static gboolean ___lambda3_ (AutosaveManager* self) {
+ gboolean result = FALSE;
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_real_save (self);
+#line 271 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ self->priv->update_timeout = (guint) 0;
+#line 272 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ result = FALSE;
+#line 272 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return result;
+#line 1390 "autosave-manager.c"
+}
+
+
+static gboolean ____lambda3__gsource_func (gpointer self) {
+ gboolean result;
+ result = ___lambda3_ ((AutosaveManager*) self);
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return result;
+#line 1399 "autosave-manager.c"
+}
+
+
+static void autosave_manager_save (AutosaveManager* self, gboolean do_timeout) {
+ gboolean _tmp0_ = FALSE;
+ guint _tmp1_ = 0U;
+ guint _tmp3_ = 0U;
+ gboolean _tmp5_ = FALSE;
+#line 256 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (self != NULL);
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp1_ = self->priv->update_timeout;
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_tmp1_ == ((guint) 0)) {
+#line 1414 "autosave-manager.c"
+ gboolean _tmp2_ = FALSE;
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp2_ = do_timeout;
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = _tmp2_;
+#line 1420 "autosave-manager.c"
+ } else {
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = FALSE;
+#line 1424 "autosave-manager.c"
+ }
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_tmp0_) {
+#line 259 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_debug ("autosave-manager.vala:259: Waiting to autosave...");
+#line 1430 "autosave-manager.c"
+ }
+#line 262 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp3_ = self->priv->update_timeout;
+#line 262 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_tmp3_ > ((guint) 0)) {
+#line 1436 "autosave-manager.c"
+ guint _tmp4_ = 0U;
+#line 263 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp4_ = self->priv->update_timeout;
+#line 263 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_source_remove (_tmp4_);
+#line 1442 "autosave-manager.c"
+ }
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ self->priv->update_timeout = (guint) 0;
+#line 266 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp5_ = do_timeout;
+#line 266 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_tmp5_) {
+#line 1450 "autosave-manager.c"
+ guint _tmp6_ = 0U;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp6_ = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 100, ____lambda3__gsource_func, autosave_manager_ref (self), autosave_manager_unref);
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ self->priv->update_timeout = _tmp6_;
+#line 1456 "autosave-manager.c"
+ } else {
+#line 276 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_real_save (self);
+#line 1460 "autosave-manager.c"
+ }
+}
+
+
+static void autosave_manager_real_save (AutosaveManager* self) {
+ GKeyFile* file = NULL;
+ GKeyFile* _tmp0_ = NULL;
+ gchar* page_names = NULL;
+ gchar* _tmp1_ = NULL;
+ GKeyFile* _tmp109_ = NULL;
+ const gchar* _tmp110_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (self != NULL);
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_debug ("autosave-manager.vala:281: Autosaving book information");
+#line 283 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = g_key_file_new ();
+#line 283 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ file = _tmp0_;
+#line 284 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp1_ = g_strdup ("");
+#line 284 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ page_names = _tmp1_;
+#line 1485 "autosave-manager.c"
+ {
+ gint i = 0;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ i = 0;
+#line 1490 "autosave-manager.c"
+ {
+ gboolean _tmp2_ = FALSE;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp2_ = TRUE;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ while (TRUE) {
+#line 1497 "autosave-manager.c"
+ gint _tmp4_ = 0;
+ Book* _tmp5_ = NULL;
+ Book* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+ guint _tmp8_ = 0U;
+ Page* page = NULL;
+ Book* _tmp9_ = NULL;
+ Book* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ Page* _tmp12_ = NULL;
+ Page* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ gchar* page_name = NULL;
+ gint _tmp16_ = 0;
+ gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ GKeyFile* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ Page* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ GKeyFile* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ Page* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ GKeyFile* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ Page* _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ GKeyFile* _tmp40_ = NULL;
+ const gchar* _tmp41_ = NULL;
+ Page* _tmp42_ = NULL;
+ gint _tmp43_ = 0;
+ gint _tmp44_ = 0;
+ GKeyFile* _tmp45_ = NULL;
+ const gchar* _tmp46_ = NULL;
+ Page* _tmp47_ = NULL;
+ gint _tmp48_ = 0;
+ gint _tmp49_ = 0;
+ GKeyFile* _tmp50_ = NULL;
+ const gchar* _tmp51_ = NULL;
+ Page* _tmp52_ = NULL;
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+ Page* _tmp55_ = NULL;
+ ScanDirection _tmp56_ = 0;
+ ScanDirection _tmp57_ = 0;
+ const gchar* _tmp66_ = NULL;
+ Page* _tmp67_ = NULL;
+ const gchar* _tmp68_ = NULL;
+ const gchar* _tmp69_ = NULL;
+ GKeyFile* _tmp70_ = NULL;
+ const gchar* _tmp71_ = NULL;
+ const gchar* _tmp72_ = NULL;
+ GHashTable* _tmp73_ = NULL;
+ Page* _tmp74_ = NULL;
+ gconstpointer _tmp75_ = NULL;
+ GKeyFile* _tmp76_ = NULL;
+ const gchar* _tmp77_ = NULL;
+ GKeyFile* _tmp78_ = NULL;
+ const gchar* _tmp79_ = NULL;
+ Page* _tmp80_ = NULL;
+ gboolean _tmp81_ = FALSE;
+ gboolean _tmp82_ = FALSE;
+ const gchar* _tmp83_ = NULL;
+ Page* _tmp84_ = NULL;
+ const gchar* _tmp85_ = NULL;
+ const gchar* _tmp86_ = NULL;
+ GKeyFile* _tmp87_ = NULL;
+ const gchar* _tmp88_ = NULL;
+ GKeyFile* _tmp89_ = NULL;
+ const gchar* _tmp90_ = NULL;
+ Page* _tmp91_ = NULL;
+ gint _tmp92_ = 0;
+ gint _tmp93_ = 0;
+ GKeyFile* _tmp94_ = NULL;
+ const gchar* _tmp95_ = NULL;
+ Page* _tmp96_ = NULL;
+ gint _tmp97_ = 0;
+ gint _tmp98_ = 0;
+ GKeyFile* _tmp99_ = NULL;
+ const gchar* _tmp100_ = NULL;
+ Page* _tmp101_ = NULL;
+ gint _tmp102_ = 0;
+ gint _tmp103_ = 0;
+ GKeyFile* _tmp104_ = NULL;
+ const gchar* _tmp105_ = NULL;
+ Page* _tmp106_ = NULL;
+ gint _tmp107_ = 0;
+ gint _tmp108_ = 0;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (!_tmp2_) {
+#line 1597 "autosave-manager.c"
+ gint _tmp3_ = 0;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp3_ = i;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ i = _tmp3_ + 1;
+#line 1603 "autosave-manager.c"
+ }
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp2_ = FALSE;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp4_ = i;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp5_ = autosave_manager_get_book (self);
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp6_ = _tmp5_;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp7_ = book_get_n_pages (_tmp6_);
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp8_ = _tmp7_;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (!(((guint) _tmp4_) < _tmp8_)) {
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ break;
+#line 1621 "autosave-manager.c"
+ }
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp9_ = autosave_manager_get_book (self);
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp10_ = _tmp9_;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp11_ = i;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp12_ = book_get_page (_tmp10_, _tmp11_);
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ page = _tmp12_;
+#line 290 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp13_ = page;
+#line 290 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp14_ = page_get_has_data (_tmp13_);
+#line 290 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp15_ = _tmp14_;
+#line 290 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (!_tmp15_) {
+#line 291 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _page_unref0 (page);
+#line 291 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ continue;
+#line 1645 "autosave-manager.c"
+ }
+#line 293 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp16_ = i;
+#line 293 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp17_ = g_strdup_printf ("page-%d", _tmp16_);
+#line 293 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ page_name = _tmp17_;
+#line 294 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp18_ = page_names;
+#line 294 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (g_strcmp0 (_tmp18_, "") != 0) {
+#line 1657 "autosave-manager.c"
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp19_ = page_names;
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp20_ = g_strconcat (_tmp19_, " ", NULL);
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (page_names);
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ page_names = _tmp20_;
+#line 1668 "autosave-manager.c"
+ }
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp21_ = page_names;
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp22_ = page_name;
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp23_ = g_strconcat (_tmp21_, _tmp22_, NULL);
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (page_names);
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ page_names = _tmp23_;
+#line 298 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp24_ = page_name;
+#line 298 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_debug ("autosave-manager.vala:298: Autosaving page %s", _tmp24_);
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp25_ = file;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp26_ = page_name;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp27_ = page;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp28_ = page_get_scan_width (_tmp27_);
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp29_ = _tmp28_;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_integer (_tmp25_, _tmp26_, "scan-width", _tmp29_);
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp30_ = file;
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp31_ = page_name;
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp32_ = page;
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp33_ = page_get_scan_height (_tmp32_);
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp34_ = _tmp33_;
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_integer (_tmp30_, _tmp31_, "scan-height", _tmp34_);
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp35_ = file;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp36_ = page_name;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp37_ = page;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp38_ = page_get_rowstride (_tmp37_);
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp39_ = _tmp38_;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_integer (_tmp35_, _tmp36_, "rowstride", _tmp39_);
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp40_ = file;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp41_ = page_name;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp42_ = page;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp43_ = page_get_n_channels (_tmp42_);
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp44_ = _tmp43_;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_integer (_tmp40_, _tmp41_, "n-channels", _tmp44_);
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp45_ = file;
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp46_ = page_name;
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp47_ = page;
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp48_ = page_get_depth (_tmp47_);
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp49_ = _tmp48_;
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_integer (_tmp45_, _tmp46_, "depth", _tmp49_);
+#line 305 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp50_ = file;
+#line 305 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp51_ = page_name;
+#line 305 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp52_ = page;
+#line 305 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp53_ = page_get_dpi (_tmp52_);
+#line 305 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp54_ = _tmp53_;
+#line 305 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_integer (_tmp50_, _tmp51_, "dpi", _tmp54_);
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp55_ = page;
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp56_ = page_get_scan_direction (_tmp55_);
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp57_ = _tmp56_;
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ switch (_tmp57_) {
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ case SCAN_DIRECTION_TOP_TO_BOTTOM:
+#line 1766 "autosave-manager.c"
+ {
+ GKeyFile* _tmp58_ = NULL;
+ const gchar* _tmp59_ = NULL;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp58_ = file;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp59_ = page_name;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_value (_tmp58_, _tmp59_, "scan-direction", "TOP_TO_BOTTOM");
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ break;
+#line 1778 "autosave-manager.c"
+ }
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ case SCAN_DIRECTION_LEFT_TO_RIGHT:
+#line 1782 "autosave-manager.c"
+ {
+ GKeyFile* _tmp60_ = NULL;
+ const gchar* _tmp61_ = NULL;
+#line 312 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp60_ = file;
+#line 312 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp61_ = page_name;
+#line 312 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_value (_tmp60_, _tmp61_, "scan-direction", "LEFT_TO_RIGHT");
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ break;
+#line 1794 "autosave-manager.c"
+ }
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ case SCAN_DIRECTION_BOTTOM_TO_TOP:
+#line 1798 "autosave-manager.c"
+ {
+ GKeyFile* _tmp62_ = NULL;
+ const gchar* _tmp63_ = NULL;
+#line 315 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp62_ = file;
+#line 315 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp63_ = page_name;
+#line 315 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_value (_tmp62_, _tmp63_, "scan-direction", "BOTTOM_TO_TOP");
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ break;
+#line 1810 "autosave-manager.c"
+ }
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ case SCAN_DIRECTION_RIGHT_TO_LEFT:
+#line 1814 "autosave-manager.c"
+ {
+ GKeyFile* _tmp64_ = NULL;
+ const gchar* _tmp65_ = NULL;
+#line 318 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp64_ = file;
+#line 318 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp65_ = page_name;
+#line 318 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_value (_tmp64_, _tmp65_, "scan-direction", "RIGHT_TO_LEFT");
+#line 319 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ break;
+#line 1826 "autosave-manager.c"
+ }
+ default:
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ break;
+#line 1831 "autosave-manager.c"
+ }
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp67_ = page;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp68_ = page_get_color_profile (_tmp67_);
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp69_ = _tmp68_;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp66_ = _tmp69_;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_tmp66_ == NULL) {
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp66_ = "";
+#line 1845 "autosave-manager.c"
+ }
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp70_ = file;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp71_ = page_name;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_value (_tmp70_, _tmp71_, "color-profile", _tmp66_);
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp73_ = self->priv->page_filenames;
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp74_ = page;
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp75_ = g_hash_table_lookup (_tmp73_, _tmp74_);
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp72_ = (const gchar*) _tmp75_;
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_tmp72_ == NULL) {
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp72_ = "";
+#line 1865 "autosave-manager.c"
+ }
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp76_ = file;
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp77_ = page_name;
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_value (_tmp76_, _tmp77_, "pixels-filename", _tmp72_);
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp78_ = file;
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp79_ = page_name;
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp80_ = page;
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp81_ = page_get_has_crop (_tmp80_);
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp82_ = _tmp81_;
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_boolean (_tmp78_, _tmp79_, "has-crop", _tmp82_);
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp84_ = page;
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp85_ = page_get_crop_name (_tmp84_);
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp86_ = _tmp85_;
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp83_ = _tmp86_;
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_tmp83_ == NULL) {
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp83_ = "";
+#line 1897 "autosave-manager.c"
+ }
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp87_ = file;
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp88_ = page_name;
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_value (_tmp87_, _tmp88_, "crop-name", _tmp83_);
+#line 325 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp89_ = file;
+#line 325 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp90_ = page_name;
+#line 325 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp91_ = page;
+#line 325 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp92_ = page_get_crop_x (_tmp91_);
+#line 325 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp93_ = _tmp92_;
+#line 325 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_integer (_tmp89_, _tmp90_, "crop-x", _tmp93_);
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp94_ = file;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp95_ = page_name;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp96_ = page;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp97_ = page_get_crop_y (_tmp96_);
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp98_ = _tmp97_;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_integer (_tmp94_, _tmp95_, "crop-y", _tmp98_);
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp99_ = file;
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp100_ = page_name;
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp101_ = page;
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp102_ = page_get_crop_width (_tmp101_);
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp103_ = _tmp102_;
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_integer (_tmp99_, _tmp100_, "crop-width", _tmp103_);
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp104_ = file;
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp105_ = page_name;
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp106_ = page;
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp107_ = page_get_crop_height (_tmp106_);
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp108_ = _tmp107_;
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_integer (_tmp104_, _tmp105_, "crop-height", _tmp108_);
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (page_name);
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _page_unref0 (page);
+#line 1957 "autosave-manager.c"
+ }
+ }
+ }
+#line 330 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp109_ = file;
+#line 330 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp110_ = page_names;
+#line 330 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_key_file_set_value (_tmp109_, "simple-scan", "pages", _tmp110_);
+#line 1967 "autosave-manager.c"
+ {
+ const gchar* _tmp111_ = NULL;
+ const gchar* _tmp112_ = NULL;
+ GKeyFile* _tmp113_ = NULL;
+ gchar* _tmp114_ = NULL;
+ gchar* _tmp115_ = NULL;
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp111_ = autosave_manager_AUTOSAVE_DIR;
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_mkdir_with_parents (_tmp111_, 0777);
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp112_ = autosave_manager_AUTOSAVE_PATH;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp113_ = file;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp114_ = g_key_file_to_data (_tmp113_, NULL, NULL);
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp115_ = _tmp114_;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_file_set_contents (_tmp112_, _tmp115_, (gssize) (-1), &_inner_error_);
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (_tmp115_);
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_inner_error_ != NULL) {
+#line 1992 "autosave-manager.c"
+ goto __catch33_g_error;
+ }
+ }
+ goto __finally33;
+ __catch33_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp116_ = NULL;
+ const gchar* _tmp117_ = NULL;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ e = _inner_error_;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _inner_error_ = NULL;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp116_ = e;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp117_ = _tmp116_->message;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_warning ("autosave-manager.vala:339: Failed to write autosave: %s", _tmp117_);
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_error_free0 (e);
+#line 2014 "autosave-manager.c"
+ }
+ __finally33:
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_inner_error_ != NULL) {
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (page_names);
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_key_file_unref0 (file);
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_clear_error (&_inner_error_);
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return;
+#line 2029 "autosave-manager.c"
+ }
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (page_names);
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_key_file_unref0 (file);
+#line 2035 "autosave-manager.c"
+}
+
+
+static void autosave_manager_save_pixels (AutosaveManager* self, Page* page) {
+ gchar* filename = NULL;
+ GHashFunc _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ gchar* _tmp3_ = NULL;
+ gchar* path = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GHashTable* _tmp6_ = NULL;
+ Page* _tmp7_ = NULL;
+ Page* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ GFile* file = NULL;
+ GFile* _tmp10_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (self != NULL);
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (page != NULL);
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = g_direct_hash;
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp1_ = page;
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp2_ = _tmp0_ (_tmp1_);
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp3_ = g_strdup_printf ("%u.pixels", _tmp2_);
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ filename = _tmp3_;
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp4_ = autosave_manager_AUTOSAVE_DIR;
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp5_ = g_build_filename (_tmp4_, filename, NULL);
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ path = _tmp5_;
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp6_ = self->priv->page_filenames;
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp7_ = page;
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp8_ = _page_ref0 (_tmp7_);
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp9_ = g_strdup (filename);
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_hash_table_insert (_tmp6_, _tmp8_, _tmp9_);
+#line 349 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_debug ("autosave-manager.vala:349: Autosaving page pixels to %s", path);
+#line 351 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp10_ = g_file_new_for_path (path);
+#line 351 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ file = _tmp10_;
+#line 2091 "autosave-manager.c"
+ {
+ Page* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ guchar* _tmp13_ = NULL;
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp11_ = page;
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp13_ = page_get_pixels (_tmp11_, &_tmp12_);
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_file_replace_contents (file, _tmp13_, (gsize) _tmp12_, NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL, &_inner_error_);
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_inner_error_ != NULL) {
+#line 2104 "autosave-manager.c"
+ goto __catch34_g_error;
+ }
+ }
+ goto __finally34;
+ __catch34_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ e = _inner_error_;
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _inner_error_ = NULL;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp14_ = e;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp15_ = _tmp14_->message;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_warning ("autosave-manager.vala:358: Failed to autosave page contents: %s", _tmp15_);
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_error_free0 (e);
+#line 2126 "autosave-manager.c"
+ }
+ __finally34:
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_inner_error_ != NULL) {
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_object_unref0 (file);
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (path);
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (filename);
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_clear_error (&_inner_error_);
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return;
+#line 2143 "autosave-manager.c"
+ }
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_object_unref0 (file);
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (path);
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_free0 (filename);
+#line 2151 "autosave-manager.c"
+}
+
+
+Book* autosave_manager_get_book (AutosaveManager* self) {
+ Book* result;
+ Book* _tmp0_ = NULL;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 28 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = self->priv->book_;
+#line 28 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ result = _tmp0_;
+#line 28 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return result;
+#line 2166 "autosave-manager.c"
+}
+
+
+static void _autosave_manager_on_page_added_book_page_added (Book* _sender, Page* page, gpointer self) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_on_page_added ((AutosaveManager*) self, page);
+#line 2173 "autosave-manager.c"
+}
+
+
+static void _autosave_manager_on_page_removed_book_page_removed (Book* _sender, Page* page, gpointer self) {
+#line 40 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_on_page_removed ((AutosaveManager*) self, page);
+#line 2180 "autosave-manager.c"
+}
+
+
+static void _autosave_manager_on_changed_book_reordered (Book* _sender, gpointer self) {
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_on_changed ((AutosaveManager*) self);
+#line 2187 "autosave-manager.c"
+}
+
+
+static void _autosave_manager_on_cleared_book_cleared (Book* _sender, gpointer self) {
+#line 42 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_on_cleared ((AutosaveManager*) self);
+#line 2194 "autosave-manager.c"
+}
+
+
+static gpointer _book_ref0 (gpointer self) {
+#line 44 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return self ? book_ref (self) : NULL;
+#line 2201 "autosave-manager.c"
+}
+
+
+void autosave_manager_set_book (AutosaveManager* self, Book* value) {
+ Book* _tmp0_ = NULL;
+ Book* _tmp19_ = NULL;
+ Book* _tmp20_ = NULL;
+ Book* _tmp21_ = NULL;
+ Book* _tmp22_ = NULL;
+ Book* _tmp23_ = NULL;
+ Book* _tmp24_ = NULL;
+#line 30 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (self != NULL);
+#line 32 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = self->priv->book_;
+#line 32 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (_tmp0_ != NULL) {
+#line 2219 "autosave-manager.c"
+ Book* _tmp11_ = NULL;
+ guint _tmp12_ = 0U;
+ Book* _tmp13_ = NULL;
+ guint _tmp14_ = 0U;
+ Book* _tmp15_ = NULL;
+ guint _tmp16_ = 0U;
+ Book* _tmp17_ = NULL;
+ guint _tmp18_ = 0U;
+ {
+ gint i = 0;
+#line 34 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ i = 0;
+#line 2232 "autosave-manager.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 34 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp1_ = TRUE;
+#line 34 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ while (TRUE) {
+#line 2239 "autosave-manager.c"
+ gint _tmp3_ = 0;
+ Book* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ guint _tmp6_ = 0U;
+ Page* page = NULL;
+ Book* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ Page* _tmp9_ = NULL;
+ Page* _tmp10_ = NULL;
+#line 34 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (!_tmp1_) {
+#line 2251 "autosave-manager.c"
+ gint _tmp2_ = 0;
+#line 34 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp2_ = i;
+#line 34 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ i = _tmp2_ + 1;
+#line 2257 "autosave-manager.c"
+ }
+#line 34 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp1_ = FALSE;
+#line 34 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp3_ = i;
+#line 34 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp4_ = self->priv->book_;
+#line 34 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp5_ = book_get_n_pages (_tmp4_);
+#line 34 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp6_ = _tmp5_;
+#line 34 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (!(((guint) _tmp3_) < _tmp6_)) {
+#line 34 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ break;
+#line 2273 "autosave-manager.c"
+ }
+#line 36 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp7_ = self->priv->book_;
+#line 36 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp8_ = i;
+#line 36 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp9_ = book_get_page (_tmp7_, _tmp8_);
+#line 36 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ page = _tmp9_;
+#line 37 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp10_ = page;
+#line 37 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_on_page_removed (self, _tmp10_);
+#line 34 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _page_unref0 (page);
+#line 2289 "autosave-manager.c"
+ }
+ }
+ }
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp11_ = self->priv->book_;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_parse_name ("page-added", TYPE_BOOK, &_tmp12_, NULL, FALSE);
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_handlers_disconnect_matched (_tmp11_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp12_, 0, NULL, (GCallback) _autosave_manager_on_page_added_book_page_added, self);
+#line 40 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp13_ = self->priv->book_;
+#line 40 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_parse_name ("page-removed", TYPE_BOOK, &_tmp14_, NULL, FALSE);
+#line 40 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_handlers_disconnect_matched (_tmp13_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp14_, 0, NULL, (GCallback) _autosave_manager_on_page_removed_book_page_removed, self);
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp15_ = self->priv->book_;
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_parse_name ("reordered", TYPE_BOOK, &_tmp16_, NULL, FALSE);
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_handlers_disconnect_matched (_tmp15_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp16_, 0, NULL, (GCallback) _autosave_manager_on_changed_book_reordered, self);
+#line 42 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp17_ = self->priv->book_;
+#line 42 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_parse_name ("cleared", TYPE_BOOK, &_tmp18_, NULL, FALSE);
+#line 42 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_handlers_disconnect_matched (_tmp17_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp18_, 0, NULL, (GCallback) _autosave_manager_on_cleared_book_cleared, self);
+#line 2317 "autosave-manager.c"
+ }
+#line 44 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp19_ = value;
+#line 44 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp20_ = _book_ref0 (_tmp19_);
+#line 44 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _book_unref0 (self->priv->book_);
+#line 44 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ self->priv->book_ = _tmp20_;
+#line 45 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp21_ = self->priv->book_;
+#line 45 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_connect (_tmp21_, "page-added", (GCallback) _autosave_manager_on_page_added_book_page_added, self);
+#line 46 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp22_ = self->priv->book_;
+#line 46 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_connect (_tmp22_, "page-removed", (GCallback) _autosave_manager_on_page_removed_book_page_removed, self);
+#line 47 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp23_ = self->priv->book_;
+#line 47 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_connect (_tmp23_, "reordered", (GCallback) _autosave_manager_on_changed_book_reordered, self);
+#line 48 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp24_ = self->priv->book_;
+#line 48 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_signal_connect (_tmp24_, "cleared", (GCallback) _autosave_manager_on_cleared_book_cleared, self);
+#line 2343 "autosave-manager.c"
+ {
+ gint i = 0;
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ i = 0;
+#line 2348 "autosave-manager.c"
+ {
+ gboolean _tmp25_ = FALSE;
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp25_ = TRUE;
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ while (TRUE) {
+#line 2355 "autosave-manager.c"
+ gint _tmp27_ = 0;
+ Book* _tmp28_ = NULL;
+ guint _tmp29_ = 0U;
+ guint _tmp30_ = 0U;
+ Page* page = NULL;
+ Book* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ Page* _tmp33_ = NULL;
+ Page* _tmp34_ = NULL;
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (!_tmp25_) {
+#line 2367 "autosave-manager.c"
+ gint _tmp26_ = 0;
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp26_ = i;
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ i = _tmp26_ + 1;
+#line 2373 "autosave-manager.c"
+ }
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp25_ = FALSE;
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp27_ = i;
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp28_ = self->priv->book_;
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp29_ = book_get_n_pages (_tmp28_);
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp30_ = _tmp29_;
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (!(((guint) _tmp27_) < _tmp30_)) {
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ break;
+#line 2389 "autosave-manager.c"
+ }
+#line 51 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp31_ = self->priv->book_;
+#line 51 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp32_ = i;
+#line 51 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp33_ = book_get_page (_tmp31_, _tmp32_);
+#line 51 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ page = _tmp33_;
+#line 52 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp34_ = page;
+#line 52 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_on_page_added (self, _tmp34_);
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _page_unref0 (page);
+#line 2405 "autosave-manager.c"
+ }
+ }
+ }
+}
+
+
+static void value_autosave_manager_init (GValue* value) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ value->data[0].v_pointer = NULL;
+#line 2415 "autosave-manager.c"
+}
+
+
+static void value_autosave_manager_free_value (GValue* value) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (value->data[0].v_pointer) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_unref (value->data[0].v_pointer);
+#line 2424 "autosave-manager.c"
+ }
+}
+
+
+static void value_autosave_manager_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (src_value->data[0].v_pointer) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ dest_value->data[0].v_pointer = autosave_manager_ref (src_value->data[0].v_pointer);
+#line 2434 "autosave-manager.c"
+ } else {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2438 "autosave-manager.c"
+ }
+}
+
+
+static gpointer value_autosave_manager_peek_pointer (const GValue* value) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return value->data[0].v_pointer;
+#line 2446 "autosave-manager.c"
+}
+
+
+static gchar* value_autosave_manager_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (collect_values[0].v_pointer) {
+#line 2453 "autosave-manager.c"
+ AutosaveManager* object;
+ object = collect_values[0].v_pointer;
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2460 "autosave-manager.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2464 "autosave-manager.c"
+ }
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ value->data[0].v_pointer = autosave_manager_ref (object);
+#line 2468 "autosave-manager.c"
+ } else {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ value->data[0].v_pointer = NULL;
+#line 2472 "autosave-manager.c"
+ }
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return NULL;
+#line 2476 "autosave-manager.c"
+}
+
+
+static gchar* value_autosave_manager_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ AutosaveManager** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (!object_p) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2487 "autosave-manager.c"
+ }
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (!value->data[0].v_pointer) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ *object_p = NULL;
+#line 2493 "autosave-manager.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2497 "autosave-manager.c"
+ } else {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ *object_p = autosave_manager_ref (value->data[0].v_pointer);
+#line 2501 "autosave-manager.c"
+ }
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return NULL;
+#line 2505 "autosave-manager.c"
+}
+
+
+GParamSpec* param_spec_autosave_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecAutosaveManager* spec;
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_AUTOSAVE_MANAGER), NULL);
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return G_PARAM_SPEC (spec);
+#line 2519 "autosave-manager.c"
+}
+
+
+gpointer value_get_autosave_manager (const GValue* value) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_AUTOSAVE_MANAGER), NULL);
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return value->data[0].v_pointer;
+#line 2528 "autosave-manager.c"
+}
+
+
+void value_set_autosave_manager (GValue* value, gpointer v_object) {
+ AutosaveManager* old;
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_AUTOSAVE_MANAGER));
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ old = value->data[0].v_pointer;
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (v_object) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_AUTOSAVE_MANAGER));
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ value->data[0].v_pointer = v_object;
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_ref (value->data[0].v_pointer);
+#line 2548 "autosave-manager.c"
+ } else {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ value->data[0].v_pointer = NULL;
+#line 2552 "autosave-manager.c"
+ }
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (old) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_unref (old);
+#line 2558 "autosave-manager.c"
+ }
+}
+
+
+void value_take_autosave_manager (GValue* value, gpointer v_object) {
+ AutosaveManager* old;
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_AUTOSAVE_MANAGER));
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ old = value->data[0].v_pointer;
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (v_object) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_AUTOSAVE_MANAGER));
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ value->data[0].v_pointer = v_object;
+#line 2577 "autosave-manager.c"
+ } else {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ value->data[0].v_pointer = NULL;
+#line 2581 "autosave-manager.c"
+ }
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (old) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_unref (old);
+#line 2587 "autosave-manager.c"
+ }
+}
+
+
+static void autosave_manager_class_init (AutosaveManagerClass * klass) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_parent_class = g_type_class_peek_parent (klass);
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ AUTOSAVE_MANAGER_CLASS (klass)->finalize = autosave_manager_finalize;
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_type_class_add_private (klass, sizeof (AutosaveManagerPrivate));
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp0_ = g_get_user_cache_dir ();
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp1_ = g_build_filename (_tmp0_, "simple-scan", "autosaves", NULL);
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_AUTOSAVE_DIR = _tmp1_;
+#line 16 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp2_ = g_strdup ("autosave.book");
+#line 16 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_AUTOSAVE_FILENAME = _tmp2_;
+#line 17 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp3_ = autosave_manager_AUTOSAVE_DIR;
+#line 17 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp4_ = autosave_manager_AUTOSAVE_FILENAME;
+#line 17 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _tmp5_ = g_build_filename (_tmp3_, _tmp4_, NULL);
+#line 17 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ autosave_manager_AUTOSAVE_PATH = _tmp5_;
+#line 2623 "autosave-manager.c"
+}
+
+
+static void autosave_manager_instance_init (AutosaveManager * self) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ self->priv = AUTOSAVE_MANAGER_GET_PRIVATE (self);
+#line 19 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ self->priv->update_timeout = (guint) 0;
+#line 23 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ self->priv->book_ = NULL;
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ self->ref_count = 1;
+#line 2636 "autosave-manager.c"
+}
+
+
+static void autosave_manager_finalize (AutosaveManager* obj) {
+ AutosaveManager * self;
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_AUTOSAVE_MANAGER, AutosaveManager);
+#line 21 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _g_hash_table_unref0 (self->priv->page_filenames);
+#line 23 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ _book_unref0 (self->priv->book_);
+#line 2648 "autosave-manager.c"
+}
+
+
+GType autosave_manager_get_type (void) {
+ static volatile gsize autosave_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&autosave_manager_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_autosave_manager_init, value_autosave_manager_free_value, value_autosave_manager_copy_value, value_autosave_manager_peek_pointer, "p", value_autosave_manager_collect_value, "p", value_autosave_manager_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (AutosaveManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) autosave_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AutosaveManager), 0, (GInstanceInitFunc) autosave_manager_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType autosave_manager_type_id;
+ autosave_manager_type_id = g_type_register_fundamental (g_type_fundamental_next (), "AutosaveManager", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&autosave_manager_type_id__volatile, autosave_manager_type_id);
+ }
+ return autosave_manager_type_id__volatile;
+}
+
+
+gpointer autosave_manager_ref (gpointer instance) {
+ AutosaveManager* self;
+ self = instance;
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ return instance;
+#line 2673 "autosave-manager.c"
+}
+
+
+void autosave_manager_unref (gpointer instance) {
+ AutosaveManager* self;
+ self = instance;
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ AUTOSAVE_MANAGER_GET_CLASS (self)->finalize (self);
+#line 13 "/home/bob/bzr/simple-scan/trunk/src/autosave-manager.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2686 "autosave-manager.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
diff --git a/src/autosave-manager.vala b/src/autosave-manager.vala
new file mode 100644
index 0000000..9ea79f1
--- /dev/null
+++ b/src/autosave-manager.vala
@@ -0,0 +1,361 @@
+/*
+ * Copyright (C) 2011 Timo Kluck
+ * Authors: Timo Kluck <tkluck@infty.nl>
+ * Robert Ancell <robert.ancell@canonical.com>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+public class AutosaveManager
+{
+ private static string AUTOSAVE_DIR = Path.build_filename (Environment.get_user_cache_dir (), "simple-scan", "autosaves");
+ private static string AUTOSAVE_FILENAME = "autosave.book";
+ private static string AUTOSAVE_PATH = Path.build_filename (AUTOSAVE_DIR, AUTOSAVE_FILENAME);
+
+ private uint update_timeout = 0;
+
+ private HashTable<Page, string> page_filenames;
+
+ private Book book_ = null;
+ public Book book
+ {
+ get
+ {
+ return book_;
+ }
+ set
+ {
+ if (book_ != null)
+ {
+ for (var i = 0; i < book_.n_pages; i++)
+ {
+ var page = book_.get_page (i);
+ on_page_removed (page);
+ }
+ book_.page_added.disconnect (on_page_added);
+ book_.page_removed.disconnect (on_page_removed);
+ book_.reordered.disconnect (on_changed);
+ book_.cleared.disconnect (on_cleared);
+ }
+ book_ = value;
+ book_.page_added.connect (on_page_added);
+ book_.page_removed.connect (on_page_removed);
+ book_.reordered.connect (on_changed);
+ book_.cleared.connect (on_cleared);
+ for (var i = 0; i < book_.n_pages; i++)
+ {
+ var page = book_.get_page (i);
+ on_page_added (page);
+ }
+ }
+ }
+
+ public AutosaveManager ()
+ {
+ page_filenames = new HashTable<Page, string> (direct_hash, direct_equal);
+ }
+
+ public void load ()
+ {
+ debug ("Loading autosave information");
+
+ book.clear ();
+ page_filenames.remove_all ();
+
+ var file = new KeyFile ();
+ try
+ {
+ file.load_from_file (AUTOSAVE_PATH, KeyFileFlags.NONE);
+ }
+ catch (Error e)
+ {
+ if (!(e is FileError.NOENT))
+ warning ("Could not load autosave infomation; not restoring any autosaves: %s", e.message);
+ return;
+ }
+ var pages = get_value (file, "simple-scan", "pages");
+ foreach (var page_name in pages.split (" "))
+ {
+ debug ("Loading automatically saved page %s", page_name);
+
+ var scan_width = get_integer (file, page_name, "scan-width");
+ var scan_height = get_integer (file, page_name, "scan-height");
+ var rowstride = get_integer (file, page_name, "rowstride");
+ var n_channels = get_integer (file, page_name, "n-channels");
+ var depth = get_integer (file, page_name, "depth");
+ var dpi = get_integer (file, page_name, "dpi");
+ var scan_direction_name = get_value (file, page_name, "scan-direction");
+ ScanDirection scan_direction = ScanDirection.TOP_TO_BOTTOM;
+ switch (scan_direction_name)
+ {
+ case "TOP_TO_BOTTOM":
+ scan_direction = ScanDirection.TOP_TO_BOTTOM;
+ break;
+ case "LEFT_TO_RIGHT":
+ scan_direction = ScanDirection.LEFT_TO_RIGHT;
+ break;
+ case "BOTTOM_TO_TOP":
+ scan_direction = ScanDirection.BOTTOM_TO_TOP;
+ break;
+ case "RIGHT_TO_LEFT":
+ scan_direction = ScanDirection.RIGHT_TO_LEFT;
+ break;
+ }
+ var color_profile = get_value (file, page_name, "color-profile");
+ if (color_profile == "")
+ color_profile = null;
+ var pixels_filename = get_value (file, page_name, "pixels-filename");
+ var has_crop = get_boolean (file, page_name, "has-crop");
+ var crop_name = get_value (file, page_name, "crop-name");
+ if (crop_name == "")
+ crop_name = null;
+ var crop_x = get_integer (file, page_name, "crop-x");
+ var crop_y = get_integer (file, page_name, "crop-y");
+ var crop_width = get_integer (file, page_name, "crop-width");
+ var crop_height = get_integer (file, page_name, "crop-height");
+
+ uchar[]? pixels = null;
+ if (pixels_filename != "")
+ {
+ var path = Path.build_filename (AUTOSAVE_DIR, pixels_filename);
+ var f = File.new_for_path (path);
+ try
+ {
+ f.load_contents (null, out pixels, null);
+ }
+ catch (Error e)
+ {
+ warning ("Failed to load pixel information");
+ continue;
+ }
+ }
+
+ var page = new Page.from_data (scan_width,
+ scan_height,
+ rowstride,
+ n_channels,
+ depth,
+ dpi,
+ scan_direction,
+ color_profile,
+ pixels,
+ has_crop,
+ crop_name,
+ crop_x,
+ crop_y,
+ crop_width,
+ crop_height);
+ page_filenames.insert (page, pixels_filename);
+ book.append_page (page);
+ }
+ }
+
+ private string get_value (KeyFile file, string group_name, string key, string default = "")
+ {
+ try
+ {
+ return file.get_value (group_name, key);
+ }
+ catch (Error e)
+ {
+ return default;
+ }
+ }
+
+ private int get_integer (KeyFile file, string group_name, string key, int default = 0)
+ {
+ try
+ {
+ return file.get_integer (group_name, key);
+ }
+ catch (Error e)
+ {
+ return default;
+ }
+ }
+
+ private bool get_boolean (KeyFile file, string group_name, string key, bool default = false)
+ {
+ try
+ {
+ return file.get_boolean (group_name, key);
+ }
+ catch (Error e)
+ {
+ return default;
+ }
+ }
+
+ public void cleanup ()
+ {
+ debug ("Deleting autosave records");
+
+ if (update_timeout > 0)
+ Source.remove (update_timeout);
+ update_timeout = 0;
+
+ Dir dir;
+ try
+ {
+ dir = Dir.open (AUTOSAVE_DIR);
+ }
+ catch (Error e)
+ {
+ warning ("Failed to delete autosaves: %s", e.message);
+ return;
+ }
+
+ while (true)
+ {
+ var filename = dir.read_name ();
+ if (filename == null)
+ break;
+ var path = Path.build_filename (AUTOSAVE_DIR, filename);
+ FileUtils.unlink (path);
+ }
+ }
+
+ public void on_page_added (Page page)
+ {
+ page.scan_finished.connect (on_scan_finished);
+ page.crop_changed.connect (on_changed);
+ }
+
+ public void on_page_removed (Page page)
+ {
+ page.scan_finished.disconnect (on_scan_finished);
+ page.crop_changed.disconnect (on_changed);
+
+ var filename = page_filenames.lookup (page);
+ if (filename != null)
+ FileUtils.unlink (filename);
+ page_filenames.remove (page);
+ }
+
+ public void on_scan_finished (Page page)
+ {
+ save_pixels (page);
+ save (false);
+ }
+
+ public void on_changed ()
+ {
+ save ();
+ }
+
+ public void on_cleared ()
+ {
+ page_filenames.remove_all ();
+ save ();
+ }
+
+ private void save (bool do_timeout = true)
+ {
+ if (update_timeout == 0 && do_timeout)
+ debug ("Waiting to autosave...");
+
+ /* Cancel existing timeout */
+ if (update_timeout > 0)
+ Source.remove (update_timeout);
+ update_timeout = 0;
+
+ if (do_timeout)
+ {
+ update_timeout = Timeout.add (100, () =>
+ {
+ real_save ();
+ update_timeout = 0;
+ return false;
+ });
+ }
+ else
+ real_save();
+ }
+
+ private void real_save ()
+ {
+ debug ("Autosaving book information");
+
+ var file = new KeyFile ();
+ var page_names = "";
+ for (var i = 0; i < book.n_pages; i++)
+ {
+ var page = book.get_page (i);
+
+ /* Skip empty pages */
+ if (!page.has_data)
+ continue;
+
+ var page_name = "page-%d".printf (i);
+ if (page_names != "")
+ page_names += " ";
+ page_names += page_name;
+
+ debug ("Autosaving page %s", page_name);
+
+ file.set_integer (page_name, "scan-width", page.scan_width);
+ file.set_integer (page_name, "scan-height", page.scan_height);
+ file.set_integer (page_name, "rowstride", page.rowstride);
+ file.set_integer (page_name, "n-channels", page.n_channels);
+ file.set_integer (page_name, "depth", page.depth);
+ file.set_integer (page_name, "dpi", page.dpi);
+ switch (page.scan_direction)
+ {
+ case ScanDirection.TOP_TO_BOTTOM:
+ file.set_value (page_name, "scan-direction", "TOP_TO_BOTTOM");
+ break;
+ case ScanDirection.LEFT_TO_RIGHT:
+ file.set_value (page_name, "scan-direction", "LEFT_TO_RIGHT");
+ break;
+ case ScanDirection.BOTTOM_TO_TOP:
+ file.set_value (page_name, "scan-direction", "BOTTOM_TO_TOP");
+ break;
+ case ScanDirection.RIGHT_TO_LEFT:
+ file.set_value (page_name, "scan-direction", "RIGHT_TO_LEFT");
+ break;
+ }
+ file.set_value (page_name, "color-profile", page.color_profile ?? "");
+ file.set_value (page_name, "pixels-filename", page_filenames.lookup (page) ?? "");
+ file.set_boolean (page_name, "has-crop", page.has_crop);
+ file.set_value (page_name, "crop-name", page.crop_name ?? "");
+ file.set_integer (page_name, "crop-x", page.crop_x);
+ file.set_integer (page_name, "crop-y", page.crop_y);
+ file.set_integer (page_name, "crop-width", page.crop_width);
+ file.set_integer (page_name, "crop-height", page.crop_height);
+ }
+ file.set_value ("simple-scan", "pages", page_names);
+
+ try
+ {
+ DirUtils.create_with_parents (AUTOSAVE_DIR, 0777);
+ FileUtils.set_contents (AUTOSAVE_PATH, file.to_data ());
+ }
+ catch (Error e)
+ {
+ warning ("Failed to write autosave: %s", e.message);
+ }
+ }
+
+ private void save_pixels (Page page)
+ {
+ var filename = "%u.pixels".printf (direct_hash (page));
+ var path = Path.build_filename (AUTOSAVE_DIR, filename);
+ page_filenames.insert (page, filename);
+
+ debug ("Autosaving page pixels to %s", path);
+
+ var file = File.new_for_path (path);
+ try
+ {
+ file.replace_contents (page.get_pixels (), null, false, FileCreateFlags.NONE, null);
+ }
+ catch (Error e)
+ {
+ warning ("Failed to autosave page contents: %s", e.message);
+ }
+ }
+}
diff --git a/src/book-view.c b/src/book-view.c
new file mode 100644
index 0000000..4ae0fd2
--- /dev/null
+++ b/src/book-view.c
@@ -0,0 +1,3891 @@
+/* book-view.c generated by valac 0.24.0, the Vala compiler
+ * generated from book-view.vala, do not modify */
+
+/*
+ * Copyright (C) 2009-2011 Canonical Ltd.
+ * Author: Robert Ancell <robert.ancell@canonical.com>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+/* FIXME: When scrolling, copy existing render sideways?*/
+/* FIXME: Only render pages that change and only the part that changed*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <cairo.h>
+#include <float.h>
+#include <math.h>
+
+
+#define TYPE_BOOK_VIEW (book_view_get_type ())
+#define BOOK_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BOOK_VIEW, BookView))
+#define BOOK_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BOOK_VIEW, BookViewClass))
+#define IS_BOOK_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BOOK_VIEW))
+#define IS_BOOK_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BOOK_VIEW))
+#define BOOK_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BOOK_VIEW, BookViewClass))
+
+typedef struct _BookView BookView;
+typedef struct _BookViewClass BookViewClass;
+typedef struct _BookViewPrivate BookViewPrivate;
+
+#define TYPE_BOOK (book_get_type ())
+#define BOOK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BOOK, Book))
+#define BOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BOOK, BookClass))
+#define IS_BOOK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BOOK))
+#define IS_BOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BOOK))
+#define BOOK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BOOK, BookClass))
+
+typedef struct _Book Book;
+typedef struct _BookClass BookClass;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define TYPE_PAGE_VIEW (page_view_get_type ())
+#define PAGE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_VIEW, PageView))
+#define PAGE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_VIEW, PageViewClass))
+#define IS_PAGE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_VIEW))
+#define IS_PAGE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_VIEW))
+#define PAGE_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_VIEW, PageViewClass))
+
+typedef struct _PageView PageView;
+typedef struct _PageViewClass PageViewClass;
+#define _book_unref0(var) ((var == NULL) ? NULL : (var = (book_unref (var), NULL)))
+#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
+#define _page_view_unref0(var) ((var == NULL) ? NULL : (var = (page_view_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _page_unref0(var) ((var == NULL) ? NULL : (var = (page_unref (var), NULL)))
+
+struct _BookView {
+ GtkBox parent_instance;
+ BookViewPrivate * priv;
+};
+
+struct _BookViewClass {
+ GtkBoxClass parent_class;
+};
+
+struct _BookViewPrivate {
+ Book* _book;
+ GHashTable* page_data;
+ gboolean need_layout;
+ gboolean laying_out;
+ gboolean show_selected_page;
+ PageView* selected_page_view;
+ GtkWidget* drawing_area;
+ GtkScrollbar* scroll;
+ GtkAdjustment* adjustment;
+ GdkCursorType cursor;
+};
+
+
+static gpointer book_view_parent_class = NULL;
+
+GType book_view_get_type (void) G_GNUC_CONST;
+gpointer book_ref (gpointer instance);
+void book_unref (gpointer instance);
+GParamSpec* param_spec_book (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_book (GValue* value, gpointer v_object);
+void value_take_book (GValue* value, gpointer v_object);
+gpointer value_get_book (const GValue* value);
+GType book_get_type (void) G_GNUC_CONST;
+gpointer page_ref (gpointer instance);
+void page_unref (gpointer instance);
+GParamSpec* param_spec_page (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_page (GValue* value, gpointer v_object);
+void value_take_page (GValue* value, gpointer v_object);
+gpointer value_get_page (const GValue* value);
+GType page_get_type (void) G_GNUC_CONST;
+gpointer page_view_ref (gpointer instance);
+void page_view_unref (gpointer instance);
+GParamSpec* param_spec_page_view (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_page_view (GValue* value, gpointer v_object);
+void value_take_page_view (GValue* value, gpointer v_object);
+gpointer value_get_page_view (const GValue* value);
+GType page_view_get_type (void) G_GNUC_CONST;
+#define BOOK_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_BOOK_VIEW, BookViewPrivate))
+enum {
+ BOOK_VIEW_DUMMY_PROPERTY,
+ BOOK_VIEW_BOOK,
+ BOOK_VIEW_SELECTED_PAGE,
+ BOOK_VIEW_X_OFFSET
+};
+Book* book_view_get_book (BookView* self);
+static void book_view_add_cb (BookView* self, Book* book, Page* page);
+static void _book_view_add_cb_book_page_added (Book* _sender, Page* page, gpointer self);
+static void book_view_remove_cb (BookView* self, Book* book, Page* page);
+static void _book_view_remove_cb_book_page_removed (Book* _sender, Page* page, gpointer self);
+static void book_view_reorder_cb (BookView* self, Book* book);
+static void _book_view_reorder_cb_book_reordered (Book* _sender, gpointer self);
+static void book_view_clear_cb (BookView* self, Book* book);
+static void _book_view_clear_cb_book_cleared (Book* _sender, gpointer self);
+static gboolean book_view_configure_cb (BookView* self, GtkWidget* widget, GdkEventConfigure* event);
+static gboolean _book_view_configure_cb_gtk_widget_configure_event (GtkWidget* _sender, GdkEventConfigure* event, gpointer self);
+static gboolean book_view_draw_cb (BookView* self, GtkWidget* widget, cairo_t* context);
+static gboolean _book_view_draw_cb_gtk_widget_draw (GtkWidget* _sender, cairo_t* cr, gpointer self);
+static gboolean book_view_motion_cb (BookView* self, GtkWidget* widget, GdkEventMotion* event);
+static gboolean _book_view_motion_cb_gtk_widget_motion_notify_event (GtkWidget* _sender, GdkEventMotion* event, gpointer self);
+static gboolean book_view_key_cb (BookView* self, GtkWidget* widget, GdkEventKey* event);
+static gboolean _book_view_key_cb_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
+static gboolean book_view_button_cb (BookView* self, GtkWidget* widget, GdkEventButton* event);
+static gboolean _book_view_button_cb_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+static gboolean _book_view_button_cb_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+static gboolean book_view_focus_cb (BookView* self, GtkWidget* widget, GdkEventFocus* event);
+static gboolean _book_view_focus_cb_gtk_widget_focus_in_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self);
+static gboolean _book_view_focus_cb_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self);
+static void book_view_scroll_cb (BookView* self, GtkAdjustment* adjustment);
+static void _book_view_scroll_cb_gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self);
+BookView* book_view_new (Book* book);
+BookView* book_view_construct (GType object_type, Book* book);
+static void book_view_set_book (BookView* self, Book* value);
+guint book_get_n_pages (Book* self);
+Page* book_get_page (Book* self, gint page_number);
+void book_view_set_selected_page (BookView* self, Page* value);
+static void _page_unref0_ (gpointer var);
+static void _page_view_unref0_ (gpointer var);
+static PageView* book_view_get_nth_page (BookView* self, gint n);
+static PageView* book_view_get_next_page (BookView* self, PageView* page);
+Page* page_view_get_page (PageView* self);
+static PageView* book_view_get_prev_page (BookView* self, PageView* page);
+static void book_view_page_view_changed_cb (BookView* self, PageView* page);
+void book_view_redraw (BookView* self);
+static void book_view_page_view_size_changed_cb (BookView* self, PageView* page);
+PageView* page_view_new (Page* page);
+PageView* page_view_construct (GType object_type, Page* page);
+static void _book_view_page_view_changed_cb_page_view_changed (PageView* _sender, gpointer self);
+static void _book_view_page_view_size_changed_cb_page_view_size_changed (PageView* _sender, gpointer self);
+static void book_view_set_selected_page_view (BookView* self, PageView* page);
+void page_view_set_selected (PageView* self, gboolean value);
+static void book_view_show_page_view (BookView* self, PageView* page);
+gint page_view_get_x_offset (PageView* self);
+gint page_view_get_width (PageView* self);
+gint book_view_get_x_offset (BookView* self);
+void book_view_set_x_offset (BookView* self, gint value);
+static void book_view_select_page_view (BookView* self, PageView* page);
+Page* book_view_get_selected_page (BookView* self);
+static void book_view_layout_into (BookView* self, gint width, gint height, gint* book_width, gint* book_height);
+gint page_get_dpi (Page* self);
+gint page_get_width (Page* self);
+gint page_get_height (Page* self);
+void page_view_set_width (PageView* self, gint value);
+void page_view_set_height (PageView* self, gint value);
+gint page_view_get_height (PageView* self);
+void page_view_set_x_offset (PageView* self, gint value);
+void page_view_set_y_offset (PageView* self, gint value);
+static void book_view_layout (BookView* self);
+void page_view_render (PageView* self, cairo_t* context);
+gboolean page_view_get_selected (PageView* self);
+gint page_view_get_y_offset (PageView* self);
+static PageView* book_view_get_page_at (BookView* self, gint x, gint y, gint* x_, gint* y_);
+void page_view_button_press (PageView* self, gint x, gint y);
+void page_view_button_release (PageView* self, gint x, gint y);
+static void book_view_set_cursor (BookView* self, GdkCursorType cursor);
+void page_view_motion (PageView* self, gint x, gint y);
+GdkCursorType page_view_get_cursor (PageView* self);
+void book_view_select_next_page (BookView* self);
+void book_view_select_prev_page (BookView* self);
+static void g_cclosure_user_marshal_VOID__PAGE (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void book_view_finalize (GObject* obj);
+static void _vala_book_view_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_book_view_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+
+
+static void _book_view_add_cb_book_page_added (Book* _sender, Page* page, gpointer self) {
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_add_cb ((BookView*) self, _sender, page);
+#line 210 "book-view.c"
+}
+
+
+static void _book_view_remove_cb_book_page_removed (Book* _sender, Page* page, gpointer self) {
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_remove_cb ((BookView*) self, _sender, page);
+#line 217 "book-view.c"
+}
+
+
+static void _book_view_reorder_cb_book_reordered (Book* _sender, gpointer self) {
+#line 125 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_reorder_cb ((BookView*) self, _sender);
+#line 224 "book-view.c"
+}
+
+
+static void _book_view_clear_cb_book_cleared (Book* _sender, gpointer self) {
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_clear_cb ((BookView*) self, _sender);
+#line 231 "book-view.c"
+}
+
+
+static gboolean _book_view_configure_cb_gtk_widget_configure_event (GtkWidget* _sender, GdkEventConfigure* event, gpointer self) {
+ gboolean result;
+ result = book_view_configure_cb ((BookView*) self, _sender, event);
+#line 127 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 240 "book-view.c"
+}
+
+
+static gboolean _book_view_draw_cb_gtk_widget_draw (GtkWidget* _sender, cairo_t* cr, gpointer self) {
+ gboolean result;
+ result = book_view_draw_cb ((BookView*) self, _sender, cr);
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 249 "book-view.c"
+}
+
+
+static gboolean _book_view_motion_cb_gtk_widget_motion_notify_event (GtkWidget* _sender, GdkEventMotion* event, gpointer self) {
+ gboolean result;
+ result = book_view_motion_cb ((BookView*) self, _sender, event);
+#line 129 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 258 "book-view.c"
+}
+
+
+static gboolean _book_view_key_cb_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) {
+ gboolean result;
+ result = book_view_key_cb ((BookView*) self, _sender, event);
+#line 130 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 267 "book-view.c"
+}
+
+
+static gboolean _book_view_button_cb_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = book_view_button_cb ((BookView*) self, _sender, event);
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 276 "book-view.c"
+}
+
+
+static gboolean _book_view_button_cb_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = book_view_button_cb ((BookView*) self, _sender, event);
+#line 132 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 285 "book-view.c"
+}
+
+
+static gboolean _book_view_focus_cb_gtk_widget_focus_in_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self) {
+ gboolean result;
+ result = book_view_focus_cb ((BookView*) self, _sender, event);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 294 "book-view.c"
+}
+
+
+static gboolean _book_view_focus_cb_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self) {
+ gboolean result;
+ result = book_view_focus_cb ((BookView*) self, _sender, event);
+#line 134 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 303 "book-view.c"
+}
+
+
+static void _book_view_scroll_cb_gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self) {
+#line 135 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_scroll_cb ((BookView*) self, _sender);
+#line 310 "book-view.c"
+}
+
+
+static void _page_unref0_ (gpointer var) {
+#line 95 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ (var == NULL) ? NULL : (var = (page_unref (var), NULL));
+#line 317 "book-view.c"
+}
+
+
+static void _page_view_unref0_ (gpointer var) {
+#line 95 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ (var == NULL) ? NULL : (var = (page_view_unref (var), NULL));
+#line 324 "book-view.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 331 "book-view.c"
+}
+
+
+BookView* book_view_construct (GType object_type, Book* book) {
+ BookView * self = NULL;
+ Book* _tmp0_ = NULL;
+ Book* _tmp12_ = NULL;
+ Page* _tmp13_ = NULL;
+ Page* _tmp14_ = NULL;
+ Book* _tmp15_ = NULL;
+ Book* _tmp16_ = NULL;
+ Book* _tmp17_ = NULL;
+ Book* _tmp18_ = NULL;
+ GHashFunc _tmp19_ = NULL;
+ GEqualFunc _tmp20_ = NULL;
+ GHashTable* _tmp21_ = NULL;
+ GtkDrawingArea* _tmp22_ = NULL;
+ GtkWidget* _tmp23_ = NULL;
+ GtkWidget* _tmp24_ = NULL;
+ GtkWidget* _tmp25_ = NULL;
+ GtkWidget* _tmp26_ = NULL;
+ GtkScrollbar* _tmp27_ = NULL;
+ GtkScrollbar* _tmp28_ = NULL;
+ GtkAdjustment* _tmp29_ = NULL;
+ GtkAdjustment* _tmp30_ = NULL;
+ GtkAdjustment* _tmp31_ = NULL;
+ GtkScrollbar* _tmp32_ = NULL;
+ GtkWidget* _tmp33_ = NULL;
+ GtkWidget* _tmp34_ = NULL;
+ GtkWidget* _tmp35_ = NULL;
+ GtkWidget* _tmp36_ = NULL;
+ GtkWidget* _tmp37_ = NULL;
+ GtkWidget* _tmp38_ = NULL;
+ GtkWidget* _tmp39_ = NULL;
+ GtkWidget* _tmp40_ = NULL;
+ GtkAdjustment* _tmp41_ = NULL;
+ GtkWidget* _tmp42_ = NULL;
+#line 74 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (book != NULL, NULL);
+#line 76 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self = (BookView*) g_object_new (object_type, "orientation", GTK_ORIENTATION_VERTICAL, NULL);
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = book;
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_set_book (self, _tmp0_);
+#line 377 "book-view.c"
+ {
+ gint i = 0;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = 0;
+#line 382 "book-view.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = TRUE;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ while (TRUE) {
+#line 389 "book-view.c"
+ gint _tmp3_ = 0;
+ Book* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ guint _tmp6_ = 0U;
+ Page* page = NULL;
+ Book* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ Page* _tmp9_ = NULL;
+ Book* _tmp10_ = NULL;
+ Page* _tmp11_ = NULL;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!_tmp1_) {
+#line 402 "book-view.c"
+ gint _tmp2_ = 0;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = i;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = _tmp2_ + 1;
+#line 408 "book-view.c"
+ }
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = FALSE;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = i;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = book;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = book_get_n_pages (_tmp4_);
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = _tmp5_;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!(((guint) _tmp3_) < _tmp6_)) {
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 424 "book-view.c"
+ }
+#line 82 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp7_ = book;
+#line 82 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = i;
+#line 82 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp9_ = book_get_page (_tmp7_, _tmp8_);
+#line 82 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page = _tmp9_;
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp10_ = book;
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp11_ = page;
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_add_cb (self, _tmp10_, _tmp11_);
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (page);
+#line 442 "book-view.c"
+ }
+ }
+ }
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp12_ = book;
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp13_ = book_get_page (_tmp12_, 0);
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp14_ = _tmp13_;
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_set_selected_page (self, _tmp14_);
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (_tmp14_);
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp15_ = book;
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_connect_object (_tmp15_, "page-added", (GCallback) _book_view_add_cb_book_page_added, self, 0);
+#line 90 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp16_ = book;
+#line 90 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_connect_object (_tmp16_, "page-removed", (GCallback) _book_view_remove_cb_book_page_removed, self, 0);
+#line 91 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp17_ = book;
+#line 91 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_connect_object (_tmp17_, "reordered", (GCallback) _book_view_reorder_cb_book_reordered, self, 0);
+#line 92 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp18_ = book;
+#line 92 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_connect_object (_tmp18_, "cleared", (GCallback) _book_view_clear_cb_book_cleared, self, 0);
+#line 94 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->need_layout = TRUE;
+#line 95 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp19_ = g_direct_hash;
+#line 95 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp20_ = g_direct_equal;
+#line 95 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp21_ = g_hash_table_new_full (_tmp19_, _tmp20_, _page_unref0_, _page_view_unref0_);
+#line 95 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _g_hash_table_unref0 (self->priv->page_data);
+#line 95 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->page_data = _tmp21_;
+#line 96 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->cursor = GDK_ARROW;
+#line 98 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp22_ = (GtkDrawingArea*) gtk_drawing_area_new ();
+#line 98 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_object_ref_sink (_tmp22_);
+#line 98 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _g_object_unref0 (self->priv->drawing_area);
+#line 98 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->drawing_area = (GtkWidget*) _tmp22_;
+#line 99 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp23_ = self->priv->drawing_area;
+#line 99 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_widget_set_size_request (_tmp23_, 200, 100);
+#line 100 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp24_ = self->priv->drawing_area;
+#line 100 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_object_set (_tmp24_, "can-focus", TRUE, NULL);
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp25_ = self->priv->drawing_area;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_widget_set_events (_tmp25_, ((((GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK) | GDK_BUTTON_RELEASE_MASK) | GDK_FOCUS_CHANGE_MASK) | GDK_STRUCTURE_MASK) | GDK_SCROLL_MASK);
+#line 102 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp26_ = self->priv->drawing_area;
+#line 102 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_box_pack_start ((GtkBox*) self, _tmp26_, TRUE, TRUE, (guint) 0);
+#line 104 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp27_ = (GtkScrollbar*) gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, NULL);
+#line 104 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_object_ref_sink (_tmp27_);
+#line 104 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _g_object_unref0 (self->priv->scroll);
+#line 104 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->scroll = _tmp27_;
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp28_ = self->priv->scroll;
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp29_ = gtk_range_get_adjustment ((GtkRange*) _tmp28_);
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp30_ = _tmp29_;
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp31_ = _g_object_ref0 (_tmp30_);
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _g_object_unref0 (self->priv->adjustment);
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->adjustment = _tmp31_;
+#line 106 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp32_ = self->priv->scroll;
+#line 106 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) _tmp32_, FALSE, TRUE, (guint) 0);
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp33_ = self->priv->drawing_area;
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_connect_object (_tmp33_, "configure-event", (GCallback) _book_view_configure_cb_gtk_widget_configure_event, self, 0);
+#line 109 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp34_ = self->priv->drawing_area;
+#line 109 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_connect_object (_tmp34_, "draw", (GCallback) _book_view_draw_cb_gtk_widget_draw, self, 0);
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp35_ = self->priv->drawing_area;
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_connect_object (_tmp35_, "motion-notify-event", (GCallback) _book_view_motion_cb_gtk_widget_motion_notify_event, self, 0);
+#line 111 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp36_ = self->priv->drawing_area;
+#line 111 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_connect_object (_tmp36_, "key-press-event", (GCallback) _book_view_key_cb_gtk_widget_key_press_event, self, 0);
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp37_ = self->priv->drawing_area;
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_connect_object (_tmp37_, "button-press-event", (GCallback) _book_view_button_cb_gtk_widget_button_press_event, self, 0);
+#line 113 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp38_ = self->priv->drawing_area;
+#line 113 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_connect_object (_tmp38_, "button-release-event", (GCallback) _book_view_button_cb_gtk_widget_button_release_event, self, 0);
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp39_ = self->priv->drawing_area;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_connect_object (_tmp39_, "focus-in-event", (GCallback) _book_view_focus_cb_gtk_widget_focus_in_event, self, G_CONNECT_AFTER);
+#line 115 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp40_ = self->priv->drawing_area;
+#line 115 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_connect_object (_tmp40_, "focus-out-event", (GCallback) _book_view_focus_cb_gtk_widget_focus_out_event, self, G_CONNECT_AFTER);
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp41_ = self->priv->adjustment;
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_connect_object (_tmp41_, "value-changed", (GCallback) _book_view_scroll_cb_gtk_adjustment_value_changed, self, 0);
+#line 118 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp42_ = self->priv->drawing_area;
+#line 118 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_widget_set_visible (_tmp42_, TRUE);
+#line 74 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return self;
+#line 576 "book-view.c"
+}
+
+
+BookView* book_view_new (Book* book) {
+#line 74 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return book_view_construct (TYPE_BOOK_VIEW, book);
+#line 583 "book-view.c"
+}
+
+
+static gpointer _page_view_ref0 (gpointer self) {
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return self ? page_view_ref (self) : NULL;
+#line 590 "book-view.c"
+}
+
+
+static PageView* book_view_get_nth_page (BookView* self, gint n) {
+ PageView* result = NULL;
+ Page* page = NULL;
+ Book* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ Page* _tmp2_ = NULL;
+ GHashTable* _tmp3_ = NULL;
+ gconstpointer _tmp4_ = NULL;
+ PageView* _tmp5_ = NULL;
+#line 138 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 140 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->_book;
+#line 140 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = n;
+#line 140 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = book_get_page (_tmp0_, _tmp1_);
+#line 140 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page = _tmp2_;
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = self->priv->page_data;
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = g_hash_table_lookup (_tmp3_, page);
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = _page_view_ref0 ((PageView*) _tmp4_);
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = _tmp5_;
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (page);
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 625 "book-view.c"
+}
+
+
+static PageView* book_view_get_next_page (BookView* self, PageView* page) {
+ PageView* result = NULL;
+ PageView* _tmp18_ = NULL;
+ PageView* _tmp19_ = NULL;
+#line 144 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 144 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (page != NULL, NULL);
+#line 637 "book-view.c"
+ {
+ gint i = 0;
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = 0;
+#line 642 "book-view.c"
+ {
+ gboolean _tmp0_ = FALSE;
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = TRUE;
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ while (TRUE) {
+#line 649 "book-view.c"
+ Page* p = NULL;
+ Book* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+ Page* _tmp6_ = NULL;
+ PageView* _tmp7_ = NULL;
+ Page* _tmp8_ = NULL;
+ Page* _tmp9_ = NULL;
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!_tmp0_) {
+#line 661 "book-view.c"
+ gint _tmp1_ = 0;
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = i;
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = _tmp1_ + 1;
+#line 667 "book-view.c"
+ }
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = FALSE;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = self->priv->_book;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = i;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = book_get_page (_tmp2_, _tmp3_);
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ p = _tmp4_;
+#line 149 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = p;
+#line 149 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp5_ == NULL) {
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (p);
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 687 "book-view.c"
+ }
+#line 151 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = p;
+#line 151 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp7_ = page;
+#line 151 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = page_view_get_page (_tmp7_);
+#line 151 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp9_ = _tmp8_;
+#line 151 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp6_ == _tmp9_) {
+#line 699 "book-view.c"
+ Book* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ Page* _tmp12_ = NULL;
+ Page* _tmp13_ = NULL;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp10_ = self->priv->_book;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp11_ = i;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp12_ = book_get_page (_tmp10_, _tmp11_ + 1);
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (p);
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ p = _tmp12_;
+#line 154 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp13_ = p;
+#line 154 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp13_ != NULL) {
+#line 718 "book-view.c"
+ GHashTable* _tmp14_ = NULL;
+ Page* _tmp15_ = NULL;
+ gconstpointer _tmp16_ = NULL;
+ PageView* _tmp17_ = NULL;
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp14_ = self->priv->page_data;
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp15_ = p;
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp16_ = g_hash_table_lookup (_tmp14_, _tmp15_);
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp17_ = _page_view_ref0 ((PageView*) _tmp16_);
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = _tmp17_;
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (p);
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 737 "book-view.c"
+ }
+ }
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (p);
+#line 742 "book-view.c"
+ }
+ }
+ }
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp18_ = page;
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp19_ = _page_view_ref0 (_tmp18_);
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = _tmp19_;
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 754 "book-view.c"
+}
+
+
+static PageView* book_view_get_prev_page (BookView* self, PageView* page) {
+ PageView* result = NULL;
+ PageView* prev_page = NULL;
+ PageView* _tmp0_ = NULL;
+ PageView* _tmp1_ = NULL;
+ PageView* _tmp16_ = NULL;
+ PageView* _tmp17_ = NULL;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (page != NULL, NULL);
+#line 164 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = page;
+#line 164 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = _page_view_ref0 (_tmp0_);
+#line 164 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ prev_page = _tmp1_;
+#line 775 "book-view.c"
+ {
+ gint i = 0;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = 0;
+#line 780 "book-view.c"
+ {
+ gboolean _tmp2_ = FALSE;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = TRUE;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ while (TRUE) {
+#line 787 "book-view.c"
+ Page* p = NULL;
+ Book* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ Page* _tmp6_ = NULL;
+ Page* _tmp7_ = NULL;
+ Page* _tmp8_ = NULL;
+ PageView* _tmp9_ = NULL;
+ Page* _tmp10_ = NULL;
+ Page* _tmp11_ = NULL;
+ GHashTable* _tmp12_ = NULL;
+ Page* _tmp13_ = NULL;
+ gconstpointer _tmp14_ = NULL;
+ PageView* _tmp15_ = NULL;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!_tmp2_) {
+#line 803 "book-view.c"
+ gint _tmp3_ = 0;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = i;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = _tmp3_ + 1;
+#line 809 "book-view.c"
+ }
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = FALSE;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = self->priv->_book;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = i;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = book_get_page (_tmp4_, _tmp5_);
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ p = _tmp6_;
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp7_ = p;
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp7_ == NULL) {
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (p);
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 829 "book-view.c"
+ }
+#line 170 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = p;
+#line 170 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp9_ = page;
+#line 170 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp10_ = page_view_get_page (_tmp9_);
+#line 170 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp11_ = _tmp10_;
+#line 170 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp8_ == _tmp11_) {
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = prev_page;
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (p);
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 847 "book-view.c"
+ }
+#line 172 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp12_ = self->priv->page_data;
+#line 172 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp13_ = p;
+#line 172 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp14_ = g_hash_table_lookup (_tmp12_, _tmp13_);
+#line 172 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp15_ = _page_view_ref0 ((PageView*) _tmp14_);
+#line 172 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (prev_page);
+#line 172 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ prev_page = _tmp15_;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (p);
+#line 863 "book-view.c"
+ }
+ }
+ }
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp16_ = page;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp17_ = _page_view_ref0 (_tmp16_);
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = _tmp17_;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (prev_page);
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 877 "book-view.c"
+}
+
+
+static void book_view_page_view_changed_cb (BookView* self, PageView* page) {
+#line 178 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 178 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (page != NULL);
+#line 180 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_redraw (self);
+#line 888 "book-view.c"
+}
+
+
+static void book_view_page_view_size_changed_cb (BookView* self, PageView* page) {
+#line 183 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 183 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (page != NULL);
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->need_layout = TRUE;
+#line 186 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_redraw (self);
+#line 901 "book-view.c"
+}
+
+
+static void _book_view_page_view_changed_cb_page_view_changed (PageView* _sender, gpointer self) {
+#line 192 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_page_view_changed_cb ((BookView*) self, _sender);
+#line 908 "book-view.c"
+}
+
+
+static void _book_view_page_view_size_changed_cb_page_view_size_changed (PageView* _sender, gpointer self) {
+#line 193 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_page_view_size_changed_cb ((BookView*) self, _sender);
+#line 915 "book-view.c"
+}
+
+
+static gpointer _page_ref0 (gpointer self) {
+#line 194 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return self ? page_ref (self) : NULL;
+#line 922 "book-view.c"
+}
+
+
+static void book_view_add_cb (BookView* self, Book* book, Page* page) {
+ PageView* page_view = NULL;
+ Page* _tmp0_ = NULL;
+ PageView* _tmp1_ = NULL;
+ GHashTable* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ PageView* _tmp5_ = NULL;
+#line 189 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 189 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (book != NULL);
+#line 189 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (page != NULL);
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = page;
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = page_view_new (_tmp0_);
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page_view = _tmp1_;
+#line 192 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_connect_object (page_view, "changed", (GCallback) _book_view_page_view_changed_cb_page_view_changed, self, 0);
+#line 193 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_connect_object (page_view, "size-changed", (GCallback) _book_view_page_view_size_changed_cb_page_view_size_changed, self, 0);
+#line 194 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = self->priv->page_data;
+#line 194 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = page;
+#line 194 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = _page_ref0 (_tmp3_);
+#line 194 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = _page_view_ref0 (page_view);
+#line 194 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_hash_table_insert (_tmp2_, _tmp4_, _tmp5_);
+#line 195 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->need_layout = TRUE;
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_redraw (self);
+#line 189 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (page_view);
+#line 966 "book-view.c"
+}
+
+
+static void book_view_set_selected_page_view (BookView* self, PageView* page) {
+ gboolean _tmp0_ = FALSE;
+ PageView* _tmp1_ = NULL;
+ PageView* _tmp5_ = NULL;
+ PageView* _tmp6_ = NULL;
+ PageView* _tmp7_ = NULL;
+ GtkWidget* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 199 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = self->priv->selected_page_view;
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp1_ != NULL) {
+#line 985 "book-view.c"
+ PageView* _tmp2_ = NULL;
+ PageView* _tmp3_ = NULL;
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = page;
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = self->priv->selected_page_view;
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = _tmp2_ != _tmp3_;
+#line 994 "book-view.c"
+ } else {
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = FALSE;
+#line 998 "book-view.c"
+ }
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp0_) {
+#line 1002 "book-view.c"
+ PageView* _tmp4_ = NULL;
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = self->priv->selected_page_view;
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page_view_set_selected (_tmp4_, TRUE);
+#line 1008 "book-view.c"
+ }
+#line 205 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = page;
+#line 205 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = _page_view_ref0 (_tmp5_);
+#line 205 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (self->priv->selected_page_view);
+#line 205 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->selected_page_view = _tmp6_;
+#line 206 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp7_ = self->priv->selected_page_view;
+#line 206 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp7_ == NULL) {
+#line 207 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return;
+#line 1024 "book-view.c"
+ }
+#line 210 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = self->priv->drawing_area;
+#line 210 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_object_get (_tmp8_, "has-focus", &_tmp9_, NULL);
+#line 210 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp10_ = _tmp9_;
+#line 210 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!_tmp10_) {
+#line 1034 "book-view.c"
+ PageView* _tmp11_ = NULL;
+#line 211 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp11_ = self->priv->selected_page_view;
+#line 211 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page_view_set_selected (_tmp11_, FALSE);
+#line 1040 "book-view.c"
+ } else {
+ PageView* _tmp12_ = NULL;
+#line 213 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp12_ = self->priv->selected_page_view;
+#line 213 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page_view_set_selected (_tmp12_, TRUE);
+#line 1047 "book-view.c"
+ }
+}
+
+
+static void book_view_show_page_view (BookView* self, PageView* page) {
+ gboolean _tmp0_ = FALSE;
+ PageView* _tmp1_ = NULL;
+ GtkAllocation allocation = {0};
+ GtkWidget* _tmp4_ = NULL;
+ GtkAllocation _tmp5_ = {0};
+ gint left_edge = 0;
+ PageView* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint right_edge = 0;
+ PageView* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ PageView* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+#line 216 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = page;
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp1_ == NULL) {
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = TRUE;
+#line 1080 "book-view.c"
+ } else {
+ GtkScrollbar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = self->priv->scroll;
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = gtk_widget_get_visible ((GtkWidget*) _tmp2_);
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = !_tmp3_;
+#line 1090 "book-view.c"
+ }
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp0_) {
+#line 219 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return;
+#line 1096 "book-view.c"
+ }
+#line 222 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = self->priv->drawing_area;
+#line 222 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_widget_get_allocation (_tmp4_, &_tmp5_);
+#line 222 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ allocation = _tmp5_;
+#line 223 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = page;
+#line 223 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp7_ = page_view_get_x_offset (_tmp6_);
+#line 223 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = _tmp7_;
+#line 223 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ left_edge = _tmp8_;
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp9_ = page;
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp10_ = page_view_get_x_offset (_tmp9_);
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp11_ = _tmp10_;
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp12_ = page;
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp13_ = page_view_get_width (_tmp12_);
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp14_ = _tmp13_;
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ right_edge = _tmp11_ + _tmp14_;
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp15_ = left_edge;
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp16_ = book_view_get_x_offset (self);
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp17_ = _tmp16_;
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if ((_tmp15_ - _tmp17_) < 0) {
+#line 1134 "book-view.c"
+ gint _tmp18_ = 0;
+#line 227 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp18_ = left_edge;
+#line 227 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_set_x_offset (self, _tmp18_);
+#line 1140 "book-view.c"
+ } else {
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ GtkAllocation _tmp22_ = {0};
+ gint _tmp23_ = 0;
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp19_ = right_edge;
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp20_ = book_view_get_x_offset (self);
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp21_ = _tmp20_;
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp22_ = allocation;
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp23_ = _tmp22_.width;
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if ((_tmp19_ - _tmp21_) > _tmp23_) {
+#line 1159 "book-view.c"
+ gint _tmp24_ = 0;
+ GtkAllocation _tmp25_ = {0};
+ gint _tmp26_ = 0;
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp24_ = right_edge;
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp25_ = allocation;
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp26_ = _tmp25_.width;
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_set_x_offset (self, _tmp24_ - _tmp26_);
+#line 1171 "book-view.c"
+ }
+ }
+}
+
+
+static void book_view_select_page_view (BookView* self, PageView* page) {
+ Page* p = NULL;
+ PageView* _tmp0_ = NULL;
+ PageView* _tmp1_ = NULL;
+ PageView* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ PageView* _tmp5_ = NULL;
+ Page* _tmp10_ = NULL;
+#line 232 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 234 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ p = NULL;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->selected_page_view;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = page;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (p);
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return;
+#line 1199 "book-view.c"
+ }
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = page;
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_set_selected_page_view (self, _tmp2_);
+#line 241 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = self->priv->need_layout;
+#line 241 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp3_) {
+#line 242 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->show_selected_page = TRUE;
+#line 1211 "book-view.c"
+ } else {
+ PageView* _tmp4_ = NULL;
+#line 244 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = page;
+#line 244 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_show_page_view (self, _tmp4_);
+#line 1218 "book-view.c"
+ }
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = page;
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp5_ != NULL) {
+#line 1224 "book-view.c"
+ PageView* _tmp6_ = NULL;
+ Page* _tmp7_ = NULL;
+ Page* _tmp8_ = NULL;
+ Page* _tmp9_ = NULL;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = page;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp7_ = page_view_get_page (_tmp6_);
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = _tmp7_;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp9_ = _page_ref0 (_tmp8_);
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (p);
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ p = _tmp9_;
+#line 1241 "book-view.c"
+ }
+#line 248 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp10_ = p;
+#line 248 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_emit_by_name (self, "page-selected", _tmp10_);
+#line 232 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (p);
+#line 1249 "book-view.c"
+}
+
+
+static void book_view_remove_cb (BookView* self, Book* book, Page* page) {
+ PageView* new_selection = NULL;
+ PageView* _tmp0_ = NULL;
+ PageView* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ PageView* page_view = NULL;
+ GHashTable* _tmp11_ = NULL;
+ Page* _tmp12_ = NULL;
+ gconstpointer _tmp13_ = NULL;
+ PageView* _tmp14_ = NULL;
+ guint _tmp15_ = 0U;
+ guint _tmp16_ = 0U;
+ GHashTable* _tmp17_ = NULL;
+ Page* _tmp18_ = NULL;
+ PageView* _tmp19_ = NULL;
+#line 251 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 251 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (book != NULL);
+#line 251 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (page != NULL);
+#line 253 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->selected_page_view;
+#line 253 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = _page_view_ref0 (_tmp0_);
+#line 253 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ new_selection = _tmp1_;
+#line 256 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = page;
+#line 256 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = book_view_get_selected_page (self);
+#line 256 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = _tmp3_;
+#line 256 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp2_ == _tmp4_) {
+#line 1290 "book-view.c"
+ PageView* _tmp5_ = NULL;
+ PageView* _tmp6_ = NULL;
+ PageView* _tmp7_ = NULL;
+ PageView* _tmp8_ = NULL;
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = self->priv->selected_page_view;
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = book_view_get_prev_page (self, _tmp5_);
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (new_selection);
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ new_selection = _tmp6_;
+#line 259 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp7_ = new_selection;
+#line 259 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = self->priv->selected_page_view;
+#line 259 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp7_ == _tmp8_) {
+#line 1309 "book-view.c"
+ PageView* _tmp9_ = NULL;
+ PageView* _tmp10_ = NULL;
+#line 260 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp9_ = self->priv->selected_page_view;
+#line 260 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp10_ = book_view_get_next_page (self, _tmp9_);
+#line 260 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (new_selection);
+#line 260 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ new_selection = _tmp10_;
+#line 1320 "book-view.c"
+ }
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (self->priv->selected_page_view);
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->selected_page_view = NULL;
+#line 1326 "book-view.c"
+ }
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp11_ = self->priv->page_data;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp12_ = page;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp13_ = g_hash_table_lookup (_tmp11_, _tmp12_);
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp14_ = _page_view_ref0 ((PageView*) _tmp13_);
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page_view = _tmp14_;
+#line 265 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_parse_name ("changed", TYPE_PAGE_VIEW, &_tmp15_, NULL, FALSE);
+#line 265 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_handlers_disconnect_matched (page_view, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp15_, 0, NULL, (GCallback) _book_view_page_view_changed_cb_page_view_changed, self);
+#line 266 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_parse_name ("size-changed", TYPE_PAGE_VIEW, &_tmp16_, NULL, FALSE);
+#line 266 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_handlers_disconnect_matched (page_view, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp16_, 0, NULL, (GCallback) _book_view_page_view_size_changed_cb_page_view_size_changed, self);
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp17_ = self->priv->page_data;
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp18_ = page;
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_hash_table_remove (_tmp17_, _tmp18_);
+#line 269 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp19_ = new_selection;
+#line 269 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_select_page_view (self, _tmp19_);
+#line 271 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->need_layout = TRUE;
+#line 272 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_redraw (self);
+#line 251 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (page_view);
+#line 251 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (new_selection);
+#line 1364 "book-view.c"
+}
+
+
+static void book_view_reorder_cb (BookView* self, Book* book) {
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (book != NULL);
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->need_layout = TRUE;
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_redraw (self);
+#line 1377 "book-view.c"
+}
+
+
+static void book_view_clear_cb (BookView* self, Book* book) {
+ GHashTable* _tmp0_ = NULL;
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (book != NULL);
+#line 283 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->page_data;
+#line 283 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_hash_table_remove_all (_tmp0_);
+#line 284 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (self->priv->selected_page_view);
+#line 284 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->selected_page_view = NULL;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_emit_by_name (self, "page-selected", NULL);
+#line 286 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->need_layout = TRUE;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_redraw (self);
+#line 1401 "book-view.c"
+}
+
+
+static gboolean book_view_configure_cb (BookView* self, GtkWidget* widget, GdkEventConfigure* event) {
+ gboolean result = FALSE;
+#line 290 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 290 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (widget != NULL, FALSE);
+#line 290 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 292 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->need_layout = TRUE;
+#line 293 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = FALSE;
+#line 293 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 1419 "book-view.c"
+}
+
+
+static void book_view_layout_into (BookView* self, gint width, gint height, gint* book_width, gint* book_height) {
+ gint _vala_book_width = 0;
+ gint _vala_book_height = 0;
+ gint max_dpi = 0;
+ gint max_width = 0;
+ gint max_height = 0;
+ gdouble aspect = 0.0;
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+ gdouble max_aspect = 0.0;
+ gint _tmp49_ = 0;
+ gint _tmp50_ = 0;
+ gint spacing = 0;
+ gint x_offset = 0;
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 299 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ max_dpi = 0;
+#line 1441 "book-view.c"
+ {
+ gint i = 0;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = 0;
+#line 1446 "book-view.c"
+ {
+ gboolean _tmp0_ = FALSE;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = TRUE;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ while (TRUE) {
+#line 1453 "book-view.c"
+ gint _tmp2_ = 0;
+ Book* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+ guint _tmp5_ = 0U;
+ Page* page = NULL;
+ Book* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ Page* _tmp8_ = NULL;
+ Page* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!_tmp0_) {
+#line 1468 "book-view.c"
+ gint _tmp1_ = 0;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = i;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = _tmp1_ + 1;
+#line 1474 "book-view.c"
+ }
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = FALSE;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = i;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = self->priv->_book;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = book_get_n_pages (_tmp3_);
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = _tmp4_;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!(((guint) _tmp2_) < _tmp5_)) {
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 1490 "book-view.c"
+ }
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = self->priv->_book;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp7_ = i;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = book_get_page (_tmp6_, _tmp7_);
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page = _tmp8_;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp9_ = page;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp10_ = page_get_dpi (_tmp9_);
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp11_ = _tmp10_;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp12_ = max_dpi;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp11_ > _tmp12_) {
+#line 1510 "book-view.c"
+ Page* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp13_ = page;
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp14_ = page_get_dpi (_tmp13_);
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp15_ = _tmp14_;
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ max_dpi = _tmp15_;
+#line 1522 "book-view.c"
+ }
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (page);
+#line 1526 "book-view.c"
+ }
+ }
+ }
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ max_width = 0;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ max_height = 0;
+#line 1534 "book-view.c"
+ {
+ gint i = 0;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = 0;
+#line 1539 "book-view.c"
+ {
+ gboolean _tmp16_ = FALSE;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp16_ = TRUE;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ while (TRUE) {
+#line 1546 "book-view.c"
+ gint _tmp18_ = 0;
+ Book* _tmp19_ = NULL;
+ guint _tmp20_ = 0U;
+ guint _tmp21_ = 0U;
+ Page* page = NULL;
+ Book* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ Page* _tmp24_ = NULL;
+ gint w = 0;
+ Page* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gint h = 0;
+ Page* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ Page* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ Page* _tmp38_ = NULL;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!_tmp16_) {
+#line 1579 "book-view.c"
+ gint _tmp17_ = 0;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp17_ = i;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = _tmp17_ + 1;
+#line 1585 "book-view.c"
+ }
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp16_ = FALSE;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp18_ = i;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp19_ = self->priv->_book;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp20_ = book_get_n_pages (_tmp19_);
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp21_ = _tmp20_;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!(((guint) _tmp18_) < _tmp21_)) {
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 1601 "book-view.c"
+ }
+#line 311 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp22_ = self->priv->_book;
+#line 311 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp23_ = i;
+#line 311 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp24_ = book_get_page (_tmp22_, _tmp23_);
+#line 311 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page = _tmp24_;
+#line 312 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp25_ = page;
+#line 312 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp26_ = page_get_width (_tmp25_);
+#line 312 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp27_ = _tmp26_;
+#line 312 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ w = _tmp27_;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp28_ = page;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp29_ = page_get_height (_tmp28_);
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp30_ = _tmp29_;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ h = _tmp30_;
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp31_ = w;
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp32_ = max_dpi;
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp33_ = page;
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp34_ = page_get_dpi (_tmp33_);
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp35_ = _tmp34_;
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ w = (gint) (((((gdouble) _tmp31_) * _tmp32_) / _tmp35_) + 0.5);
+#line 317 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp36_ = h;
+#line 317 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp37_ = max_dpi;
+#line 317 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp38_ = page;
+#line 317 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp39_ = page_get_dpi (_tmp38_);
+#line 317 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp40_ = _tmp39_;
+#line 317 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ h = (gint) (((((gdouble) _tmp36_) * _tmp37_) / _tmp40_) + 0.5);
+#line 319 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp41_ = w;
+#line 319 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp42_ = max_width;
+#line 319 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp41_ > _tmp42_) {
+#line 1657 "book-view.c"
+ gint _tmp43_ = 0;
+#line 320 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp43_ = w;
+#line 320 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ max_width = _tmp43_;
+#line 1663 "book-view.c"
+ }
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp44_ = h;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp45_ = max_height;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp44_ > _tmp45_) {
+#line 1671 "book-view.c"
+ gint _tmp46_ = 0;
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp46_ = h;
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ max_height = _tmp46_;
+#line 1677 "book-view.c"
+ }
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (page);
+#line 1681 "book-view.c"
+ }
+ }
+ }
+#line 325 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp47_ = width;
+#line 325 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp48_ = height;
+#line 325 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ aspect = ((gdouble) _tmp47_) / _tmp48_;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp49_ = max_width;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp50_ = max_height;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ max_aspect = ((gdouble) _tmp49_) / _tmp50_;
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ spacing = 12;
+#line 330 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _vala_book_width = 0;
+#line 331 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _vala_book_height = 0;
+#line 1703 "book-view.c"
+ {
+ gint i = 0;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = 0;
+#line 1708 "book-view.c"
+ {
+ gboolean _tmp51_ = FALSE;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp51_ = TRUE;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ while (TRUE) {
+#line 1715 "book-view.c"
+ gint _tmp53_ = 0;
+ Book* _tmp54_ = NULL;
+ guint _tmp55_ = 0U;
+ guint _tmp56_ = 0U;
+ PageView* page = NULL;
+ gint _tmp57_ = 0;
+ PageView* _tmp58_ = NULL;
+ Page* p = NULL;
+ PageView* _tmp59_ = NULL;
+ Page* _tmp60_ = NULL;
+ Page* _tmp61_ = NULL;
+ Page* _tmp62_ = NULL;
+ gdouble _tmp63_ = 0.0;
+ gdouble _tmp64_ = 0.0;
+ gint h = 0;
+ PageView* _tmp87_ = NULL;
+ gint _tmp88_ = 0;
+ gint _tmp89_ = 0;
+ gint _tmp90_ = 0;
+ gint _tmp91_ = 0;
+ gint _tmp93_ = 0;
+ PageView* _tmp94_ = NULL;
+ gint _tmp95_ = 0;
+ gint _tmp96_ = 0;
+ gint _tmp97_ = 0;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!_tmp51_) {
+#line 1743 "book-view.c"
+ gint _tmp52_ = 0;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp52_ = i;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = _tmp52_ + 1;
+#line 1749 "book-view.c"
+ }
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp51_ = FALSE;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp53_ = i;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp54_ = self->priv->_book;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp55_ = book_get_n_pages (_tmp54_);
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp56_ = _tmp55_;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!(((guint) _tmp53_) < _tmp56_)) {
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 1765 "book-view.c"
+ }
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp57_ = i;
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp58_ = book_view_get_nth_page (self, _tmp57_);
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page = _tmp58_;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp59_ = page;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp60_ = page_view_get_page (_tmp59_);
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp61_ = _tmp60_;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp62_ = _page_ref0 (_tmp61_);
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ p = _tmp62_;
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp63_ = max_aspect;
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp64_ = aspect;
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp63_ > _tmp64_) {
+#line 1789 "book-view.c"
+ gint w = 0;
+ Page* _tmp65_ = NULL;
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+ Page* _tmp70_ = NULL;
+ gint _tmp71_ = 0;
+ gint _tmp72_ = 0;
+ gint _tmp73_ = 0;
+ PageView* _tmp74_ = NULL;
+ gint _tmp75_ = 0;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp65_ = p;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp66_ = page_get_width (_tmp65_);
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp67_ = _tmp66_;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp68_ = max_dpi;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp69_ = width;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp70_ = p;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp71_ = page_get_dpi (_tmp70_);
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp72_ = _tmp71_;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp73_ = max_width;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ w = (gint) (((((gdouble) _tmp67_) * _tmp68_) * _tmp69_) / (_tmp72_ * _tmp73_));
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp74_ = page;
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp75_ = w;
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page_view_set_width (_tmp74_, _tmp75_);
+#line 1828 "book-view.c"
+ } else {
+ gint h = 0;
+ Page* _tmp76_ = NULL;
+ gint _tmp77_ = 0;
+ gint _tmp78_ = 0;
+ gint _tmp79_ = 0;
+ gint _tmp80_ = 0;
+ Page* _tmp81_ = NULL;
+ gint _tmp82_ = 0;
+ gint _tmp83_ = 0;
+ gint _tmp84_ = 0;
+ PageView* _tmp85_ = NULL;
+ gint _tmp86_ = 0;
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp76_ = p;
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp77_ = page_get_height (_tmp76_);
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp78_ = _tmp77_;
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp79_ = max_dpi;
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp80_ = height;
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp81_ = p;
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp82_ = page_get_dpi (_tmp81_);
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp83_ = _tmp82_;
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp84_ = max_height;
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ h = (gint) (((((gdouble) _tmp78_) * _tmp79_) * _tmp80_) / (_tmp83_ * _tmp84_));
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp85_ = page;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp86_ = h;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page_view_set_height (_tmp85_, _tmp86_);
+#line 1868 "book-view.c"
+ }
+#line 351 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp87_ = page;
+#line 351 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp88_ = page_view_get_height (_tmp87_);
+#line 351 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp89_ = _tmp88_;
+#line 351 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ h = _tmp89_;
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp90_ = h;
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp91_ = _vala_book_height;
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp90_ > _tmp91_) {
+#line 1884 "book-view.c"
+ gint _tmp92_ = 0;
+#line 353 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp92_ = h;
+#line 353 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _vala_book_height = _tmp92_;
+#line 1890 "book-view.c"
+ }
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp93_ = _vala_book_width;
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp94_ = page;
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp95_ = page_view_get_width (_tmp94_);
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp96_ = _tmp95_;
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _vala_book_width = _tmp93_ + _tmp96_;
+#line 355 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp97_ = i;
+#line 355 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp97_ != 0) {
+#line 1906 "book-view.c"
+ gint _tmp98_ = 0;
+ gint _tmp99_ = 0;
+#line 356 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp98_ = _vala_book_width;
+#line 356 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp99_ = spacing;
+#line 356 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _vala_book_width = _tmp98_ + _tmp99_;
+#line 1915 "book-view.c"
+ }
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (p);
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (page);
+#line 1921 "book-view.c"
+ }
+ }
+ }
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ x_offset = 0;
+#line 1927 "book-view.c"
+ {
+ gint i = 0;
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = 0;
+#line 1932 "book-view.c"
+ {
+ gboolean _tmp100_ = FALSE;
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp100_ = TRUE;
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ while (TRUE) {
+#line 1939 "book-view.c"
+ gint _tmp102_ = 0;
+ Book* _tmp103_ = NULL;
+ guint _tmp104_ = 0U;
+ guint _tmp105_ = 0U;
+ PageView* page = NULL;
+ gint _tmp106_ = 0;
+ PageView* _tmp107_ = NULL;
+ PageView* _tmp108_ = NULL;
+ gint _tmp109_ = 0;
+ gint _tmp110_ = 0;
+ PageView* _tmp111_ = NULL;
+ gint _tmp112_ = 0;
+ gint _tmp113_ = 0;
+ gint _tmp114_ = 0;
+ PageView* _tmp115_ = NULL;
+ gint _tmp116_ = 0;
+ PageView* _tmp117_ = NULL;
+ gint _tmp118_ = 0;
+ gint _tmp119_ = 0;
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!_tmp100_) {
+#line 1961 "book-view.c"
+ gint _tmp101_ = 0;
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp101_ = i;
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = _tmp101_ + 1;
+#line 1967 "book-view.c"
+ }
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp100_ = FALSE;
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp102_ = i;
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp103_ = self->priv->_book;
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp104_ = book_get_n_pages (_tmp103_);
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp105_ = _tmp104_;
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!(((guint) _tmp102_) < _tmp105_)) {
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 1983 "book-view.c"
+ }
+#line 362 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp106_ = i;
+#line 362 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp107_ = book_view_get_nth_page (self, _tmp106_);
+#line 362 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page = _tmp107_;
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp108_ = page;
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp109_ = x_offset;
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page_view_set_x_offset (_tmp108_, _tmp109_);
+#line 366 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp110_ = x_offset;
+#line 366 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp111_ = page;
+#line 366 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp112_ = page_view_get_width (_tmp111_);
+#line 366 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp113_ = _tmp112_;
+#line 366 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp114_ = spacing;
+#line 366 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ x_offset = _tmp110_ + (_tmp113_ + _tmp114_);
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp115_ = page;
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp116_ = height;
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp117_ = page;
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp118_ = page_view_get_height (_tmp117_);
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp119_ = _tmp118_;
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page_view_set_y_offset (_tmp115_, (_tmp116_ - _tmp119_) / 2);
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (page);
+#line 2023 "book-view.c"
+ }
+ }
+ }
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (book_width) {
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ *book_width = _vala_book_width;
+#line 2031 "book-view.c"
+ }
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (book_height) {
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ *book_height = _vala_book_height;
+#line 2037 "book-view.c"
+ }
+}
+
+
+static void book_view_layout (BookView* self) {
+ gboolean _tmp0_ = FALSE;
+ GtkAllocation allocation = {0};
+ GtkWidget* _tmp1_ = NULL;
+ GtkAllocation _tmp2_ = {0};
+ GtkAllocation box_allocation = {0};
+ GtkAllocation _tmp3_ = {0};
+ gboolean right_aligned = FALSE;
+ GtkAdjustment* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ GtkAdjustment* _tmp6_ = NULL;
+ gdouble _tmp7_ = 0.0;
+ GtkAdjustment* _tmp8_ = NULL;
+ gdouble _tmp9_ = 0.0;
+ gint width = 0;
+ GtkAllocation _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ gint height = 0;
+ GtkAllocation _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ guint _tmp14_ = 0U;
+ gint book_width = 0;
+ gint book_height = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ GtkAllocation _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ gboolean _tmp54_ = FALSE;
+#line 373 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->need_layout;
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!_tmp0_) {
+#line 376 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return;
+#line 2081 "book-view.c"
+ }
+#line 378 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->laying_out = TRUE;
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = self->priv->drawing_area;
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_widget_get_allocation (_tmp1_, &_tmp2_);
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ allocation = _tmp2_;
+#line 383 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_widget_get_allocation ((GtkWidget*) self, &_tmp3_);
+#line 383 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ box_allocation = _tmp3_;
+#line 386 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ right_aligned = TRUE;
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = self->priv->adjustment;
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = gtk_adjustment_get_value (_tmp4_);
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = self->priv->adjustment;
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp7_ = gtk_adjustment_get_upper (_tmp6_);
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = self->priv->adjustment;
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp9_ = gtk_adjustment_get_page_size (_tmp8_);
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp5_ < (_tmp7_ - _tmp9_)) {
+#line 388 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ right_aligned = FALSE;
+#line 2113 "book-view.c"
+ }
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp10_ = allocation;
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp11_ = _tmp10_.width;
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ width = (gint) _tmp11_;
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp12_ = box_allocation;
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp13_ = _tmp12_.height;
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp14_ = gtk_container_get_border_width ((GtkContainer*) self);
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ height = (gint) (_tmp13_ - (_tmp14_ * 2));
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp15_ = width;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp16_ = height;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_layout_into (self, _tmp15_, _tmp16_, &_tmp17_, &_tmp18_);
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_width = _tmp17_;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_height = _tmp18_;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp19_ = book_width;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp20_ = allocation;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp21_ = _tmp20_.width;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp19_ > _tmp21_) {
+#line 2147 "book-view.c"
+ GtkAllocation _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ GtkAdjustment* _tmp28_ = NULL;
+ GtkAdjustment* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ GtkAdjustment* _tmp31_ = NULL;
+ GtkAllocation _tmp32_ = {0};
+ gint _tmp33_ = 0;
+ gint max_offset = 0;
+ gint _tmp34_ = 0;
+ GtkAllocation _tmp35_ = {0};
+ gint _tmp36_ = 0;
+ gboolean _tmp37_ = FALSE;
+ gboolean _tmp38_ = FALSE;
+ GtkScrollbar* _tmp43_ = NULL;
+#line 400 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp22_ = allocation;
+#line 400 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp23_ = _tmp22_.height;
+#line 400 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ height = _tmp23_;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp24_ = width;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp25_ = height;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_layout_into (self, _tmp24_, _tmp25_, &_tmp26_, &_tmp27_);
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_width = _tmp26_;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_height = _tmp27_;
+#line 404 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp28_ = self->priv->adjustment;
+#line 404 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_adjustment_set_lower (_tmp28_, (gdouble) 0);
+#line 405 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp29_ = self->priv->adjustment;
+#line 405 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp30_ = book_width;
+#line 405 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_adjustment_set_upper (_tmp29_, (gdouble) _tmp30_);
+#line 406 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp31_ = self->priv->adjustment;
+#line 406 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp32_ = allocation;
+#line 406 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp33_ = _tmp32_.width;
+#line 406 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_adjustment_set_page_size (_tmp31_, (gdouble) _tmp33_);
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp34_ = book_width;
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp35_ = allocation;
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp36_ = _tmp35_.width;
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ max_offset = _tmp34_ - _tmp36_;
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp38_ = right_aligned;
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp38_) {
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp37_ = TRUE;
+#line 2215 "book-view.c"
+ } else {
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp39_ = book_view_get_x_offset (self);
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp40_ = _tmp39_;
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp41_ = max_offset;
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp37_ = _tmp40_ > _tmp41_;
+#line 2228 "book-view.c"
+ }
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp37_) {
+#line 2232 "book-view.c"
+ gint _tmp42_ = 0;
+#line 411 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp42_ = max_offset;
+#line 411 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_set_x_offset (self, _tmp42_);
+#line 2238 "book-view.c"
+ }
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp43_ = self->priv->scroll;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp43_, TRUE);
+#line 2244 "book-view.c"
+ } else {
+ GtkScrollbar* _tmp44_ = NULL;
+ gint offset = 0;
+ gint _tmp45_ = 0;
+ GtkAllocation _tmp46_ = {0};
+ gint _tmp47_ = 0;
+ GtkAdjustment* _tmp48_ = NULL;
+ gint _tmp49_ = 0;
+ GtkAdjustment* _tmp50_ = NULL;
+ gint _tmp51_ = 0;
+ GtkAdjustment* _tmp52_ = NULL;
+ gint _tmp53_ = 0;
+#line 417 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp44_ = self->priv->scroll;
+#line 417 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp44_, FALSE);
+#line 418 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp45_ = book_width;
+#line 418 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp46_ = allocation;
+#line 418 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp47_ = _tmp46_.width;
+#line 418 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ offset = (_tmp45_ - _tmp47_) / 2;
+#line 419 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp48_ = self->priv->adjustment;
+#line 419 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp49_ = offset;
+#line 419 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_adjustment_set_lower (_tmp48_, (gdouble) _tmp49_);
+#line 420 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp50_ = self->priv->adjustment;
+#line 420 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp51_ = offset;
+#line 420 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_adjustment_set_upper (_tmp50_, (gdouble) _tmp51_);
+#line 421 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp52_ = self->priv->adjustment;
+#line 421 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_adjustment_set_page_size (_tmp52_, (gdouble) 0);
+#line 422 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp53_ = offset;
+#line 422 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_set_x_offset (self, _tmp53_);
+#line 2289 "book-view.c"
+ }
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp54_ = self->priv->show_selected_page;
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp54_) {
+#line 2295 "book-view.c"
+ PageView* _tmp55_ = NULL;
+#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp55_ = self->priv->selected_page_view;
+#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_show_page_view (self, _tmp55_);
+#line 2301 "book-view.c"
+ }
+#line 428 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->need_layout = FALSE;
+#line 429 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->show_selected_page = FALSE;
+#line 430 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->laying_out = FALSE;
+#line 2309 "book-view.c"
+}
+
+
+static gboolean book_view_draw_cb (BookView* self, GtkWidget* widget, cairo_t* context) {
+ gboolean result = FALSE;
+ Book* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ guint _tmp2_ = 0U;
+ gdouble left = 0.0;
+ gdouble top = 0.0;
+ gdouble right = 0.0;
+ gdouble bottom = 0.0;
+ cairo_t* _tmp3_ = NULL;
+ gdouble _tmp4_ = 0.0;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+ gdouble _tmp7_ = 0.0;
+#line 433 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 433 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (widget != NULL, FALSE);
+#line 433 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (context != NULL, FALSE);
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->_book;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = book_get_n_pages (_tmp0_);
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = _tmp1_;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp2_ == ((guint) 0)) {
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = FALSE;
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 2345 "book-view.c"
+ }
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_layout (self);
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = context;
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ cairo_clip_extents (_tmp3_, &_tmp4_, &_tmp5_, &_tmp6_, &_tmp7_);
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ left = _tmp4_;
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ top = _tmp5_;
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ right = _tmp6_;
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ bottom = _tmp7_;
+#line 2361 "book-view.c"
+ {
+ gint i = 0;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = 0;
+#line 2366 "book-view.c"
+ {
+ gboolean _tmp8_ = FALSE;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = TRUE;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ while (TRUE) {
+#line 2373 "book-view.c"
+ gint _tmp10_ = 0;
+ Book* _tmp11_ = NULL;
+ guint _tmp12_ = 0U;
+ guint _tmp13_ = 0U;
+ PageView* page = NULL;
+ gint _tmp14_ = 0;
+ PageView* _tmp15_ = NULL;
+ gint left_edge = 0;
+ PageView* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint right_edge = 0;
+ PageView* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ PageView* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ gboolean _tmp29_ = FALSE;
+ gint _tmp30_ = 0;
+ gdouble _tmp31_ = 0.0;
+ cairo_t* _tmp34_ = NULL;
+ cairo_t* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ PageView* _tmp38_ = NULL;
+ cairo_t* _tmp39_ = NULL;
+ cairo_t* _tmp40_ = NULL;
+ PageView* _tmp41_ = NULL;
+ gboolean _tmp42_ = FALSE;
+ gboolean _tmp43_ = FALSE;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!_tmp8_) {
+#line 2411 "book-view.c"
+ gint _tmp9_ = 0;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp9_ = i;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = _tmp9_ + 1;
+#line 2417 "book-view.c"
+ }
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = FALSE;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp10_ = i;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp11_ = self->priv->_book;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp12_ = book_get_n_pages (_tmp11_);
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp13_ = _tmp12_;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!(((guint) _tmp10_) < _tmp13_)) {
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 2433 "book-view.c"
+ }
+#line 446 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp14_ = i;
+#line 446 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp15_ = book_view_get_nth_page (self, _tmp14_);
+#line 446 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page = _tmp15_;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp16_ = page;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp17_ = page_view_get_x_offset (_tmp16_);
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp18_ = _tmp17_;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp19_ = book_view_get_x_offset (self);
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp20_ = _tmp19_;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ left_edge = _tmp18_ - _tmp20_;
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp21_ = page;
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp22_ = page_view_get_x_offset (_tmp21_);
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp23_ = _tmp22_;
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp24_ = page;
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp25_ = page_view_get_width (_tmp24_);
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp26_ = _tmp25_;
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp27_ = book_view_get_x_offset (self);
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp28_ = _tmp27_;
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ right_edge = (_tmp23_ + _tmp26_) - _tmp28_;
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp30_ = right_edge;
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp31_ = left;
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (((gdouble) _tmp30_) < _tmp31_) {
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp29_ = TRUE;
+#line 2479 "book-view.c"
+ } else {
+ gint _tmp32_ = 0;
+ gdouble _tmp33_ = 0.0;
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp32_ = left_edge;
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp33_ = right;
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp29_ = ((gdouble) _tmp32_) > _tmp33_;
+#line 2489 "book-view.c"
+ }
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp29_) {
+#line 452 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (page);
+#line 452 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ continue;
+#line 2497 "book-view.c"
+ }
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp34_ = context;
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ cairo_save (_tmp34_);
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp35_ = context;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp36_ = book_view_get_x_offset (self);
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp37_ = _tmp36_;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ cairo_translate (_tmp35_, (gdouble) (-_tmp37_), (gdouble) 0);
+#line 456 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp38_ = page;
+#line 456 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp39_ = context;
+#line 456 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page_view_render (_tmp38_, _tmp39_);
+#line 457 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp40_ = context;
+#line 457 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ cairo_restore (_tmp40_);
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp41_ = page;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp42_ = page_view_get_selected (_tmp41_);
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp43_ = _tmp42_;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp43_) {
+#line 2529 "book-view.c"
+ GtkWidget* _tmp44_ = NULL;
+ GtkStyleContext* _tmp45_ = NULL;
+ cairo_t* _tmp46_ = NULL;
+ PageView* _tmp47_ = NULL;
+ gint _tmp48_ = 0;
+ gint _tmp49_ = 0;
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+ PageView* _tmp52_ = NULL;
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+ PageView* _tmp55_ = NULL;
+ gint _tmp56_ = 0;
+ gint _tmp57_ = 0;
+ PageView* _tmp58_ = NULL;
+ gint _tmp59_ = 0;
+ gint _tmp60_ = 0;
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp44_ = self->priv->drawing_area;
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp45_ = gtk_widget_get_style_context (_tmp44_);
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp46_ = context;
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp47_ = page;
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp48_ = page_view_get_x_offset (_tmp47_);
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp49_ = _tmp48_;
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp50_ = book_view_get_x_offset (self);
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp51_ = _tmp50_;
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp52_ = page;
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp53_ = page_view_get_y_offset (_tmp52_);
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp54_ = _tmp53_;
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp55_ = page;
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp56_ = page_view_get_width (_tmp55_);
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp57_ = _tmp56_;
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp58_ = page;
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp59_ = page_view_get_height (_tmp58_);
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp60_ = _tmp59_;
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_render_focus (_tmp45_, _tmp46_, (gdouble) (_tmp49_ - _tmp51_), (gdouble) _tmp54_, (gdouble) _tmp57_, (gdouble) _tmp60_);
+#line 2583 "book-view.c"
+ }
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (page);
+#line 2587 "book-view.c"
+ }
+ }
+ }
+#line 467 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = FALSE;
+#line 467 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 2595 "book-view.c"
+}
+
+
+static PageView* book_view_get_page_at (BookView* self, gint x, gint y, gint* x_, gint* y_) {
+ gint _vala_x_ = 0;
+ gint _vala_y_ = 0;
+ PageView* result = NULL;
+ gint _tmp0_ = 0;
+#line 470 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _vala_y_ = 0;
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = _vala_y_;
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _vala_x_ = _tmp0_;
+#line 2612 "book-view.c"
+ {
+ gint i = 0;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = 0;
+#line 2617 "book-view.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = TRUE;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ while (TRUE) {
+#line 2624 "book-view.c"
+ gint _tmp3_ = 0;
+ Book* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ guint _tmp6_ = 0U;
+ PageView* page = NULL;
+ gint _tmp7_ = 0;
+ PageView* _tmp8_ = NULL;
+ gint left = 0;
+ PageView* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint right = 0;
+ gint _tmp12_ = 0;
+ PageView* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint top = 0;
+ PageView* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint bottom = 0;
+ gint _tmp19_ = 0;
+ PageView* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gboolean _tmp23_ = FALSE;
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!_tmp1_) {
+#line 2657 "book-view.c"
+ gint _tmp2_ = 0;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = i;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ i = _tmp2_ + 1;
+#line 2663 "book-view.c"
+ }
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = FALSE;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = i;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = self->priv->_book;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = book_get_n_pages (_tmp4_);
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = _tmp5_;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!(((guint) _tmp3_) < _tmp6_)) {
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 2679 "book-view.c"
+ }
+#line 475 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp7_ = i;
+#line 475 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = book_view_get_nth_page (self, _tmp7_);
+#line 475 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page = _tmp8_;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp9_ = page;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp10_ = page_view_get_x_offset (_tmp9_);
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp11_ = _tmp10_;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ left = _tmp11_;
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp12_ = left;
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp13_ = page;
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp14_ = page_view_get_width (_tmp13_);
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp15_ = _tmp14_;
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ right = _tmp12_ + _tmp15_;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp16_ = page;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp17_ = page_view_get_y_offset (_tmp16_);
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp18_ = _tmp17_;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ top = _tmp18_;
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp19_ = top;
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp20_ = page;
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp21_ = page_view_get_height (_tmp20_);
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp22_ = _tmp21_;
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ bottom = _tmp19_ + _tmp22_;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp26_ = x;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp27_ = left;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp26_ >= _tmp27_) {
+#line 2729 "book-view.c"
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp28_ = x;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp29_ = right;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp25_ = _tmp28_ <= _tmp29_;
+#line 2738 "book-view.c"
+ } else {
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp25_ = FALSE;
+#line 2742 "book-view.c"
+ }
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp25_) {
+#line 2746 "book-view.c"
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp30_ = y;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp31_ = top;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp24_ = _tmp30_ >= _tmp31_;
+#line 2755 "book-view.c"
+ } else {
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp24_ = FALSE;
+#line 2759 "book-view.c"
+ }
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp24_) {
+#line 2763 "book-view.c"
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp32_ = y;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp33_ = bottom;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp23_ = _tmp32_ <= _tmp33_;
+#line 2772 "book-view.c"
+ } else {
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp23_ = FALSE;
+#line 2776 "book-view.c"
+ }
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp23_) {
+#line 2780 "book-view.c"
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp34_ = x;
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp35_ = left;
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _vala_x_ = _tmp34_ - _tmp35_;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp36_ = y;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp37_ = top;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _vala_y_ = _tmp36_ - _tmp37_;
+#line 484 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = page;
+#line 484 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (x_) {
+#line 484 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ *x_ = _vala_x_;
+#line 2803 "book-view.c"
+ }
+#line 484 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (y_) {
+#line 484 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ *y_ = _vala_y_;
+#line 2809 "book-view.c"
+ }
+#line 484 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 2813 "book-view.c"
+ }
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (page);
+#line 2817 "book-view.c"
+ }
+ }
+ }
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = NULL;
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (x_) {
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ *x_ = _vala_x_;
+#line 2827 "book-view.c"
+ }
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (y_) {
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ *y_ = _vala_y_;
+#line 2833 "book-view.c"
+ }
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 2837 "book-view.c"
+}
+
+
+static gboolean book_view_button_cb (BookView* self, GtkWidget* widget, GdkEventButton* event) {
+ gboolean result = FALSE;
+ GtkWidget* _tmp0_ = NULL;
+ gint x = 0;
+ gint y = 0;
+ GdkEventButton* _tmp1_ = NULL;
+ GdkEventType _tmp2_ = 0;
+ PageView* _tmp13_ = NULL;
+ GdkEventButton* _tmp14_ = NULL;
+ guint _tmp15_ = 0U;
+ GdkEventButton* _tmp30_ = NULL;
+ guint _tmp31_ = 0U;
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (widget != NULL, FALSE);
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 493 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_layout (self);
+#line 495 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->drawing_area;
+#line 495 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_widget_grab_focus (_tmp0_);
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ x = 0;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ y = 0;
+#line 498 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = event;
+#line 498 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = _tmp1_->type;
+#line 498 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp2_ == GDK_BUTTON_PRESS) {
+#line 2875 "book-view.c"
+ GdkEventButton* _tmp3_ = NULL;
+ gdouble _tmp4_ = 0.0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ GdkEventButton* _tmp7_ = NULL;
+ gdouble _tmp8_ = 0.0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ PageView* _tmp11_ = NULL;
+ PageView* _tmp12_ = NULL;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = event;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = _tmp3_->x;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = book_view_get_x_offset (self);
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = _tmp5_;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp7_ = event;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = _tmp7_->y;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp11_ = book_view_get_page_at (self, (gint) (_tmp4_ + _tmp6_), (gint) _tmp8_, &_tmp9_, &_tmp10_);
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ x = _tmp9_;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ y = _tmp10_;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp12_ = _tmp11_;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_select_page_view (self, _tmp12_);
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (_tmp12_);
+#line 2910 "book-view.c"
+ }
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp13_ = self->priv->selected_page_view;
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp13_ == NULL) {
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = FALSE;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 2920 "book-view.c"
+ }
+#line 505 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp14_ = event;
+#line 505 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp15_ = _tmp14_->button;
+#line 505 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp15_ == ((guint) 1)) {
+#line 2928 "book-view.c"
+ GdkEventButton* _tmp16_ = NULL;
+ GdkEventType _tmp17_ = 0;
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp16_ = event;
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp17_ = _tmp16_->type;
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp17_ == GDK_BUTTON_PRESS) {
+#line 2937 "book-view.c"
+ PageView* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp18_ = self->priv->selected_page_view;
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp19_ = x;
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp20_ = y;
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page_view_button_press (_tmp18_, _tmp19_, _tmp20_);
+#line 2949 "book-view.c"
+ } else {
+ GdkEventButton* _tmp21_ = NULL;
+ GdkEventType _tmp22_ = 0;
+#line 509 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp21_ = event;
+#line 509 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp22_ = _tmp21_->type;
+#line 509 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp22_ == GDK_BUTTON_RELEASE) {
+#line 2959 "book-view.c"
+ PageView* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp23_ = self->priv->selected_page_view;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp24_ = x;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp25_ = y;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page_view_button_release (_tmp23_, _tmp24_, _tmp25_);
+#line 2971 "book-view.c"
+ } else {
+ GdkEventButton* _tmp26_ = NULL;
+ GdkEventType _tmp27_ = 0;
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp26_ = event;
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp27_ = _tmp26_->type;
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp27_ == GDK_2BUTTON_PRESS) {
+#line 2981 "book-view.c"
+ Page* _tmp28_ = NULL;
+ Page* _tmp29_ = NULL;
+#line 512 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp28_ = book_view_get_selected_page (self);
+#line 512 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp29_ = _tmp28_;
+#line 512 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_emit_by_name (self, "show-page", _tmp29_);
+#line 2990 "book-view.c"
+ }
+ }
+ }
+ }
+#line 516 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp30_ = event;
+#line 516 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp31_ = _tmp30_->button;
+#line 516 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp31_ == ((guint) 3)) {
+#line 517 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_emit_by_name (self, "show-menu");
+#line 3003 "book-view.c"
+ }
+#line 519 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = FALSE;
+#line 519 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 3009 "book-view.c"
+}
+
+
+static void book_view_set_cursor (BookView* self, GdkCursorType cursor) {
+ GdkCursor* c = NULL;
+ GdkCursorType _tmp0_ = 0;
+ GdkCursorType _tmp1_ = 0;
+ GdkCursorType _tmp2_ = 0;
+ GdkCursorType _tmp3_ = 0;
+ GdkCursor* _tmp4_ = NULL;
+ GtkWidget* _tmp5_ = NULL;
+ GdkWindow* _tmp6_ = NULL;
+ GdkCursor* _tmp7_ = NULL;
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->cursor;
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = cursor;
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 527 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _g_object_unref0 (c);
+#line 527 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return;
+#line 3035 "book-view.c"
+ }
+#line 528 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = cursor;
+#line 528 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->cursor = _tmp2_;
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = cursor;
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = gdk_cursor_new (_tmp3_);
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _g_object_unref0 (c);
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ c = _tmp4_;
+#line 531 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = self->priv->drawing_area;
+#line 531 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = gtk_widget_get_window (_tmp5_);
+#line 531 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp7_ = c;
+#line 531 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gdk_window_set_cursor (_tmp6_, _tmp7_);
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _g_object_unref0 (c);
+#line 3059 "book-view.c"
+}
+
+
+static gboolean book_view_motion_cb (BookView* self, GtkWidget* widget, GdkEventMotion* event) {
+ gboolean result = FALSE;
+ GdkCursorType cursor = 0;
+ gboolean _tmp0_ = FALSE;
+ PageView* _tmp1_ = NULL;
+ GdkCursorType _tmp38_ = 0;
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (widget != NULL, FALSE);
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 536 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ cursor = GDK_ARROW;
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = self->priv->selected_page_view;
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp1_ != NULL) {
+#line 3081 "book-view.c"
+ GdkEventMotion* _tmp2_ = NULL;
+ GdkModifierType _tmp3_ = 0;
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = event;
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = _tmp2_->state;
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = (_tmp3_ & GDK_BUTTON1_MASK) != 0;
+#line 3090 "book-view.c"
+ } else {
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = FALSE;
+#line 3094 "book-view.c"
+ }
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp0_) {
+#line 3098 "book-view.c"
+ gint x = 0;
+ GdkEventMotion* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ PageView* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint y = 0;
+ GdkEventMotion* _tmp11_ = NULL;
+ gdouble _tmp12_ = 0.0;
+ PageView* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ PageView* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ PageView* _tmp19_ = NULL;
+ GdkCursorType _tmp20_ = 0;
+ GdkCursorType _tmp21_ = 0;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = event;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = _tmp4_->x;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = book_view_get_x_offset (self);
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp7_ = _tmp6_;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = self->priv->selected_page_view;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp9_ = page_view_get_x_offset (_tmp8_);
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp10_ = _tmp9_;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ x = (gint) ((_tmp5_ + _tmp7_) - _tmp10_);
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp11_ = event;
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp12_ = _tmp11_->y;
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp13_ = self->priv->selected_page_view;
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp14_ = page_view_get_y_offset (_tmp13_);
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp15_ = _tmp14_;
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ y = (gint) (_tmp12_ - _tmp15_);
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp16_ = self->priv->selected_page_view;
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp17_ = x;
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp18_ = y;
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page_view_motion (_tmp16_, _tmp17_, _tmp18_);
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp19_ = self->priv->selected_page_view;
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp20_ = page_view_get_cursor (_tmp19_);
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp21_ = _tmp20_;
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ cursor = _tmp21_;
+#line 3163 "book-view.c"
+ } else {
+ gint x = 0;
+ gint y = 0;
+ PageView* over_page = NULL;
+ GdkEventMotion* _tmp22_ = NULL;
+ gdouble _tmp23_ = 0.0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ GdkEventMotion* _tmp26_ = NULL;
+ gdouble _tmp27_ = 0.0;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ PageView* _tmp30_ = NULL;
+ PageView* _tmp31_ = NULL;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp22_ = event;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp23_ = _tmp22_->x;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp24_ = book_view_get_x_offset (self);
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp25_ = _tmp24_;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp26_ = event;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp27_ = _tmp26_->y;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp30_ = book_view_get_page_at (self, (gint) (_tmp23_ + _tmp25_), (gint) _tmp27_, &_tmp28_, &_tmp29_);
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ x = _tmp28_;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ y = _tmp29_;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ over_page = _tmp30_;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp31_ = over_page;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp31_ != NULL) {
+#line 3202 "book-view.c"
+ PageView* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ PageView* _tmp35_ = NULL;
+ GdkCursorType _tmp36_ = 0;
+ GdkCursorType _tmp37_ = 0;
+#line 552 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp32_ = over_page;
+#line 552 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp33_ = x;
+#line 552 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp34_ = y;
+#line 552 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ page_view_motion (_tmp32_, _tmp33_, _tmp34_);
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp35_ = over_page;
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp36_ = page_view_get_cursor (_tmp35_);
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp37_ = _tmp36_;
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ cursor = _tmp37_;
+#line 3225 "book-view.c"
+ }
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (over_page);
+#line 3229 "book-view.c"
+ }
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp38_ = cursor;
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_set_cursor (self, _tmp38_);
+#line 559 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = FALSE;
+#line 559 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 3239 "book-view.c"
+}
+
+
+static gboolean book_view_key_cb (BookView* self, GtkWidget* widget, GdkEventKey* event) {
+ gboolean result = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (widget != NULL, FALSE);
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = event;
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = _tmp0_->keyval;
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ switch (_tmp1_) {
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ case 0xff50:
+#line 3261 "book-view.c"
+ {
+ Book* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+#line 567 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = self->priv->_book;
+#line 567 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = book_get_page (_tmp2_, 0);
+#line 567 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = _tmp3_;
+#line 567 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_set_selected_page (self, _tmp4_);
+#line 567 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (_tmp4_);
+#line 568 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = TRUE;
+#line 568 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 3280 "book-view.c"
+ }
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ case 0xff51:
+#line 3284 "book-view.c"
+ {
+ PageView* _tmp5_ = NULL;
+ PageView* _tmp6_ = NULL;
+ PageView* _tmp7_ = NULL;
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = self->priv->selected_page_view;
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = book_view_get_prev_page (self, _tmp5_);
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp7_ = _tmp6_;
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_select_page_view (self, _tmp7_);
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (_tmp7_);
+#line 571 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = TRUE;
+#line 571 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 3303 "book-view.c"
+ }
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ case 0xff53:
+#line 3307 "book-view.c"
+ {
+ PageView* _tmp8_ = NULL;
+ PageView* _tmp9_ = NULL;
+ PageView* _tmp10_ = NULL;
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = self->priv->selected_page_view;
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp9_ = book_view_get_next_page (self, _tmp8_);
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp10_ = _tmp9_;
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_select_page_view (self, _tmp10_);
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (_tmp10_);
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = TRUE;
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 3326 "book-view.c"
+ }
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ case 0xFF57:
+#line 3330 "book-view.c"
+ {
+ Book* _tmp11_ = NULL;
+ Book* _tmp12_ = NULL;
+ guint _tmp13_ = 0U;
+ guint _tmp14_ = 0U;
+ Page* _tmp15_ = NULL;
+ Page* _tmp16_ = NULL;
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp11_ = self->priv->_book;
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp12_ = self->priv->_book;
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp13_ = book_get_n_pages (_tmp12_);
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp14_ = _tmp13_;
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp15_ = book_get_page (_tmp11_, ((gint) _tmp14_) - 1);
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp16_ = _tmp15_;
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_set_selected_page (self, _tmp16_);
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_unref0 (_tmp16_);
+#line 577 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = TRUE;
+#line 577 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 3358 "book-view.c"
+ }
+ default:
+ {
+#line 580 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = FALSE;
+#line 580 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 3366 "book-view.c"
+ }
+ }
+}
+
+
+static gboolean book_view_focus_cb (BookView* self, GtkWidget* widget, GdkEventFocus* event) {
+ gboolean result = FALSE;
+ PageView* _tmp0_ = NULL;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (widget != NULL, FALSE);
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 586 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->selected_page_view;
+#line 586 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_set_selected_page_view (self, _tmp0_);
+#line 587 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = FALSE;
+#line 587 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 3389 "book-view.c"
+}
+
+
+static void book_view_scroll_cb (BookView* self, GtkAdjustment* adjustment) {
+ gboolean _tmp0_ = FALSE;
+#line 590 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 590 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (adjustment != NULL);
+#line 592 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->laying_out;
+#line 592 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (!_tmp0_) {
+#line 593 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_redraw (self);
+#line 3405 "book-view.c"
+ }
+}
+
+
+void book_view_redraw (BookView* self) {
+ GtkWidget* _tmp0_ = NULL;
+#line 596 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->drawing_area;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_widget_queue_draw (_tmp0_);
+#line 3418 "book-view.c"
+}
+
+
+void book_view_select_next_page (BookView* self) {
+ PageView* _tmp0_ = NULL;
+ PageView* _tmp1_ = NULL;
+ PageView* _tmp2_ = NULL;
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 603 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->selected_page_view;
+#line 603 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = book_view_get_next_page (self, _tmp0_);
+#line 603 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = _tmp1_;
+#line 603 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_select_page_view (self, _tmp2_);
+#line 603 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (_tmp2_);
+#line 3438 "book-view.c"
+}
+
+
+void book_view_select_prev_page (BookView* self) {
+ PageView* _tmp0_ = NULL;
+ PageView* _tmp1_ = NULL;
+ PageView* _tmp2_ = NULL;
+#line 606 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->selected_page_view;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = book_view_get_prev_page (self, _tmp0_);
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = _tmp1_;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_select_page_view (self, _tmp2_);
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (_tmp2_);
+#line 3458 "book-view.c"
+}
+
+
+Book* book_view_get_book (BookView* self) {
+ Book* result;
+ Book* _tmp0_ = NULL;
+#line 18 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 18 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->_book;
+#line 18 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = _tmp0_;
+#line 18 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 3473 "book-view.c"
+}
+
+
+static gpointer _book_ref0 (gpointer self) {
+#line 18 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return self ? book_ref (self) : NULL;
+#line 3480 "book-view.c"
+}
+
+
+static void book_view_set_book (BookView* self, Book* value) {
+ Book* _tmp0_ = NULL;
+ Book* _tmp1_ = NULL;
+#line 18 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 18 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = value;
+#line 18 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = _book_ref0 (_tmp0_);
+#line 18 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _book_unref0 (self->priv->_book);
+#line 18 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->_book = _tmp1_;
+#line 18 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_object_notify ((GObject *) self, "book");
+#line 3499 "book-view.c"
+}
+
+
+Page* book_view_get_selected_page (BookView* self) {
+ Page* result;
+ PageView* _tmp0_ = NULL;
+#line 30 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 32 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->selected_page_view;
+#line 32 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp0_ != NULL) {
+#line 3512 "book-view.c"
+ PageView* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+#line 33 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = self->priv->selected_page_view;
+#line 33 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = page_view_get_page (_tmp1_);
+#line 33 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = _tmp2_;
+#line 33 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = _tmp3_;
+#line 33 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 3526 "book-view.c"
+ } else {
+#line 35 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = NULL;
+#line 35 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 3532 "book-view.c"
+ }
+}
+
+
+void book_view_set_selected_page (BookView* self, Page* value) {
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+#line 37 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = book_view_get_selected_page (self);
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = _tmp0_;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = value;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp1_ == _tmp2_) {
+#line 40 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return;
+#line 3554 "book-view.c"
+ }
+#line 42 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp3_ = value;
+#line 42 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (_tmp3_ != NULL) {
+#line 3560 "book-view.c"
+ GHashTable* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+ gconstpointer _tmp6_ = NULL;
+#line 43 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = self->priv->page_data;
+#line 43 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp5_ = value;
+#line 43 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = g_hash_table_lookup (_tmp4_, _tmp5_);
+#line 43 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_select_page_view (self, (PageView*) _tmp6_);
+#line 3572 "book-view.c"
+ } else {
+#line 45 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_select_page_view (self, NULL);
+#line 3576 "book-view.c"
+ }
+#line 37 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_object_notify ((GObject *) self, "selected-page");
+#line 3580 "book-view.c"
+}
+
+
+gint book_view_get_x_offset (BookView* self) {
+ gint result;
+ GtkAdjustment* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+#line 64 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 66 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->adjustment;
+#line 66 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = gtk_adjustment_get_value (_tmp0_);
+#line 66 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ result = (gint) _tmp1_;
+#line 66 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ return result;
+#line 3598 "book-view.c"
+}
+
+
+void book_view_set_x_offset (BookView* self, gint value) {
+ GtkAdjustment* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 68 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (self != NULL);
+#line 70 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->adjustment;
+#line 70 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp1_ = value;
+#line 70 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ gtk_adjustment_set_value (_tmp0_, (gdouble) _tmp1_);
+#line 68 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_object_notify ((GObject *) self, "x-offset");
+#line 3615 "book-view.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__PAGE (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__PAGE) (gpointer data1, gpointer arg_1, gpointer data2);
+ register GMarshalFunc_VOID__PAGE callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_return_if_fail (n_param_values == 2);
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ data1 = closure->data;
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 3634 "book-view.c"
+ } else {
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ data2 = closure->data;
+#line 3640 "book-view.c"
+ }
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ callback = (GMarshalFunc_VOID__PAGE) (marshal_data ? marshal_data : cc->callback);
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ callback (data1, value_get_page (param_values + 1), data2);
+#line 3646 "book-view.c"
+}
+
+
+static void book_view_class_init (BookViewClass * klass) {
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_parent_class = g_type_class_peek_parent (klass);
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_type_class_add_private (klass, sizeof (BookViewPrivate));
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_book_view_get_property;
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_book_view_set_property;
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ G_OBJECT_CLASS (klass)->finalize = book_view_finalize;
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), BOOK_VIEW_BOOK, param_spec_book ("book", "book", "book", TYPE_BOOK, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), BOOK_VIEW_SELECTED_PAGE, param_spec_page ("selected-page", "selected-page", "selected-page", TYPE_PAGE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), BOOK_VIEW_X_OFFSET, g_param_spec_int ("x-offset", "x-offset", "x-offset", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_new ("page_selected", TYPE_BOOK_VIEW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__PAGE, G_TYPE_NONE, 1, TYPE_PAGE);
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_new ("show_page", TYPE_BOOK_VIEW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__PAGE, G_TYPE_NONE, 1, TYPE_PAGE);
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_new ("show_menu", TYPE_BOOK_VIEW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 3673 "book-view.c"
+}
+
+
+static void book_view_instance_init (BookView * self) {
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv = BOOK_VIEW_GET_PRIVATE (self);
+#line 27 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self->priv->selected_page_view = NULL;
+#line 3682 "book-view.c"
+}
+
+
+static void book_view_finalize (GObject* obj) {
+ BookView * self;
+ Book* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ Book* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ Book* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ Book* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+ GtkWidget* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ GtkWidget* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+ GtkWidget* _tmp12_ = NULL;
+ guint _tmp13_ = 0U;
+ GtkWidget* _tmp14_ = NULL;
+ guint _tmp15_ = 0U;
+ GtkWidget* _tmp16_ = NULL;
+ guint _tmp17_ = 0U;
+ GtkWidget* _tmp18_ = NULL;
+ guint _tmp19_ = 0U;
+ GtkWidget* _tmp20_ = NULL;
+ guint _tmp21_ = 0U;
+ GtkWidget* _tmp22_ = NULL;
+ guint _tmp23_ = 0U;
+ GtkAdjustment* _tmp24_ = NULL;
+ guint _tmp25_ = 0U;
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_BOOK_VIEW, BookView);
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp0_ = self->priv->_book;
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_parse_name ("page-added", TYPE_BOOK, &_tmp1_, NULL, FALSE);
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _book_view_add_cb_book_page_added, self);
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp2_ = self->priv->_book;
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_parse_name ("page-removed", TYPE_BOOK, &_tmp3_, NULL, FALSE);
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _book_view_remove_cb_book_page_removed, self);
+#line 125 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp4_ = self->priv->_book;
+#line 125 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_parse_name ("reordered", TYPE_BOOK, &_tmp5_, NULL, FALSE);
+#line 125 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _book_view_reorder_cb_book_reordered, self);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp6_ = self->priv->_book;
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_parse_name ("cleared", TYPE_BOOK, &_tmp7_, NULL, FALSE);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _book_view_clear_cb_book_cleared, self);
+#line 127 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp8_ = self->priv->drawing_area;
+#line 127 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_parse_name ("configure-event", GTK_TYPE_WIDGET, &_tmp9_, NULL, FALSE);
+#line 127 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp8_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _book_view_configure_cb_gtk_widget_configure_event, self);
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp10_ = self->priv->drawing_area;
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_parse_name ("draw", GTK_TYPE_WIDGET, &_tmp11_, NULL, FALSE);
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _book_view_draw_cb_gtk_widget_draw, self);
+#line 129 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp12_ = self->priv->drawing_area;
+#line 129 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_parse_name ("motion-notify-event", GTK_TYPE_WIDGET, &_tmp13_, NULL, FALSE);
+#line 129 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp12_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp13_, 0, NULL, (GCallback) _book_view_motion_cb_gtk_widget_motion_notify_event, self);
+#line 130 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp14_ = self->priv->drawing_area;
+#line 130 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_parse_name ("key-press-event", GTK_TYPE_WIDGET, &_tmp15_, NULL, FALSE);
+#line 130 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp14_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp15_, 0, NULL, (GCallback) _book_view_key_cb_gtk_widget_key_press_event, self);
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp16_ = self->priv->drawing_area;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_parse_name ("button-press-event", GTK_TYPE_WIDGET, &_tmp17_, NULL, FALSE);
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp16_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp17_, 0, NULL, (GCallback) _book_view_button_cb_gtk_widget_button_press_event, self);
+#line 132 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp18_ = self->priv->drawing_area;
+#line 132 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_parse_name ("button-release-event", GTK_TYPE_WIDGET, &_tmp19_, NULL, FALSE);
+#line 132 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp18_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp19_, 0, NULL, (GCallback) _book_view_button_cb_gtk_widget_button_release_event, self);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp20_ = self->priv->drawing_area;
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_parse_name ("focus-in-event", GTK_TYPE_WIDGET, &_tmp21_, NULL, FALSE);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp20_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp21_, 0, NULL, (GCallback) _book_view_focus_cb_gtk_widget_focus_in_event, self);
+#line 134 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp22_ = self->priv->drawing_area;
+#line 134 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_parse_name ("focus-out-event", GTK_TYPE_WIDGET, &_tmp23_, NULL, FALSE);
+#line 134 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp22_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp23_, 0, NULL, (GCallback) _book_view_focus_cb_gtk_widget_focus_out_event, self);
+#line 135 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _tmp24_ = self->priv->adjustment;
+#line 135 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_parse_name ("value-changed", GTK_TYPE_ADJUSTMENT, &_tmp25_, NULL, FALSE);
+#line 135 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp24_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp25_, 0, NULL, (GCallback) _book_view_scroll_cb_gtk_adjustment_value_changed, self);
+#line 18 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _book_unref0 (self->priv->_book);
+#line 19 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _g_hash_table_unref0 (self->priv->page_data);
+#line 27 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _page_view_unref0 (self->priv->selected_page_view);
+#line 50 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _g_object_unref0 (self->priv->drawing_area);
+#line 53 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _g_object_unref0 (self->priv->scroll);
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ _g_object_unref0 (self->priv->adjustment);
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ G_OBJECT_CLASS (book_view_parent_class)->finalize (obj);
+#line 3808 "book-view.c"
+}
+
+
+GType book_view_get_type (void) {
+ static volatile gsize book_view_type_id__volatile = 0;
+ if (g_once_init_enter (&book_view_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (BookViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) book_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BookView), 0, (GInstanceInitFunc) book_view_instance_init, NULL };
+ GType book_view_type_id;
+ book_view_type_id = g_type_register_static (GTK_TYPE_BOX, "BookView", &g_define_type_info, 0);
+ g_once_init_leave (&book_view_type_id__volatile, book_view_type_id);
+ }
+ return book_view_type_id__volatile;
+}
+
+
+static void _vala_book_view_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ BookView * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_BOOK_VIEW, BookView);
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ switch (property_id) {
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ case BOOK_VIEW_BOOK:
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ value_set_book (value, book_view_get_book (self));
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ case BOOK_VIEW_SELECTED_PAGE:
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ value_set_page (value, book_view_get_selected_page (self));
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ case BOOK_VIEW_X_OFFSET:
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ g_value_set_int (value, book_view_get_x_offset (self));
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 3847 "book-view.c"
+ default:
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 3853 "book-view.c"
+ }
+}
+
+
+static void _vala_book_view_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ BookView * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_BOOK_VIEW, BookView);
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ switch (property_id) {
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ case BOOK_VIEW_BOOK:
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_set_book (self, value_get_book (value));
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ case BOOK_VIEW_SELECTED_PAGE:
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_set_selected_page (self, value_get_page (value));
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ case BOOK_VIEW_X_OFFSET:
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ book_view_set_x_offset (self, g_value_get_int (value));
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 3881 "book-view.c"
+ default:
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
+ break;
+#line 3887 "book-view.c"
+ }
+}
+
+
+
diff --git a/src/book-view.vala b/src/book-view.vala
new file mode 100644
index 0000000..7e337f1
--- /dev/null
+++ b/src/book-view.vala
@@ -0,0 +1,610 @@
+/*
+ * Copyright (C) 2009-2011 Canonical Ltd.
+ * Author: Robert Ancell <robert.ancell@canonical.com>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+// FIXME: When scrolling, copy existing render sideways?
+// FIXME: Only render pages that change and only the part that changed
+
+public class BookView : Gtk.Box
+{
+ /* Book being rendered */
+ public Book book { get; private set; }
+ private HashTable<Page, PageView> page_data;
+
+ /* True if the view needs to be laid out again */
+ private bool need_layout;
+ private bool laying_out;
+ private bool show_selected_page;
+
+ /* Currently selected page */
+ private PageView? selected_page_view = null;
+ public Page? selected_page
+ {
+ get
+ {
+ if (selected_page_view != null)
+ return selected_page_view.page;
+ else
+ return null;
+ }
+ set
+ {
+ if (selected_page == value)
+ return;
+
+ if (value != null)
+ select_page_view (page_data.lookup (value));
+ else
+ select_page_view (null);
+ }
+ }
+
+ /* Widget being rendered to */
+ private Gtk.Widget drawing_area;
+
+ /* Horizontal scrollbar */
+ private Gtk.Scrollbar scroll;
+ private Gtk.Adjustment adjustment;
+
+ private Gdk.CursorType cursor;
+
+ public signal void page_selected (Page? page);
+ public signal void show_page (Page page);
+ public signal void show_menu ();
+
+ public int x_offset
+ {
+ get
+ {
+ return (int) adjustment.get_value ();
+ }
+ set
+ {
+ adjustment.value = value;
+ }
+ }
+
+ public BookView (Book book)
+ {
+ GLib.Object (orientation: Gtk.Orientation.VERTICAL);
+ this.book = book;
+
+ /* Load existing pages */
+ for (var i = 0; i < book.n_pages; i++)
+ {
+ Page page = book.get_page (i);
+ add_cb (book, page);
+ }
+
+ selected_page = book.get_page (0);
+
+ /* Watch for new pages */
+ book.page_added.connect (add_cb);
+ book.page_removed.connect (remove_cb);
+ book.reordered.connect (reorder_cb);
+ book.cleared.connect (clear_cb);
+
+ need_layout = true;
+ page_data = new HashTable<Page, PageView> (direct_hash, direct_equal);
+ cursor = Gdk.CursorType.ARROW;
+
+ drawing_area = new Gtk.DrawingArea ();
+ drawing_area.set_size_request (200, 100);
+ drawing_area.can_focus = true;
+ drawing_area.events = Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK | Gdk.EventMask.FOCUS_CHANGE_MASK | Gdk.EventMask.STRUCTURE_MASK | Gdk.EventMask.SCROLL_MASK;
+ pack_start (drawing_area, true, true, 0);
+
+ scroll = new Gtk.Scrollbar (Gtk.Orientation.HORIZONTAL, null);
+ adjustment = scroll.adjustment;
+ pack_start (scroll, false, true, 0);
+
+ drawing_area.configure_event.connect (configure_cb);
+ drawing_area.draw.connect (draw_cb);
+ drawing_area.motion_notify_event.connect (motion_cb);
+ drawing_area.key_press_event.connect (key_cb);
+ drawing_area.button_press_event.connect (button_cb);
+ drawing_area.button_release_event.connect (button_cb);
+ drawing_area.focus_in_event.connect_after (focus_cb);
+ drawing_area.focus_out_event.connect_after (focus_cb);
+ adjustment.value_changed.connect (scroll_cb);
+
+ drawing_area.visible = true;
+ }
+
+ ~BookView ()
+ {
+ book.page_added.disconnect (add_cb);
+ book.page_removed.disconnect (remove_cb);
+ book.reordered.disconnect (reorder_cb);
+ book.cleared.disconnect (clear_cb);
+ drawing_area.configure_event.disconnect (configure_cb);
+ drawing_area.draw.disconnect (draw_cb);
+ drawing_area.motion_notify_event.disconnect (motion_cb);
+ drawing_area.key_press_event.disconnect (key_cb);
+ drawing_area.button_press_event.disconnect (button_cb);
+ drawing_area.button_release_event.disconnect (button_cb);
+ drawing_area.focus_in_event.disconnect (focus_cb);
+ drawing_area.focus_out_event.disconnect (focus_cb);
+ adjustment.value_changed.disconnect (scroll_cb);
+ }
+
+ private PageView get_nth_page (int n)
+ {
+ Page page = book.get_page (n);
+ return page_data.lookup (page);
+ }
+
+ private PageView get_next_page (PageView page)
+ {
+ for (var i = 0; ; i++)
+ {
+ var p = book.get_page (i);
+ if (p == null)
+ break;
+ if (p == page.page)
+ {
+ p = book.get_page (i + 1);
+ if (p != null)
+ return page_data.lookup (p);
+ }
+ }
+
+ return page;
+ }
+
+ private PageView get_prev_page (PageView page)
+ {
+ var prev_page = page;
+ for (var i = 0; ; i++)
+ {
+ var p = book.get_page (i);
+ if (p == null)
+ break;
+ if (p == page.page)
+ return prev_page;
+ prev_page = page_data.lookup (p);
+ }
+
+ return page;
+ }
+
+ private void page_view_changed_cb (PageView page)
+ {
+ redraw ();
+ }
+
+ private void page_view_size_changed_cb (PageView page)
+ {
+ need_layout = true;
+ redraw ();
+ }
+
+ private void add_cb (Book book, Page page)
+ {
+ var page_view = new PageView (page);
+ page_view.changed.connect (page_view_changed_cb);
+ page_view.size_changed.connect (page_view_size_changed_cb);
+ page_data.insert (page, page_view);
+ need_layout = true;
+ redraw ();
+ }
+
+ private void set_selected_page_view (PageView? page)
+ {
+ /* Deselect existing page if changed */
+ if (selected_page_view != null && page != selected_page_view)
+ selected_page_view.selected = true;
+
+ selected_page_view = page;
+ if (selected_page_view == null)
+ return;
+
+ /* Select new page if widget has focus */
+ if (!drawing_area.has_focus)
+ selected_page_view.selected = false;
+ else
+ selected_page_view.selected = true;
+ }
+
+ private void show_page_view (PageView? page)
+ {
+ if (page == null || !scroll.get_visible ())
+ return;
+
+ Gtk.Allocation allocation;
+ drawing_area.get_allocation (out allocation);
+ var left_edge = page.x_offset;
+ var right_edge = page.x_offset + page.width;
+
+ if (left_edge - x_offset < 0)
+ x_offset = left_edge;
+ else if (right_edge - x_offset > allocation.width)
+ x_offset = right_edge - allocation.width;
+ }
+
+ private void select_page_view (PageView? page)
+ {
+ Page? p = null;
+
+ if (selected_page_view == page)
+ return;
+
+ set_selected_page_view (page);
+
+ if (need_layout)
+ show_selected_page = true;
+ else
+ show_page_view (page);
+
+ if (page != null)
+ p = page.page;
+ page_selected (p);
+ }
+
+ private void remove_cb (Book book, Page page)
+ {
+ PageView new_selection = selected_page_view;
+
+ /* Select previous page or next if removing the selected page */
+ if (page == selected_page)
+ {
+ new_selection = get_prev_page (selected_page_view);
+ if (new_selection == selected_page_view)
+ new_selection = get_next_page (selected_page_view);
+ selected_page_view = null;
+ }
+
+ var page_view = page_data.lookup (page);
+ page_view.changed.disconnect (page_view_changed_cb);
+ page_view.size_changed.disconnect (page_view_size_changed_cb);
+ page_data.remove (page);
+
+ select_page_view (new_selection);
+
+ need_layout = true;
+ redraw ();
+ }
+
+ private void reorder_cb (Book book)
+ {
+ need_layout = true;
+ redraw ();
+ }
+
+ private void clear_cb (Book book)
+ {
+ page_data.remove_all ();
+ selected_page_view = null;
+ page_selected (null);
+ need_layout = true;
+ redraw ();
+ }
+
+ private bool configure_cb (Gtk.Widget widget, Gdk.EventConfigure event)
+ {
+ need_layout = true;
+ return false;
+ }
+
+ private void layout_into (int width, int height, out int book_width, out int book_height)
+ {
+ /* Get maximum page resolution */
+ int max_dpi = 0;
+ for (var i = 0; i < book.n_pages; i++)
+ {
+ var page = book.get_page (i);
+ if (page.dpi > max_dpi)
+ max_dpi = page.dpi;
+ }
+
+ /* Get area required to fit all pages */
+ int max_width = 0, max_height = 0;
+ for (var i = 0; i < book.n_pages; i++)
+ {
+ var page = book.get_page (i);
+ var w = page.width;
+ var h = page.height;
+
+ /* Scale to the same DPI */
+ w = (int) ((double)w * max_dpi / page.dpi + 0.5);
+ h = (int) ((double)h * max_dpi / page.dpi + 0.5);
+
+ if (w > max_width)
+ max_width = w;
+ if (h > max_height)
+ max_height = h;
+ }
+
+ var aspect = (double)width / height;
+ var max_aspect = (double)max_width / max_height;
+
+ /* Get total dimensions of all pages */
+ int spacing = 12;
+ book_width = 0;
+ book_height = 0;
+ for (var i = 0; i < book.n_pages; i++)
+ {
+ var page = get_nth_page (i);
+ var p = page.page;
+
+ /* NOTE: Using double to avoid overflow for large images */
+ if (max_aspect > aspect)
+ {
+ /* Set width scaled on DPI and maximum width */
+ int w = (int) ((double)p.width * max_dpi * width / (p.dpi * max_width));
+ page.width = w;
+ }
+ else
+ {
+ /* Set height scaled on DPI and maximum height */
+ int h = (int) ((double)p.height * max_dpi * height / (p.dpi * max_height));
+ page.height = h;
+ }
+
+ var h = page.height;
+ if (h > book_height)
+ book_height = h;
+ book_width += page.width;
+ if (i != 0)
+ book_width += spacing;
+ }
+
+ int x_offset = 0;
+ for (var i = 0; i < book.n_pages; i++)
+ {
+ var page = get_nth_page (i);
+
+ /* Layout pages left to right */
+ page.x_offset = x_offset;
+ x_offset += page.width + spacing;
+
+ /* Centre page vertically */
+ page.y_offset = (height - page.height) / 2;
+ }
+ }
+
+ private void layout ()
+ {
+ if (!need_layout)
+ return;
+
+ laying_out = true;
+
+ Gtk.Allocation allocation;
+ drawing_area.get_allocation(out allocation);
+ Gtk.Allocation box_allocation;
+ get_allocation(out box_allocation);
+
+ /* If scroll is right aligned then keep that after layout */
+ bool right_aligned = true;
+ if (adjustment.get_value () < adjustment.get_upper () - adjustment.get_page_size ())
+ right_aligned = false;
+
+ /* Try and fit without scrollbar */
+ var width = (int) allocation.width;
+ var height = (int) (box_allocation.height - get_border_width () * 2);
+ int book_width, book_height;
+ layout_into (width, height, out book_width, out book_height);
+
+ /* Relayout with scrollbar */
+ if (book_width > allocation.width)
+ {
+ /* Re-layout leaving space for scrollbar */
+ height = allocation.height;
+ layout_into (width, height, out book_width, out book_height);
+
+ /* Set scrollbar limits */
+ adjustment.lower = 0;
+ adjustment.upper = book_width;
+ adjustment.page_size = allocation.width;
+
+ /* Keep right-aligned */
+ var max_offset = book_width - allocation.width;
+ if (right_aligned || x_offset > max_offset)
+ x_offset = max_offset;
+
+ scroll.visible = true;
+ }
+ else
+ {
+ scroll.visible = false;
+ var offset = (book_width - allocation.width) / 2;
+ adjustment.lower = offset;
+ adjustment.upper = offset;
+ adjustment.page_size = 0;
+ x_offset = offset;
+ }
+
+ if (show_selected_page)
+ show_page_view (selected_page_view);
+
+ need_layout = false;
+ show_selected_page = false;
+ laying_out = false;
+ }
+
+ private bool draw_cb (Gtk.Widget widget, Cairo.Context context)
+ {
+ if (book.n_pages == 0)
+ return false;
+
+ layout ();
+
+ double left, top, right, bottom;
+ context.clip_extents (out left, out top, out right, out bottom);
+
+ /* Render each page */
+ for (var i = 0; i < book.n_pages; i++)
+ {
+ var page = get_nth_page (i);
+ var left_edge = page.x_offset - x_offset;
+ var right_edge = page.x_offset + page.width - x_offset;
+
+ /* Page not visible, don't render */
+ if (right_edge < left || left_edge > right)
+ continue;
+
+ context.save ();
+ context.translate (-x_offset, 0);
+ page.render (context);
+ context.restore ();
+
+ if (page.selected)
+ drawing_area.get_style_context ().render_focus (context,
+ page.x_offset - x_offset,
+ page.y_offset,
+ page.width,
+ page.height);
+ }
+
+ return false;
+ }
+
+ private PageView? get_page_at (int x, int y, out int x_, out int y_)
+ {
+ x_ = y_ = 0;
+ for (var i = 0; i < book.n_pages; i++)
+ {
+ var page = get_nth_page (i);
+ var left = page.x_offset;
+ var right = left + page.width;
+ var top = page.y_offset;
+ var bottom = top + page.height;
+ if (x >= left && x <= right && y >= top && y <= bottom)
+ {
+ x_ = x - left;
+ y_ = y - top;
+ return page;
+ }
+ }
+
+ return null;
+ }
+
+ private bool button_cb (Gtk.Widget widget, Gdk.EventButton event)
+ {
+ layout ();
+
+ drawing_area.grab_focus ();
+
+ int x = 0, y = 0;
+ if (event.type == Gdk.EventType.BUTTON_PRESS)
+ select_page_view (get_page_at ((int) (event.x + x_offset), (int) event.y, out x, out y));
+
+ if (selected_page_view == null)
+ return false;
+
+ /* Modify page */
+ if (event.button == 1)
+ {
+ if (event.type == Gdk.EventType.BUTTON_PRESS)
+ selected_page_view.button_press (x, y);
+ else if (event.type == Gdk.EventType.BUTTON_RELEASE)
+ selected_page_view.button_release (x, y);
+ else if (event.type == Gdk.EventType.2BUTTON_PRESS)
+ show_page (selected_page);
+ }
+
+ /* Show pop-up menu on right click */
+ if (event.button == 3)
+ show_menu ();
+
+ return false;
+ }
+
+ private void set_cursor (Gdk.CursorType cursor)
+ {
+ Gdk.Cursor c;
+
+ if (this.cursor == cursor)
+ return;
+ this.cursor = cursor;
+
+ c = new Gdk.Cursor (cursor);
+ drawing_area.get_window ().set_cursor (c);
+ }
+
+ private bool motion_cb (Gtk.Widget widget, Gdk.EventMotion event)
+ {
+ Gdk.CursorType cursor = Gdk.CursorType.ARROW;
+
+ /* Dragging */
+ if (selected_page_view != null && (event.state & Gdk.ModifierType.BUTTON1_MASK) != 0)
+ {
+ var x = (int) (event.x + x_offset - selected_page_view.x_offset);
+ var y = (int) (event.y - selected_page_view.y_offset);
+ selected_page_view.motion (x, y);
+ cursor = selected_page_view.cursor;
+ }
+ else
+ {
+ int x, y;
+ var over_page = get_page_at ((int) (event.x + x_offset), (int) event.y, out x, out y);
+ if (over_page != null)
+ {
+ over_page.motion (x, y);
+ cursor = over_page.cursor;
+ }
+ }
+
+ set_cursor (cursor);
+
+ return false;
+ }
+
+ private bool key_cb (Gtk.Widget widget, Gdk.EventKey event)
+ {
+ switch (event.keyval)
+ {
+ case 0xff50: /* FIXME: GDK_Home */
+ selected_page = book.get_page (0);
+ return true;
+ case 0xff51: /* FIXME: GDK_Left */
+ select_page_view (get_prev_page (selected_page_view));
+ return true;
+ case 0xff53: /* FIXME: GDK_Right */
+ select_page_view (get_next_page (selected_page_view));
+ return true;
+ case 0xFF57: /* FIXME: GDK_End */
+ selected_page = book.get_page ((int) book.n_pages - 1);
+ return true;
+
+ default:
+ return false;
+ }
+ }
+
+ private bool focus_cb (Gtk.Widget widget, Gdk.EventFocus event)
+ {
+ set_selected_page_view (selected_page_view);
+ return false;
+ }
+
+ private void scroll_cb (Gtk.Adjustment adjustment)
+ {
+ if (!laying_out)
+ redraw ();
+ }
+
+ public void redraw ()
+ {
+ drawing_area.queue_draw ();
+ }
+
+ public void select_next_page ()
+ {
+ select_page_view (get_next_page (selected_page_view));
+ }
+
+ public void select_prev_page ()
+ {
+ select_page_view (get_prev_page (selected_page_view));
+ }
+}
diff --git a/src/book.c b/src/book.c
new file mode 100644
index 0000000..45fd555
--- /dev/null
+++ b/src/book.c
@@ -0,0 +1,5628 @@
+/* book.c generated by valac 0.24.0, the Vala compiler
+ * generated from book.vala, do not modify */
+
+/*
+ * Copyright (C) 2009-2011 Canonical Ltd.
+ * Author: Robert Ancell <robert.ancell@canonical.com>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <cairo.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <float.h>
+#include <math.h>
+#include <gdk/gdk.h>
+#include <cairo-ps.h>
+#include <zlib.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_BOOK (book_get_type ())
+#define BOOK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BOOK, Book))
+#define BOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BOOK, BookClass))
+#define IS_BOOK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BOOK))
+#define IS_BOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BOOK))
+#define BOOK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BOOK, BookClass))
+
+typedef struct _Book Book;
+typedef struct _BookClass BookClass;
+typedef struct _BookPrivate BookPrivate;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+#define _page_unref0(var) ((var == NULL) ? NULL : (var = (page_unref (var), NULL)))
+#define __g_list_free__page_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__page_unref0_ (var), NULL)))
+#define _g_byte_array_unref0(var) ((var == NULL) ? NULL : (var = (g_byte_array_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL)))
+
+#define TYPE_PS_WRITER (ps_writer_get_type ())
+#define PS_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PS_WRITER, PsWriter))
+#define PS_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PS_WRITER, PsWriterClass))
+#define IS_PS_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PS_WRITER))
+#define IS_PS_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PS_WRITER))
+#define PS_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PS_WRITER, PsWriterClass))
+
+typedef struct _PsWriter PsWriter;
+typedef struct _PsWriterClass PsWriterClass;
+typedef struct _PsWriterPrivate PsWriterPrivate;
+#define _cairo_surface_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_surface_destroy (var), NULL)))
+#define _ps_writer_unref0(var) ((var == NULL) ? NULL : (var = (ps_writer_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_PDF_WRITER (pdf_writer_get_type ())
+#define PDF_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PDF_WRITER, PDFWriter))
+#define PDF_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PDF_WRITER, PDFWriterClass))
+#define IS_PDF_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PDF_WRITER))
+#define IS_PDF_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PDF_WRITER))
+#define PDF_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PDF_WRITER, PDFWriterClass))
+
+typedef struct _PDFWriter PDFWriter;
+typedef struct _PDFWriterClass PDFWriterClass;
+typedef struct _PDFWriterPrivate PDFWriterPrivate;
+#define _pdf_writer_unref0(var) ((var == NULL) ? NULL : (var = (pdf_writer_unref (var), NULL)))
+typedef struct _ParamSpecBook ParamSpecBook;
+#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
+typedef struct _ParamSpecPDFWriter ParamSpecPDFWriter;
+typedef struct _ParamSpecPsWriter ParamSpecPsWriter;
+
+struct _Book {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BookPrivate * priv;
+};
+
+struct _BookClass {
+ GTypeClass parent_class;
+ void (*finalize) (Book *self);
+};
+
+struct _BookPrivate {
+ GList* pages;
+ gboolean needs_saving_;
+ GByteArray* jpeg_data;
+};
+
+struct _PsWriter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PsWriterPrivate * priv;
+ cairo_surface_t* surface;
+ GFileOutputStream* stream;
+};
+
+struct _PsWriterClass {
+ GTypeClass parent_class;
+ void (*finalize) (PsWriter *self);
+};
+
+struct _PDFWriter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PDFWriterPrivate * priv;
+ gsize offset;
+ GList* object_offsets;
+};
+
+struct _PDFWriterClass {
+ GTypeClass parent_class;
+ void (*finalize) (PDFWriter *self);
+};
+
+struct _ParamSpecBook {
+ GParamSpec parent_instance;
+};
+
+struct _PDFWriterPrivate {
+ GFileOutputStream* stream;
+};
+
+struct _ParamSpecPDFWriter {
+ GParamSpec parent_instance;
+};
+
+struct _ParamSpecPsWriter {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer book_parent_class = NULL;
+static gpointer pdf_writer_parent_class = NULL;
+static gpointer ps_writer_parent_class = NULL;
+
+gpointer book_ref (gpointer instance);
+void book_unref (gpointer instance);
+GParamSpec* param_spec_book (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_book (GValue* value, gpointer v_object);
+void value_take_book (GValue* value, gpointer v_object);
+gpointer value_get_book (const GValue* value);
+GType book_get_type (void) G_GNUC_CONST;
+gpointer page_ref (gpointer instance);
+void page_unref (gpointer instance);
+GParamSpec* param_spec_page (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_page (GValue* value, gpointer v_object);
+void value_take_page (GValue* value, gpointer v_object);
+gpointer value_get_page (const GValue* value);
+GType page_get_type (void) G_GNUC_CONST;
+#define BOOK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_BOOK, BookPrivate))
+enum {
+ BOOK_DUMMY_PROPERTY
+};
+static void book_page_changed_cb (Book* self, Page* page);
+static void _book_page_changed_cb_page_pixels_changed (Page* _sender, gpointer self);
+static void _book_page_changed_cb_page_crop_changed (Page* _sender, gpointer self);
+static void _page_unref0_ (gpointer var);
+static void _g_list_free__page_unref0_ (GList* self);
+Book* book_new (void);
+Book* book_construct (GType object_type);
+void book_clear (Book* self);
+void book_set_needs_saving (Book* self, gboolean value);
+void book_append_page (Book* self, Page* page);
+void book_move_page (Book* self, Page* page, guint location);
+void book_reverse (Book* self);
+void book_combine_sides (Book* self);
+guint book_get_n_pages (Book* self);
+void book_combine_sides_reverse (Book* self);
+void book_delete_page (Book* self, Page* page);
+Page* book_get_page (Book* self, gint page_number);
+guint book_get_page_index (Book* self, Page* page);
+static GFile* book_make_indexed_file (Book* self, const gchar* uri, gint i);
+static void book_save_multi_file (Book* self, const gchar* type, gint quality, GFile* file, GError** error);
+void page_save (Page* self, const gchar* type, gint quality, GFile* file, GError** error);
+static void book_save_ps_pdf_surface (Book* self, cairo_surface_t* surface, GdkPixbuf* image, gdouble dpi);
+static void book_save_ps (Book* self, GFile* file, GError** error);
+gpointer ps_writer_ref (gpointer instance);
+void ps_writer_unref (gpointer instance);
+GParamSpec* param_spec_ps_writer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_ps_writer (GValue* value, gpointer v_object);
+void value_take_ps_writer (GValue* value, gpointer v_object);
+gpointer value_get_ps_writer (const GValue* value);
+GType ps_writer_get_type (void) G_GNUC_CONST;
+PsWriter* ps_writer_new (GFileOutputStream* stream);
+PsWriter* ps_writer_construct (GType object_type, GFileOutputStream* stream);
+GdkPixbuf* page_get_image (Page* self, gboolean apply_crop);
+gint page_get_dpi (Page* self);
+static guint8* book_compress_zlib (Book* self, guint8* data, int data_length1, int* result_length1);
+static guint8* book_compress_jpeg (Book* self, GdkPixbuf* image, gint quality, gint dpi, int* result_length1);
+static gboolean book_write_pixbuf_data (Book* self, guint8* buf, int buf_length1, GError** error);
+static gboolean _book_write_pixbuf_data_gdk_pixbuf_save_func (guint8* buf, gsize buf_length1, GError** error, gpointer self);
+static void book_save_pdf (Book* self, GFile* file, gint quality, GError** error);
+gpointer pdf_writer_ref (gpointer instance);
+void pdf_writer_unref (gpointer instance);
+GParamSpec* param_spec_pdf_writer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pdf_writer (GValue* value, gpointer v_object);
+void value_take_pdf_writer (GValue* value, gpointer v_object);
+gpointer value_get_pdf_writer (const GValue* value);
+GType pdf_writer_get_type (void) G_GNUC_CONST;
+PDFWriter* pdf_writer_new (GFileOutputStream* stream);
+PDFWriter* pdf_writer_construct (GType object_type, GFileOutputStream* stream);
+void pdf_writer_write_string (PDFWriter* self, const gchar* text);
+guint pdf_writer_start_object (PDFWriter* self);
+gboolean page_get_is_color (Page* self);
+gint page_get_depth (Page* self);
+static guint8* _vala_array_dup1 (guint8* self, int length);
+static guint8* _vala_array_dup2 (guint8* self, int length);
+void pdf_writer_write (PDFWriter* self, guint8* data, int data_length1);
+void book_save (Book* self, const gchar* type, gint quality, GFile* file, GError** error);
+gboolean book_get_needs_saving (Book* self);
+static void g_cclosure_user_marshal_VOID__PAGE (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void book_finalize (Book* obj);
+#define PDF_WRITER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PDF_WRITER, PDFWriterPrivate))
+enum {
+ PDF_WRITER_DUMMY_PROPERTY
+};
+static void pdf_writer_finalize (PDFWriter* obj);
+enum {
+ PS_WRITER_DUMMY_PROPERTY
+};
+static cairo_status_t ps_writer_write_cairo_data (PsWriter* self, guint8* data, int data_length1);
+static cairo_status_t _ps_writer_write_cairo_data_cairo_write_func_t (gpointer self, guchar* data, int data_length1);
+static void ps_writer_finalize (PsWriter* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static gpointer _page_ref0 (gpointer self) {
+#line 45 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return self ? page_ref (self) : NULL;
+#line 247 "book.c"
+}
+
+
+static void _book_page_changed_cb_page_pixels_changed (Page* _sender, gpointer self) {
+#line 47 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_page_changed_cb ((Book*) self, _sender);
+#line 254 "book.c"
+}
+
+
+static void _book_page_changed_cb_page_crop_changed (Page* _sender, gpointer self) {
+#line 48 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_page_changed_cb ((Book*) self, _sender);
+#line 261 "book.c"
+}
+
+
+static void _page_unref0_ (gpointer var) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ (var == NULL) ? NULL : (var = (page_unref (var), NULL));
+#line 268 "book.c"
+}
+
+
+static void _g_list_free__page_unref0_ (GList* self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_list_foreach (self, (GFunc) _page_unref0_, NULL);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_list_free (self);
+#line 277 "book.c"
+}
+
+
+Book* book_construct (GType object_type) {
+ Book* self = NULL;
+#line 38 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self = (Book*) g_type_create_instance (object_type);
+#line 40 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ __g_list_free__page_unref0_0 (self->priv->pages);
+#line 40 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->priv->pages = NULL;
+#line 38 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return self;
+#line 291 "book.c"
+}
+
+
+Book* book_new (void) {
+#line 38 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return book_construct (TYPE_BOOK);
+#line 298 "book.c"
+}
+
+
+void book_clear (Book* self) {
+ GList* _tmp0_ = NULL;
+#line 52 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = self->priv->pages;
+#line 308 "book.c"
+ {
+ GList* page_collection = NULL;
+ GList* page_it = NULL;
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ page_collection = _tmp0_;
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ for (page_it = page_collection; page_it != NULL; page_it = page_it->next) {
+#line 316 "book.c"
+ Page* _tmp1_ = NULL;
+ Page* page = NULL;
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = _page_ref0 ((Page*) page_it->data);
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ page = _tmp1_;
+#line 323 "book.c"
+ {
+ Page* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ Page* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 56 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = page;
+#line 56 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_parse_name ("pixels-changed", TYPE_PAGE, &_tmp3_, NULL, FALSE);
+#line 56 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _book_page_changed_cb_page_pixels_changed, self);
+#line 57 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = page;
+#line 57 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_parse_name ("crop-changed", TYPE_PAGE, &_tmp5_, NULL, FALSE);
+#line 57 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _book_page_changed_cb_page_crop_changed, self);
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _page_unref0 (page);
+#line 343 "book.c"
+ }
+ }
+ }
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ __g_list_free__page_unref0_0 (self->priv->pages);
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->priv->pages = NULL;
+#line 60 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_emit_by_name (self, "cleared");
+#line 353 "book.c"
+}
+
+
+static void book_page_changed_cb (Book* self, Page* page) {
+#line 63 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 63 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (page != NULL);
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_set_needs_saving (self, TRUE);
+#line 364 "book.c"
+}
+
+
+void book_append_page (Book* self, Page* page) {
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+#line 68 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 68 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (page != NULL);
+#line 70 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = page;
+#line 70 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_connect (_tmp0_, "pixels-changed", (GCallback) _book_page_changed_cb_page_pixels_changed, self);
+#line 71 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = page;
+#line 71 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_connect (_tmp1_, "crop-changed", (GCallback) _book_page_changed_cb_page_crop_changed, self);
+#line 73 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = page;
+#line 73 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = _page_ref0 (_tmp2_);
+#line 73 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->priv->pages = g_list_append (self->priv->pages, _tmp3_);
+#line 74 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = page;
+#line 74 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_emit_by_name (self, "page-added", _tmp4_);
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_set_needs_saving (self, TRUE);
+#line 398 "book.c"
+}
+
+
+void book_move_page (Book* self, Page* page, guint location) {
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 78 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 78 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (page != NULL);
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = page;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->priv->pages = g_list_remove (self->priv->pages, _tmp0_);
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = page;
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = _page_ref0 (_tmp1_);
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = location;
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->priv->pages = g_list_insert (self->priv->pages, _tmp2_, (gint) _tmp3_);
+#line 82 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_emit_by_name (self, "reordered");
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_set_needs_saving (self, TRUE);
+#line 427 "book.c"
+}
+
+
+void book_reverse (Book* self) {
+ GList* new_pages = NULL;
+ GList* _tmp0_ = NULL;
+ GList* _tmp4_ = NULL;
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 88 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ new_pages = NULL;
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = self->priv->pages;
+#line 441 "book.c"
+ {
+ GList* page_collection = NULL;
+ GList* page_it = NULL;
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ page_collection = _tmp0_;
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ for (page_it = page_collection; page_it != NULL; page_it = page_it->next) {
+#line 449 "book.c"
+ Page* _tmp1_ = NULL;
+ Page* page = NULL;
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = _page_ref0 ((Page*) page_it->data);
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ page = _tmp1_;
+#line 456 "book.c"
+ {
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+#line 90 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = page;
+#line 90 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = _page_ref0 (_tmp2_);
+#line 90 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ new_pages = g_list_prepend (new_pages, _tmp3_);
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _page_unref0 (page);
+#line 468 "book.c"
+ }
+ }
+ }
+#line 91 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = new_pages;
+#line 91 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ new_pages = NULL;
+#line 91 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ __g_list_free__page_unref0_0 (self->priv->pages);
+#line 91 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->priv->pages = _tmp4_;
+#line 93 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_emit_by_name (self, "reordered");
+#line 94 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_set_needs_saving (self, TRUE);
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ __g_list_free__page_unref0_0 (new_pages);
+#line 486 "book.c"
+}
+
+
+void book_combine_sides (Book* self) {
+ guint n_front = 0U;
+ guint _tmp0_ = 0U;
+ guint _tmp1_ = 0U;
+ guint _tmp2_ = 0U;
+ guint _tmp3_ = 0U;
+ GList* new_pages = NULL;
+ GList* _tmp19_ = NULL;
+#line 97 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 99 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = book_get_n_pages (self);
+#line 99 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = _tmp0_;
+#line 99 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = book_get_n_pages (self);
+#line 99 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = _tmp2_;
+#line 99 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ n_front = _tmp1_ - (_tmp3_ / 2);
+#line 100 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ new_pages = NULL;
+#line 512 "book.c"
+ {
+ gint i = 0;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ i = 0;
+#line 517 "book.c"
+ {
+ gboolean _tmp4_ = FALSE;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = TRUE;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 524 "book.c"
+ gint _tmp6_ = 0;
+ guint _tmp7_ = 0U;
+ guint _tmp8_ = 0U;
+ gint _tmp9_ = 0;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!_tmp4_) {
+#line 531 "book.c"
+ gint _tmp5_ = 0;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_ = i;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ i = _tmp5_ + 1;
+#line 537 "book.c"
+ }
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = FALSE;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp6_ = i;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp7_ = book_get_n_pages (self);
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp8_ = _tmp7_;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(((guint) _tmp6_) < _tmp8_)) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 551 "book.c"
+ }
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp9_ = i;
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if ((_tmp9_ % 2) == 0) {
+#line 557 "book.c"
+ GList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gconstpointer _tmp12_ = NULL;
+ Page* _tmp13_ = NULL;
+#line 104 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp10_ = self->priv->pages;
+#line 104 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp11_ = i;
+#line 104 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp12_ = g_list_nth_data (_tmp10_, (guint) (_tmp11_ / 2));
+#line 104 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp13_ = _page_ref0 ((Page*) _tmp12_);
+#line 104 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ new_pages = g_list_append (new_pages, _tmp13_);
+#line 572 "book.c"
+ } else {
+ GList* _tmp14_ = NULL;
+ guint _tmp15_ = 0U;
+ gint _tmp16_ = 0;
+ gconstpointer _tmp17_ = NULL;
+ Page* _tmp18_ = NULL;
+#line 106 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp14_ = self->priv->pages;
+#line 106 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp15_ = n_front;
+#line 106 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp16_ = i;
+#line 106 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp17_ = g_list_nth_data (_tmp14_, _tmp15_ + (_tmp16_ / 2));
+#line 106 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp18_ = _page_ref0 ((Page*) _tmp17_);
+#line 106 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ new_pages = g_list_append (new_pages, _tmp18_);
+#line 591 "book.c"
+ }
+ }
+ }
+ }
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp19_ = new_pages;
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ new_pages = NULL;
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ __g_list_free__page_unref0_0 (self->priv->pages);
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->priv->pages = _tmp19_;
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_emit_by_name (self, "reordered");
+#line 111 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_set_needs_saving (self, TRUE);
+#line 97 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ __g_list_free__page_unref0_0 (new_pages);
+#line 610 "book.c"
+}
+
+
+void book_combine_sides_reverse (Book* self) {
+ GList* new_pages = NULL;
+ GList* _tmp16_ = NULL;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ new_pages = NULL;
+#line 621 "book.c"
+ {
+ gint i = 0;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ i = 0;
+#line 626 "book.c"
+ {
+ gboolean _tmp0_ = FALSE;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = TRUE;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 633 "book.c"
+ gint _tmp2_ = 0;
+ guint _tmp3_ = 0U;
+ guint _tmp4_ = 0U;
+ gint _tmp5_ = 0;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!_tmp0_) {
+#line 640 "book.c"
+ gint _tmp1_ = 0;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = i;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ i = _tmp1_ + 1;
+#line 646 "book.c"
+ }
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = FALSE;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = i;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = book_get_n_pages (self);
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = _tmp3_;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(((guint) _tmp2_) < _tmp4_)) {
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 660 "book.c"
+ }
+#line 119 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_ = i;
+#line 119 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if ((_tmp5_ % 2) == 0) {
+#line 666 "book.c"
+ GList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gconstpointer _tmp8_ = NULL;
+ Page* _tmp9_ = NULL;
+#line 120 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp6_ = self->priv->pages;
+#line 120 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp7_ = i;
+#line 120 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp8_ = g_list_nth_data (_tmp6_, (guint) (_tmp7_ / 2));
+#line 120 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp9_ = _page_ref0 ((Page*) _tmp8_);
+#line 120 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ new_pages = g_list_append (new_pages, _tmp9_);
+#line 681 "book.c"
+ } else {
+ GList* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+ guint _tmp12_ = 0U;
+ gint _tmp13_ = 0;
+ gconstpointer _tmp14_ = NULL;
+ Page* _tmp15_ = NULL;
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp10_ = self->priv->pages;
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp11_ = book_get_n_pages (self);
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp12_ = _tmp11_;
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp13_ = i;
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp14_ = g_list_nth_data (_tmp10_, (_tmp12_ - 1) - (_tmp13_ / 2));
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp15_ = _page_ref0 ((Page*) _tmp14_);
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ new_pages = g_list_append (new_pages, _tmp15_);
+#line 703 "book.c"
+ }
+ }
+ }
+ }
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp16_ = new_pages;
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ new_pages = NULL;
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ __g_list_free__page_unref0_0 (self->priv->pages);
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->priv->pages = _tmp16_;
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_emit_by_name (self, "reordered");
+#line 127 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_set_needs_saving (self, TRUE);
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ __g_list_free__page_unref0_0 (new_pages);
+#line 722 "book.c"
+}
+
+
+void book_delete_page (Book* self, Page* page) {
+ Page* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ Page* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+#line 130 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 130 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (page != NULL);
+#line 132 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = page;
+#line 132 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_parse_name ("pixels-changed", TYPE_PAGE, &_tmp1_, NULL, FALSE);
+#line 132 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _book_page_changed_cb_page_pixels_changed, self);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = page;
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_parse_name ("crop-changed", TYPE_PAGE, &_tmp3_, NULL, FALSE);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _book_page_changed_cb_page_crop_changed, self);
+#line 134 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = page;
+#line 134 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->priv->pages = g_list_remove (self->priv->pages, _tmp4_);
+#line 135 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_ = page;
+#line 135 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_emit_by_name (self, "page-removed", _tmp5_);
+#line 136 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_set_needs_saving (self, TRUE);
+#line 759 "book.c"
+}
+
+
+Page* book_get_page (Book* self, gint page_number) {
+ Page* result = NULL;
+ gint _tmp0_ = 0;
+ GList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gconstpointer _tmp6_ = NULL;
+ Page* _tmp7_ = NULL;
+#line 139 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = page_number;
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp0_ < 0) {
+#line 776 "book.c"
+ GList* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ gint _tmp3_ = 0;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = self->priv->pages;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = g_list_length (_tmp1_);
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = page_number;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ page_number = ((gint) _tmp2_) + _tmp3_;
+#line 788 "book.c"
+ }
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = self->priv->pages;
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_ = page_number;
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp6_ = g_list_nth_data (_tmp4_, (guint) _tmp5_);
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp7_ = _page_ref0 ((Page*) _tmp6_);
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ result = _tmp7_;
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return result;
+#line 802 "book.c"
+}
+
+
+guint book_get_page_index (Book* self, Page* page) {
+ guint result = 0U;
+ GList* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (self != NULL, 0U);
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (page != NULL, 0U);
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = self->priv->pages;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = page;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = g_list_index (_tmp0_, _tmp1_);
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ result = (guint) _tmp2_;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return result;
+#line 825 "book.c"
+}
+
+
+static gint string_last_index_of_char (const gchar* self, gunichar c, gint start_index) {
+ gint result = 0;
+ gchar* _result_ = NULL;
+ gint _tmp0_ = 0;
+ gunichar _tmp1_ = 0U;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 930 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, 0);
+#line 931 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = start_index;
+#line 931 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp1_ = c;
+#line 931 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp2_ = g_utf8_strrchr (((gchar*) self) + _tmp0_, (gssize) (-1), _tmp1_);
+#line 931 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _result_ = _tmp2_;
+#line 933 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp3_ = _result_;
+#line 933 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp3_ != NULL) {
+#line 850 "book.c"
+ gchar* _tmp4_ = NULL;
+#line 934 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp4_ = _result_;
+#line 934 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = (gint) (_tmp4_ - ((gchar*) self));
+#line 934 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 858 "book.c"
+ } else {
+#line 936 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = -1;
+#line 936 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 864 "book.c"
+ }
+}
+
+
+static gchar* string_slice (const gchar* self, glong start, glong end) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ glong _tmp2_ = 0L;
+ glong _tmp5_ = 0L;
+ gboolean _tmp8_ = FALSE;
+ glong _tmp9_ = 0L;
+ gboolean _tmp12_ = FALSE;
+ glong _tmp13_ = 0L;
+ glong _tmp16_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ gchar* _tmp21_ = NULL;
+#line 1226 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1227 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = strlen (self);
+#line 1227 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp1_ = _tmp0_;
+#line 1227 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp1_;
+#line 1228 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp2_ = start;
+#line 1228 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp2_ < ((glong) 0)) {
+#line 898 "book.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+#line 1229 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp3_ = string_length;
+#line 1229 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp4_ = start;
+#line 1229 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ start = _tmp3_ + _tmp4_;
+#line 907 "book.c"
+ }
+#line 1231 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1231 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp5_ < ((glong) 0)) {
+#line 913 "book.c"
+ glong _tmp6_ = 0L;
+ glong _tmp7_ = 0L;
+#line 1232 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp6_ = string_length;
+#line 1232 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp7_ = end;
+#line 1232 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ end = _tmp6_ + _tmp7_;
+#line 922 "book.c"
+ }
+#line 1234 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp9_ = start;
+#line 1234 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp9_ >= ((glong) 0)) {
+#line 928 "book.c"
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1234 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp10_ = start;
+#line 1234 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp11_ = string_length;
+#line 1234 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp8_ = _tmp10_ <= _tmp11_;
+#line 937 "book.c"
+ } else {
+#line 1234 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp8_ = FALSE;
+#line 941 "book.c"
+ }
+#line 1234 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp8_, NULL);
+#line 1235 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp13_ = end;
+#line 1235 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp13_ >= ((glong) 0)) {
+#line 949 "book.c"
+ glong _tmp14_ = 0L;
+ glong _tmp15_ = 0L;
+#line 1235 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp14_ = end;
+#line 1235 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1235 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp12_ = _tmp14_ <= _tmp15_;
+#line 958 "book.c"
+ } else {
+#line 1235 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp12_ = FALSE;
+#line 962 "book.c"
+ }
+#line 1235 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_, NULL);
+#line 1236 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp16_ = start;
+#line 1236 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp17_ = end;
+#line 1236 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp16_ <= _tmp17_, NULL);
+#line 1237 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp18_ = start;
+#line 1237 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp19_ = end;
+#line 1237 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp20_ = start;
+#line 1237 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp21_ = g_strndup (((gchar*) self) + _tmp18_, (gsize) (_tmp19_ - _tmp20_));
+#line 1237 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = _tmp21_;
+#line 1237 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 984 "book.c"
+}
+
+
+static GFile* book_make_indexed_file (Book* self, const gchar* uri, gint i) {
+ GFile* result = NULL;
+ guint _tmp0_ = 0U;
+ guint _tmp1_ = 0U;
+ gchar* basename = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* prefix = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* suffix = NULL;
+ gchar* _tmp8_ = NULL;
+ gint extension_index = 0;
+ const gchar* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint width = 0;
+ guint _tmp26_ = 0U;
+ guint _tmp27_ = 0U;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ gchar* number_format = NULL;
+ gint _tmp33_ = 0;
+ gchar* _tmp34_ = NULL;
+ gchar* filename = NULL;
+ const gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+ gint _tmp39_ = 0;
+ gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ const gchar* _tmp47_ = NULL;
+ GFile* _tmp48_ = NULL;
+#line 151 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 151 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (uri != NULL, NULL);
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = book_get_n_pages (self);
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = _tmp0_;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp1_ == ((guint) 1)) {
+#line 1040 "book.c"
+ const gchar* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 154 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = uri;
+#line 154 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = g_file_new_for_uri (_tmp2_);
+#line 154 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ result = _tmp3_;
+#line 154 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return result;
+#line 1051 "book.c"
+ }
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = uri;
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_ = g_path_get_basename (_tmp4_);
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ basename = _tmp5_;
+#line 158 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp6_ = uri;
+#line 158 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 158 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ prefix = _tmp7_;
+#line 158 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp8_ = g_strdup ("");
+#line 158 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ suffix = _tmp8_;
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp9_ = basename;
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp10_ = string_last_index_of_char (_tmp9_, (gunichar) '.', 0);
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ extension_index = _tmp10_;
+#line 160 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp11_ = extension_index;
+#line 160 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp11_ >= 0) {
+#line 1079 "book.c"
+ const gchar* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ const gchar* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ const gchar* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gchar* _tmp25_ = NULL;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp12_ = basename;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp13_ = extension_index;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp14_ = basename;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp15_ = strlen (_tmp14_);
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp16_ = _tmp15_;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp17_ = string_slice (_tmp12_, (glong) _tmp13_, (glong) _tmp16_);
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (suffix);
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ suffix = _tmp17_;
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp18_ = uri;
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp19_ = uri;
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp20_ = strlen (_tmp19_);
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp21_ = _tmp20_;
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp22_ = suffix;
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp23_ = strlen (_tmp22_);
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp24_ = _tmp23_;
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp25_ = string_slice (_tmp18_, (glong) 0, (glong) (_tmp21_ - _tmp24_));
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (prefix);
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ prefix = _tmp25_;
+#line 1130 "book.c"
+ }
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp26_ = book_get_n_pages (self);
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp27_ = _tmp26_;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp28_ = g_strdup_printf ("%u", _tmp27_);
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp29_ = _tmp28_;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp30_ = strlen (_tmp29_);
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp31_ = _tmp30_;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp32_ = _tmp31_;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp29_);
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ width = _tmp32_;
+#line 166 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp33_ = width;
+#line 166 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp34_ = g_strdup_printf ("%%0%dd", _tmp33_);
+#line 166 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ number_format = _tmp34_;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp35_ = prefix;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp36_ = g_strconcat (_tmp35_, "-", NULL);
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp37_ = _tmp36_;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp38_ = number_format;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp39_ = i;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp40_ = g_strdup_printf (_tmp38_, _tmp39_ + 1);
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp41_ = _tmp40_;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp42_ = g_strconcat (_tmp37_, _tmp41_, NULL);
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp43_ = _tmp42_;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp44_ = suffix;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp45_ = g_strconcat (_tmp43_, _tmp44_, NULL);
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp46_ = _tmp45_;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp43_);
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp41_);
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp37_);
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ filename = _tmp46_;
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp47_ = filename;
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp48_ = g_file_new_for_uri (_tmp47_);
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ result = _tmp48_;
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (filename);
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (number_format);
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (suffix);
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (prefix);
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (basename);
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return result;
+#line 1206 "book.c"
+}
+
+
+static void book_save_multi_file (Book* self, const gchar* type, gint quality, GFile* file, GError** error) {
+ GError * _inner_error_ = NULL;
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (type != NULL);
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (file != NULL);
+#line 1218 "book.c"
+ {
+ gint i = 0;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ i = 0;
+#line 1223 "book.c"
+ {
+ gboolean _tmp0_ = FALSE;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = TRUE;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 1230 "book.c"
+ gint _tmp2_ = 0;
+ guint _tmp3_ = 0U;
+ guint _tmp4_ = 0U;
+ Page* page = NULL;
+ gint _tmp5_ = 0;
+ Page* _tmp6_ = NULL;
+ Page* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ GFile* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ GFile* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!_tmp0_) {
+#line 1249 "book.c"
+ gint _tmp1_ = 0;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = i;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ i = _tmp1_ + 1;
+#line 1255 "book.c"
+ }
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = FALSE;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = i;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = book_get_n_pages (self);
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = _tmp3_;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(((guint) _tmp2_) < _tmp4_)) {
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 1269 "book.c"
+ }
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_ = i;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp6_ = book_get_page (self, _tmp5_);
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ page = _tmp6_;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp7_ = page;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp8_ = type;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp9_ = quality;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp10_ = file;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp11_ = g_file_get_uri (_tmp10_);
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp12_ = _tmp11_;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp13_ = i;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp14_ = book_make_indexed_file (self, _tmp12_, _tmp13_);
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp15_ = _tmp14_;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ page_save (_tmp7_, _tmp8_, _tmp9_, _tmp15_, &_inner_error_);
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_object_unref0 (_tmp15_);
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp12_);
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_inner_error_ != NULL) {
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_propagate_error (error, _inner_error_);
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _page_unref0 (page);
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return;
+#line 1309 "book.c"
+ }
+#line 177 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp16_ = i;
+#line 177 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_emit_by_name (self, "saving", _tmp16_);
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _page_unref0 (page);
+#line 1317 "book.c"
+ }
+ }
+ }
+}
+
+
+static void book_save_ps_pdf_surface (Book* self, cairo_surface_t* surface, GdkPixbuf* image, gdouble dpi) {
+ cairo_t* context = NULL;
+ cairo_surface_t* _tmp0_ = NULL;
+ cairo_t* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+ GdkPixbuf* _tmp4_ = NULL;
+ cairo_pattern_t* _tmp5_ = NULL;
+#line 181 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 181 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (surface != NULL);
+#line 181 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (image != NULL);
+#line 183 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = surface;
+#line 183 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = cairo_create (_tmp0_);
+#line 183 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ context = _tmp1_;
+#line 184 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = dpi;
+#line 184 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = dpi;
+#line 184 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ cairo_scale (context, 72.0 / _tmp2_, 72.0 / _tmp3_);
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = image;
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ gdk_cairo_set_source_pixbuf (context, _tmp4_, (gdouble) 0, (gdouble) 0);
+#line 186 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_ = cairo_get_source (context);
+#line 186 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ cairo_pattern_set_filter (_tmp5_, CAIRO_FILTER_BEST);
+#line 187 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ cairo_paint (context);
+#line 181 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _cairo_destroy0 (context);
+#line 1362 "book.c"
+}
+
+
+static gpointer _cairo_surface_reference0 (gpointer self) {
+#line 194 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return self ? cairo_surface_reference (self) : NULL;
+#line 1369 "book.c"
+}
+
+
+static void book_save_ps (Book* self, GFile* file, GError** error) {
+ GFileOutputStream* stream = NULL;
+ GFile* _tmp0_ = NULL;
+ GFileOutputStream* _tmp1_ = NULL;
+ PsWriter* writer = NULL;
+ PsWriter* _tmp2_ = NULL;
+ cairo_surface_t* surface = NULL;
+ PsWriter* _tmp3_ = NULL;
+ cairo_surface_t* _tmp4_ = NULL;
+ cairo_surface_t* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 190 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 190 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (file != NULL);
+#line 192 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = file;
+#line 192 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = g_file_replace (_tmp0_, NULL, FALSE, G_FILE_CREATE_NONE, NULL, &_inner_error_);
+#line 192 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ stream = _tmp1_;
+#line 192 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_inner_error_ != NULL) {
+#line 192 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_propagate_error (error, _inner_error_);
+#line 192 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return;
+#line 1400 "book.c"
+ }
+#line 193 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = ps_writer_new (stream);
+#line 193 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ writer = _tmp2_;
+#line 194 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = writer;
+#line 194 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = _tmp3_->surface;
+#line 194 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_ = _cairo_surface_reference0 (_tmp4_);
+#line 194 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ surface = _tmp5_;
+#line 1414 "book.c"
+ {
+ gint i = 0;
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ i = 0;
+#line 1419 "book.c"
+ {
+ gboolean _tmp6_ = FALSE;
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp6_ = TRUE;
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 1426 "book.c"
+ gint _tmp8_ = 0;
+ guint _tmp9_ = 0U;
+ guint _tmp10_ = 0U;
+ Page* page = NULL;
+ gint _tmp11_ = 0;
+ Page* _tmp12_ = NULL;
+ GdkPixbuf* image = NULL;
+ Page* _tmp13_ = NULL;
+ GdkPixbuf* _tmp14_ = NULL;
+ gdouble width = 0.0;
+ GdkPixbuf* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ Page* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gdouble height = 0.0;
+ GdkPixbuf* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ Page* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ cairo_surface_t* _tmp27_ = NULL;
+ gdouble _tmp28_ = 0.0;
+ gdouble _tmp29_ = 0.0;
+ cairo_surface_t* _tmp30_ = NULL;
+ GdkPixbuf* _tmp31_ = NULL;
+ Page* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ cairo_surface_t* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!_tmp6_) {
+#line 1462 "book.c"
+ gint _tmp7_ = 0;
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp7_ = i;
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ i = _tmp7_ + 1;
+#line 1468 "book.c"
+ }
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp6_ = FALSE;
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp8_ = i;
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp9_ = book_get_n_pages (self);
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp10_ = _tmp9_;
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(((guint) _tmp8_) < _tmp10_)) {
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 1482 "book.c"
+ }
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp11_ = i;
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp12_ = book_get_page (self, _tmp11_);
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ page = _tmp12_;
+#line 199 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp13_ = page;
+#line 199 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp14_ = page_get_image (_tmp13_, TRUE);
+#line 199 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ image = _tmp14_;
+#line 200 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp15_ = image;
+#line 200 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp16_ = gdk_pixbuf_get_width (_tmp15_);
+#line 200 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp17_ = _tmp16_;
+#line 200 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp18_ = page;
+#line 200 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp19_ = page_get_dpi (_tmp18_);
+#line 200 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp20_ = _tmp19_;
+#line 200 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ width = (_tmp17_ * 72.0) / _tmp20_;
+#line 201 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp21_ = image;
+#line 201 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp22_ = gdk_pixbuf_get_height (_tmp21_);
+#line 201 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp23_ = _tmp22_;
+#line 201 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp24_ = page;
+#line 201 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp25_ = page_get_dpi (_tmp24_);
+#line 201 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp26_ = _tmp25_;
+#line 201 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ height = (_tmp23_ * 72.0) / _tmp26_;
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp27_ = surface;
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp28_ = width;
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp29_ = height;
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ cairo_ps_surface_set_size (_tmp27_, _tmp28_, _tmp29_);
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp30_ = surface;
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp31_ = image;
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp32_ = page;
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp33_ = page_get_dpi (_tmp32_);
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp34_ = _tmp33_;
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_save_ps_pdf_surface (self, _tmp30_, _tmp31_, (gdouble) _tmp34_);
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp35_ = surface;
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ cairo_surface_show_page (_tmp35_);
+#line 205 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp36_ = i;
+#line 205 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_emit_by_name (self, "saving", _tmp36_);
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_object_unref0 (image);
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _page_unref0 (page);
+#line 1556 "book.c"
+ }
+ }
+ }
+#line 190 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _cairo_surface_destroy0 (surface);
+#line 190 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _ps_writer_unref0 (writer);
+#line 190 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_object_unref0 (stream);
+#line 1566 "book.c"
+}
+
+
+static guint8* book_compress_zlib (Book* self, guint8* data, int data_length1, int* result_length1) {
+ guint8* result = NULL;
+ z_stream stream = {0};
+ guint8* out_data = NULL;
+ guint8* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ guint8* _tmp1_ = NULL;
+ gint out_data_length1 = 0;
+ gint _out_data_size_ = 0;
+ guint8* _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ guint8* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ z_stream _tmp7_ = {0};
+ guint _tmp8_ = 0U;
+ guint n_written = 0U;
+ guint8* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ z_stream _tmp11_ = {0};
+ guint _tmp12_ = 0U;
+ guint _tmp13_ = 0U;
+ gint _tmp14_ = 0;
+ guint8* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+#line 209 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 211 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ deflateInit (&stream, (gint) Z_BEST_COMPRESSION);
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = data;
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0__length1 = data_length1;
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = g_new0 (guint8, _tmp0__length1);
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ out_data = _tmp1_;
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ out_data_length1 = _tmp0__length1;
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _out_data_size_ = out_data_length1;
+#line 214 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = data;
+#line 214 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2__length1 = data_length1;
+#line 214 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ stream.next_in = _tmp2_;
+#line 214 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ stream.avail_in = _tmp2__length1;
+#line 215 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = out_data;
+#line 215 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3__length1 = out_data_length1;
+#line 215 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ stream.next_out = _tmp3_;
+#line 215 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ stream.avail_out = _tmp3__length1;
+#line 216 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 1628 "book.c"
+ z_stream _tmp4_ = {0};
+ guint _tmp5_ = 0U;
+ gint _tmp6_ = 0;
+#line 216 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = stream;
+#line 216 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_ = _tmp4_.avail_in;
+#line 216 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(_tmp5_ > ((guint) 0))) {
+#line 216 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 1640 "book.c"
+ }
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp6_ = deflate (&stream, (gint) Z_FINISH);
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp6_ == ((gint) Z_STREAM_ERROR)) {
+#line 219 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 1648 "book.c"
+ }
+ }
+#line 222 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp7_ = stream;
+#line 222 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp8_ = _tmp7_.avail_in;
+#line 222 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp8_ > ((guint) 0)) {
+#line 1657 "book.c"
+ guint8* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+#line 223 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp9_ = NULL;
+#line 223 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp9__length1 = 0;
+#line 223 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (result_length1) {
+#line 223 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ *result_length1 = _tmp9__length1;
+#line 1668 "book.c"
+ }
+#line 223 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ result = _tmp9_;
+#line 223 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ out_data = (g_free (out_data), NULL);
+#line 223 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ deflateEnd (&stream);
+#line 223 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return result;
+#line 1678 "book.c"
+ }
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp10_ = data;
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp10__length1 = data_length1;
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp11_ = stream;
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp12_ = _tmp11_.avail_out;
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ n_written = _tmp10__length1 - _tmp12_;
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp13_ = n_written;
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp14_ = (gint) _tmp13_;
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ out_data = g_renew (guint8, out_data, (gint) _tmp13_);
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ (_tmp14_ > out_data_length1) ? memset (out_data + out_data_length1, 0, sizeof (guint8) * (_tmp14_ - out_data_length1)) : NULL;
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ out_data_length1 = _tmp14_;
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _out_data_size_ = _tmp14_;
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp15_ = out_data;
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp15__length1 = out_data_length1;
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (result_length1) {
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ *result_length1 = _tmp15__length1;
+#line 1710 "book.c"
+ }
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ result = _tmp15_;
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ deflateEnd (&stream);
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return result;
+#line 1718 "book.c"
+}
+
+
+static gboolean _book_write_pixbuf_data_gdk_pixbuf_save_func (guint8* buf, gsize buf_length1, GError** error, gpointer self) {
+ gboolean result;
+ result = book_write_pixbuf_data ((Book*) self, buf, buf_length1, error);
+#line 240 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return result;
+#line 1727 "book.c"
+}
+
+
+static guint8* book_compress_jpeg (Book* self, GdkPixbuf* image, gint quality, gint dpi, int* result_length1) {
+ guint8* result = NULL;
+ GByteArray* _tmp0_ = NULL;
+ gchar** keys = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar** _tmp5_ = NULL;
+ gint keys_length1 = 0;
+ gint _keys_size_ = 0;
+ gchar** values = NULL;
+ gint _tmp6_ = 0;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gchar* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gchar* _tmp12_ = NULL;
+ gchar** _tmp13_ = NULL;
+ gint values_length1 = 0;
+ gint _values_size_ = 0;
+ guint8* data = NULL;
+ GByteArray* _tmp15_ = NULL;
+ guint8* _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ gint data_length1 = 0;
+ gint _data_size_ = 0;
+ guint8* _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 233 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 233 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (image != NULL, NULL);
+#line 235 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = g_byte_array_new ();
+#line 235 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_byte_array_unref0 (self->priv->jpeg_data);
+#line 235 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->priv->jpeg_data = _tmp0_;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = g_strdup ("quality");
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = g_strdup ("density-unit");
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = g_strdup ("x-density");
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = g_strdup ("y-density");
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_ = g_new0 (gchar*, 5 + 1);
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_[0] = _tmp1_;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_[1] = _tmp2_;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_[2] = _tmp3_;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_[3] = _tmp4_;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_[4] = NULL;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ keys = _tmp5_;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ keys_length1 = 5;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _keys_size_ = keys_length1;
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp6_ = quality;
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp7_ = g_strdup_printf ("%d", _tmp6_);
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp8_ = g_strdup ("dots-per-inch");
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp9_ = dpi;
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp10_ = g_strdup_printf ("%d", _tmp9_);
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp11_ = dpi;
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp12_ = g_strdup_printf ("%d", _tmp11_);
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp13_ = g_new0 (gchar*, 5 + 1);
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp13_[0] = _tmp7_;
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp13_[1] = _tmp8_;
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp13_[2] = _tmp10_;
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp13_[3] = _tmp12_;
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp13_[4] = NULL;
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ values = _tmp13_;
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ values_length1 = 5;
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _values_size_ = values_length1;
+#line 1830 "book.c"
+ {
+ GdkPixbuf* _tmp14_ = NULL;
+#line 240 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp14_ = image;
+#line 240 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ gdk_pixbuf_save_to_callbackv (_tmp14_, _book_write_pixbuf_data_gdk_pixbuf_save_func, self, "jpeg", keys, values, &_inner_error_);
+#line 240 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_inner_error_ != NULL) {
+#line 1839 "book.c"
+ goto __catch0_g_error;
+ }
+ }
+ goto __finally0;
+ __catch0_g_error:
+ {
+ GError* e = NULL;
+#line 238 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ e = _inner_error_;
+#line 238 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _inner_error_ = NULL;
+#line 238 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_error_free0 (e);
+#line 1853 "book.c"
+ }
+ __finally0:
+#line 238 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_inner_error_ != NULL) {
+#line 238 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
+#line 238 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ keys = (_vala_array_free (keys, keys_length1, (GDestroyNotify) g_free), NULL);
+#line 238 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 238 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_clear_error (&_inner_error_);
+#line 238 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return NULL;
+#line 1868 "book.c"
+ }
+#line 245 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp15_ = self->priv->jpeg_data;
+#line 245 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp16_ = _tmp15_->data;
+#line 245 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp16__length1 = _tmp15_->len;
+#line 245 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp15_->data = NULL;
+#line 245 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp15_->len = 0;
+#line 245 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data = _tmp16_;
+#line 245 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data_length1 = _tmp16__length1;
+#line 245 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _data_size_ = data_length1;
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_byte_array_unref0 (self->priv->jpeg_data);
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->priv->jpeg_data = NULL;
+#line 248 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp17_ = data;
+#line 248 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp17__length1 = data_length1;
+#line 248 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (result_length1) {
+#line 248 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ *result_length1 = _tmp17__length1;
+#line 1898 "book.c"
+ }
+#line 248 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ result = _tmp17_;
+#line 248 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
+#line 248 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ keys = (_vala_array_free (keys, keys_length1, (GDestroyNotify) g_free), NULL);
+#line 248 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return result;
+#line 1908 "book.c"
+}
+
+
+static gboolean book_write_pixbuf_data (Book* self, guint8* buf, int buf_length1, GError** error) {
+ gboolean result = FALSE;
+ GByteArray* _tmp0_ = NULL;
+ guint8* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 251 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 253 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = self->priv->jpeg_data;
+#line 253 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = buf;
+#line 253 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1__length1 = buf_length1;
+#line 253 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_byte_array_append (_tmp0_, _tmp1_, _tmp1__length1);
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ result = TRUE;
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return result;
+#line 1931 "book.c"
+}
+
+
+static guint8* _vala_array_dup1 (guint8* self, int length) {
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return g_memdup (self, length * sizeof (guint8));
+#line 1938 "book.c"
+}
+
+
+static guint8* _vala_array_dup2 (guint8* self, int length) {
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return g_memdup (self, length * sizeof (guint8));
+#line 1945 "book.c"
+}
+
+
+static void book_save_pdf (Book* self, GFile* file, gint quality, GError** error) {
+ gchar* id = NULL;
+ gchar* _tmp0_ = NULL;
+ GFileOutputStream* stream = NULL;
+ GFile* _tmp9_ = NULL;
+ GFileOutputStream* _tmp10_ = NULL;
+ PDFWriter* writer = NULL;
+ PDFWriter* _tmp11_ = NULL;
+ PDFWriter* _tmp12_ = NULL;
+ PDFWriter* _tmp13_ = NULL;
+ guint catalog_number = 0U;
+ PDFWriter* _tmp14_ = NULL;
+ guint _tmp15_ = 0U;
+ PDFWriter* _tmp16_ = NULL;
+ guint _tmp17_ = 0U;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ PDFWriter* _tmp20_ = NULL;
+ PDFWriter* _tmp21_ = NULL;
+ PDFWriter* _tmp22_ = NULL;
+ guint _tmp23_ = 0U;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ PDFWriter* _tmp26_ = NULL;
+ PDFWriter* _tmp27_ = NULL;
+ PDFWriter* _tmp28_ = NULL;
+ guint pages_number = 0U;
+ PDFWriter* _tmp29_ = NULL;
+ guint _tmp30_ = 0U;
+ PDFWriter* _tmp31_ = NULL;
+ guint _tmp32_ = 0U;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ PDFWriter* _tmp35_ = NULL;
+ PDFWriter* _tmp36_ = NULL;
+ PDFWriter* _tmp37_ = NULL;
+ PDFWriter* _tmp48_ = NULL;
+ PDFWriter* _tmp49_ = NULL;
+ guint _tmp50_ = 0U;
+ guint _tmp51_ = 0U;
+ gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ PDFWriter* _tmp54_ = NULL;
+ PDFWriter* _tmp55_ = NULL;
+ PDFWriter* _tmp366_ = NULL;
+ guint info_number = 0U;
+ PDFWriter* _tmp367_ = NULL;
+ guint _tmp368_ = 0U;
+ PDFWriter* _tmp369_ = NULL;
+ guint _tmp370_ = 0U;
+ gchar* _tmp371_ = NULL;
+ gchar* _tmp372_ = NULL;
+ PDFWriter* _tmp373_ = NULL;
+ PDFWriter* _tmp374_ = NULL;
+ gchar* _tmp375_ = NULL;
+ gchar* _tmp376_ = NULL;
+ PDFWriter* _tmp377_ = NULL;
+ PDFWriter* _tmp378_ = NULL;
+ PDFWriter* _tmp379_ = NULL;
+ gsize xref_offset = 0UL;
+ PDFWriter* _tmp380_ = NULL;
+ gsize _tmp381_ = 0UL;
+ PDFWriter* _tmp382_ = NULL;
+ PDFWriter* _tmp383_ = NULL;
+ PDFWriter* _tmp384_ = NULL;
+ GList* _tmp385_ = NULL;
+ guint _tmp386_ = 0U;
+ gchar* _tmp387_ = NULL;
+ gchar* _tmp388_ = NULL;
+ PDFWriter* _tmp389_ = NULL;
+ PDFWriter* _tmp390_ = NULL;
+ GList* _tmp391_ = NULL;
+ PDFWriter* _tmp396_ = NULL;
+ PDFWriter* _tmp397_ = NULL;
+ PDFWriter* _tmp398_ = NULL;
+ PDFWriter* _tmp399_ = NULL;
+ PDFWriter* _tmp400_ = NULL;
+ GList* _tmp401_ = NULL;
+ guint _tmp402_ = 0U;
+ gchar* _tmp403_ = NULL;
+ gchar* _tmp404_ = NULL;
+ PDFWriter* _tmp405_ = NULL;
+ guint _tmp406_ = 0U;
+ gchar* _tmp407_ = NULL;
+ gchar* _tmp408_ = NULL;
+ PDFWriter* _tmp409_ = NULL;
+ guint _tmp410_ = 0U;
+ gchar* _tmp411_ = NULL;
+ gchar* _tmp412_ = NULL;
+ PDFWriter* _tmp413_ = NULL;
+ const gchar* _tmp414_ = NULL;
+ const gchar* _tmp415_ = NULL;
+ gchar* _tmp416_ = NULL;
+ gchar* _tmp417_ = NULL;
+ PDFWriter* _tmp418_ = NULL;
+ PDFWriter* _tmp419_ = NULL;
+ PDFWriter* _tmp420_ = NULL;
+ gsize _tmp421_ = 0UL;
+ gchar* _tmp422_ = NULL;
+ gchar* _tmp423_ = NULL;
+ PDFWriter* _tmp424_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 257 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 257 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (file != NULL);
+#line 260 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = g_strdup ("");
+#line 260 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ id = _tmp0_;
+#line 2059 "book.c"
+ {
+ gint i = 0;
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ i = 0;
+#line 2064 "book.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = TRUE;
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 2071 "book.c"
+ gint _tmp3_ = 0;
+ const gchar* _tmp4_ = NULL;
+ guint32 _tmp5_ = 0U;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!_tmp1_) {
+#line 2080 "book.c"
+ gint _tmp2_ = 0;
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = i;
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ i = _tmp2_ + 1;
+#line 2086 "book.c"
+ }
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = FALSE;
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = i;
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(_tmp3_ < 4)) {
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 2096 "book.c"
+ }
+#line 262 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = id;
+#line 262 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_ = g_random_int ();
+#line 262 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp6_ = g_strdup_printf ("%08x", (guint) _tmp5_);
+#line 262 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp7_ = _tmp6_;
+#line 262 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp8_ = g_strconcat (_tmp4_, _tmp7_, NULL);
+#line 262 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (id);
+#line 262 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ id = _tmp8_;
+#line 262 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp7_);
+#line 2114 "book.c"
+ }
+ }
+ }
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp9_ = file;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp10_ = g_file_replace (_tmp9_, NULL, FALSE, G_FILE_CREATE_NONE, NULL, &_inner_error_);
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ stream = _tmp10_;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_inner_error_ != NULL) {
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_propagate_error (error, _inner_error_);
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (id);
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return;
+#line 2132 "book.c"
+ }
+#line 265 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp11_ = pdf_writer_new (stream);
+#line 265 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ writer = _tmp11_;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp12_ = writer;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp12_, "%PDF-1.3\n");
+#line 271 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp13_ = writer;
+#line 271 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp13_, "%\xe2\xe3\xcf\xd3\n");
+#line 274 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp14_ = writer;
+#line 274 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp15_ = pdf_writer_start_object (_tmp14_);
+#line 274 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ catalog_number = _tmp15_;
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp16_ = writer;
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp17_ = catalog_number;
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp18_ = g_strdup_printf ("%u 0 obj\n", _tmp17_);
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp19_ = _tmp18_;
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp16_, _tmp19_);
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp19_);
+#line 276 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp20_ = writer;
+#line 276 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp20_, "<<\n");
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp21_ = writer;
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp21_, "/Type /Catalog\n");
+#line 280 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp22_ = writer;
+#line 280 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp23_ = catalog_number;
+#line 280 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp24_ = g_strdup_printf ("/Pages %u 0 R\n", _tmp23_ + 1);
+#line 280 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp25_ = _tmp24_;
+#line 280 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp22_, _tmp25_);
+#line 280 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp25_);
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp26_ = writer;
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp26_, ">>\n");
+#line 282 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp27_ = writer;
+#line 282 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp27_, "endobj\n");
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp28_ = writer;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp28_, "\n");
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp29_ = writer;
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp30_ = pdf_writer_start_object (_tmp29_);
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pages_number = _tmp30_;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp31_ = writer;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp32_ = pages_number;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp33_ = g_strdup_printf ("%u 0 obj\n", _tmp32_);
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp34_ = _tmp33_;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp31_, _tmp34_);
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp34_);
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp35_ = writer;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp35_, "<<\n");
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp36_ = writer;
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp36_, "/Type /Pages\n");
+#line 305 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp37_ = writer;
+#line 305 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp37_, "/Kids [");
+#line 2226 "book.c"
+ {
+ gint i = 0;
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ i = 0;
+#line 2231 "book.c"
+ {
+ gboolean _tmp38_ = FALSE;
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp38_ = TRUE;
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 2238 "book.c"
+ gint _tmp40_ = 0;
+ guint _tmp41_ = 0U;
+ guint _tmp42_ = 0U;
+ PDFWriter* _tmp43_ = NULL;
+ guint _tmp44_ = 0U;
+ gint _tmp45_ = 0;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!_tmp38_) {
+#line 2249 "book.c"
+ gint _tmp39_ = 0;
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp39_ = i;
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ i = _tmp39_ + 1;
+#line 2255 "book.c"
+ }
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp38_ = FALSE;
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp40_ = i;
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp41_ = book_get_n_pages (self);
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp42_ = _tmp41_;
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(((guint) _tmp40_) < _tmp42_)) {
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 2269 "book.c"
+ }
+#line 307 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp43_ = writer;
+#line 307 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp44_ = pages_number;
+#line 307 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp45_ = i;
+#line 307 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp46_ = g_strdup_printf (" %u 0 R", (_tmp44_ + 1) + (_tmp45_ * 3));
+#line 307 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp47_ = _tmp46_;
+#line 307 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp43_, _tmp47_);
+#line 307 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp47_);
+#line 2285 "book.c"
+ }
+ }
+ }
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp48_ = writer;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp48_, " ]\n");
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp49_ = writer;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp50_ = book_get_n_pages (self);
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp51_ = _tmp50_;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp52_ = g_strdup_printf ("/Count %u\n", _tmp51_);
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp53_ = _tmp52_;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp49_, _tmp53_);
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp53_);
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp54_ = writer;
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp54_, ">>\n");
+#line 311 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp55_ = writer;
+#line 311 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp55_, "endobj\n");
+#line 2315 "book.c"
+ {
+ gint i = 0;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ i = 0;
+#line 2320 "book.c"
+ {
+ gboolean _tmp56_ = FALSE;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp56_ = TRUE;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 2327 "book.c"
+ gint _tmp58_ = 0;
+ guint _tmp59_ = 0U;
+ guint _tmp60_ = 0U;
+ Page* page = NULL;
+ gint _tmp61_ = 0;
+ Page* _tmp62_ = NULL;
+ GdkPixbuf* image = NULL;
+ Page* _tmp63_ = NULL;
+ GdkPixbuf* _tmp64_ = NULL;
+ gint width = 0;
+ GdkPixbuf* _tmp65_ = NULL;
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+ gint height = 0;
+ GdkPixbuf* _tmp68_ = NULL;
+ gint _tmp69_ = 0;
+ gint _tmp70_ = 0;
+ guint8* pixels = NULL;
+ GdkPixbuf* _tmp71_ = NULL;
+ guint8* _tmp72_ = NULL;
+ gint pixels_length1 = 0;
+ gint _pixels_size_ = 0;
+ gdouble page_width = 0.0;
+ gint _tmp73_ = 0;
+ Page* _tmp74_ = NULL;
+ gint _tmp75_ = 0;
+ gint _tmp76_ = 0;
+ gdouble page_height = 0.0;
+ gint _tmp77_ = 0;
+ Page* _tmp78_ = NULL;
+ gint _tmp79_ = 0;
+ gint _tmp80_ = 0;
+ gint depth = 0;
+ gchar* color_space = NULL;
+ gchar* _tmp81_ = NULL;
+ gchar* filter = NULL;
+ gchar* width_buffer = NULL;
+ gchar* _tmp82_ = NULL;
+ gint width_buffer_length1 = 0;
+ gint _width_buffer_size_ = 0;
+ gchar* height_buffer = NULL;
+ gchar* _tmp83_ = NULL;
+ gint height_buffer_length1 = 0;
+ gint _height_buffer_size_ = 0;
+ guint8* data = NULL;
+ gint data_length1 = 0;
+ gint _data_size_ = 0;
+ Page* _tmp84_ = NULL;
+ gboolean _tmp85_ = FALSE;
+ gboolean _tmp86_ = FALSE;
+ guint8* compressed_data = NULL;
+ guint8* _tmp240_ = NULL;
+ gint _tmp240__length1 = 0;
+ gint _tmp241_ = 0;
+ guint8* _tmp242_ = NULL;
+ gint compressed_data_length1 = 0;
+ gint _compressed_data_size_ = 0;
+ guint8* _tmp243_ = NULL;
+ gint _tmp243__length1 = 0;
+ PDFWriter* _tmp261_ = NULL;
+ guint number = 0U;
+ PDFWriter* _tmp262_ = NULL;
+ guint _tmp263_ = 0U;
+ PDFWriter* _tmp264_ = NULL;
+ guint _tmp265_ = 0U;
+ gchar* _tmp266_ = NULL;
+ gchar* _tmp267_ = NULL;
+ PDFWriter* _tmp268_ = NULL;
+ PDFWriter* _tmp269_ = NULL;
+ PDFWriter* _tmp270_ = NULL;
+ guint _tmp271_ = 0U;
+ gchar* _tmp272_ = NULL;
+ gchar* _tmp273_ = NULL;
+ PDFWriter* _tmp274_ = NULL;
+ gint _tmp275_ = 0;
+ guint _tmp276_ = 0U;
+ gchar* _tmp277_ = NULL;
+ gchar* _tmp278_ = NULL;
+ PDFWriter* _tmp279_ = NULL;
+ gdouble _tmp280_ = 0.0;
+ gchar* _tmp281_ = NULL;
+ gint _tmp281__length1 = 0;
+ const gchar* _tmp282_ = NULL;
+ gdouble _tmp283_ = 0.0;
+ gchar* _tmp284_ = NULL;
+ gint _tmp284__length1 = 0;
+ const gchar* _tmp285_ = NULL;
+ gchar* _tmp286_ = NULL;
+ gchar* _tmp287_ = NULL;
+ PDFWriter* _tmp288_ = NULL;
+ guint _tmp289_ = 0U;
+ gchar* _tmp290_ = NULL;
+ gchar* _tmp291_ = NULL;
+ PDFWriter* _tmp292_ = NULL;
+ PDFWriter* _tmp293_ = NULL;
+ PDFWriter* _tmp294_ = NULL;
+ PDFWriter* _tmp295_ = NULL;
+ guint _tmp296_ = 0U;
+ PDFWriter* _tmp297_ = NULL;
+ guint _tmp298_ = 0U;
+ gchar* _tmp299_ = NULL;
+ gchar* _tmp300_ = NULL;
+ PDFWriter* _tmp301_ = NULL;
+ PDFWriter* _tmp302_ = NULL;
+ PDFWriter* _tmp303_ = NULL;
+ PDFWriter* _tmp304_ = NULL;
+ gint _tmp305_ = 0;
+ gchar* _tmp306_ = NULL;
+ gchar* _tmp307_ = NULL;
+ PDFWriter* _tmp308_ = NULL;
+ gint _tmp309_ = 0;
+ gchar* _tmp310_ = NULL;
+ gchar* _tmp311_ = NULL;
+ PDFWriter* _tmp312_ = NULL;
+ const gchar* _tmp313_ = NULL;
+ gchar* _tmp314_ = NULL;
+ gchar* _tmp315_ = NULL;
+ PDFWriter* _tmp316_ = NULL;
+ gint _tmp317_ = 0;
+ gchar* _tmp318_ = NULL;
+ gchar* _tmp319_ = NULL;
+ PDFWriter* _tmp320_ = NULL;
+ guint8* _tmp321_ = NULL;
+ gint _tmp321__length1 = 0;
+ gchar* _tmp322_ = NULL;
+ gchar* _tmp323_ = NULL;
+ const gchar* _tmp324_ = NULL;
+ PDFWriter* _tmp329_ = NULL;
+ PDFWriter* _tmp330_ = NULL;
+ PDFWriter* _tmp331_ = NULL;
+ guint8* _tmp332_ = NULL;
+ gint _tmp332__length1 = 0;
+ PDFWriter* _tmp333_ = NULL;
+ PDFWriter* _tmp334_ = NULL;
+ PDFWriter* _tmp335_ = NULL;
+ gchar* command = NULL;
+ gdouble _tmp336_ = 0.0;
+ gchar* _tmp337_ = NULL;
+ gint _tmp337__length1 = 0;
+ const gchar* _tmp338_ = NULL;
+ gdouble _tmp339_ = 0.0;
+ gchar* _tmp340_ = NULL;
+ gint _tmp340__length1 = 0;
+ const gchar* _tmp341_ = NULL;
+ gint _tmp342_ = 0;
+ gchar* _tmp343_ = NULL;
+ PDFWriter* _tmp344_ = NULL;
+ PDFWriter* _tmp345_ = NULL;
+ guint _tmp346_ = 0U;
+ PDFWriter* _tmp347_ = NULL;
+ guint _tmp348_ = 0U;
+ gchar* _tmp349_ = NULL;
+ gchar* _tmp350_ = NULL;
+ PDFWriter* _tmp351_ = NULL;
+ PDFWriter* _tmp352_ = NULL;
+ const gchar* _tmp353_ = NULL;
+ gint _tmp354_ = 0;
+ gint _tmp355_ = 0;
+ gchar* _tmp356_ = NULL;
+ gchar* _tmp357_ = NULL;
+ PDFWriter* _tmp358_ = NULL;
+ PDFWriter* _tmp359_ = NULL;
+ PDFWriter* _tmp360_ = NULL;
+ const gchar* _tmp361_ = NULL;
+ PDFWriter* _tmp362_ = NULL;
+ PDFWriter* _tmp363_ = NULL;
+ PDFWriter* _tmp364_ = NULL;
+ gint _tmp365_ = 0;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!_tmp56_) {
+#line 2498 "book.c"
+ gint _tmp57_ = 0;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp57_ = i;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ i = _tmp57_ + 1;
+#line 2504 "book.c"
+ }
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp56_ = FALSE;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp58_ = i;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp59_ = book_get_n_pages (self);
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp60_ = _tmp59_;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(((guint) _tmp58_) < _tmp60_)) {
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 2518 "book.c"
+ }
+#line 315 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp61_ = i;
+#line 315 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp62_ = book_get_page (self, _tmp61_);
+#line 315 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ page = _tmp62_;
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp63_ = page;
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp64_ = page_get_image (_tmp63_, TRUE);
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ image = _tmp64_;
+#line 317 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp65_ = image;
+#line 317 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp66_ = gdk_pixbuf_get_width (_tmp65_);
+#line 317 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp67_ = _tmp66_;
+#line 317 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ width = _tmp67_;
+#line 318 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp68_ = image;
+#line 318 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp69_ = gdk_pixbuf_get_height (_tmp68_);
+#line 318 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp70_ = _tmp69_;
+#line 318 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ height = _tmp70_;
+#line 319 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp71_ = image;
+#line 319 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp72_ = gdk_pixbuf_get_pixels (_tmp71_);
+#line 319 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pixels = _tmp72_;
+#line 319 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pixels_length1 = -1;
+#line 319 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _pixels_size_ = pixels_length1;
+#line 320 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp73_ = width;
+#line 320 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp74_ = page;
+#line 320 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp75_ = page_get_dpi (_tmp74_);
+#line 320 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp76_ = _tmp75_;
+#line 320 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ page_width = (_tmp73_ * 72.0) / _tmp76_;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp77_ = height;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp78_ = page;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp79_ = page_get_dpi (_tmp78_);
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp80_ = _tmp79_;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ page_height = (_tmp77_ * 72.0) / _tmp80_;
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ depth = 8;
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp81_ = g_strdup ("DeviceRGB");
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ color_space = _tmp81_;
+#line 325 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ filter = NULL;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp82_ = g_new0 (gchar, G_ASCII_DTOSTR_BUF_SIZE);
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ width_buffer = _tmp82_;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ width_buffer_length1 = G_ASCII_DTOSTR_BUF_SIZE;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _width_buffer_size_ = width_buffer_length1;
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp83_ = g_new0 (gchar, G_ASCII_DTOSTR_BUF_SIZE);
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ height_buffer = _tmp83_;
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ height_buffer_length1 = G_ASCII_DTOSTR_BUF_SIZE;
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _height_buffer_size_ = height_buffer_length1;
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp84_ = page;
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp85_ = page_get_is_color (_tmp84_);
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp86_ = _tmp85_;
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp86_) {
+#line 2610 "book.c"
+ gchar* _tmp87_ = NULL;
+ gint data_length = 0;
+ gint _tmp88_ = 0;
+ gint _tmp89_ = 0;
+ gint _tmp90_ = 0;
+ guint8* _tmp91_ = NULL;
+#line 331 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ depth = 8;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp87_ = g_strdup ("DeviceRGB");
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (color_space);
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ color_space = _tmp87_;
+#line 333 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp88_ = height;
+#line 333 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp89_ = width;
+#line 333 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data_length = (_tmp88_ * _tmp89_) * 3;
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp90_ = data_length;
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp91_ = g_new0 (guint8, _tmp90_);
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data = (g_free (data), NULL);
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data = _tmp91_;
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data_length1 = _tmp90_;
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _data_size_ = data_length1;
+#line 2643 "book.c"
+ {
+ gint row = 0;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ row = 0;
+#line 2648 "book.c"
+ {
+ gboolean _tmp92_ = FALSE;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp92_ = TRUE;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 2655 "book.c"
+ gint _tmp94_ = 0;
+ gint _tmp95_ = 0;
+ gint in_offset = 0;
+ gint _tmp96_ = 0;
+ GdkPixbuf* _tmp97_ = NULL;
+ gint _tmp98_ = 0;
+ gint _tmp99_ = 0;
+ gint out_offset = 0;
+ gint _tmp100_ = 0;
+ gint _tmp101_ = 0;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!_tmp92_) {
+#line 2668 "book.c"
+ gint _tmp93_ = 0;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp93_ = row;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ row = _tmp93_ + 1;
+#line 2674 "book.c"
+ }
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp92_ = FALSE;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp94_ = row;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp95_ = height;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(_tmp94_ < _tmp95_)) {
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 2686 "book.c"
+ }
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp96_ = row;
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp97_ = image;
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp98_ = gdk_pixbuf_get_rowstride (_tmp97_);
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp99_ = _tmp98_;
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ in_offset = _tmp96_ * _tmp99_;
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp100_ = row;
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp101_ = width;
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ out_offset = (_tmp100_ * _tmp101_) * 3;
+#line 2704 "book.c"
+ {
+ gint x = 0;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ x = 0;
+#line 2709 "book.c"
+ {
+ gboolean _tmp102_ = FALSE;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp102_ = TRUE;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 2716 "book.c"
+ gint _tmp104_ = 0;
+ gint _tmp105_ = 0;
+ gint in_o = 0;
+ gint _tmp106_ = 0;
+ gint _tmp107_ = 0;
+ gint out_o = 0;
+ gint _tmp108_ = 0;
+ gint _tmp109_ = 0;
+ guint8* _tmp110_ = NULL;
+ gint _tmp110__length1 = 0;
+ gint _tmp111_ = 0;
+ guint8* _tmp112_ = NULL;
+ gint _tmp112__length1 = 0;
+ gint _tmp113_ = 0;
+ guint8 _tmp114_ = 0U;
+ guint8 _tmp115_ = 0U;
+ guint8* _tmp116_ = NULL;
+ gint _tmp116__length1 = 0;
+ gint _tmp117_ = 0;
+ guint8* _tmp118_ = NULL;
+ gint _tmp118__length1 = 0;
+ gint _tmp119_ = 0;
+ guint8 _tmp120_ = 0U;
+ guint8 _tmp121_ = 0U;
+ guint8* _tmp122_ = NULL;
+ gint _tmp122__length1 = 0;
+ gint _tmp123_ = 0;
+ guint8* _tmp124_ = NULL;
+ gint _tmp124__length1 = 0;
+ gint _tmp125_ = 0;
+ guint8 _tmp126_ = 0U;
+ guint8 _tmp127_ = 0U;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!_tmp102_) {
+#line 2751 "book.c"
+ gint _tmp103_ = 0;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp103_ = x;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ x = _tmp103_ + 1;
+#line 2757 "book.c"
+ }
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp102_ = FALSE;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp104_ = x;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp105_ = width;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(_tmp104_ < _tmp105_)) {
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 2769 "book.c"
+ }
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp106_ = in_offset;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp107_ = x;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ in_o = _tmp106_ + (_tmp107_ * 3);
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp108_ = out_offset;
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp109_ = x;
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ out_o = _tmp108_ + (_tmp109_ * 3);
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp110_ = data;
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp110__length1 = data_length1;
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp111_ = out_o;
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp112_ = pixels;
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp112__length1 = pixels_length1;
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp113_ = in_o;
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp114_ = _tmp112_[_tmp113_];
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp110_[_tmp111_] = _tmp114_;
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp115_ = _tmp110_[_tmp111_];
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp116_ = data;
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp116__length1 = data_length1;
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp117_ = out_o;
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp118_ = pixels;
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp118__length1 = pixels_length1;
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp119_ = in_o;
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp120_ = _tmp118_[_tmp119_ + 1];
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp116_[_tmp117_ + 1] = _tmp120_;
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp121_ = _tmp116_[_tmp117_ + 1];
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp122_ = data;
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp122__length1 = data_length1;
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp123_ = out_o;
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp124_ = pixels;
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp124__length1 = pixels_length1;
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp125_ = in_o;
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp126_ = _tmp124_[_tmp125_ + 2];
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp122_[_tmp123_ + 2] = _tmp126_;
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp127_ = _tmp122_[_tmp123_ + 2];
+#line 2837 "book.c"
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ Page* _tmp128_ = NULL;
+ gint _tmp129_ = 0;
+ gint _tmp130_ = 0;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp128_ = page;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp129_ = page_get_depth (_tmp128_);
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp130_ = _tmp129_;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp130_ == 2) {
+#line 2856 "book.c"
+ gint shift_count = 0;
+ gchar* _tmp131_ = NULL;
+ gint data_length = 0;
+ gint _tmp132_ = 0;
+ gint _tmp133_ = 0;
+ gint _tmp134_ = 0;
+ guint8* _tmp135_ = NULL;
+ gint offset = 0;
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ shift_count = 6;
+#line 353 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ depth = 2;
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp131_ = g_strdup ("DeviceGray");
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (color_space);
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ color_space = _tmp131_;
+#line 355 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp132_ = height;
+#line 355 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp133_ = width;
+#line 355 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data_length = _tmp132_ * (((_tmp133_ * 2) + 7) / 8);
+#line 356 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp134_ = data_length;
+#line 356 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp135_ = g_new0 (guint8, _tmp134_);
+#line 356 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data = (g_free (data), NULL);
+#line 356 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data = _tmp135_;
+#line 356 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data_length1 = _tmp134_;
+#line 356 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _data_size_ = data_length1;
+#line 357 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ offset = 0;
+#line 2895 "book.c"
+ {
+ gint row = 0;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ row = 0;
+#line 2900 "book.c"
+ {
+ gboolean _tmp136_ = FALSE;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp136_ = TRUE;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 2907 "book.c"
+ gint _tmp138_ = 0;
+ gint _tmp139_ = 0;
+ gint _tmp140_ = 0;
+ gint in_offset = 0;
+ gint _tmp142_ = 0;
+ GdkPixbuf* _tmp143_ = NULL;
+ gint _tmp144_ = 0;
+ gint _tmp145_ = 0;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!_tmp136_) {
+#line 2918 "book.c"
+ gint _tmp137_ = 0;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp137_ = row;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ row = _tmp137_ + 1;
+#line 2924 "book.c"
+ }
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp136_ = FALSE;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp138_ = row;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp139_ = height;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(_tmp138_ < _tmp139_)) {
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 2936 "book.c"
+ }
+#line 361 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp140_ = shift_count;
+#line 361 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp140_ != 6) {
+#line 2942 "book.c"
+ gint _tmp141_ = 0;
+#line 363 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp141_ = offset;
+#line 363 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ offset = _tmp141_ + 1;
+#line 364 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ shift_count = 6;
+#line 2950 "book.c"
+ }
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp142_ = row;
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp143_ = image;
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp144_ = gdk_pixbuf_get_rowstride (_tmp143_);
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp145_ = _tmp144_;
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ in_offset = _tmp142_ * _tmp145_;
+#line 2962 "book.c"
+ {
+ gint x = 0;
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ x = 0;
+#line 2967 "book.c"
+ {
+ gboolean _tmp146_ = FALSE;
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp146_ = TRUE;
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 2974 "book.c"
+ gint _tmp148_ = 0;
+ gint _tmp149_ = 0;
+ gint _tmp150_ = 0;
+ guint8 p = 0U;
+ guint8* _tmp154_ = NULL;
+ gint _tmp154__length1 = 0;
+ gint _tmp155_ = 0;
+ gint _tmp156_ = 0;
+ guint8 _tmp157_ = 0U;
+ guint8 _tmp158_ = 0U;
+ gint _tmp173_ = 0;
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!_tmp146_) {
+#line 2988 "book.c"
+ gint _tmp147_ = 0;
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp147_ = x;
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ x = _tmp147_ + 1;
+#line 2994 "book.c"
+ }
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp146_ = FALSE;
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp148_ = x;
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp149_ = width;
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(_tmp148_ < _tmp149_)) {
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 3006 "book.c"
+ }
+#line 371 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp150_ = shift_count;
+#line 371 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp150_ == 6) {
+#line 3012 "book.c"
+ guint8* _tmp151_ = NULL;
+ gint _tmp151__length1 = 0;
+ gint _tmp152_ = 0;
+ guint8 _tmp153_ = 0U;
+#line 372 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp151_ = data;
+#line 372 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp151__length1 = data_length1;
+#line 372 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp152_ = offset;
+#line 372 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp151_[_tmp152_] = (guint8) 0;
+#line 372 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp153_ = _tmp151_[_tmp152_];
+#line 3027 "book.c"
+ }
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp154_ = pixels;
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp154__length1 = pixels_length1;
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp155_ = in_offset;
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp156_ = x;
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp157_ = _tmp154_[_tmp155_ + (_tmp156_ * 3)];
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ p = _tmp157_;
+#line 376 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp158_ = p;
+#line 376 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (((gint) _tmp158_) >= 192) {
+#line 3045 "book.c"
+ guint8* _tmp159_ = NULL;
+ gint _tmp159__length1 = 0;
+ gint _tmp160_ = 0;
+ gint _tmp161_ = 0;
+ guint8 _tmp162_ = 0U;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp159_ = data;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp159__length1 = data_length1;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp160_ = offset;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp161_ = shift_count;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp159_[_tmp160_] |= (guint8) (3 << _tmp161_);
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp162_ = _tmp159_[_tmp160_];
+#line 3063 "book.c"
+ } else {
+ guint8 _tmp163_ = 0U;
+#line 378 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp163_ = p;
+#line 378 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (((gint) _tmp163_) >= 128) {
+#line 3070 "book.c"
+ guint8* _tmp164_ = NULL;
+ gint _tmp164__length1 = 0;
+ gint _tmp165_ = 0;
+ gint _tmp166_ = 0;
+ guint8 _tmp167_ = 0U;
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp164_ = data;
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp164__length1 = data_length1;
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp165_ = offset;
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp166_ = shift_count;
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp164_[_tmp165_] |= (guint8) (2 << _tmp166_);
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp167_ = _tmp164_[_tmp165_];
+#line 3088 "book.c"
+ } else {
+ guint8 _tmp168_ = 0U;
+#line 380 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp168_ = p;
+#line 380 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (((gint) _tmp168_) >= 64) {
+#line 3095 "book.c"
+ guint8* _tmp169_ = NULL;
+ gint _tmp169__length1 = 0;
+ gint _tmp170_ = 0;
+ gint _tmp171_ = 0;
+ guint8 _tmp172_ = 0U;
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp169_ = data;
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp169__length1 = data_length1;
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp170_ = offset;
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp171_ = shift_count;
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp169_[_tmp170_] |= (guint8) (1 << _tmp171_);
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp172_ = _tmp169_[_tmp170_];
+#line 3113 "book.c"
+ }
+ }
+ }
+#line 384 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp173_ = shift_count;
+#line 384 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp173_ == 0) {
+#line 3121 "book.c"
+ gint _tmp174_ = 0;
+#line 386 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp174_ = offset;
+#line 386 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ offset = _tmp174_ + 1;
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ shift_count = 6;
+#line 3129 "book.c"
+ } else {
+ gint _tmp175_ = 0;
+#line 390 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp175_ = shift_count;
+#line 390 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ shift_count = _tmp175_ - 2;
+#line 3136 "book.c"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ Page* _tmp176_ = NULL;
+ gint _tmp177_ = 0;
+ gint _tmp178_ = 0;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp176_ = page;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp177_ = page_get_depth (_tmp176_);
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp178_ = _tmp177_;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp178_ == 1) {
+#line 3156 "book.c"
+ gint mask = 0;
+ gchar* _tmp179_ = NULL;
+ gint data_length = 0;
+ gint _tmp180_ = 0;
+ gint _tmp181_ = 0;
+ gint _tmp182_ = 0;
+ guint8* _tmp183_ = NULL;
+ gint offset = 0;
+#line 396 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ mask = 0x80;
+#line 398 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ depth = 1;
+#line 399 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp179_ = g_strdup ("DeviceGray");
+#line 399 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (color_space);
+#line 399 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ color_space = _tmp179_;
+#line 400 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp180_ = height;
+#line 400 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp181_ = width;
+#line 400 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data_length = _tmp180_ * ((_tmp181_ + 7) / 8);
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp182_ = data_length;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp183_ = g_new0 (guint8, _tmp182_);
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data = (g_free (data), NULL);
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data = _tmp183_;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data_length1 = _tmp182_;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _data_size_ = data_length1;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ offset = 0;
+#line 3195 "book.c"
+ {
+ gint row = 0;
+#line 403 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ row = 0;
+#line 3200 "book.c"
+ {
+ gboolean _tmp184_ = FALSE;
+#line 403 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp184_ = TRUE;
+#line 403 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 3207 "book.c"
+ gint _tmp186_ = 0;
+ gint _tmp187_ = 0;
+ gint _tmp188_ = 0;
+ gint in_offset = 0;
+ gint _tmp190_ = 0;
+ GdkPixbuf* _tmp191_ = NULL;
+ gint _tmp192_ = 0;
+ gint _tmp193_ = 0;
+#line 403 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!_tmp184_) {
+#line 3218 "book.c"
+ gint _tmp185_ = 0;
+#line 403 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp185_ = row;
+#line 403 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ row = _tmp185_ + 1;
+#line 3224 "book.c"
+ }
+#line 403 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp184_ = FALSE;
+#line 403 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp186_ = row;
+#line 403 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp187_ = height;
+#line 403 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(_tmp186_ < _tmp187_)) {
+#line 403 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 3236 "book.c"
+ }
+#line 406 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp188_ = mask;
+#line 406 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp188_ != 0x80) {
+#line 3242 "book.c"
+ gint _tmp189_ = 0;
+#line 408 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp189_ = offset;
+#line 408 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ offset = _tmp189_ + 1;
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ mask = 0x80;
+#line 3250 "book.c"
+ }
+#line 412 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp190_ = row;
+#line 412 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp191_ = image;
+#line 412 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp192_ = gdk_pixbuf_get_rowstride (_tmp191_);
+#line 412 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp193_ = _tmp192_;
+#line 412 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ in_offset = _tmp190_ * _tmp193_;
+#line 3262 "book.c"
+ {
+ gint x = 0;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ x = 0;
+#line 3267 "book.c"
+ {
+ gboolean _tmp194_ = FALSE;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp194_ = TRUE;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 3274 "book.c"
+ gint _tmp196_ = 0;
+ gint _tmp197_ = 0;
+ gint _tmp198_ = 0;
+ guint8* _tmp202_ = NULL;
+ gint _tmp202__length1 = 0;
+ gint _tmp203_ = 0;
+ gint _tmp204_ = 0;
+ guint8 _tmp205_ = 0U;
+ gint _tmp210_ = 0;
+ gint _tmp211_ = 0;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!_tmp194_) {
+#line 3287 "book.c"
+ gint _tmp195_ = 0;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp195_ = x;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ x = _tmp195_ + 1;
+#line 3293 "book.c"
+ }
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp194_ = FALSE;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp196_ = x;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp197_ = width;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(_tmp196_ < _tmp197_)) {
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 3305 "book.c"
+ }
+#line 416 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp198_ = mask;
+#line 416 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp198_ == 0x80) {
+#line 3311 "book.c"
+ guint8* _tmp199_ = NULL;
+ gint _tmp199__length1 = 0;
+ gint _tmp200_ = 0;
+ guint8 _tmp201_ = 0U;
+#line 417 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp199_ = data;
+#line 417 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp199__length1 = data_length1;
+#line 417 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp200_ = offset;
+#line 417 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp199_[_tmp200_] = (guint8) 0;
+#line 417 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp201_ = _tmp199_[_tmp200_];
+#line 3326 "book.c"
+ }
+#line 420 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp202_ = pixels;
+#line 420 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp202__length1 = pixels_length1;
+#line 420 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp203_ = in_offset;
+#line 420 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp204_ = x;
+#line 420 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp205_ = _tmp202_[_tmp203_ + (_tmp204_ * 3)];
+#line 420 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (((gint) _tmp205_) != 0) {
+#line 3340 "book.c"
+ guint8* _tmp206_ = NULL;
+ gint _tmp206__length1 = 0;
+ gint _tmp207_ = 0;
+ gint _tmp208_ = 0;
+ guint8 _tmp209_ = 0U;
+#line 421 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp206_ = data;
+#line 421 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp206__length1 = data_length1;
+#line 421 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp207_ = offset;
+#line 421 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp208_ = mask;
+#line 421 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp206_[_tmp207_] |= (guint8) _tmp208_;
+#line 421 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp209_ = _tmp206_[_tmp207_];
+#line 3358 "book.c"
+ }
+#line 424 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp210_ = mask;
+#line 424 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ mask = _tmp210_ >> 1;
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp211_ = mask;
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp211_ == 0) {
+#line 3368 "book.c"
+ gint _tmp212_ = 0;
+#line 427 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp212_ = offset;
+#line 427 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ offset = _tmp212_ + 1;
+#line 428 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ mask = 0x80;
+#line 3376 "book.c"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ gchar* _tmp213_ = NULL;
+ gint data_length = 0;
+ gint _tmp214_ = 0;
+ gint _tmp215_ = 0;
+ gint _tmp216_ = 0;
+ guint8* _tmp217_ = NULL;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ depth = 8;
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp213_ = g_strdup ("DeviceGray");
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (color_space);
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ color_space = _tmp213_;
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp214_ = height;
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp215_ = width;
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data_length = _tmp214_ * _tmp215_;
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp216_ = data_length;
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp217_ = g_new0 (guint8, _tmp216_);
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data = (g_free (data), NULL);
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data = _tmp217_;
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data_length1 = _tmp216_;
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _data_size_ = data_length1;
+#line 3417 "book.c"
+ {
+ gint row = 0;
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ row = 0;
+#line 3422 "book.c"
+ {
+ gboolean _tmp218_ = FALSE;
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp218_ = TRUE;
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 3429 "book.c"
+ gint _tmp220_ = 0;
+ gint _tmp221_ = 0;
+ gint in_offset = 0;
+ gint _tmp222_ = 0;
+ GdkPixbuf* _tmp223_ = NULL;
+ gint _tmp224_ = 0;
+ gint _tmp225_ = 0;
+ gint out_offset = 0;
+ gint _tmp226_ = 0;
+ gint _tmp227_ = 0;
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!_tmp218_) {
+#line 3442 "book.c"
+ gint _tmp219_ = 0;
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp219_ = row;
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ row = _tmp219_ + 1;
+#line 3448 "book.c"
+ }
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp218_ = FALSE;
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp220_ = row;
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp221_ = height;
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(_tmp220_ < _tmp221_)) {
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 3460 "book.c"
+ }
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp222_ = row;
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp223_ = image;
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp224_ = gdk_pixbuf_get_rowstride (_tmp223_);
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp225_ = _tmp224_;
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ in_offset = _tmp222_ * _tmp225_;
+#line 442 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp226_ = row;
+#line 442 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp227_ = width;
+#line 442 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ out_offset = _tmp226_ * _tmp227_;
+#line 3478 "book.c"
+ {
+ gint x = 0;
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ x = 0;
+#line 3483 "book.c"
+ {
+ gboolean _tmp228_ = FALSE;
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp228_ = TRUE;
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ while (TRUE) {
+#line 3490 "book.c"
+ gint _tmp230_ = 0;
+ gint _tmp231_ = 0;
+ guint8* _tmp232_ = NULL;
+ gint _tmp232__length1 = 0;
+ gint _tmp233_ = 0;
+ gint _tmp234_ = 0;
+ guint8* _tmp235_ = NULL;
+ gint _tmp235__length1 = 0;
+ gint _tmp236_ = 0;
+ gint _tmp237_ = 0;
+ guint8 _tmp238_ = 0U;
+ guint8 _tmp239_ = 0U;
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!_tmp228_) {
+#line 3505 "book.c"
+ gint _tmp229_ = 0;
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp229_ = x;
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ x = _tmp229_ + 1;
+#line 3511 "book.c"
+ }
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp228_ = FALSE;
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp230_ = x;
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp231_ = width;
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!(_tmp230_ < _tmp231_)) {
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 3523 "book.c"
+ }
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp232_ = data;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp232__length1 = data_length1;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp233_ = out_offset;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp234_ = x;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp235_ = pixels;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp235__length1 = pixels_length1;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp236_ = in_offset;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp237_ = x;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp238_ = _tmp235_[_tmp236_ + (_tmp237_ * 3)];
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp232_[_tmp233_ + _tmp234_] = _tmp238_;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp239_ = _tmp232_[_tmp233_ + _tmp234_];
+#line 3547 "book.c"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp240_ = data;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp240__length1 = data_length1;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp242_ = book_compress_zlib (self, _tmp240_, _tmp240__length1, &_tmp241_);
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ compressed_data = _tmp242_;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ compressed_data_length1 = _tmp241_;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _compressed_data_size_ = compressed_data_length1;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp243_ = compressed_data;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp243__length1 = compressed_data_length1;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp243_ != NULL) {
+#line 3575 "book.c"
+ gint _tmp244_ = 0;
+ const gchar* _tmp257_ = NULL;
+#line 453 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp244_ = depth;
+#line 453 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp244_ > 1) {
+#line 3582 "book.c"
+ guint8* jpeg_data = NULL;
+ GdkPixbuf* _tmp245_ = NULL;
+ gint _tmp246_ = 0;
+ Page* _tmp247_ = NULL;
+ gint _tmp248_ = 0;
+ gint _tmp249_ = 0;
+ gint _tmp250_ = 0;
+ guint8* _tmp251_ = NULL;
+ gint jpeg_data_length1 = 0;
+ gint _jpeg_data_size_ = 0;
+ guint8* _tmp252_ = NULL;
+ gint _tmp252__length1 = 0;
+ guint8* _tmp253_ = NULL;
+ gint _tmp253__length1 = 0;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp245_ = image;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp246_ = quality;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp247_ = page;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp248_ = page_get_dpi (_tmp247_);
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp249_ = _tmp248_;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp251_ = book_compress_jpeg (self, _tmp245_, _tmp246_, _tmp249_, &_tmp250_);
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ jpeg_data = _tmp251_;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ jpeg_data_length1 = _tmp250_;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _jpeg_data_size_ = jpeg_data_length1;
+#line 456 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp252_ = jpeg_data;
+#line 456 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp252__length1 = jpeg_data_length1;
+#line 456 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp253_ = compressed_data;
+#line 456 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp253__length1 = compressed_data_length1;
+#line 456 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp252__length1 < _tmp253__length1) {
+#line 3625 "book.c"
+ gchar* _tmp254_ = NULL;
+ guint8* _tmp255_ = NULL;
+ gint _tmp255__length1 = 0;
+ guint8* _tmp256_ = NULL;
+ gint _tmp256__length1 = 0;
+#line 458 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp254_ = g_strdup ("DCTDecode");
+#line 458 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (filter);
+#line 458 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ filter = _tmp254_;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp255_ = jpeg_data;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp255__length1 = jpeg_data_length1;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp256_ = (_tmp255_ != NULL) ? _vala_array_dup1 (_tmp255_, _tmp255__length1) : ((gpointer) _tmp255_);
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp256__length1 = _tmp255__length1;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data = (g_free (data), NULL);
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data = _tmp256_;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data_length1 = _tmp256__length1;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _data_size_ = data_length1;
+#line 3653 "book.c"
+ }
+#line 453 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ jpeg_data = (g_free (jpeg_data), NULL);
+#line 3657 "book.c"
+ }
+#line 463 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp257_ = filter;
+#line 463 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp257_ == NULL) {
+#line 3663 "book.c"
+ gchar* _tmp258_ = NULL;
+ guint8* _tmp259_ = NULL;
+ gint _tmp259__length1 = 0;
+ guint8* _tmp260_ = NULL;
+ gint _tmp260__length1 = 0;
+#line 465 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp258_ = g_strdup ("FlateDecode");
+#line 465 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (filter);
+#line 465 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ filter = _tmp258_;
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp259_ = compressed_data;
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp259__length1 = compressed_data_length1;
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp260_ = (_tmp259_ != NULL) ? _vala_array_dup2 (_tmp259_, _tmp259__length1) : ((gpointer) _tmp259_);
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp260__length1 = _tmp259__length1;
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data = (g_free (data), NULL);
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data = _tmp260_;
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data_length1 = _tmp260__length1;
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _data_size_ = data_length1;
+#line 3691 "book.c"
+ }
+ }
+#line 471 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp261_ = writer;
+#line 471 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp261_, "\n");
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp262_ = writer;
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp263_ = pdf_writer_start_object (_tmp262_);
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ number = _tmp263_;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp264_ = writer;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp265_ = number;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp266_ = g_strdup_printf ("%u 0 obj\n", _tmp265_);
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp267_ = _tmp266_;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp264_, _tmp267_);
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp267_);
+#line 474 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp268_ = writer;
+#line 474 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp268_, "<<\n");
+#line 475 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp269_ = writer;
+#line 475 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp269_, "/Type /Page\n");
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp270_ = writer;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp271_ = pages_number;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp272_ = g_strdup_printf ("/Parent %u 0 R\n", _tmp271_);
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp273_ = _tmp272_;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp270_, _tmp273_);
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp273_);
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp274_ = writer;
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp275_ = i;
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp276_ = number;
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp277_ = g_strdup_printf ("/Resources << /XObject << /Im%d %u 0 R >> >>\n", _tmp275_, _tmp276_ + 1);
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp278_ = _tmp277_;
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp274_, _tmp278_);
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp278_);
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp279_ = writer;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp280_ = page_width;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp281_ = width_buffer;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp281__length1 = width_buffer_length1;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp282_ = g_ascii_formatd (_tmp281_, _tmp281__length1, "%.2f", _tmp280_);
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp283_ = page_height;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp284_ = height_buffer;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp284__length1 = height_buffer_length1;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp285_ = g_ascii_formatd (_tmp284_, _tmp284__length1, "%.2f", _tmp283_);
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp286_ = g_strdup_printf ("/MediaBox [ 0 0 %s %s ]\n", _tmp282_, _tmp285_);
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp287_ = _tmp286_;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp279_, _tmp287_);
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp287_);
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp288_ = writer;
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp289_ = number;
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp290_ = g_strdup_printf ("/Contents %u 0 R\n", _tmp289_ + 2);
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp291_ = _tmp290_;
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp288_, _tmp291_);
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp291_);
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp292_ = writer;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp292_, ">>\n");
+#line 481 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp293_ = writer;
+#line 481 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp293_, "endobj\n");
+#line 484 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp294_ = writer;
+#line 484 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp294_, "\n");
+#line 485 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp295_ = writer;
+#line 485 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp296_ = pdf_writer_start_object (_tmp295_);
+#line 485 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ number = _tmp296_;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp297_ = writer;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp298_ = number;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp299_ = g_strdup_printf ("%u 0 obj\n", _tmp298_);
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp300_ = _tmp299_;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp297_, _tmp300_);
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp300_);
+#line 487 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp301_ = writer;
+#line 487 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp301_, "<<\n");
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp302_ = writer;
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp302_, "/Type /XObject\n");
+#line 489 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp303_ = writer;
+#line 489 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp303_, "/Subtype /Image\n");
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp304_ = writer;
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp305_ = width;
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp306_ = g_strdup_printf ("/Width %d\n", _tmp305_);
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp307_ = _tmp306_;
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp304_, _tmp307_);
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp307_);
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp308_ = writer;
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp309_ = height;
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp310_ = g_strdup_printf ("/Height %d\n", _tmp309_);
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp311_ = _tmp310_;
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp308_, _tmp311_);
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp311_);
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp312_ = writer;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp313_ = color_space;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp314_ = g_strdup_printf ("/ColorSpace /%s\n", _tmp313_);
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp315_ = _tmp314_;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp312_, _tmp315_);
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp315_);
+#line 493 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp316_ = writer;
+#line 493 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp317_ = depth;
+#line 493 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp318_ = g_strdup_printf ("/BitsPerComponent %d\n", _tmp317_);
+#line 493 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp319_ = _tmp318_;
+#line 493 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp316_, _tmp319_);
+#line 493 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp319_);
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp320_ = writer;
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp321_ = data;
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp321__length1 = data_length1;
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp322_ = g_strdup_printf ("/Length %d\n", _tmp321__length1);
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp323_ = _tmp322_;
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp320_, _tmp323_);
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp323_);
+#line 495 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp324_ = filter;
+#line 495 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp324_ != NULL) {
+#line 3896 "book.c"
+ PDFWriter* _tmp325_ = NULL;
+ const gchar* _tmp326_ = NULL;
+ gchar* _tmp327_ = NULL;
+ gchar* _tmp328_ = NULL;
+#line 496 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp325_ = writer;
+#line 496 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp326_ = filter;
+#line 496 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp327_ = g_strdup_printf ("/Filter /%s\n", _tmp326_);
+#line 496 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp328_ = _tmp327_;
+#line 496 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp325_, _tmp328_);
+#line 496 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp328_);
+#line 3913 "book.c"
+ }
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp329_ = writer;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp329_, ">>\n");
+#line 498 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp330_ = writer;
+#line 498 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp330_, "stream\n");
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp331_ = writer;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp332_ = data;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp332__length1 = data_length1;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write (_tmp331_, _tmp332_, _tmp332__length1);
+#line 500 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp333_ = writer;
+#line 500 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp333_, "\n");
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp334_ = writer;
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp334_, "endstream\n");
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp335_ = writer;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp335_, "endobj\n");
+#line 505 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp336_ = page_width;
+#line 505 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp337_ = width_buffer;
+#line 505 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp337__length1 = width_buffer_length1;
+#line 505 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp338_ = g_ascii_formatd (_tmp337_, _tmp337__length1, "%f", _tmp336_);
+#line 505 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp339_ = page_height;
+#line 505 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp340_ = height_buffer;
+#line 505 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp340__length1 = height_buffer_length1;
+#line 505 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp341_ = g_ascii_formatd (_tmp340_, _tmp340__length1, "%f", _tmp339_);
+#line 505 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp342_ = i;
+#line 505 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp343_ = g_strdup_printf ("q\n%s 0 0 %s 0 0 cm\n/Im%d Do\nQ", _tmp338_, _tmp341_, _tmp342_);
+#line 505 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ command = _tmp343_;
+#line 506 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp344_ = writer;
+#line 506 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp344_, "\n");
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp345_ = writer;
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp346_ = pdf_writer_start_object (_tmp345_);
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ number = _tmp346_;
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp347_ = writer;
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp348_ = number;
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp349_ = g_strdup_printf ("%u 0 obj\n", _tmp348_);
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp350_ = _tmp349_;
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp347_, _tmp350_);
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp350_);
+#line 509 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp351_ = writer;
+#line 509 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp351_, "<<\n");
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp352_ = writer;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp353_ = command;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp354_ = strlen (_tmp353_);
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp355_ = _tmp354_;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp356_ = g_strdup_printf ("/Length %d\n", _tmp355_);
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp357_ = _tmp356_;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp352_, _tmp357_);
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp357_);
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp358_ = writer;
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp358_, ">>\n");
+#line 512 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp359_ = writer;
+#line 512 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp359_, "stream\n");
+#line 513 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp360_ = writer;
+#line 513 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp361_ = command;
+#line 513 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp360_, _tmp361_);
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp362_ = writer;
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp362_, "\n");
+#line 515 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp363_ = writer;
+#line 515 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp363_, "endstream\n");
+#line 516 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp364_ = writer;
+#line 516 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp364_, "endobj\n");
+#line 518 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp365_ = i;
+#line 518 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_emit_by_name (self, "saving", _tmp365_);
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (command);
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ compressed_data = (g_free (compressed_data), NULL);
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data = (g_free (data), NULL);
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ height_buffer = (g_free (height_buffer), NULL);
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ width_buffer = (g_free (width_buffer), NULL);
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (filter);
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (color_space);
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_object_unref0 (image);
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _page_unref0 (page);
+#line 4055 "book.c"
+ }
+ }
+ }
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp366_ = writer;
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp366_, "\n");
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp367_ = writer;
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp368_ = pdf_writer_start_object (_tmp367_);
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ info_number = _tmp368_;
+#line 524 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp369_ = writer;
+#line 524 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp370_ = info_number;
+#line 524 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp371_ = g_strdup_printf ("%u 0 obj\n", _tmp370_);
+#line 524 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp372_ = _tmp371_;
+#line 524 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp369_, _tmp372_);
+#line 524 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp372_);
+#line 525 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp373_ = writer;
+#line 525 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp373_, "<<\n");
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp374_ = writer;
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp375_ = g_strdup_printf ("/Creator (Simple Scan %s)\n", VERSION);
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp376_ = _tmp375_;
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp374_, _tmp376_);
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp376_);
+#line 527 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp377_ = writer;
+#line 527 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp377_, ">>\n");
+#line 528 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp378_ = writer;
+#line 528 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp378_, "endobj\n");
+#line 531 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp379_ = writer;
+#line 531 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp379_, "\n");
+#line 532 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp380_ = writer;
+#line 532 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp381_ = _tmp380_->offset;
+#line 532 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ xref_offset = _tmp381_;
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp382_ = writer;
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp382_, "xref\n");
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp383_ = writer;
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp384_ = writer;
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp385_ = _tmp384_->object_offsets;
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp386_ = g_list_length (_tmp385_);
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp387_ = g_strdup_printf ("0 %zu\n", (gsize) (_tmp386_ + 1));
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp388_ = _tmp387_;
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp383_, _tmp388_);
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp388_);
+#line 535 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp389_ = writer;
+#line 535 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp389_, "0000000000 65535 f \n");
+#line 536 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp390_ = writer;
+#line 536 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp391_ = _tmp390_->object_offsets;
+#line 4141 "book.c"
+ {
+ GList* offset_collection = NULL;
+ GList* offset_it = NULL;
+#line 536 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ offset_collection = _tmp391_;
+#line 536 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ for (offset_it = offset_collection; offset_it != NULL; offset_it = offset_it->next) {
+#line 4149 "book.c"
+ guint offset = 0U;
+#line 536 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ offset = (guint) ((guintptr) offset_it->data);
+#line 4153 "book.c"
+ {
+ PDFWriter* _tmp392_ = NULL;
+ guint _tmp393_ = 0U;
+ gchar* _tmp394_ = NULL;
+ gchar* _tmp395_ = NULL;
+#line 537 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp392_ = writer;
+#line 537 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp393_ = offset;
+#line 537 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp394_ = g_strdup_printf ("%010zu 00000 n \n", (gsize) _tmp393_);
+#line 537 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp395_ = _tmp394_;
+#line 537 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp392_, _tmp395_);
+#line 537 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp395_);
+#line 4171 "book.c"
+ }
+ }
+ }
+#line 540 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp396_ = writer;
+#line 540 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp396_, "\n");
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp397_ = writer;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp397_, "trailer\n");
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp398_ = writer;
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp398_, "<<\n");
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp399_ = writer;
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp400_ = writer;
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp401_ = _tmp400_->object_offsets;
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp402_ = g_list_length (_tmp401_);
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp403_ = g_strdup_printf ("/Size %zu\n", (gsize) (_tmp402_ + 1));
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp404_ = _tmp403_;
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp399_, _tmp404_);
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp404_);
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp405_ = writer;
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp406_ = info_number;
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp407_ = g_strdup_printf ("/Info %u 0 R\n", _tmp406_);
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp408_ = _tmp407_;
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp405_, _tmp408_);
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp408_);
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp409_ = writer;
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp410_ = catalog_number;
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp411_ = g_strdup_printf ("/Root %u 0 R\n", _tmp410_);
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp412_ = _tmp411_;
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp409_, _tmp412_);
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp412_);
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp413_ = writer;
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp414_ = id;
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp415_ = id;
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp416_ = g_strdup_printf ("/ID [<%s> <%s>]\n", _tmp414_, _tmp415_);
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp417_ = _tmp416_;
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp413_, _tmp417_);
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp417_);
+#line 547 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp418_ = writer;
+#line 547 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp418_, ">>\n");
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp419_ = writer;
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp419_, "startxref\n");
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp420_ = writer;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp421_ = xref_offset;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp422_ = g_strdup_printf ("%zu\n", _tmp421_);
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp423_ = _tmp422_;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp420_, _tmp423_);
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (_tmp423_);
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp424_ = writer;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write_string (_tmp424_, "%%EOF\n");
+#line 257 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _pdf_writer_unref0 (writer);
+#line 257 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_object_unref0 (stream);
+#line 257 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_free0 (id);
+#line 4271 "book.c"
+}
+
+
+void book_save (Book* self, const gchar* type, gint quality, GFile* file, GError** error) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GQuark _tmp3_ = 0U;
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ static GQuark _tmp2_label0 = 0;
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ static GQuark _tmp2_label1 = 0;
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ static GQuark _tmp2_label2 = 0;
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ static GQuark _tmp2_label3 = 0;
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ static GQuark _tmp2_label4 = 0;
+#line 4289 "book.c"
+ GError * _inner_error_ = NULL;
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (type != NULL);
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (file != NULL);
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = type;
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = _tmp0_;
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (((_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("jpeg")))) || (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("png"))))) || (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("tiff"))))) {
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ switch (0) {
+#line 4307 "book.c"
+ default:
+ {
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ GFile* _tmp6_ = NULL;
+#line 560 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = type;
+#line 560 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_ = quality;
+#line 560 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp6_ = file;
+#line 560 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_save_multi_file (self, _tmp4_, _tmp5_, _tmp6_, &_inner_error_);
+#line 560 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_inner_error_ != NULL) {
+#line 560 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_propagate_error (error, _inner_error_);
+#line 560 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return;
+#line 4327 "book.c"
+ }
+#line 561 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 4331 "book.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label3) ? _tmp2_label3 : (_tmp2_label3 = g_quark_from_static_string ("ps")))) {
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ switch (0) {
+#line 4337 "book.c"
+ default:
+ {
+ GFile* _tmp7_ = NULL;
+#line 563 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp7_ = file;
+#line 563 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_save_ps (self, _tmp7_, &_inner_error_);
+#line 563 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_inner_error_ != NULL) {
+#line 563 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_propagate_error (error, _inner_error_);
+#line 563 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return;
+#line 4351 "book.c"
+ }
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 4355 "book.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label4) ? _tmp2_label4 : (_tmp2_label4 = g_quark_from_static_string ("pdf")))) {
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ switch (0) {
+#line 4361 "book.c"
+ default:
+ {
+ GFile* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp8_ = file;
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp9_ = quality;
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_save_pdf (self, _tmp8_, _tmp9_, &_inner_error_);
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_inner_error_ != NULL) {
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_propagate_error (error, _inner_error_);
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return;
+#line 4378 "book.c"
+ }
+#line 567 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ break;
+#line 4382 "book.c"
+ }
+ }
+ }
+}
+
+
+guint book_get_n_pages (Book* self) {
+ guint result;
+ GList* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 16 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (self != NULL, 0U);
+#line 16 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = self->priv->pages;
+#line 16 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = g_list_length (_tmp0_);
+#line 16 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ result = _tmp1_;
+#line 16 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return result;
+#line 4403 "book.c"
+}
+
+
+gboolean book_get_needs_saving (Book* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 21 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 21 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = self->priv->needs_saving_;
+#line 21 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ result = _tmp0_;
+#line 21 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return result;
+#line 4418 "book.c"
+}
+
+
+void book_set_needs_saving (Book* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 22 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 24 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = self->priv->needs_saving_;
+#line 24 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = value;
+#line 24 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 25 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return;
+#line 4436 "book.c"
+ }
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = value;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->priv->needs_saving_ = _tmp2_;
+#line 27 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_emit_by_name (self, "needs-saving-changed");
+#line 4444 "book.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__PAGE (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__PAGE) (gpointer data1, gpointer arg_1, gpointer data2);
+ register GMarshalFunc_VOID__PAGE callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (n_param_values == 2);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data1 = closure->data;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 4463 "book.c"
+ } else {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ data2 = closure->data;
+#line 4469 "book.c"
+ }
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ callback = (GMarshalFunc_VOID__PAGE) (marshal_data ? marshal_data : cc->callback);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ callback (data1, value_get_page (param_values + 1), data2);
+#line 4475 "book.c"
+}
+
+
+static void value_book_init (GValue* value) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = NULL;
+#line 4482 "book.c"
+}
+
+
+static void value_book_free_value (GValue* value) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (value->data[0].v_pointer) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_unref (value->data[0].v_pointer);
+#line 4491 "book.c"
+ }
+}
+
+
+static void value_book_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (src_value->data[0].v_pointer) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ dest_value->data[0].v_pointer = book_ref (src_value->data[0].v_pointer);
+#line 4501 "book.c"
+ } else {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 4505 "book.c"
+ }
+}
+
+
+static gpointer value_book_peek_pointer (const GValue* value) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return value->data[0].v_pointer;
+#line 4513 "book.c"
+}
+
+
+static gchar* value_book_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (collect_values[0].v_pointer) {
+#line 4520 "book.c"
+ Book* object;
+ object = collect_values[0].v_pointer;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4527 "book.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4531 "book.c"
+ }
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = book_ref (object);
+#line 4535 "book.c"
+ } else {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = NULL;
+#line 4539 "book.c"
+ }
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return NULL;
+#line 4543 "book.c"
+}
+
+
+static gchar* value_book_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ Book** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!object_p) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 4554 "book.c"
+ }
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!value->data[0].v_pointer) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ *object_p = NULL;
+#line 4560 "book.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ *object_p = value->data[0].v_pointer;
+#line 4564 "book.c"
+ } else {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ *object_p = book_ref (value->data[0].v_pointer);
+#line 4568 "book.c"
+ }
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return NULL;
+#line 4572 "book.c"
+}
+
+
+GParamSpec* param_spec_book (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecBook* spec;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_BOOK), NULL);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return G_PARAM_SPEC (spec);
+#line 4586 "book.c"
+}
+
+
+gpointer value_get_book (const GValue* value) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BOOK), NULL);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return value->data[0].v_pointer;
+#line 4595 "book.c"
+}
+
+
+void value_set_book (GValue* value, gpointer v_object) {
+ Book* old;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BOOK));
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ old = value->data[0].v_pointer;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (v_object) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_BOOK));
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = v_object;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_ref (value->data[0].v_pointer);
+#line 4615 "book.c"
+ } else {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = NULL;
+#line 4619 "book.c"
+ }
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (old) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_unref (old);
+#line 4625 "book.c"
+ }
+}
+
+
+void value_take_book (GValue* value, gpointer v_object) {
+ Book* old;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BOOK));
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ old = value->data[0].v_pointer;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (v_object) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_BOOK));
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = v_object;
+#line 4644 "book.c"
+ } else {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = NULL;
+#line 4648 "book.c"
+ }
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (old) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_unref (old);
+#line 4654 "book.c"
+ }
+}
+
+
+static void book_class_init (BookClass * klass) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ book_parent_class = g_type_class_peek_parent (klass);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ BOOK_CLASS (klass)->finalize = book_finalize;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_type_class_add_private (klass, sizeof (BookPrivate));
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_new ("page_added", TYPE_BOOK, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__PAGE, G_TYPE_NONE, 1, TYPE_PAGE);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_new ("page_removed", TYPE_BOOK, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__PAGE, G_TYPE_NONE, 1, TYPE_PAGE);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_new ("reordered", TYPE_BOOK, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_new ("cleared", TYPE_BOOK, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_new ("needs_saving_changed", TYPE_BOOK, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_new ("saving", TYPE_BOOK, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT);
+#line 4678 "book.c"
+}
+
+
+static void book_instance_init (Book * self) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->priv = BOOK_GET_PRIVATE (self);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->ref_count = 1;
+#line 4687 "book.c"
+}
+
+
+static void book_finalize (Book* obj) {
+ Book * self;
+ GList* _tmp0_ = NULL;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_BOOK, Book);
+#line 45 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = self->priv->pages;
+#line 4698 "book.c"
+ {
+ GList* page_collection = NULL;
+ GList* page_it = NULL;
+#line 45 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ page_collection = _tmp0_;
+#line 45 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ for (page_it = page_collection; page_it != NULL; page_it = page_it->next) {
+#line 4706 "book.c"
+ Page* _tmp1_ = NULL;
+ Page* page = NULL;
+#line 45 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = _page_ref0 ((Page*) page_it->data);
+#line 45 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ page = _tmp1_;
+#line 4713 "book.c"
+ {
+ Page* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ Page* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 47 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = page;
+#line 47 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_parse_name ("pixels-changed", TYPE_PAGE, &_tmp3_, NULL, FALSE);
+#line 47 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _book_page_changed_cb_page_pixels_changed, self);
+#line 48 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = page;
+#line 48 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_parse_name ("crop-changed", TYPE_PAGE, &_tmp5_, NULL, FALSE);
+#line 48 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _book_page_changed_cb_page_crop_changed, self);
+#line 45 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _page_unref0 (page);
+#line 4733 "book.c"
+ }
+ }
+ }
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ __g_list_free__page_unref0_0 (self->priv->pages);
+#line 231 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_byte_array_unref0 (self->priv->jpeg_data);
+#line 4741 "book.c"
+}
+
+
+GType book_get_type (void) {
+ static volatile gsize book_type_id__volatile = 0;
+ if (g_once_init_enter (&book_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_book_init, value_book_free_value, value_book_copy_value, value_book_peek_pointer, "p", value_book_collect_value, "p", value_book_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (BookClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) book_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Book), 0, (GInstanceInitFunc) book_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType book_type_id;
+ book_type_id = g_type_register_fundamental (g_type_fundamental_next (), "Book", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&book_type_id__volatile, book_type_id);
+ }
+ return book_type_id__volatile;
+}
+
+
+gpointer book_ref (gpointer instance) {
+ Book* self;
+ self = instance;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return instance;
+#line 4766 "book.c"
+}
+
+
+void book_unref (gpointer instance) {
+ Book* self;
+ self = instance;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ BOOK_GET_CLASS (self)->finalize (self);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 4779 "book.c"
+ }
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 580 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 4787 "book.c"
+}
+
+
+PDFWriter* pdf_writer_construct (GType object_type, GFileOutputStream* stream) {
+ PDFWriter* self = NULL;
+ GFileOutputStream* _tmp0_ = NULL;
+ GFileOutputStream* _tmp1_ = NULL;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (stream != NULL, NULL);
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self = (PDFWriter*) g_type_create_instance (object_type);
+#line 580 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = stream;
+#line 580 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 580 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_object_unref0 (self->priv->stream);
+#line 580 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->priv->stream = _tmp1_;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return self;
+#line 4809 "book.c"
+}
+
+
+PDFWriter* pdf_writer_new (GFileOutputStream* stream) {
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return pdf_writer_construct (TYPE_PDF_WRITER, stream);
+#line 4816 "book.c"
+}
+
+
+void pdf_writer_write (PDFWriter* self, guint8* data, int data_length1) {
+ gsize _tmp4_ = 0UL;
+ guint8* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 4827 "book.c"
+ {
+ GFileOutputStream* _tmp0_ = NULL;
+ guint8* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 587 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = self->priv->stream;
+#line 587 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = data;
+#line 587 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1__length1 = data_length1;
+#line 587 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_output_stream_write_all ((GOutputStream*) _tmp0_, _tmp1_, (gsize) _tmp1__length1, NULL, NULL, &_inner_error_);
+#line 587 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_inner_error_ != NULL) {
+#line 4842 "book.c"
+ goto __catch1_g_error;
+ }
+ }
+ goto __finally1;
+ __catch1_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ e = _inner_error_;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _inner_error_ = NULL;
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = e;
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = _tmp2_->message;
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_warning ("book.vala:591: Error writing PDF: %s", _tmp3_);
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_error_free0 (e);
+#line 4864 "book.c"
+ }
+ __finally1:
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_inner_error_ != NULL) {
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_clear_error (&_inner_error_);
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return;
+#line 4875 "book.c"
+ }
+#line 593 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp4_ = self->offset;
+#line 593 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5_ = data;
+#line 593 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp5__length1 = data_length1;
+#line 593 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->offset = _tmp4_ + _tmp5__length1;
+#line 4885 "book.c"
+}
+
+
+static gchar* string_to_utf8 (const gchar* self, int* result_length1) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gchar* _tmp2_ = NULL;
+ gint _result__length1 = 0;
+ gint __result__size_ = 0;
+ gint _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gchar* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+#line 1303 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1304 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = strlen (self);
+#line 1304 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp1_ = _tmp0_;
+#line 1304 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp2_ = g_new0 (gchar, _tmp1_ + 1);
+#line 1304 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _result_ = _tmp2_;
+#line 1304 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _result__length1 = _tmp1_ + 1;
+#line 1304 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ __result__size_ = _result__length1;
+#line 1305 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp3_ = _result__length1;
+#line 1305 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _result__length1 = _tmp3_ - 1;
+#line 1306 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp4_ = _result_;
+#line 1306 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp4__length1 = _result__length1;
+#line 1306 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp5_ = strlen (self);
+#line 1306 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp6_ = _tmp5_;
+#line 1306 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ memcpy (_tmp4_, self, (gsize) _tmp6_);
+#line 1307 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp7_ = _result_;
+#line 1307 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp7__length1 = _result__length1;
+#line 1307 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (result_length1) {
+#line 1307 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ *result_length1 = _tmp7__length1;
+#line 4940 "book.c"
+ }
+#line 1307 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = _tmp7_;
+#line 1307 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 4946 "book.c"
+}
+
+
+void pdf_writer_write_string (PDFWriter* self, const gchar* text) {
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gchar* _tmp2_ = NULL;
+ guint8* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+#line 596 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (self != NULL);
+#line 596 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (text != NULL);
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = text;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = string_to_utf8 (_tmp0_, &_tmp1_);
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = (guint8*) _tmp2_;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3__length1 = (_tmp1_ * sizeof (gchar)) / sizeof (guint8);
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_write (self, _tmp3_, (_tmp1_ * sizeof (gchar)) / sizeof (guint8));
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = (g_free (_tmp3_), NULL);
+#line 4972 "book.c"
+}
+
+
+guint pdf_writer_start_object (PDFWriter* self) {
+ guint result = 0U;
+ gsize _tmp0_ = 0UL;
+ GList* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (self != NULL, 0U);
+#line 603 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = self->offset;
+#line 603 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->object_offsets = g_list_append (self->object_offsets, (gpointer) ((guintptr) ((guint) _tmp0_)));
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = self->object_offsets;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = g_list_length (_tmp1_);
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ result = _tmp2_;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return result;
+#line 4995 "book.c"
+}
+
+
+static void value_pdf_writer_init (GValue* value) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = NULL;
+#line 5002 "book.c"
+}
+
+
+static void value_pdf_writer_free_value (GValue* value) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (value->data[0].v_pointer) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_unref (value->data[0].v_pointer);
+#line 5011 "book.c"
+ }
+}
+
+
+static void value_pdf_writer_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (src_value->data[0].v_pointer) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ dest_value->data[0].v_pointer = pdf_writer_ref (src_value->data[0].v_pointer);
+#line 5021 "book.c"
+ } else {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 5025 "book.c"
+ }
+}
+
+
+static gpointer value_pdf_writer_peek_pointer (const GValue* value) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return value->data[0].v_pointer;
+#line 5033 "book.c"
+}
+
+
+static gchar* value_pdf_writer_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (collect_values[0].v_pointer) {
+#line 5040 "book.c"
+ PDFWriter* object;
+ object = collect_values[0].v_pointer;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 5047 "book.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 5051 "book.c"
+ }
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = pdf_writer_ref (object);
+#line 5055 "book.c"
+ } else {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = NULL;
+#line 5059 "book.c"
+ }
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return NULL;
+#line 5063 "book.c"
+}
+
+
+static gchar* value_pdf_writer_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PDFWriter** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!object_p) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 5074 "book.c"
+ }
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!value->data[0].v_pointer) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ *object_p = NULL;
+#line 5080 "book.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ *object_p = value->data[0].v_pointer;
+#line 5084 "book.c"
+ } else {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ *object_p = pdf_writer_ref (value->data[0].v_pointer);
+#line 5088 "book.c"
+ }
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return NULL;
+#line 5092 "book.c"
+}
+
+
+GParamSpec* param_spec_pdf_writer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPDFWriter* spec;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PDF_WRITER), NULL);
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return G_PARAM_SPEC (spec);
+#line 5106 "book.c"
+}
+
+
+gpointer value_get_pdf_writer (const GValue* value) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PDF_WRITER), NULL);
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return value->data[0].v_pointer;
+#line 5115 "book.c"
+}
+
+
+void value_set_pdf_writer (GValue* value, gpointer v_object) {
+ PDFWriter* old;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PDF_WRITER));
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ old = value->data[0].v_pointer;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (v_object) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PDF_WRITER));
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = v_object;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_ref (value->data[0].v_pointer);
+#line 5135 "book.c"
+ } else {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = NULL;
+#line 5139 "book.c"
+ }
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (old) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_unref (old);
+#line 5145 "book.c"
+ }
+}
+
+
+void value_take_pdf_writer (GValue* value, gpointer v_object) {
+ PDFWriter* old;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PDF_WRITER));
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ old = value->data[0].v_pointer;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (v_object) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PDF_WRITER));
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = v_object;
+#line 5164 "book.c"
+ } else {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = NULL;
+#line 5168 "book.c"
+ }
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (old) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_unref (old);
+#line 5174 "book.c"
+ }
+}
+
+
+static void pdf_writer_class_init (PDFWriterClass * klass) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ pdf_writer_parent_class = g_type_class_peek_parent (klass);
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ PDF_WRITER_CLASS (klass)->finalize = pdf_writer_finalize;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_type_class_add_private (klass, sizeof (PDFWriterPrivate));
+#line 5186 "book.c"
+}
+
+
+static void pdf_writer_instance_init (PDFWriter * self) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->priv = PDF_WRITER_GET_PRIVATE (self);
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->offset = (gsize) 0;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->ref_count = 1;
+#line 5197 "book.c"
+}
+
+
+static void pdf_writer_finalize (PDFWriter* obj) {
+ PDFWriter * self;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PDF_WRITER, PDFWriter);
+#line 575 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_list_free0 (self->object_offsets);
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_object_unref0 (self->priv->stream);
+#line 5209 "book.c"
+}
+
+
+GType pdf_writer_get_type (void) {
+ static volatile gsize pdf_writer_type_id__volatile = 0;
+ if (g_once_init_enter (&pdf_writer_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_pdf_writer_init, value_pdf_writer_free_value, value_pdf_writer_copy_value, value_pdf_writer_peek_pointer, "p", value_pdf_writer_collect_value, "p", value_pdf_writer_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PDFWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pdf_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PDFWriter), 0, (GInstanceInitFunc) pdf_writer_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType pdf_writer_type_id;
+ pdf_writer_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PDFWriter", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&pdf_writer_type_id__volatile, pdf_writer_type_id);
+ }
+ return pdf_writer_type_id__volatile;
+}
+
+
+gpointer pdf_writer_ref (gpointer instance) {
+ PDFWriter* self;
+ self = instance;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return instance;
+#line 5234 "book.c"
+}
+
+
+void pdf_writer_unref (gpointer instance) {
+ PDFWriter* self;
+ self = instance;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ PDF_WRITER_GET_CLASS (self)->finalize (self);
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 5247 "book.c"
+ }
+}
+
+
+static cairo_status_t _ps_writer_write_cairo_data_cairo_write_func_t (gpointer self, guchar* data, int data_length1) {
+ cairo_status_t result;
+ result = ps_writer_write_cairo_data ((PsWriter*) self, data, data_length1);
+#line 616 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return result;
+#line 5257 "book.c"
+}
+
+
+PsWriter* ps_writer_construct (GType object_type, GFileOutputStream* stream) {
+ PsWriter* self = NULL;
+ GFileOutputStream* _tmp0_ = NULL;
+ GFileOutputStream* _tmp1_ = NULL;
+ cairo_surface_t* _tmp2_ = NULL;
+#line 613 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (stream != NULL, NULL);
+#line 613 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self = (PsWriter*) g_type_create_instance (object_type);
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = stream;
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_object_unref0 (self->stream);
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->stream = _tmp1_;
+#line 616 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = cairo_ps_surface_create_for_stream (_ps_writer_write_cairo_data_cairo_write_func_t, self, (gdouble) 0, (gdouble) 0);
+#line 616 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _cairo_surface_destroy0 (self->surface);
+#line 616 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->surface = _tmp2_;
+#line 613 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return self;
+#line 5286 "book.c"
+}
+
+
+PsWriter* ps_writer_new (GFileOutputStream* stream) {
+#line 613 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return ps_writer_construct (TYPE_PS_WRITER, stream);
+#line 5293 "book.c"
+}
+
+
+static cairo_status_t ps_writer_write_cairo_data (PsWriter* self, guint8* data, int data_length1) {
+ cairo_status_t result = 0;
+ GError * _inner_error_ = NULL;
+#line 619 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 5302 "book.c"
+ {
+ GFileOutputStream* _tmp0_ = NULL;
+ guint8* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 623 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp0_ = self->stream;
+#line 623 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1_ = data;
+#line 623 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp1__length1 = data_length1;
+#line 623 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_output_stream_write_all ((GOutputStream*) _tmp0_, _tmp1_, (gsize) _tmp1__length1, NULL, NULL, &_inner_error_);
+#line 623 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_inner_error_ != NULL) {
+#line 5317 "book.c"
+ goto __catch2_g_error;
+ }
+ }
+ goto __finally2;
+ __catch2_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ e = _inner_error_;
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _inner_error_ = NULL;
+#line 627 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp2_ = e;
+#line 627 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _tmp3_ = _tmp2_->message;
+#line 627 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_warning ("book.vala:627: Error writing data: %s", _tmp3_);
+#line 628 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ result = CAIRO_STATUS_WRITE_ERROR;
+#line 628 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_error_free0 (e);
+#line 628 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return result;
+#line 5343 "book.c"
+ }
+ __finally2:
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (_inner_error_ != NULL) {
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_clear_error (&_inner_error_);
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return 0;
+#line 5354 "book.c"
+ }
+#line 631 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ result = CAIRO_STATUS_SUCCESS;
+#line 631 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return result;
+#line 5360 "book.c"
+}
+
+
+static void value_ps_writer_init (GValue* value) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = NULL;
+#line 5367 "book.c"
+}
+
+
+static void value_ps_writer_free_value (GValue* value) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (value->data[0].v_pointer) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ ps_writer_unref (value->data[0].v_pointer);
+#line 5376 "book.c"
+ }
+}
+
+
+static void value_ps_writer_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (src_value->data[0].v_pointer) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ dest_value->data[0].v_pointer = ps_writer_ref (src_value->data[0].v_pointer);
+#line 5386 "book.c"
+ } else {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 5390 "book.c"
+ }
+}
+
+
+static gpointer value_ps_writer_peek_pointer (const GValue* value) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return value->data[0].v_pointer;
+#line 5398 "book.c"
+}
+
+
+static gchar* value_ps_writer_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (collect_values[0].v_pointer) {
+#line 5405 "book.c"
+ PsWriter* object;
+ object = collect_values[0].v_pointer;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 5412 "book.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 5416 "book.c"
+ }
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = ps_writer_ref (object);
+#line 5420 "book.c"
+ } else {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = NULL;
+#line 5424 "book.c"
+ }
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return NULL;
+#line 5428 "book.c"
+}
+
+
+static gchar* value_ps_writer_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PsWriter** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!object_p) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 5439 "book.c"
+ }
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (!value->data[0].v_pointer) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ *object_p = NULL;
+#line 5445 "book.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ *object_p = value->data[0].v_pointer;
+#line 5449 "book.c"
+ } else {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ *object_p = ps_writer_ref (value->data[0].v_pointer);
+#line 5453 "book.c"
+ }
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return NULL;
+#line 5457 "book.c"
+}
+
+
+GParamSpec* param_spec_ps_writer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPsWriter* spec;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PS_WRITER), NULL);
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return G_PARAM_SPEC (spec);
+#line 5471 "book.c"
+}
+
+
+gpointer value_get_ps_writer (const GValue* value) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PS_WRITER), NULL);
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return value->data[0].v_pointer;
+#line 5480 "book.c"
+}
+
+
+void value_set_ps_writer (GValue* value, gpointer v_object) {
+ PsWriter* old;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PS_WRITER));
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ old = value->data[0].v_pointer;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (v_object) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PS_WRITER));
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = v_object;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ ps_writer_ref (value->data[0].v_pointer);
+#line 5500 "book.c"
+ } else {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = NULL;
+#line 5504 "book.c"
+ }
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (old) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ ps_writer_unref (old);
+#line 5510 "book.c"
+ }
+}
+
+
+void value_take_ps_writer (GValue* value, gpointer v_object) {
+ PsWriter* old;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PS_WRITER));
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ old = value->data[0].v_pointer;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (v_object) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PS_WRITER));
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = v_object;
+#line 5529 "book.c"
+ } else {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ value->data[0].v_pointer = NULL;
+#line 5533 "book.c"
+ }
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (old) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ ps_writer_unref (old);
+#line 5539 "book.c"
+ }
+}
+
+
+static void ps_writer_class_init (PsWriterClass * klass) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ ps_writer_parent_class = g_type_class_peek_parent (klass);
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ PS_WRITER_CLASS (klass)->finalize = ps_writer_finalize;
+#line 5549 "book.c"
+}
+
+
+static void ps_writer_instance_init (PsWriter * self) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self->ref_count = 1;
+#line 5556 "book.c"
+}
+
+
+static void ps_writer_finalize (PsWriter* obj) {
+ PsWriter * self;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PS_WRITER, PsWriter);
+#line 610 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _cairo_surface_destroy0 (self->surface);
+#line 611 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ _g_object_unref0 (self->stream);
+#line 5568 "book.c"
+}
+
+
+GType ps_writer_get_type (void) {
+ static volatile gsize ps_writer_type_id__volatile = 0;
+ if (g_once_init_enter (&ps_writer_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_ps_writer_init, value_ps_writer_free_value, value_ps_writer_copy_value, value_ps_writer_peek_pointer, "p", value_ps_writer_collect_value, "p", value_ps_writer_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PsWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) ps_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PsWriter), 0, (GInstanceInitFunc) ps_writer_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType ps_writer_type_id;
+ ps_writer_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PsWriter", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&ps_writer_type_id__volatile, ps_writer_type_id);
+ }
+ return ps_writer_type_id__volatile;
+}
+
+
+gpointer ps_writer_ref (gpointer instance) {
+ PsWriter* self;
+ self = instance;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ return instance;
+#line 5593 "book.c"
+}
+
+
+void ps_writer_unref (gpointer instance) {
+ PsWriter* self;
+ self = instance;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ PS_WRITER_GET_CLASS (self)->finalize (self);
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/book.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 5606 "book.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/book.vala b/src/book.vala
new file mode 100644
index 0000000..db9be0b
--- /dev/null
+++ b/src/book.vala
@@ -0,0 +1,633 @@
+/*
+ * Copyright (C) 2009-2011 Canonical Ltd.
+ * Author: Robert Ancell <robert.ancell@canonical.com>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+public class Book
+{
+ private List<Page> pages;
+
+ public uint n_pages { get { return pages.length (); } }
+
+ private bool needs_saving_;
+ public bool needs_saving
+ {
+ get { return needs_saving_; }
+ set
+ {
+ if (needs_saving_ == value)
+ return;
+ needs_saving_ = value;
+ needs_saving_changed ();
+ }
+ }
+
+ public signal void page_added (Page page);
+ public signal void page_removed (Page page);
+ public signal void reordered ();
+ public signal void cleared ();
+ public signal void needs_saving_changed ();
+ public signal void saving (int i);
+
+ public Book ()
+ {
+ pages = new List<Page> ();
+ }
+
+ ~Book ()
+ {
+ foreach (var page in pages)
+ {
+ page.pixels_changed.disconnect (page_changed_cb);
+ page.crop_changed.disconnect (page_changed_cb);
+ }
+ }
+
+ public void clear ()
+ {
+ foreach (var page in pages)
+ {
+ page.pixels_changed.disconnect (page_changed_cb);
+ page.crop_changed.disconnect (page_changed_cb);
+ }
+ pages = null;
+ cleared ();
+ }
+
+ private void page_changed_cb (Page page)
+ {
+ needs_saving = true;
+ }
+
+ public void append_page (Page page)
+ {
+ page.pixels_changed.connect (page_changed_cb);
+ page.crop_changed.connect (page_changed_cb);
+
+ pages.append (page);
+ page_added (page);
+ needs_saving = true;
+ }
+
+ public void move_page (Page page, uint location)
+ {
+ pages.remove (page);
+ pages.insert (page, (int) location);
+ reordered ();
+ needs_saving = true;
+ }
+
+ public void reverse ()
+ {
+ var new_pages = new List<Page> ();
+ foreach (var page in pages)
+ new_pages.prepend (page);
+ pages = (owned) new_pages;
+
+ reordered ();
+ needs_saving = true;
+ }
+
+ public void combine_sides ()
+ {
+ var n_front = n_pages - n_pages / 2;
+ var new_pages = new List<Page> ();
+ for (var i = 0; i < n_pages; i++)
+ {
+ if (i % 2 == 0)
+ new_pages.append (pages.nth_data (i / 2));
+ else
+ new_pages.append (pages.nth_data (n_front + (i / 2)));
+ }
+ pages = (owned) new_pages;
+
+ reordered ();
+ needs_saving = true;
+ }
+
+ public void combine_sides_reverse ()
+ {
+ var new_pages = new List<Page> ();
+ for (var i = 0; i < n_pages; i++)
+ {
+ if (i % 2 == 0)
+ new_pages.append (pages.nth_data (i / 2));
+ else
+ new_pages.append (pages.nth_data (n_pages - 1 - (i / 2)));
+ }
+ pages = (owned) new_pages;
+
+ reordered ();
+ needs_saving = true;
+ }
+
+ public void delete_page (Page page)
+ {
+ page.pixels_changed.disconnect (page_changed_cb);
+ page.crop_changed.disconnect (page_changed_cb);
+ pages.remove (page);
+ page_removed (page);
+ needs_saving = true;
+ }
+
+ public Page get_page (int page_number)
+ {
+ if (page_number < 0)
+ page_number = (int) pages.length () + page_number;
+ return pages.nth_data (page_number);
+ }
+
+ public uint get_page_index (Page page)
+ {
+ return pages.index (page);
+ }
+
+ private File make_indexed_file (string uri, int i)
+ {
+ if (n_pages == 1)
+ return File.new_for_uri (uri);
+
+ /* Insert index before extension */
+ var basename = Path.get_basename (uri);
+ string prefix = uri, suffix = "";
+ var extension_index = basename.last_index_of_char ('.');
+ if (extension_index >= 0)
+ {
+ suffix = basename.slice (extension_index, basename.length);
+ prefix = uri.slice (0, uri.length - suffix.length);
+ }
+ var width = n_pages.to_string().length;
+ var number_format = "%%0%dd".printf (width);
+ var filename = prefix + "-" + number_format.printf (i + 1) + suffix;
+ return File.new_for_uri (filename);
+ }
+
+ private void save_multi_file (string type, int quality, File file) throws Error
+ {
+ for (var i = 0; i < n_pages; i++)
+ {
+ var page = get_page (i);
+ page.save (type, quality, make_indexed_file (file.get_uri (), i));
+ saving (i);
+ }
+ }
+
+ private void save_ps_pdf_surface (Cairo.Surface surface, Gdk.Pixbuf image, double dpi)
+ {
+ var context = new Cairo.Context (surface);
+ context.scale (72.0 / dpi, 72.0 / dpi);
+ Gdk.cairo_set_source_pixbuf (context, image, 0, 0);
+ context.get_source ().set_filter (Cairo.Filter.BEST);
+ context.paint ();
+ }
+
+ private void save_ps (File file) throws Error
+ {
+ var stream = file.replace (null, false, FileCreateFlags.NONE, null);
+ var writer = new PsWriter (stream);
+ var surface = writer.surface;
+
+ for (var i = 0; i < n_pages; i++)
+ {
+ var page = get_page (i);
+ var image = page.get_image (true);
+ var width = image.width * 72.0 / page.dpi;
+ var height = image.height * 72.0 / page.dpi;
+ surface.set_size (width, height);
+ save_ps_pdf_surface (surface, image, page.dpi);
+ surface.show_page ();
+ saving (i);
+ }
+ }
+
+ private uint8[]? compress_zlib (uint8[] data)
+ {
+ var stream = ZLib.DeflateStream (ZLib.Level.BEST_COMPRESSION);
+ var out_data = new uint8[data.length];
+
+ stream.next_in = data;
+ stream.next_out = out_data;
+ while (stream.avail_in > 0)
+ {
+ if (stream.deflate (ZLib.Flush.FINISH) == ZLib.Status.STREAM_ERROR)
+ break;
+ }
+
+ if (stream.avail_in > 0)
+ return null;
+
+ var n_written = data.length - stream.avail_out;
+ out_data.resize ((int) n_written);
+
+ return out_data;
+ }
+
+ private ByteArray jpeg_data;
+
+ private uint8[] compress_jpeg (Gdk.Pixbuf image, int quality, int dpi)
+ {
+ jpeg_data = new ByteArray ();
+ string[] keys = { "quality", "density-unit", "x-density", "y-density", null };
+ string[] values = { "%d".printf (quality), "dots-per-inch", "%d".printf (dpi), "%d".printf (dpi), null };
+ try
+ {
+ image.save_to_callbackv (write_pixbuf_data, "jpeg", keys, values);
+ }
+ catch (Error e)
+ {
+ }
+ var data = (owned) jpeg_data.data;
+ jpeg_data = null;
+
+ return data;
+ }
+
+ private bool write_pixbuf_data (uint8[] buf) throws Error
+ {
+ jpeg_data.append (buf);
+ return true;
+ }
+
+ private void save_pdf (File file, int quality) throws Error
+ {
+ /* Generate a random ID for this file */
+ var id = "";
+ for (var i = 0; i < 4; i++)
+ id += "%08x".printf (Random.next_int ());
+
+ var stream = file.replace (null, false, FileCreateFlags.NONE, null);
+ var writer = new PDFWriter (stream);
+
+ /* Header */
+ writer.write_string ("%PDF-1.3\n");
+
+ /* Comment with binary as recommended so file is treated as binary */
+ writer.write_string ("%\xe2\xe3\xcf\xd3\n");
+
+ /* Catalog */
+ var catalog_number = writer.start_object ();
+ writer.write_string ("%u 0 obj\n".printf (catalog_number));
+ writer.write_string ("<<\n");
+ writer.write_string ("/Type /Catalog\n");
+ //FIXMEwriter.write_string ("/Metadata %u 0 R\n".printf (catalog_number + 1));
+ //FIXMEwriter.write_string ("/MarkInfo << /Marked true >>");
+ writer.write_string ("/Pages %u 0 R\n".printf (catalog_number + 1)); //+2
+ writer.write_string (">>\n");
+ writer.write_string ("endobj\n");
+
+ /* Metadata */
+ /* FIXME writer.write_string ("\n");
+ number = writer.start_object ();
+ writer.write_string ("%u 0 obj\n".printf (number));
+ writer.write_string ("<<\n");
+ writer.write_string ("/Type /Metadata\n");
+ writer.write_string ("/Subtype /XML\n");
+ writer.write_string ("/Length %u\n".printf (...));
+ writer.write_string (">>\n");
+ writer.write_string ("stream\n");
+ // ...
+ writer.write_string ("\n");
+ writer.write_string ("endstream\n");
+ writer.write_string ("endobj\n");*/
+
+ /* Pages */
+ writer.write_string ("\n");
+ var pages_number = writer.start_object ();
+ writer.write_string ("%u 0 obj\n".printf (pages_number));
+ writer.write_string ("<<\n");
+ writer.write_string ("/Type /Pages\n");
+ writer.write_string ("/Kids [");
+ for (var i = 0; i < n_pages; i++)
+ writer.write_string (" %u 0 R".printf (pages_number + 1 + (i*3)));
+ writer.write_string (" ]\n");
+ writer.write_string ("/Count %u\n".printf (n_pages));
+ writer.write_string (">>\n");
+ writer.write_string ("endobj\n");
+
+ for (var i = 0; i < n_pages; i++)
+ {
+ var page = get_page (i);
+ var image = page.get_image (true);
+ var width = image.width;
+ var height = image.height;
+ unowned uint8[] pixels = image.get_pixels ();
+ var page_width = width * 72.0 / page.dpi;
+ var page_height = height * 72.0 / page.dpi;
+
+ int depth = 8;
+ string color_space = "DeviceRGB";
+ string? filter = null;
+ char[] width_buffer = new char[double.DTOSTR_BUF_SIZE];
+ char[] height_buffer = new char[double.DTOSTR_BUF_SIZE];
+ uint8[] data;
+ if (page.is_color)
+ {
+ depth = 8;
+ color_space = "DeviceRGB";
+ var data_length = height * width * 3;
+ data = new uint8[data_length];
+ for (var row = 0; row < height; row++)
+ {
+ var in_offset = row * image.rowstride;
+ var out_offset = row * width * 3;
+ for (var x = 0; x < width; x++)
+ {
+ var in_o = in_offset + x*3;
+ var out_o = out_offset + x*3;
+
+ data[out_o] = pixels[in_o];
+ data[out_o+1] = pixels[in_o+1];
+ data[out_o+2] = pixels[in_o+2];
+ }
+ }
+ }
+ else if (page.depth == 2)
+ {
+ int shift_count = 6;
+ depth = 2;
+ color_space = "DeviceGray";
+ var data_length = height * ((width * 2 + 7) / 8);
+ data = new uint8[data_length];
+ var offset = 0;
+ for (var row = 0; row < height; row++)
+ {
+ /* Pad to the next line */
+ if (shift_count != 6)
+ {
+ offset++;
+ shift_count = 6;
+ }
+
+ var in_offset = row * image.rowstride;
+ for (var x = 0; x < width; x++)
+ {
+ /* Clear byte */
+ if (shift_count == 6)
+ data[offset] = 0;
+
+ /* Set bits */
+ var p = pixels[in_offset + x*3];
+ if (p >= 192)
+ data[offset] |= 3 << shift_count;
+ else if (p >= 128)
+ data[offset] |= 2 << shift_count;
+ else if (p >= 64)
+ data[offset] |= 1 << shift_count;
+
+ /* Move to the next position */
+ if (shift_count == 0)
+ {
+ offset++;
+ shift_count = 6;
+ }
+ else
+ shift_count -= 2;
+ }
+ }
+ }
+ else if (page.depth == 1)
+ {
+ int mask = 0x80;
+
+ depth = 1;
+ color_space = "DeviceGray";
+ var data_length = height * ((width + 7) / 8);
+ data = new uint8[data_length];
+ var offset = 0;
+ for (var row = 0; row < height; row++)
+ {
+ /* Pad to the next line */
+ if (mask != 0x80)
+ {
+ offset++;
+ mask = 0x80;
+ }
+
+ var in_offset = row * image.rowstride;
+ for (var x = 0; x < width; x++)
+ {
+ /* Clear byte */
+ if (mask == 0x80)
+ data[offset] = 0;
+
+ /* Set bit */
+ if (pixels[in_offset+x*3] != 0)
+ data[offset] |= (uint8) mask;
+
+ /* Move to the next bit */
+ mask >>= 1;
+ if (mask == 0)
+ {
+ offset++;
+ mask = 0x80;
+ }
+ }
+ }
+ }
+ else
+ {
+ depth = 8;
+ color_space = "DeviceGray";
+ var data_length = height * width;
+ data = new uint8 [data_length];
+ for (var row = 0; row < height; row++)
+ {
+ var in_offset = row * image.rowstride;
+ var out_offset = row * width;
+ for (var x = 0; x < width; x++)
+ data[out_offset+x] = pixels[in_offset+x*3];
+ }
+ }
+
+ /* Compress data */
+ var compressed_data = compress_zlib (data);
+ if (compressed_data != null)
+ {
+ /* Try if JPEG compression is better */
+ if (depth > 1)
+ {
+ var jpeg_data = compress_jpeg (image, quality, page.dpi);
+ if (jpeg_data.length < compressed_data.length)
+ {
+ filter = "DCTDecode";
+ data = jpeg_data;
+ }
+ }
+
+ if (filter == null)
+ {
+ filter = "FlateDecode";
+ data = compressed_data;
+ }
+ }
+
+ /* Page */
+ writer.write_string ("\n");
+ var number = writer.start_object ();
+ writer.write_string ("%u 0 obj\n".printf (number));
+ writer.write_string ("<<\n");
+ writer.write_string ("/Type /Page\n");
+ writer.write_string ("/Parent %u 0 R\n".printf (pages_number));
+ writer.write_string ("/Resources << /XObject << /Im%d %u 0 R >> >>\n".printf (i, number+1));
+ writer.write_string ("/MediaBox [ 0 0 %s %s ]\n".printf (page_width.format (width_buffer, "%.2f"), page_height.format (height_buffer, "%.2f")));
+ writer.write_string ("/Contents %u 0 R\n".printf (number+2));
+ writer.write_string (">>\n");
+ writer.write_string ("endobj\n");
+
+ /* Page image */
+ writer.write_string ("\n");
+ number = writer.start_object ();
+ writer.write_string ("%u 0 obj\n".printf (number));
+ writer.write_string ("<<\n");
+ writer.write_string ("/Type /XObject\n");
+ writer.write_string ("/Subtype /Image\n");
+ writer.write_string ("/Width %d\n".printf (width));
+ writer.write_string ("/Height %d\n".printf (height));
+ writer.write_string ("/ColorSpace /%s\n".printf (color_space));
+ writer.write_string ("/BitsPerComponent %d\n".printf (depth));
+ writer.write_string ("/Length %d\n".printf (data.length));
+ if (filter != null)
+ writer.write_string ("/Filter /%s\n".printf (filter));
+ writer.write_string (">>\n");
+ writer.write_string ("stream\n");
+ writer.write (data);
+ writer.write_string ("\n");
+ writer.write_string ("endstream\n");
+ writer.write_string ("endobj\n");
+
+ /* Page contents */
+ var command = "q\n%s 0 0 %s 0 0 cm\n/Im%d Do\nQ".printf (page_width.format (width_buffer, "%f"), page_height.format (height_buffer, "%f"), i);
+ writer.write_string ("\n");
+ number = writer.start_object ();
+ writer.write_string ("%u 0 obj\n".printf (number));
+ writer.write_string ("<<\n");
+ writer.write_string ("/Length %d\n".printf (command.length));
+ writer.write_string (">>\n");
+ writer.write_string ("stream\n");
+ writer.write_string (command);
+ writer.write_string ("\n");
+ writer.write_string ("endstream\n");
+ writer.write_string ("endobj\n");
+
+ saving (i);
+ }
+
+ /* Info */
+ writer.write_string ("\n");
+ var info_number = writer.start_object ();
+ writer.write_string ("%u 0 obj\n".printf (info_number));
+ writer.write_string ("<<\n");
+ writer.write_string ("/Creator (Simple Scan %s)\n".printf (VERSION));
+ writer.write_string (">>\n");
+ writer.write_string ("endobj\n");
+
+ /* Cross-reference table */
+ writer.write_string ("\n");
+ var xref_offset = writer.offset;
+ writer.write_string ("xref\n");
+ writer.write_string ("0 %zu\n".printf (writer.object_offsets.length () + 1));
+ writer.write_string ("0000000000 65535 f \n");
+ foreach (var offset in writer.object_offsets)
+ writer.write_string ("%010zu 00000 n \n".printf (offset));
+
+ /* Trailer */
+ writer.write_string ("\n");
+ writer.write_string ("trailer\n");
+ writer.write_string ("<<\n");
+ writer.write_string ("/Size %zu\n".printf (writer.object_offsets.length () + 1));
+ writer.write_string ("/Info %u 0 R\n".printf (info_number));
+ writer.write_string ("/Root %u 0 R\n".printf (catalog_number));
+ writer.write_string ("/ID [<%s> <%s>]\n".printf (id, id));
+ writer.write_string (">>\n");
+ writer.write_string ("startxref\n");
+ writer.write_string ("%zu\n".printf (xref_offset));
+ writer.write_string ("%%EOF\n");
+ }
+
+ public void save (string type, int quality, File file) throws Error
+ {
+ switch (type)
+ {
+ case "jpeg":
+ case "png":
+ case "tiff":
+ save_multi_file (type, quality, file);
+ break;
+ case "ps":
+ save_ps (file);
+ break;
+ case "pdf":
+ save_pdf (file, quality);
+ break;
+ }
+ }
+}
+
+private class PDFWriter
+{
+ public size_t offset = 0;
+ public List<uint> object_offsets;
+ private FileOutputStream stream;
+
+ public PDFWriter (FileOutputStream stream)
+ {
+ this.stream = stream;
+ }
+
+ public void write (uint8[] data)
+ {
+ try
+ {
+ stream.write_all (data, null, null);
+ }
+ catch (Error e)
+ {
+ warning ("Error writing PDF: %s", e.message);
+ }
+ offset += data.length;
+ }
+
+ public void write_string (string text)
+ {
+ write ((uint8[]) text.to_utf8 ());
+ }
+
+ public uint start_object ()
+ {
+ object_offsets.append ((uint)offset);
+ return object_offsets.length ();
+ }
+}
+
+public class PsWriter
+{
+ public Cairo.PsSurface surface;
+ public FileOutputStream stream;
+
+ public PsWriter (FileOutputStream stream)
+ {
+ this.stream = stream;
+ surface = new Cairo.PsSurface.for_stream (write_cairo_data, 0, 0);
+ }
+
+ private Cairo.Status write_cairo_data (uint8[] data)
+ {
+ try
+ {
+ stream.write_all (data, null, null);
+ }
+ catch (Error e)
+ {
+ warning ("Error writing data: %s", e.message);
+ return Cairo.Status.WRITE_ERROR;
+ }
+
+ return Cairo.Status.SUCCESS;
+ }
+}
diff --git a/src/colord.vapi b/src/colord.vapi
new file mode 100644
index 0000000..817673f
--- /dev/null
+++ b/src/colord.vapi
@@ -0,0 +1,17 @@
+[CCode (cprefix = "Cd", lower_case_cprefix = "cd_", cheader_filename = "colord.h")]
+namespace Colord {
+ public class Client : GLib.Object {
+ public Client ();
+ public bool connect_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public Device find_device_by_property_sync (string key, string value, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ }
+ public class Device : GLib.Object {
+ public bool connect_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public Profile? get_default_profile ();
+ }
+ public class Profile : GLib.Object {
+ public bool connect_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public string? filename { get; }
+ }
+ public const string DEVICE_PROPERTY_SERIAL;
+}
diff --git a/src/config.vapi b/src/config.vapi
new file mode 100644
index 0000000..e6efeda
--- /dev/null
+++ b/src/config.vapi
@@ -0,0 +1,7 @@
+[CCode (cprefix = "", lower_case_cprefix = "")]
+public const string PKGDATADIR;
+public const string LOCALE_DIR;
+public const string GETTEXT_PACKAGE;
+public const string VERSION;
+public const string UI_DIR;
+public const string ICON_DIR;
diff --git a/src/page-view.c b/src/page-view.c
new file mode 100644
index 0000000..93a7130
--- /dev/null
+++ b/src/page-view.c
@@ -0,0 +1,6910 @@
+/* page-view.c generated by valac 0.24.0, the Vala compiler
+ * generated from page-view.vala, do not modify */
+
+/*
+ * Copyright (C) 2009-2011 Canonical Ltd.
+ * Author: Robert Ancell <robert.ancell@canonical.com>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <float.h>
+#include <math.h>
+#include <gdk/gdk.h>
+#include <string.h>
+#include <stdlib.h>
+#include <cairo.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_CROP_LOCATION (crop_location_get_type ())
+
+#define TYPE_PAGE_VIEW (page_view_get_type ())
+#define PAGE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_VIEW, PageView))
+#define PAGE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_VIEW, PageViewClass))
+#define IS_PAGE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_VIEW))
+#define IS_PAGE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_VIEW))
+#define PAGE_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_VIEW, PageViewClass))
+
+typedef struct _PageView PageView;
+typedef struct _PageViewClass PageViewClass;
+typedef struct _PageViewPrivate PageViewPrivate;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define TYPE_SCAN_DIRECTION (scan_direction_get_type ())
+#define _page_unref0(var) ((var == NULL) ? NULL : (var = (page_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _ParamSpecPageView ParamSpecPageView;
+
+typedef enum {
+ CROP_LOCATION_NONE = 0,
+ CROP_LOCATION_MIDDLE,
+ CROP_LOCATION_TOP,
+ CROP_LOCATION_BOTTOM,
+ CROP_LOCATION_LEFT,
+ CROP_LOCATION_RIGHT,
+ CROP_LOCATION_TOP_LEFT,
+ CROP_LOCATION_TOP_RIGHT,
+ CROP_LOCATION_BOTTOM_LEFT,
+ CROP_LOCATION_BOTTOM_RIGHT
+} CropLocation;
+
+struct _PageView {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PageViewPrivate * priv;
+};
+
+struct _PageViewClass {
+ GTypeClass parent_class;
+ void (*finalize) (PageView *self);
+};
+
+typedef enum {
+ SCAN_DIRECTION_TOP_TO_BOTTOM,
+ SCAN_DIRECTION_LEFT_TO_RIGHT,
+ SCAN_DIRECTION_BOTTOM_TO_TOP,
+ SCAN_DIRECTION_RIGHT_TO_LEFT
+} ScanDirection;
+
+struct _PageViewPrivate {
+ Page* _page;
+ GdkPixbuf* image;
+ gboolean selected_;
+ gint border_width;
+ gboolean update_image;
+ ScanDirection scan_direction;
+ gint scan_line;
+ gint width_;
+ gint height_;
+ gint _x_offset;
+ gint _y_offset;
+ CropLocation crop_location;
+ gdouble selected_crop_px;
+ gdouble selected_crop_py;
+ gint selected_crop_x;
+ gint selected_crop_y;
+ gint selected_crop_w;
+ gint selected_crop_h;
+ GdkCursorType _cursor;
+ gint animate_n_segments;
+ gint animate_segment;
+ guint animate_timeout;
+};
+
+struct _ParamSpecPageView {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer page_view_parent_class = NULL;
+
+GType crop_location_get_type (void) G_GNUC_CONST;
+gpointer page_view_ref (gpointer instance);
+void page_view_unref (gpointer instance);
+GParamSpec* param_spec_page_view (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_page_view (GValue* value, gpointer v_object);
+void value_take_page_view (GValue* value, gpointer v_object);
+gpointer value_get_page_view (const GValue* value);
+GType page_view_get_type (void) G_GNUC_CONST;
+gpointer page_ref (gpointer instance);
+void page_unref (gpointer instance);
+GParamSpec* param_spec_page (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_page (GValue* value, gpointer v_object);
+void value_take_page (GValue* value, gpointer v_object);
+gpointer value_get_page (const GValue* value);
+GType page_get_type (void) G_GNUC_CONST;
+GType scan_direction_get_type (void) G_GNUC_CONST;
+#define PAGE_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PAGE_VIEW, PageViewPrivate))
+enum {
+ PAGE_VIEW_DUMMY_PROPERTY
+};
+Page* page_view_get_page (PageView* self);
+static void page_view_page_pixels_changed_cb (PageView* self, Page* p);
+static void _page_view_page_pixels_changed_cb_page_pixels_changed (Page* _sender, gpointer self);
+static void page_view_page_size_changed_cb (PageView* self, Page* p);
+static void _page_view_page_size_changed_cb_page_size_changed (Page* _sender, gpointer self);
+static void page_view_page_overlay_changed_cb (PageView* self, Page* p);
+static void _page_view_page_overlay_changed_cb_page_crop_changed (Page* _sender, gpointer self);
+static void _page_view_page_overlay_changed_cb_page_scan_line_changed (Page* _sender, gpointer self);
+static void page_view_scan_direction_changed_cb (PageView* self, Page* p);
+static void _page_view_scan_direction_changed_cb_page_scan_direction_changed (Page* _sender, gpointer self);
+PageView* page_view_new (Page* page);
+PageView* page_view_construct (GType object_type, Page* page);
+static void page_view_set_page (PageView* self, Page* value);
+static guchar page_view_get_sample (PageView* self, guchar* pixels, int pixels_length1, gint offset, gint x, gint depth, gint sample);
+static void page_view_get_pixel (PageView* self, Page* page, gint x, gint y, guchar* pixel, int pixel_length1);
+ScanDirection page_get_scan_direction (Page* self);
+gint page_get_scan_width (Page* self);
+gint page_get_scan_height (Page* self);
+gint page_get_depth (Page* self);
+gint page_get_n_channels (Page* self);
+guchar* page_get_pixels (Page* self, int* result_length1);
+gint page_get_rowstride (Page* self);
+static void page_view_set_pixel (PageView* self, Page* page, gdouble l, gdouble r, gdouble t, gdouble b, guchar* output, int output_length1, gint offset);
+static void page_view_update_preview (PageView* self, Page* page, GdkPixbuf** output_image, gint output_width, gint output_height, ScanDirection scan_direction, gint old_scan_line, gint scan_line);
+gint page_get_width (Page* self);
+gint page_get_height (Page* self);
+gboolean page_get_has_data (Page* self);
+static gint page_view_get_preview_width (PageView* self);
+static gint page_view_get_preview_height (PageView* self);
+static void page_view_update_page_view (PageView* self);
+gint page_get_scan_line (Page* self);
+static gint page_view_page_to_screen_x (PageView* self, gint x);
+static gint page_view_page_to_screen_y (PageView* self, gint y);
+static gint page_view_screen_to_page_x (PageView* self, gint x);
+static gint page_view_screen_to_page_y (PageView* self, gint y);
+static CropLocation page_view_get_crop_location (PageView* self, gint x, gint y);
+gboolean page_get_has_crop (Page* self);
+gint page_get_crop_x (Page* self);
+gint page_get_crop_y (Page* self);
+gint page_get_crop_width (Page* self);
+gint page_get_crop_height (Page* self);
+const gchar* page_get_crop_name (Page* self);
+void page_view_button_press (PageView* self, gint x, gint y);
+void page_view_motion (PageView* self, gint x, gint y);
+static void page_view_set_cursor (PageView* self, GdkCursorType value);
+void page_move_crop (Page* self, gint x, gint y);
+void page_set_custom_crop (Page* self, gint width, gint height);
+void page_view_button_release (PageView* self, gint x, gint y);
+static gboolean page_view_animation_cb (PageView* self);
+static void page_view_update_animation (PageView* self);
+gboolean page_get_is_scanning (Page* self);
+static gboolean _page_view_animation_cb_gsource_func (gpointer self);
+void page_view_render (PageView* self, cairo_t* context);
+gint page_view_get_x_offset (PageView* self);
+gint page_view_get_y_offset (PageView* self);
+gboolean page_view_get_selected (PageView* self);
+void page_view_set_selected (PageView* self, gboolean value);
+void page_view_set_x_offset (PageView* self, gint value);
+void page_view_set_y_offset (PageView* self, gint value);
+GdkCursorType page_view_get_cursor (PageView* self);
+gint page_view_get_width (PageView* self);
+void page_view_set_width (PageView* self, gint value);
+gint page_view_get_height (PageView* self);
+void page_view_set_height (PageView* self, gint value);
+static void page_view_finalize (PageView* obj);
+
+
+GType crop_location_get_type (void) {
+ static volatile gsize crop_location_type_id__volatile = 0;
+ if (g_once_init_enter (&crop_location_type_id__volatile)) {
+ static const GEnumValue values[] = {{CROP_LOCATION_NONE, "CROP_LOCATION_NONE", "none"}, {CROP_LOCATION_MIDDLE, "CROP_LOCATION_MIDDLE", "middle"}, {CROP_LOCATION_TOP, "CROP_LOCATION_TOP", "top"}, {CROP_LOCATION_BOTTOM, "CROP_LOCATION_BOTTOM", "bottom"}, {CROP_LOCATION_LEFT, "CROP_LOCATION_LEFT", "left"}, {CROP_LOCATION_RIGHT, "CROP_LOCATION_RIGHT", "right"}, {CROP_LOCATION_TOP_LEFT, "CROP_LOCATION_TOP_LEFT", "top-left"}, {CROP_LOCATION_TOP_RIGHT, "CROP_LOCATION_TOP_RIGHT", "top-right"}, {CROP_LOCATION_BOTTOM_LEFT, "CROP_LOCATION_BOTTOM_LEFT", "bottom-left"}, {CROP_LOCATION_BOTTOM_RIGHT, "CROP_LOCATION_BOTTOM_RIGHT", "bottom-right"}, {0, NULL, NULL}};
+ GType crop_location_type_id;
+ crop_location_type_id = g_enum_register_static ("CropLocation", values);
+ g_once_init_leave (&crop_location_type_id__volatile, crop_location_type_id);
+ }
+ return crop_location_type_id__volatile;
+}
+
+
+static void _page_view_page_pixels_changed_cb_page_pixels_changed (Page* _sender, gpointer self) {
+#line 97 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_page_pixels_changed_cb ((PageView*) self, _sender);
+#line 222 "page-view.c"
+}
+
+
+static void _page_view_page_size_changed_cb_page_size_changed (Page* _sender, gpointer self) {
+#line 98 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_page_size_changed_cb ((PageView*) self, _sender);
+#line 229 "page-view.c"
+}
+
+
+static void _page_view_page_overlay_changed_cb_page_crop_changed (Page* _sender, gpointer self) {
+#line 99 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_page_overlay_changed_cb ((PageView*) self, _sender);
+#line 236 "page-view.c"
+}
+
+
+static void _page_view_page_overlay_changed_cb_page_scan_line_changed (Page* _sender, gpointer self) {
+#line 100 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_page_overlay_changed_cb ((PageView*) self, _sender);
+#line 243 "page-view.c"
+}
+
+
+static void _page_view_scan_direction_changed_cb_page_scan_direction_changed (Page* _sender, gpointer self) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_scan_direction_changed_cb ((PageView*) self, _sender);
+#line 250 "page-view.c"
+}
+
+
+PageView* page_view_construct (GType object_type, Page* page) {
+ PageView* self = NULL;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+#line 85 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (page != NULL, NULL);
+#line 85 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self = (PageView*) g_type_create_instance (object_type);
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = page;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_set_page (self, _tmp0_);
+#line 88 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = page;
+#line 88 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_connect (_tmp1_, "pixels-changed", (GCallback) _page_view_page_pixels_changed_cb_page_pixels_changed, self);
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = page;
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_connect (_tmp2_, "size-changed", (GCallback) _page_view_page_size_changed_cb_page_size_changed, self);
+#line 90 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = page;
+#line 90 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_connect (_tmp3_, "crop-changed", (GCallback) _page_view_page_overlay_changed_cb_page_crop_changed, self);
+#line 91 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = page;
+#line 91 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_connect (_tmp4_, "scan-line-changed", (GCallback) _page_view_page_overlay_changed_cb_page_scan_line_changed, self);
+#line 92 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp5_ = page;
+#line 92 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_connect (_tmp5_, "scan-direction-changed", (GCallback) _page_view_scan_direction_changed_cb_page_scan_direction_changed, self);
+#line 85 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return self;
+#line 292 "page-view.c"
+}
+
+
+PageView* page_view_new (Page* page) {
+#line 85 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return page_view_construct (TYPE_PAGE_VIEW, page);
+#line 299 "page-view.c"
+}
+
+
+static guchar page_view_get_sample (PageView* self, guchar* pixels, int pixels_length1, gint offset, gint x, gint depth, gint sample) {
+ guchar result = '\0';
+#line 104 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, '\0');
+#line 107 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = (guchar) 0xFF;
+#line 107 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 311 "page-view.c"
+}
+
+
+static void page_view_get_pixel (PageView* self, Page* page, gint x, gint y, guchar* pixel, int pixel_length1) {
+ Page* _tmp0_ = NULL;
+ ScanDirection _tmp1_ = 0;
+ ScanDirection _tmp2_ = 0;
+ gint depth = 0;
+ Page* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gint n_channels = 0;
+ Page* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ guchar* pixels = NULL;
+ Page* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ guchar* _tmp31_ = NULL;
+ gint pixels_length1 = 0;
+ gint _pixels_size_ = 0;
+ gint offset = 0;
+ Page* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ gboolean _tmp36_ = FALSE;
+ gint _tmp37_ = 0;
+ guchar* _tmp105_ = NULL;
+ gint _tmp105__length1 = 0;
+ guchar* _tmp106_ = NULL;
+ gint _tmp106__length1 = 0;
+ gint _tmp107_ = 0;
+ gint _tmp108_ = 0;
+ gint _tmp109_ = 0;
+ gint _tmp110_ = 0;
+ gint _tmp111_ = 0;
+ guchar _tmp112_ = '\0';
+ guchar _tmp113_ = '\0';
+ guchar* _tmp114_ = NULL;
+ gint _tmp114__length1 = 0;
+ guchar* _tmp115_ = NULL;
+ gint _tmp115__length1 = 0;
+ gint _tmp116_ = 0;
+ gint _tmp117_ = 0;
+ gint _tmp118_ = 0;
+ gint _tmp119_ = 0;
+ gint _tmp120_ = 0;
+ guchar _tmp121_ = '\0';
+ guchar _tmp122_ = '\0';
+ guchar* _tmp123_ = NULL;
+ gint _tmp123__length1 = 0;
+ guchar* _tmp124_ = NULL;
+ gint _tmp124__length1 = 0;
+ gint _tmp125_ = 0;
+ gint _tmp126_ = 0;
+ gint _tmp127_ = 0;
+ gint _tmp128_ = 0;
+ gint _tmp129_ = 0;
+ guchar _tmp130_ = '\0';
+ guchar _tmp131_ = '\0';
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (page != NULL);
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = page;
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = page_get_scan_direction (_tmp0_);
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = _tmp1_;
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ switch (_tmp2_) {
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case SCAN_DIRECTION_TOP_TO_BOTTOM:
+#line 387 "page-view.c"
+ {
+#line 115 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 391 "page-view.c"
+ }
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case SCAN_DIRECTION_BOTTOM_TO_TOP:
+#line 395 "page-view.c"
+ {
+ Page* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ Page* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = page;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = page_get_scan_width (_tmp3_);
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp5_ = _tmp4_;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp6_ = x;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = (_tmp5_ - _tmp6_) - 1;
+#line 118 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp7_ = page;
+#line 118 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp8_ = page_get_scan_height (_tmp7_);
+#line 118 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp9_ = _tmp8_;
+#line 118 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp10_ = y;
+#line 118 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = (_tmp9_ - _tmp10_) - 1;
+#line 119 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 427 "page-view.c"
+ }
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case SCAN_DIRECTION_LEFT_TO_RIGHT:
+#line 431 "page-view.c"
+ {
+ gint t = 0;
+ gint _tmp11_ = 0;
+ Page* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+#line 121 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp11_ = x;
+#line 121 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ t = _tmp11_;
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp12_ = page;
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp13_ = page_get_scan_width (_tmp12_);
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp14_ = _tmp13_;
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp15_ = y;
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = (_tmp14_ - _tmp15_) - 1;
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp16_ = t;
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = _tmp16_;
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 460 "page-view.c"
+ }
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case SCAN_DIRECTION_RIGHT_TO_LEFT:
+#line 464 "page-view.c"
+ {
+ gint t = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ Page* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp17_ = x;
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ t = _tmp17_;
+#line 127 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp18_ = y;
+#line 127 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = _tmp18_;
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp19_ = page;
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp20_ = page_get_scan_height (_tmp19_);
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp21_ = _tmp20_;
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp22_ = t;
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = (_tmp21_ - _tmp22_) - 1;
+#line 129 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 493 "page-view.c"
+ }
+ default:
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 498 "page-view.c"
+ }
+#line 132 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp23_ = page;
+#line 132 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp24_ = page_get_depth (_tmp23_);
+#line 132 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp25_ = _tmp24_;
+#line 132 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ depth = _tmp25_;
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp26_ = page;
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp27_ = page_get_n_channels (_tmp26_);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp28_ = _tmp27_;
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ n_channels = _tmp28_;
+#line 134 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp29_ = page;
+#line 134 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp31_ = page_get_pixels (_tmp29_, &_tmp30_);
+#line 134 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ pixels = _tmp31_;
+#line 134 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ pixels_length1 = _tmp30_;
+#line 134 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _pixels_size_ = pixels_length1;
+#line 135 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp32_ = page;
+#line 135 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp33_ = page_get_rowstride (_tmp32_);
+#line 135 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp34_ = _tmp33_;
+#line 135 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp35_ = y;
+#line 135 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ offset = _tmp34_ * _tmp35_;
+#line 138 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp37_ = depth;
+#line 138 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp37_ == 8) {
+#line 540 "page-view.c"
+ gint _tmp38_ = 0;
+#line 138 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp38_ = n_channels;
+#line 138 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp36_ = _tmp38_ == 3;
+#line 546 "page-view.c"
+ } else {
+#line 138 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp36_ = FALSE;
+#line 550 "page-view.c"
+ }
+#line 138 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp36_) {
+#line 554 "page-view.c"
+ gint o = 0;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ guchar* _tmp42_ = NULL;
+ gint _tmp42__length1 = 0;
+ guchar* _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ gint _tmp44_ = 0;
+ guchar _tmp45_ = '\0';
+ guchar _tmp46_ = '\0';
+ guchar* _tmp47_ = NULL;
+ gint _tmp47__length1 = 0;
+ guchar* _tmp48_ = NULL;
+ gint _tmp48__length1 = 0;
+ gint _tmp49_ = 0;
+ guchar _tmp50_ = '\0';
+ guchar _tmp51_ = '\0';
+ guchar* _tmp52_ = NULL;
+ gint _tmp52__length1 = 0;
+ guchar* _tmp53_ = NULL;
+ gint _tmp53__length1 = 0;
+ gint _tmp54_ = 0;
+ guchar _tmp55_ = '\0';
+ guchar _tmp56_ = '\0';
+#line 140 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp39_ = offset;
+#line 140 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp40_ = x;
+#line 140 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp41_ = n_channels;
+#line 140 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ o = _tmp39_ + (_tmp40_ * _tmp41_);
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp42_ = pixel;
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp42__length1 = pixel_length1;
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp43_ = pixels;
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp43__length1 = pixels_length1;
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp44_ = o;
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp45_ = _tmp43_[_tmp44_];
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp42_[0] = _tmp45_;
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp46_ = _tmp42_[0];
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp47_ = pixel;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp47__length1 = pixel_length1;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp48_ = pixels;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp48__length1 = pixels_length1;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp49_ = o;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp50_ = _tmp48_[_tmp49_ + 1];
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp47_[1] = _tmp50_;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp51_ = _tmp47_[1];
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp52_ = pixel;
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp52__length1 = pixel_length1;
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp53_ = pixels;
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp53__length1 = pixels_length1;
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp54_ = o;
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp55_ = _tmp53_[_tmp54_ + 2];
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp52_[2] = _tmp55_;
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp56_ = _tmp52_[2];
+#line 144 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return;
+#line 638 "page-view.c"
+ } else {
+ gboolean _tmp57_ = FALSE;
+ gint _tmp58_ = 0;
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp58_ = depth;
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp58_ == 8) {
+#line 646 "page-view.c"
+ gint _tmp59_ = 0;
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp59_ = n_channels;
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp57_ = _tmp59_ == 1;
+#line 652 "page-view.c"
+ } else {
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp57_ = FALSE;
+#line 656 "page-view.c"
+ }
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp57_) {
+#line 660 "page-view.c"
+ guchar* _tmp60_ = NULL;
+ gint _tmp60__length1 = 0;
+ guchar* _tmp61_ = NULL;
+ gint _tmp61__length1 = 0;
+ guchar* _tmp62_ = NULL;
+ gint _tmp62__length1 = 0;
+ guchar* _tmp63_ = NULL;
+ gint _tmp63__length1 = 0;
+ gint _tmp64_ = 0;
+ gint _tmp65_ = 0;
+ guchar _tmp66_ = '\0';
+ guchar _tmp67_ = '\0';
+ guchar _tmp68_ = '\0';
+ guchar _tmp69_ = '\0';
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp60_ = pixel;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp60__length1 = pixel_length1;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp61_ = pixel;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp61__length1 = pixel_length1;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp62_ = pixel;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp62__length1 = pixel_length1;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp63_ = pixels;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp63__length1 = pixels_length1;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp64_ = offset;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp65_ = x;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp66_ = _tmp63_[_tmp64_ + _tmp65_];
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp62_[2] = _tmp66_;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp67_ = _tmp62_[2];
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp61_[1] = _tmp67_;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp68_ = _tmp61_[1];
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp60_[0] = _tmp68_;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp69_ = _tmp60_[0];
+#line 149 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return;
+#line 711 "page-view.c"
+ } else {
+ gboolean _tmp70_ = FALSE;
+ gint _tmp71_ = 0;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp71_ = depth;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp71_ == 1) {
+#line 719 "page-view.c"
+ gint _tmp72_ = 0;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp72_ = n_channels;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp70_ = _tmp72_ == 1;
+#line 725 "page-view.c"
+ } else {
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp70_ = FALSE;
+#line 729 "page-view.c"
+ }
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp70_) {
+#line 733 "page-view.c"
+ gint o = 0;
+ gint _tmp73_ = 0;
+ gint _tmp74_ = 0;
+ gint _tmp75_ = 0;
+ guchar* _tmp76_ = NULL;
+ gint _tmp76__length1 = 0;
+ gint _tmp77_ = 0;
+ guchar _tmp78_ = '\0';
+ gint _tmp79_ = 0;
+ guchar* _tmp80_ = NULL;
+ gint _tmp80__length1 = 0;
+ guchar* _tmp81_ = NULL;
+ gint _tmp81__length1 = 0;
+ guchar* _tmp82_ = NULL;
+ gint _tmp82__length1 = 0;
+ guchar _tmp83_ = '\0';
+ guchar _tmp84_ = '\0';
+ guchar _tmp85_ = '\0';
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp73_ = offset;
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp74_ = x;
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ o = _tmp73_ + (_tmp74_ / 8);
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp76_ = pixels;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp76__length1 = pixels_length1;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp77_ = o;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp78_ = _tmp76_[_tmp77_];
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp79_ = x;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (((gint) (_tmp78_ & (0x80 >> (_tmp79_ % 8)))) != 0) {
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp75_ = 0x00;
+#line 772 "page-view.c"
+ } else {
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp75_ = 0xFF;
+#line 776 "page-view.c"
+ }
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp80_ = pixel;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp80__length1 = pixel_length1;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp81_ = pixel;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp81__length1 = pixel_length1;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp82_ = pixel;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp82__length1 = pixel_length1;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp82_[2] = (guchar) _tmp75_;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp83_ = _tmp82_[2];
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp81_[1] = _tmp83_;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp84_ = _tmp81_[1];
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp80_[0] = _tmp84_;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp85_ = _tmp80_[0];
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return;
+#line 804 "page-view.c"
+ } else {
+ gboolean _tmp86_ = FALSE;
+ gint _tmp87_ = 0;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp87_ = depth;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp87_ == 2) {
+#line 812 "page-view.c"
+ gint _tmp88_ = 0;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp88_ = n_channels;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp86_ = _tmp88_ == 1;
+#line 818 "page-view.c"
+ } else {
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp86_ = FALSE;
+#line 822 "page-view.c"
+ }
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp86_) {
+#line 826 "page-view.c"
+ gint block_shift[4] = {0};
+ gint _tmp89_[4] = {0};
+ gint o = 0;
+ gint _tmp90_ = 0;
+ gint _tmp91_ = 0;
+ gint sample = 0;
+ guchar* _tmp92_ = NULL;
+ gint _tmp92__length1 = 0;
+ gint _tmp93_ = 0;
+ guchar _tmp94_ = '\0';
+ gint _tmp95_ = 0;
+ gint _tmp96_ = 0;
+ gint _tmp97_ = 0;
+ guchar* _tmp98_ = NULL;
+ gint _tmp98__length1 = 0;
+ guchar* _tmp99_ = NULL;
+ gint _tmp99__length1 = 0;
+ guchar* _tmp100_ = NULL;
+ gint _tmp100__length1 = 0;
+ gint _tmp101_ = 0;
+ guchar _tmp102_ = '\0';
+ guchar _tmp103_ = '\0';
+ guchar _tmp104_ = '\0';
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp89_[0] = 6;
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp89_[1] = 4;
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp89_[2] = 2;
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp89_[3] = 0;
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ memcpy (block_shift, _tmp89_, 4 * sizeof (gint));
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp90_ = offset;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp91_ = x;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ o = _tmp90_ + (_tmp91_ / 4);
+#line 166 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp92_ = pixels;
+#line 166 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp92__length1 = pixels_length1;
+#line 166 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp93_ = o;
+#line 166 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp94_ = _tmp92_[_tmp93_];
+#line 166 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp95_ = x;
+#line 166 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp96_ = block_shift[_tmp95_ % 4];
+#line 166 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ sample = (_tmp94_ >> _tmp96_) & 0x3;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp97_ = sample;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ sample = (_tmp97_ * 255) / 3;
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp98_ = pixel;
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp98__length1 = pixel_length1;
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp99_ = pixel;
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp99__length1 = pixel_length1;
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp100_ = pixel;
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp100__length1 = pixel_length1;
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp101_ = sample;
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp100_[2] = (guchar) _tmp101_;
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp102_ = _tmp100_[2];
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp99_[1] = _tmp102_;
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp103_ = _tmp99_[1];
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp98_[0] = _tmp103_;
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp104_ = _tmp98_[0];
+#line 170 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return;
+#line 912 "page-view.c"
+ }
+ }
+ }
+ }
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp105_ = pixel;
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp105__length1 = pixel_length1;
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp106_ = pixels;
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp106__length1 = pixels_length1;
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp107_ = offset;
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp108_ = x;
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp109_ = depth;
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp110_ = x;
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp111_ = n_channels;
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp112_ = page_view_get_sample (self, _tmp106_, _tmp106__length1, _tmp107_, _tmp108_, _tmp109_, _tmp110_ * _tmp111_);
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp105_[0] = _tmp112_;
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp113_ = _tmp105_[0];
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp114_ = pixel;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp114__length1 = pixel_length1;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp115_ = pixels;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp115__length1 = pixels_length1;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp116_ = offset;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp117_ = x;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp118_ = depth;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp119_ = x;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp120_ = n_channels;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp121_ = page_view_get_sample (self, _tmp115_, _tmp115__length1, _tmp116_, _tmp117_, _tmp118_, (_tmp119_ * _tmp120_) + 1);
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp114_[1] = _tmp121_;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp122_ = _tmp114_[1];
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp123_ = pixel;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp123__length1 = pixel_length1;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp124_ = pixels;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp124__length1 = pixels_length1;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp125_ = offset;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp126_ = x;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp127_ = depth;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp128_ = x;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp129_ = n_channels;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp130_ = page_view_get_sample (self, _tmp124_, _tmp124__length1, _tmp125_, _tmp126_, _tmp127_, (_tmp128_ * _tmp129_) + 2);
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp123_[2] = _tmp130_;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp131_ = _tmp123_[2];
+#line 989 "page-view.c"
+}
+
+
+static void page_view_set_pixel (PageView* self, Page* page, gdouble l, gdouble r, gdouble t, gdouble b, guchar* output, int output_length1, gint offset) {
+ gint L = 0;
+ gdouble _tmp0_ = 0.0;
+ gint _tmp1_ = 0;
+ gdouble _tmp2_ = 0.0;
+ gint R = 0;
+ gdouble _tmp4_ = 0.0;
+ gint T = 0;
+ gdouble _tmp5_ = 0.0;
+ gint _tmp6_ = 0;
+ gdouble _tmp7_ = 0.0;
+ gint B = 0;
+ gdouble _tmp9_ = 0.0;
+ gdouble red = 0.0;
+ gdouble green = 0.0;
+ gdouble blue = 0.0;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ gdouble _tmp12_ = 0.0;
+ gdouble _tmp13_ = 0.0;
+ gboolean _tmp283_ = FALSE;
+ gdouble _tmp284_ = 0.0;
+ gint _tmp285_ = 0;
+ gboolean _tmp309_ = FALSE;
+ gdouble _tmp310_ = 0.0;
+ gint _tmp311_ = 0;
+ gboolean _tmp335_ = FALSE;
+ gdouble _tmp336_ = 0.0;
+ gint _tmp337_ = 0;
+ gboolean _tmp361_ = FALSE;
+ gdouble _tmp362_ = 0.0;
+ gint _tmp363_ = 0;
+ gdouble scale = 0.0;
+ gdouble _tmp387_ = 0.0;
+ gdouble _tmp388_ = 0.0;
+ gdouble _tmp389_ = 0.0;
+ gdouble _tmp390_ = 0.0;
+ guchar* _tmp391_ = NULL;
+ gint _tmp391__length1 = 0;
+ gint _tmp392_ = 0;
+ gdouble _tmp393_ = 0.0;
+ gdouble _tmp394_ = 0.0;
+ guchar _tmp395_ = '\0';
+ guchar* _tmp396_ = NULL;
+ gint _tmp396__length1 = 0;
+ gint _tmp397_ = 0;
+ gdouble _tmp398_ = 0.0;
+ gdouble _tmp399_ = 0.0;
+ guchar _tmp400_ = '\0';
+ guchar* _tmp401_ = NULL;
+ gint _tmp401__length1 = 0;
+ gint _tmp402_ = 0;
+ gdouble _tmp403_ = 0.0;
+ gdouble _tmp404_ = 0.0;
+ guchar _tmp405_ = '\0';
+#line 179 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 179 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (page != NULL);
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = l;
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ L = (gint) _tmp0_;
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = L;
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = l;
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (((gdouble) _tmp1_) != _tmp2_) {
+#line 1062 "page-view.c"
+ gint _tmp3_ = 0;
+#line 227 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = L;
+#line 227 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ L = _tmp3_ + 1;
+#line 1068 "page-view.c"
+ }
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = r;
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ R = (gint) _tmp4_;
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp5_ = t;
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ T = (gint) _tmp5_;
+#line 230 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp6_ = T;
+#line 230 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp7_ = t;
+#line 230 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (((gdouble) _tmp6_) != _tmp7_) {
+#line 1084 "page-view.c"
+ gint _tmp8_ = 0;
+#line 231 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp8_ = T;
+#line 231 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ T = _tmp8_ + 1;
+#line 1090 "page-view.c"
+ }
+#line 232 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp9_ = b;
+#line 232 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ B = (gint) _tmp9_;
+#line 234 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = 0.0;
+#line 235 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = 0.0;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = 0.0;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp12_ = r;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp13_ = l;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if ((_tmp12_ - _tmp13_) <= 1.0) {
+#line 1108 "page-view.c"
+ gdouble _tmp14_ = 0.0;
+ gdouble _tmp15_ = 0.0;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp14_ = r;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp15_ = l;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp11_ = ((gint) _tmp14_) == ((gint) _tmp15_);
+#line 1117 "page-view.c"
+ } else {
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp11_ = FALSE;
+#line 1121 "page-view.c"
+ }
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp11_) {
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp10_ = TRUE;
+#line 1127 "page-view.c"
+ } else {
+ gboolean _tmp16_ = FALSE;
+ gdouble _tmp17_ = 0.0;
+ gdouble _tmp18_ = 0.0;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp17_ = b;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp18_ = t;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if ((_tmp17_ - _tmp18_) <= 1.0) {
+#line 1138 "page-view.c"
+ gdouble _tmp19_ = 0.0;
+ gdouble _tmp20_ = 0.0;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp19_ = b;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp20_ = t;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp16_ = ((gint) _tmp19_) == ((gint) _tmp20_);
+#line 1147 "page-view.c"
+ } else {
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp16_ = FALSE;
+#line 1151 "page-view.c"
+ }
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp10_ = _tmp16_;
+#line 1155 "page-view.c"
+ }
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp10_) {
+#line 1159 "page-view.c"
+ gboolean _tmp21_ = FALSE;
+ gdouble _tmp22_ = 0.0;
+ gdouble _tmp23_ = 0.0;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gdouble scale = 0.0;
+ gdouble _tmp167_ = 0.0;
+ gdouble _tmp168_ = 0.0;
+ gdouble _tmp169_ = 0.0;
+ gdouble _tmp170_ = 0.0;
+ guchar* _tmp171_ = NULL;
+ gint _tmp171__length1 = 0;
+ gint _tmp172_ = 0;
+ gdouble _tmp173_ = 0.0;
+ gdouble _tmp174_ = 0.0;
+ guchar _tmp175_ = '\0';
+ guchar* _tmp176_ = NULL;
+ gint _tmp176__length1 = 0;
+ gint _tmp177_ = 0;
+ gdouble _tmp178_ = 0.0;
+ gdouble _tmp179_ = 0.0;
+ guchar _tmp180_ = '\0';
+ guchar* _tmp181_ = NULL;
+ gint _tmp181__length1 = 0;
+ gint _tmp182_ = 0;
+ gdouble _tmp183_ = 0.0;
+ gdouble _tmp184_ = 0.0;
+ guchar _tmp185_ = '\0';
+#line 250 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp22_ = l;
+#line 250 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp23_ = r;
+#line 250 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (((gint) _tmp22_) == ((gint) _tmp23_)) {
+#line 250 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp21_ = TRUE;
+#line 1196 "page-view.c"
+ } else {
+ gdouble _tmp24_ = 0.0;
+ gdouble _tmp25_ = 0.0;
+#line 250 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp24_ = t;
+#line 250 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp25_ = b;
+#line 250 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp21_ = ((gint) _tmp24_) == ((gint) _tmp25_);
+#line 1206 "page-view.c"
+ }
+#line 250 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp21_) {
+#line 1210 "page-view.c"
+ guchar p[3] = {0};
+ Page* _tmp26_ = NULL;
+ gdouble _tmp27_ = 0.0;
+ gdouble _tmp28_ = 0.0;
+ guchar* _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ gint _tmp30_ = 0;
+ guchar _tmp31_ = '\0';
+ guchar _tmp32_ = '\0';
+ guchar* _tmp33_ = NULL;
+ gint _tmp33__length1 = 0;
+ gint _tmp34_ = 0;
+ guchar _tmp35_ = '\0';
+ guchar _tmp36_ = '\0';
+ guchar* _tmp37_ = NULL;
+ gint _tmp37__length1 = 0;
+ gint _tmp38_ = 0;
+ guchar _tmp39_ = '\0';
+ guchar _tmp40_ = '\0';
+#line 253 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp26_ = page;
+#line 253 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp27_ = l;
+#line 253 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp28_ = t;
+#line 253 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp26_, (gint) _tmp27_, (gint) _tmp28_, p, 3);
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp29_ = output;
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp29__length1 = output_length1;
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp30_ = offset;
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp31_ = p[0];
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp29_[_tmp30_] = _tmp31_;
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp32_ = _tmp29_[_tmp30_];
+#line 255 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp33_ = output;
+#line 255 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp33__length1 = output_length1;
+#line 255 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp34_ = offset;
+#line 255 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp35_ = p[1];
+#line 255 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp33_[_tmp34_ + 1] = _tmp35_;
+#line 255 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp36_ = _tmp33_[_tmp34_ + 1];
+#line 256 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp37_ = output;
+#line 256 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp37__length1 = output_length1;
+#line 256 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp38_ = offset;
+#line 256 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp39_ = p[2];
+#line 256 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp37_[_tmp38_ + 2] = _tmp39_;
+#line 256 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp40_ = _tmp37_[_tmp38_ + 2];
+#line 257 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return;
+#line 1276 "page-view.c"
+ }
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp41_ = L;
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp42_ = R;
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp41_ > _tmp42_) {
+#line 1284 "page-view.c"
+ guchar p[3] = {0};
+ Page* _tmp43_ = NULL;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+ gdouble _tmp46_ = 0.0;
+ guchar _tmp47_ = '\0';
+ gdouble _tmp48_ = 0.0;
+ gdouble _tmp49_ = 0.0;
+ gint _tmp50_ = 0;
+ gdouble _tmp51_ = 0.0;
+ gdouble _tmp52_ = 0.0;
+ guchar _tmp53_ = '\0';
+ gdouble _tmp54_ = 0.0;
+ gdouble _tmp55_ = 0.0;
+ gint _tmp56_ = 0;
+ gdouble _tmp57_ = 0.0;
+ gdouble _tmp58_ = 0.0;
+ guchar _tmp59_ = '\0';
+ gdouble _tmp60_ = 0.0;
+ gdouble _tmp61_ = 0.0;
+ gint _tmp62_ = 0;
+ gdouble _tmp63_ = 0.0;
+ Page* _tmp84_ = NULL;
+ gint _tmp85_ = 0;
+ gint _tmp86_ = 0;
+ gdouble _tmp87_ = 0.0;
+ guchar _tmp88_ = '\0';
+ gdouble _tmp89_ = 0.0;
+ gdouble _tmp90_ = 0.0;
+ gdouble _tmp91_ = 0.0;
+ gint _tmp92_ = 0;
+ gdouble _tmp93_ = 0.0;
+ guchar _tmp94_ = '\0';
+ gdouble _tmp95_ = 0.0;
+ gdouble _tmp96_ = 0.0;
+ gdouble _tmp97_ = 0.0;
+ gint _tmp98_ = 0;
+ gdouble _tmp99_ = 0.0;
+ guchar _tmp100_ = '\0';
+ gdouble _tmp101_ = 0.0;
+ gdouble _tmp102_ = 0.0;
+ gdouble _tmp103_ = 0.0;
+ gint _tmp104_ = 0;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp43_ = page;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp44_ = R;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp45_ = T;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp43_, _tmp44_, _tmp45_ - 1, p, 3);
+#line 265 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp46_ = red;
+#line 265 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp47_ = p[0];
+#line 265 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp48_ = r;
+#line 265 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp49_ = l;
+#line 265 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp50_ = T;
+#line 265 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp51_ = t;
+#line 265 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = _tmp46_ + ((_tmp47_ * (_tmp48_ - _tmp49_)) * (_tmp50_ - _tmp51_));
+#line 266 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp52_ = green;
+#line 266 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp53_ = p[1];
+#line 266 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp54_ = r;
+#line 266 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp55_ = l;
+#line 266 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp56_ = T;
+#line 266 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp57_ = t;
+#line 266 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = _tmp52_ + ((_tmp53_ * (_tmp54_ - _tmp55_)) * (_tmp56_ - _tmp57_));
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp58_ = blue;
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp59_ = p[2];
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp60_ = r;
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp61_ = l;
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp62_ = T;
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp63_ = t;
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = _tmp58_ + ((_tmp59_ * (_tmp60_ - _tmp61_)) * (_tmp62_ - _tmp63_));
+#line 1378 "page-view.c"
+ {
+ gint y = 0;
+ gint _tmp64_ = 0;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp64_ = T;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = _tmp64_;
+#line 1386 "page-view.c"
+ {
+ gboolean _tmp65_ = FALSE;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp65_ = TRUE;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ while (TRUE) {
+#line 1393 "page-view.c"
+ gint _tmp67_ = 0;
+ gint _tmp68_ = 0;
+ Page* _tmp69_ = NULL;
+ gint _tmp70_ = 0;
+ gint _tmp71_ = 0;
+ gdouble _tmp72_ = 0.0;
+ guchar _tmp73_ = '\0';
+ gdouble _tmp74_ = 0.0;
+ gdouble _tmp75_ = 0.0;
+ gdouble _tmp76_ = 0.0;
+ guchar _tmp77_ = '\0';
+ gdouble _tmp78_ = 0.0;
+ gdouble _tmp79_ = 0.0;
+ gdouble _tmp80_ = 0.0;
+ guchar _tmp81_ = '\0';
+ gdouble _tmp82_ = 0.0;
+ gdouble _tmp83_ = 0.0;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!_tmp65_) {
+#line 1413 "page-view.c"
+ gint _tmp66_ = 0;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp66_ = y;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = _tmp66_ + 1;
+#line 1419 "page-view.c"
+ }
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp65_ = FALSE;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp67_ = y;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp68_ = B;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!(_tmp67_ < _tmp68_)) {
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 1431 "page-view.c"
+ }
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp69_ = page;
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp70_ = R;
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp71_ = y;
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp69_, _tmp70_, _tmp71_, p, 3);
+#line 271 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp72_ = red;
+#line 271 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp73_ = p[0];
+#line 271 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp74_ = r;
+#line 271 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp75_ = l;
+#line 271 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = _tmp72_ + (_tmp73_ * (_tmp74_ - _tmp75_));
+#line 272 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp76_ = green;
+#line 272 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp77_ = p[1];
+#line 272 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp78_ = r;
+#line 272 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp79_ = l;
+#line 272 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = _tmp76_ + (_tmp77_ * (_tmp78_ - _tmp79_));
+#line 273 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp80_ = blue;
+#line 273 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp81_ = p[2];
+#line 273 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp82_ = r;
+#line 273 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp83_ = l;
+#line 273 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = _tmp80_ + (_tmp81_ * (_tmp82_ - _tmp83_));
+#line 1471 "page-view.c"
+ }
+ }
+ }
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp84_ = page;
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp85_ = R;
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp86_ = B;
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp84_, _tmp85_, _tmp86_, p, 3);
+#line 276 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp87_ = red;
+#line 276 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp88_ = p[0];
+#line 276 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp89_ = r;
+#line 276 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp90_ = l;
+#line 276 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp91_ = b;
+#line 276 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp92_ = B;
+#line 276 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = _tmp87_ + ((_tmp88_ * (_tmp89_ - _tmp90_)) * (_tmp91_ - _tmp92_));
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp93_ = green;
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp94_ = p[1];
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp95_ = r;
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp96_ = l;
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp97_ = b;
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp98_ = B;
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = _tmp93_ + ((_tmp94_ * (_tmp95_ - _tmp96_)) * (_tmp97_ - _tmp98_));
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp99_ = blue;
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp100_ = p[2];
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp101_ = r;
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp102_ = l;
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp103_ = b;
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp104_ = B;
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = _tmp99_ + ((_tmp100_ * (_tmp101_ - _tmp102_)) * (_tmp103_ - _tmp104_));
+#line 1525 "page-view.c"
+ } else {
+ guchar p[3] = {0};
+ Page* _tmp105_ = NULL;
+ gint _tmp106_ = 0;
+ gint _tmp107_ = 0;
+ gdouble _tmp108_ = 0.0;
+ guchar _tmp109_ = '\0';
+ gdouble _tmp110_ = 0.0;
+ gdouble _tmp111_ = 0.0;
+ gint _tmp112_ = 0;
+ gdouble _tmp113_ = 0.0;
+ gdouble _tmp114_ = 0.0;
+ guchar _tmp115_ = '\0';
+ gdouble _tmp116_ = 0.0;
+ gdouble _tmp117_ = 0.0;
+ gint _tmp118_ = 0;
+ gdouble _tmp119_ = 0.0;
+ gdouble _tmp120_ = 0.0;
+ guchar _tmp121_ = '\0';
+ gdouble _tmp122_ = 0.0;
+ gdouble _tmp123_ = 0.0;
+ gint _tmp124_ = 0;
+ gdouble _tmp125_ = 0.0;
+ Page* _tmp146_ = NULL;
+ gint _tmp147_ = 0;
+ gint _tmp148_ = 0;
+ gdouble _tmp149_ = 0.0;
+ guchar _tmp150_ = '\0';
+ gdouble _tmp151_ = 0.0;
+ gdouble _tmp152_ = 0.0;
+ gdouble _tmp153_ = 0.0;
+ gint _tmp154_ = 0;
+ gdouble _tmp155_ = 0.0;
+ guchar _tmp156_ = '\0';
+ gdouble _tmp157_ = 0.0;
+ gdouble _tmp158_ = 0.0;
+ gdouble _tmp159_ = 0.0;
+ gint _tmp160_ = 0;
+ gdouble _tmp161_ = 0.0;
+ guchar _tmp162_ = '\0';
+ gdouble _tmp163_ = 0.0;
+ gdouble _tmp164_ = 0.0;
+ gdouble _tmp165_ = 0.0;
+ gint _tmp166_ = 0;
+#line 284 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp105_ = page;
+#line 284 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp106_ = L;
+#line 284 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp107_ = B;
+#line 284 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp105_, _tmp106_ - 1, _tmp107_, p, 3);
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp108_ = red;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp109_ = p[0];
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp110_ = b;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp111_ = t;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp112_ = L;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp113_ = l;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = _tmp108_ + ((_tmp109_ * (_tmp110_ - _tmp111_)) * (_tmp112_ - _tmp113_));
+#line 286 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp114_ = green;
+#line 286 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp115_ = p[1];
+#line 286 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp116_ = b;
+#line 286 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp117_ = t;
+#line 286 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp118_ = L;
+#line 286 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp119_ = l;
+#line 286 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = _tmp114_ + ((_tmp115_ * (_tmp116_ - _tmp117_)) * (_tmp118_ - _tmp119_));
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp120_ = blue;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp121_ = p[2];
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp122_ = b;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp123_ = t;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp124_ = L;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp125_ = l;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = _tmp120_ + ((_tmp121_ * (_tmp122_ - _tmp123_)) * (_tmp124_ - _tmp125_));
+#line 1620 "page-view.c"
+ {
+ gint x = 0;
+ gint _tmp126_ = 0;
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp126_ = L;
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = _tmp126_;
+#line 1628 "page-view.c"
+ {
+ gboolean _tmp127_ = FALSE;
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp127_ = TRUE;
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ while (TRUE) {
+#line 1635 "page-view.c"
+ gint _tmp129_ = 0;
+ gint _tmp130_ = 0;
+ Page* _tmp131_ = NULL;
+ gint _tmp132_ = 0;
+ gint _tmp133_ = 0;
+ gdouble _tmp134_ = 0.0;
+ guchar _tmp135_ = '\0';
+ gdouble _tmp136_ = 0.0;
+ gdouble _tmp137_ = 0.0;
+ gdouble _tmp138_ = 0.0;
+ guchar _tmp139_ = '\0';
+ gdouble _tmp140_ = 0.0;
+ gdouble _tmp141_ = 0.0;
+ gdouble _tmp142_ = 0.0;
+ guchar _tmp143_ = '\0';
+ gdouble _tmp144_ = 0.0;
+ gdouble _tmp145_ = 0.0;
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!_tmp127_) {
+#line 1655 "page-view.c"
+ gint _tmp128_ = 0;
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp128_ = x;
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = _tmp128_ + 1;
+#line 1661 "page-view.c"
+ }
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp127_ = FALSE;
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp129_ = x;
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp130_ = R;
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!(_tmp129_ < _tmp130_)) {
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 1673 "page-view.c"
+ }
+#line 289 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp131_ = page;
+#line 289 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp132_ = x;
+#line 289 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp133_ = B;
+#line 289 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp131_, _tmp132_, _tmp133_, p, 3);
+#line 290 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp134_ = red;
+#line 290 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp135_ = p[0];
+#line 290 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp136_ = b;
+#line 290 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp137_ = t;
+#line 290 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = _tmp134_ + (_tmp135_ * (_tmp136_ - _tmp137_));
+#line 291 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp138_ = green;
+#line 291 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp139_ = p[1];
+#line 291 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp140_ = b;
+#line 291 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp141_ = t;
+#line 291 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = _tmp138_ + (_tmp139_ * (_tmp140_ - _tmp141_));
+#line 292 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp142_ = blue;
+#line 292 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp143_ = p[2];
+#line 292 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp144_ = b;
+#line 292 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp145_ = t;
+#line 292 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = _tmp142_ + (_tmp143_ * (_tmp144_ - _tmp145_));
+#line 1713 "page-view.c"
+ }
+ }
+ }
+#line 294 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp146_ = page;
+#line 294 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp147_ = R;
+#line 294 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp148_ = B;
+#line 294 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp146_, _tmp147_, _tmp148_, p, 3);
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp149_ = red;
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp150_ = p[0];
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp151_ = b;
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp152_ = t;
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp153_ = r;
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp154_ = R;
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = _tmp149_ + ((_tmp150_ * (_tmp151_ - _tmp152_)) * (_tmp153_ - _tmp154_));
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp155_ = green;
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp156_ = p[1];
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp157_ = b;
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp158_ = t;
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp159_ = r;
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp160_ = R;
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = _tmp155_ + ((_tmp156_ * (_tmp157_ - _tmp158_)) * (_tmp159_ - _tmp160_));
+#line 297 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp161_ = blue;
+#line 297 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp162_ = p[2];
+#line 297 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp163_ = b;
+#line 297 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp164_ = t;
+#line 297 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp165_ = r;
+#line 297 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp166_ = R;
+#line 297 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = _tmp161_ + ((_tmp162_ * (_tmp163_ - _tmp164_)) * (_tmp165_ - _tmp166_));
+#line 1767 "page-view.c"
+ }
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp167_ = r;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp168_ = l;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp169_ = b;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp170_ = t;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ scale = 1.0 / ((_tmp167_ - _tmp168_) * (_tmp169_ - _tmp170_));
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp171_ = output;
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp171__length1 = output_length1;
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp172_ = offset;
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp173_ = red;
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp174_ = scale;
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp171_[_tmp172_] = (guchar) ((_tmp173_ * _tmp174_) + 0.5);
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp175_ = _tmp171_[_tmp172_];
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp176_ = output;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp176__length1 = output_length1;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp177_ = offset;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp178_ = green;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp179_ = scale;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp176_[_tmp177_ + 1] = (guchar) ((_tmp178_ * _tmp179_) + 0.5);
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp180_ = _tmp176_[_tmp177_ + 1];
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp181_ = output;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp181__length1 = output_length1;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp182_ = offset;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp183_ = blue;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp184_ = scale;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp181_[_tmp182_ + 2] = (guchar) ((_tmp183_ * _tmp184_) + 0.5);
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp185_ = _tmp181_[_tmp182_ + 2];
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return;
+#line 1823 "page-view.c"
+ }
+ {
+ gint x = 0;
+ gint _tmp186_ = 0;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp186_ = L;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = _tmp186_;
+#line 1832 "page-view.c"
+ {
+ gboolean _tmp187_ = FALSE;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp187_ = TRUE;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ while (TRUE) {
+#line 1839 "page-view.c"
+ gint _tmp189_ = 0;
+ gint _tmp190_ = 0;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!_tmp187_) {
+#line 1844 "page-view.c"
+ gint _tmp188_ = 0;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp188_ = x;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = _tmp188_ + 1;
+#line 1850 "page-view.c"
+ }
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp187_ = FALSE;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp189_ = x;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp190_ = R;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!(_tmp189_ < _tmp190_)) {
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 1862 "page-view.c"
+ }
+ {
+ gint y = 0;
+ gint _tmp191_ = 0;
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp191_ = T;
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = _tmp191_;
+#line 1871 "page-view.c"
+ {
+ gboolean _tmp192_ = FALSE;
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp192_ = TRUE;
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ while (TRUE) {
+#line 1878 "page-view.c"
+ gint _tmp194_ = 0;
+ gint _tmp195_ = 0;
+ guchar p[3] = {0};
+ Page* _tmp196_ = NULL;
+ gint _tmp197_ = 0;
+ gint _tmp198_ = 0;
+ gdouble _tmp199_ = 0.0;
+ guchar _tmp200_ = '\0';
+ gdouble _tmp201_ = 0.0;
+ guchar _tmp202_ = '\0';
+ gdouble _tmp203_ = 0.0;
+ guchar _tmp204_ = '\0';
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!_tmp192_) {
+#line 1893 "page-view.c"
+ gint _tmp193_ = 0;
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp193_ = y;
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = _tmp193_ + 1;
+#line 1899 "page-view.c"
+ }
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp192_ = FALSE;
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp194_ = y;
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp195_ = B;
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!(_tmp194_ < _tmp195_)) {
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 1911 "page-view.c"
+ }
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp196_ = page;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp197_ = x;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp198_ = y;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp196_, _tmp197_, _tmp198_, p, 3);
+#line 314 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp199_ = red;
+#line 314 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp200_ = p[0];
+#line 314 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = _tmp199_ + _tmp200_;
+#line 315 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp201_ = green;
+#line 315 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp202_ = p[1];
+#line 315 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = _tmp201_ + _tmp202_;
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp203_ = blue;
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp204_ = p[2];
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = _tmp203_ + _tmp204_;
+#line 1939 "page-view.c"
+ }
+ }
+ }
+ }
+ }
+ }
+ {
+ gint x = 0;
+ gint _tmp205_ = 0;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp205_ = L;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = _tmp205_;
+#line 1953 "page-view.c"
+ {
+ gboolean _tmp206_ = FALSE;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp206_ = TRUE;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ while (TRUE) {
+#line 1960 "page-view.c"
+ gint _tmp208_ = 0;
+ gint _tmp209_ = 0;
+ gdouble _tmp210_ = 0.0;
+ gint _tmp211_ = 0;
+ gdouble _tmp227_ = 0.0;
+ gint _tmp228_ = 0;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!_tmp206_) {
+#line 1969 "page-view.c"
+ gint _tmp207_ = 0;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp207_ = x;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = _tmp207_ + 1;
+#line 1975 "page-view.c"
+ }
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp206_ = FALSE;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp208_ = x;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp209_ = R;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!(_tmp208_ < _tmp209_)) {
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 1987 "page-view.c"
+ }
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp210_ = t;
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp211_ = T;
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp210_ != ((gdouble) _tmp211_)) {
+#line 1995 "page-view.c"
+ guchar p[3] = {0};
+ Page* _tmp212_ = NULL;
+ gint _tmp213_ = 0;
+ gint _tmp214_ = 0;
+ gdouble _tmp215_ = 0.0;
+ guchar _tmp216_ = '\0';
+ gint _tmp217_ = 0;
+ gdouble _tmp218_ = 0.0;
+ gdouble _tmp219_ = 0.0;
+ guchar _tmp220_ = '\0';
+ gint _tmp221_ = 0;
+ gdouble _tmp222_ = 0.0;
+ gdouble _tmp223_ = 0.0;
+ guchar _tmp224_ = '\0';
+ gint _tmp225_ = 0;
+ gdouble _tmp226_ = 0.0;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp212_ = page;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp213_ = x;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp214_ = T;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp212_, _tmp213_, _tmp214_ - 1, p, 3);
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp215_ = red;
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp216_ = p[0];
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp217_ = T;
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp218_ = t;
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = _tmp215_ + (_tmp216_ * (_tmp217_ - _tmp218_));
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp219_ = green;
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp220_ = p[1];
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp221_ = T;
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp222_ = t;
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = _tmp219_ + (_tmp220_ * (_tmp221_ - _tmp222_));
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp223_ = blue;
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp224_ = p[2];
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp225_ = T;
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp226_ = t;
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = _tmp223_ + (_tmp224_ * (_tmp225_ - _tmp226_));
+#line 2050 "page-view.c"
+ }
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp227_ = b;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp228_ = B;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp227_ != ((gdouble) _tmp228_)) {
+#line 2058 "page-view.c"
+ guchar p[3] = {0};
+ Page* _tmp229_ = NULL;
+ gint _tmp230_ = 0;
+ gint _tmp231_ = 0;
+ gdouble _tmp232_ = 0.0;
+ guchar _tmp233_ = '\0';
+ gdouble _tmp234_ = 0.0;
+ gint _tmp235_ = 0;
+ gdouble _tmp236_ = 0.0;
+ guchar _tmp237_ = '\0';
+ gdouble _tmp238_ = 0.0;
+ gint _tmp239_ = 0;
+ gdouble _tmp240_ = 0.0;
+ guchar _tmp241_ = '\0';
+ gdouble _tmp242_ = 0.0;
+ gint _tmp243_ = 0;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp229_ = page;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp230_ = x;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp231_ = B;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp229_, _tmp230_, _tmp231_, p, 3);
+#line 336 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp232_ = red;
+#line 336 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp233_ = p[0];
+#line 336 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp234_ = b;
+#line 336 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp235_ = B;
+#line 336 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = _tmp232_ + (_tmp233_ * (_tmp234_ - _tmp235_));
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp236_ = green;
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp237_ = p[1];
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp238_ = b;
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp239_ = B;
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = _tmp236_ + (_tmp237_ * (_tmp238_ - _tmp239_));
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp240_ = blue;
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp241_ = p[2];
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp242_ = b;
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp243_ = B;
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = _tmp240_ + (_tmp241_ * (_tmp242_ - _tmp243_));
+#line 2113 "page-view.c"
+ }
+ }
+ }
+ }
+ {
+ gint y = 0;
+ gint _tmp244_ = 0;
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp244_ = T;
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = _tmp244_;
+#line 2125 "page-view.c"
+ {
+ gboolean _tmp245_ = FALSE;
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp245_ = TRUE;
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ while (TRUE) {
+#line 2132 "page-view.c"
+ gint _tmp247_ = 0;
+ gint _tmp248_ = 0;
+ gdouble _tmp249_ = 0.0;
+ gint _tmp250_ = 0;
+ gdouble _tmp266_ = 0.0;
+ gint _tmp267_ = 0;
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!_tmp245_) {
+#line 2141 "page-view.c"
+ gint _tmp246_ = 0;
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp246_ = y;
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = _tmp246_ + 1;
+#line 2147 "page-view.c"
+ }
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp245_ = FALSE;
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp247_ = y;
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp248_ = B;
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!(_tmp247_ < _tmp248_)) {
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 2159 "page-view.c"
+ }
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp249_ = l;
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp250_ = L;
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp249_ != ((gdouble) _tmp250_)) {
+#line 2167 "page-view.c"
+ guchar p[3] = {0};
+ Page* _tmp251_ = NULL;
+ gint _tmp252_ = 0;
+ gint _tmp253_ = 0;
+ gdouble _tmp254_ = 0.0;
+ guchar _tmp255_ = '\0';
+ gint _tmp256_ = 0;
+ gdouble _tmp257_ = 0.0;
+ gdouble _tmp258_ = 0.0;
+ guchar _tmp259_ = '\0';
+ gint _tmp260_ = 0;
+ gdouble _tmp261_ = 0.0;
+ gdouble _tmp262_ = 0.0;
+ guchar _tmp263_ = '\0';
+ gint _tmp264_ = 0;
+ gdouble _tmp265_ = 0.0;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp251_ = page;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp252_ = L;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp253_ = y;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp251_, _tmp252_ - 1, _tmp253_, p, 3);
+#line 349 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp254_ = red;
+#line 349 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp255_ = p[0];
+#line 349 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp256_ = L;
+#line 349 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp257_ = l;
+#line 349 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = _tmp254_ + (_tmp255_ * (_tmp256_ - _tmp257_));
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp258_ = green;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp259_ = p[1];
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp260_ = L;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp261_ = l;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = _tmp258_ + (_tmp259_ * (_tmp260_ - _tmp261_));
+#line 351 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp262_ = blue;
+#line 351 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp263_ = p[2];
+#line 351 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp264_ = L;
+#line 351 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp265_ = l;
+#line 351 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = _tmp262_ + (_tmp263_ * (_tmp264_ - _tmp265_));
+#line 2222 "page-view.c"
+ }
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp266_ = r;
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp267_ = R;
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp266_ != ((gdouble) _tmp267_)) {
+#line 2230 "page-view.c"
+ guchar p[3] = {0};
+ Page* _tmp268_ = NULL;
+ gint _tmp269_ = 0;
+ gint _tmp270_ = 0;
+ gdouble _tmp271_ = 0.0;
+ guchar _tmp272_ = '\0';
+ gdouble _tmp273_ = 0.0;
+ gint _tmp274_ = 0;
+ gdouble _tmp275_ = 0.0;
+ guchar _tmp276_ = '\0';
+ gdouble _tmp277_ = 0.0;
+ gint _tmp278_ = 0;
+ gdouble _tmp279_ = 0.0;
+ guchar _tmp280_ = '\0';
+ gdouble _tmp281_ = 0.0;
+ gint _tmp282_ = 0;
+#line 357 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp268_ = page;
+#line 357 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp269_ = R;
+#line 357 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp270_ = y;
+#line 357 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp268_, _tmp269_, _tmp270_, p, 3);
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp271_ = red;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp272_ = p[0];
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp273_ = r;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp274_ = R;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = _tmp271_ + (_tmp272_ * (_tmp273_ - _tmp274_));
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp275_ = green;
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp276_ = p[1];
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp277_ = r;
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp278_ = R;
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = _tmp275_ + (_tmp276_ * (_tmp277_ - _tmp278_));
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp279_ = blue;
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp280_ = p[2];
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp281_ = r;
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp282_ = R;
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = _tmp279_ + (_tmp280_ * (_tmp281_ - _tmp282_));
+#line 2285 "page-view.c"
+ }
+ }
+ }
+ }
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp284_ = l;
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp285_ = L;
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp284_ != ((gdouble) _tmp285_)) {
+#line 2296 "page-view.c"
+ gdouble _tmp286_ = 0.0;
+ gint _tmp287_ = 0;
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp286_ = t;
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp287_ = T;
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp283_ = _tmp286_ != ((gdouble) _tmp287_);
+#line 2305 "page-view.c"
+ } else {
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp283_ = FALSE;
+#line 2309 "page-view.c"
+ }
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp283_) {
+#line 2313 "page-view.c"
+ guchar p[3] = {0};
+ Page* _tmp288_ = NULL;
+ gint _tmp289_ = 0;
+ gint _tmp290_ = 0;
+ gdouble _tmp291_ = 0.0;
+ guchar _tmp292_ = '\0';
+ gint _tmp293_ = 0;
+ gdouble _tmp294_ = 0.0;
+ gint _tmp295_ = 0;
+ gdouble _tmp296_ = 0.0;
+ gdouble _tmp297_ = 0.0;
+ guchar _tmp298_ = '\0';
+ gint _tmp299_ = 0;
+ gdouble _tmp300_ = 0.0;
+ gint _tmp301_ = 0;
+ gdouble _tmp302_ = 0.0;
+ gdouble _tmp303_ = 0.0;
+ guchar _tmp304_ = '\0';
+ gint _tmp305_ = 0;
+ gdouble _tmp306_ = 0.0;
+ gint _tmp307_ = 0;
+ gdouble _tmp308_ = 0.0;
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp288_ = page;
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp289_ = L;
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp290_ = T;
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp288_, _tmp289_ - 1, _tmp290_ - 1, p, 3);
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp291_ = red;
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp292_ = p[0];
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp293_ = L;
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp294_ = l;
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp295_ = T;
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp296_ = t;
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = _tmp291_ + ((_tmp292_ * (_tmp293_ - _tmp294_)) * (_tmp295_ - _tmp296_));
+#line 370 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp297_ = green;
+#line 370 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp298_ = p[1];
+#line 370 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp299_ = L;
+#line 370 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp300_ = l;
+#line 370 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp301_ = T;
+#line 370 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp302_ = t;
+#line 370 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = _tmp297_ + ((_tmp298_ * (_tmp299_ - _tmp300_)) * (_tmp301_ - _tmp302_));
+#line 371 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp303_ = blue;
+#line 371 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp304_ = p[2];
+#line 371 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp305_ = L;
+#line 371 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp306_ = l;
+#line 371 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp307_ = T;
+#line 371 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp308_ = t;
+#line 371 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = _tmp303_ + ((_tmp304_ * (_tmp305_ - _tmp306_)) * (_tmp307_ - _tmp308_));
+#line 2386 "page-view.c"
+ }
+#line 373 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp310_ = r;
+#line 373 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp311_ = R;
+#line 373 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp310_ != ((gdouble) _tmp311_)) {
+#line 2394 "page-view.c"
+ gdouble _tmp312_ = 0.0;
+ gint _tmp313_ = 0;
+#line 373 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp312_ = t;
+#line 373 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp313_ = T;
+#line 373 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp309_ = _tmp312_ != ((gdouble) _tmp313_);
+#line 2403 "page-view.c"
+ } else {
+#line 373 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp309_ = FALSE;
+#line 2407 "page-view.c"
+ }
+#line 373 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp309_) {
+#line 2411 "page-view.c"
+ guchar p[3] = {0};
+ Page* _tmp314_ = NULL;
+ gint _tmp315_ = 0;
+ gint _tmp316_ = 0;
+ gdouble _tmp317_ = 0.0;
+ guchar _tmp318_ = '\0';
+ gdouble _tmp319_ = 0.0;
+ gint _tmp320_ = 0;
+ gint _tmp321_ = 0;
+ gdouble _tmp322_ = 0.0;
+ gdouble _tmp323_ = 0.0;
+ guchar _tmp324_ = '\0';
+ gdouble _tmp325_ = 0.0;
+ gint _tmp326_ = 0;
+ gint _tmp327_ = 0;
+ gdouble _tmp328_ = 0.0;
+ gdouble _tmp329_ = 0.0;
+ guchar _tmp330_ = '\0';
+ gdouble _tmp331_ = 0.0;
+ gint _tmp332_ = 0;
+ gint _tmp333_ = 0;
+ gdouble _tmp334_ = 0.0;
+#line 376 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp314_ = page;
+#line 376 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp315_ = R;
+#line 376 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp316_ = T;
+#line 376 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp314_, _tmp315_, _tmp316_ - 1, p, 3);
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp317_ = red;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp318_ = p[0];
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp319_ = r;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp320_ = R;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp321_ = T;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp322_ = t;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = _tmp317_ + ((_tmp318_ * (_tmp319_ - _tmp320_)) * (_tmp321_ - _tmp322_));
+#line 378 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp323_ = green;
+#line 378 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp324_ = p[1];
+#line 378 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp325_ = r;
+#line 378 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp326_ = R;
+#line 378 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp327_ = T;
+#line 378 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp328_ = t;
+#line 378 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = _tmp323_ + ((_tmp324_ * (_tmp325_ - _tmp326_)) * (_tmp327_ - _tmp328_));
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp329_ = blue;
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp330_ = p[2];
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp331_ = r;
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp332_ = R;
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp333_ = T;
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp334_ = t;
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = _tmp329_ + ((_tmp330_ * (_tmp331_ - _tmp332_)) * (_tmp333_ - _tmp334_));
+#line 2484 "page-view.c"
+ }
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp336_ = r;
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp337_ = R;
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp336_ != ((gdouble) _tmp337_)) {
+#line 2492 "page-view.c"
+ gdouble _tmp338_ = 0.0;
+ gint _tmp339_ = 0;
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp338_ = b;
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp339_ = B;
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp335_ = _tmp338_ != ((gdouble) _tmp339_);
+#line 2501 "page-view.c"
+ } else {
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp335_ = FALSE;
+#line 2505 "page-view.c"
+ }
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp335_) {
+#line 2509 "page-view.c"
+ guchar p[3] = {0};
+ Page* _tmp340_ = NULL;
+ gint _tmp341_ = 0;
+ gint _tmp342_ = 0;
+ gdouble _tmp343_ = 0.0;
+ guchar _tmp344_ = '\0';
+ gdouble _tmp345_ = 0.0;
+ gint _tmp346_ = 0;
+ gdouble _tmp347_ = 0.0;
+ gint _tmp348_ = 0;
+ gdouble _tmp349_ = 0.0;
+ guchar _tmp350_ = '\0';
+ gdouble _tmp351_ = 0.0;
+ gint _tmp352_ = 0;
+ gdouble _tmp353_ = 0.0;
+ gint _tmp354_ = 0;
+ gdouble _tmp355_ = 0.0;
+ guchar _tmp356_ = '\0';
+ gdouble _tmp357_ = 0.0;
+ gint _tmp358_ = 0;
+ gdouble _tmp359_ = 0.0;
+ gint _tmp360_ = 0;
+#line 384 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp340_ = page;
+#line 384 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp341_ = R;
+#line 384 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp342_ = B;
+#line 384 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp340_, _tmp341_, _tmp342_, p, 3);
+#line 385 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp343_ = red;
+#line 385 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp344_ = p[0];
+#line 385 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp345_ = r;
+#line 385 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp346_ = R;
+#line 385 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp347_ = b;
+#line 385 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp348_ = B;
+#line 385 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = _tmp343_ + ((_tmp344_ * (_tmp345_ - _tmp346_)) * (_tmp347_ - _tmp348_));
+#line 386 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp349_ = green;
+#line 386 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp350_ = p[1];
+#line 386 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp351_ = r;
+#line 386 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp352_ = R;
+#line 386 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp353_ = b;
+#line 386 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp354_ = B;
+#line 386 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = _tmp349_ + ((_tmp350_ * (_tmp351_ - _tmp352_)) * (_tmp353_ - _tmp354_));
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp355_ = blue;
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp356_ = p[2];
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp357_ = r;
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp358_ = R;
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp359_ = b;
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp360_ = B;
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = _tmp355_ + ((_tmp356_ * (_tmp357_ - _tmp358_)) * (_tmp359_ - _tmp360_));
+#line 2582 "page-view.c"
+ }
+#line 389 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp362_ = l;
+#line 389 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp363_ = L;
+#line 389 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp362_ != ((gdouble) _tmp363_)) {
+#line 2590 "page-view.c"
+ gdouble _tmp364_ = 0.0;
+ gint _tmp365_ = 0;
+#line 389 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp364_ = b;
+#line 389 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp365_ = B;
+#line 389 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp361_ = _tmp364_ != ((gdouble) _tmp365_);
+#line 2599 "page-view.c"
+ } else {
+#line 389 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp361_ = FALSE;
+#line 2603 "page-view.c"
+ }
+#line 389 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp361_) {
+#line 2607 "page-view.c"
+ guchar p[3] = {0};
+ Page* _tmp366_ = NULL;
+ gint _tmp367_ = 0;
+ gint _tmp368_ = 0;
+ gdouble _tmp369_ = 0.0;
+ guchar _tmp370_ = '\0';
+ gint _tmp371_ = 0;
+ gdouble _tmp372_ = 0.0;
+ gdouble _tmp373_ = 0.0;
+ gint _tmp374_ = 0;
+ gdouble _tmp375_ = 0.0;
+ guchar _tmp376_ = '\0';
+ gint _tmp377_ = 0;
+ gdouble _tmp378_ = 0.0;
+ gdouble _tmp379_ = 0.0;
+ gint _tmp380_ = 0;
+ gdouble _tmp381_ = 0.0;
+ guchar _tmp382_ = '\0';
+ gint _tmp383_ = 0;
+ gdouble _tmp384_ = 0.0;
+ gdouble _tmp385_ = 0.0;
+ gint _tmp386_ = 0;
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp366_ = page;
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp367_ = L;
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp368_ = B;
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_get_pixel (self, _tmp366_, _tmp367_ - 1, _tmp368_, p, 3);
+#line 393 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp369_ = red;
+#line 393 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp370_ = p[0];
+#line 393 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp371_ = L;
+#line 393 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp372_ = l;
+#line 393 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp373_ = b;
+#line 393 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp374_ = B;
+#line 393 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ red = _tmp369_ + ((_tmp370_ * (_tmp371_ - _tmp372_)) * (_tmp373_ - _tmp374_));
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp375_ = green;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp376_ = p[1];
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp377_ = L;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp378_ = l;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp379_ = b;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp380_ = B;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ green = _tmp375_ + ((_tmp376_ * (_tmp377_ - _tmp378_)) * (_tmp379_ - _tmp380_));
+#line 395 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp381_ = blue;
+#line 395 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp382_ = p[2];
+#line 395 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp383_ = L;
+#line 395 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp384_ = l;
+#line 395 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp385_ = b;
+#line 395 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp386_ = B;
+#line 395 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ blue = _tmp381_ + ((_tmp382_ * (_tmp383_ - _tmp384_)) * (_tmp385_ - _tmp386_));
+#line 2680 "page-view.c"
+ }
+#line 399 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp387_ = r;
+#line 399 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp388_ = l;
+#line 399 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp389_ = b;
+#line 399 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp390_ = t;
+#line 399 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ scale = 1.0 / ((_tmp387_ - _tmp388_) * (_tmp389_ - _tmp390_));
+#line 400 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp391_ = output;
+#line 400 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp391__length1 = output_length1;
+#line 400 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp392_ = offset;
+#line 400 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp393_ = red;
+#line 400 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp394_ = scale;
+#line 400 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp391_[_tmp392_] = (guchar) ((_tmp393_ * _tmp394_) + 0.5);
+#line 400 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp395_ = _tmp391_[_tmp392_];
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp396_ = output;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp396__length1 = output_length1;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp397_ = offset;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp398_ = green;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp399_ = scale;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp396_[_tmp397_ + 1] = (guchar) ((_tmp398_ * _tmp399_) + 0.5);
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp400_ = _tmp396_[_tmp397_ + 1];
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp401_ = output;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp401__length1 = output_length1;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp402_ = offset;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp403_ = blue;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp404_ = scale;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp401_[_tmp402_ + 2] = (guchar) ((_tmp403_ * _tmp404_) + 0.5);
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp405_ = _tmp401_[_tmp402_ + 2];
+#line 2734 "page-view.c"
+}
+
+
+static void page_view_update_preview (PageView* self, Page* page, GdkPixbuf** output_image, gint output_width, gint output_height, ScanDirection scan_direction, gint old_scan_line, gint scan_line) {
+ gint input_width = 0;
+ Page* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint input_height = 0;
+ Page* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint L = 0;
+ gint R = 0;
+ gint T = 0;
+ gint B = 0;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ GdkPixbuf* _tmp8_ = NULL;
+ gint _tmp58_ = 0;
+ gint _tmp59_ = 0;
+ gint _tmp61_ = 0;
+ gint _tmp62_ = 0;
+ gint _tmp64_ = 0;
+ gint _tmp65_ = 0;
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+ GdkPixbuf* _tmp70_ = NULL;
+ guchar* output = NULL;
+ GdkPixbuf* _tmp71_ = NULL;
+ guint8* _tmp72_ = NULL;
+ gint output_length1 = 0;
+ gint _output_size_ = 0;
+ gint output_rowstride = 0;
+ GdkPixbuf* _tmp73_ = NULL;
+ gint _tmp74_ = 0;
+ gint _tmp75_ = 0;
+ gint output_n_channels = 0;
+ GdkPixbuf* _tmp76_ = NULL;
+ gint _tmp77_ = 0;
+ gint _tmp78_ = 0;
+ Page* _tmp79_ = NULL;
+ gboolean _tmp80_ = FALSE;
+ gboolean _tmp81_ = FALSE;
+#line 405 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 405 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (page != NULL);
+#line 408 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = page;
+#line 408 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = page_get_width (_tmp0_);
+#line 408 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = _tmp1_;
+#line 408 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ input_width = _tmp2_;
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = page;
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = page_get_height (_tmp3_);
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp5_ = _tmp4_;
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ input_height = _tmp5_;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp8_ = *output_image;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp8_ == NULL) {
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp7_ = TRUE;
+#line 2807 "page-view.c"
+ } else {
+ GdkPixbuf* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+#line 414 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp9_ = *output_image;
+#line 414 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp10_ = gdk_pixbuf_get_width (_tmp9_);
+#line 414 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp11_ = _tmp10_;
+#line 414 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp12_ = output_width;
+#line 414 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp7_ = _tmp11_ != _tmp12_;
+#line 2823 "page-view.c"
+ }
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp7_) {
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp6_ = TRUE;
+#line 2829 "page-view.c"
+ } else {
+ GdkPixbuf* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+#line 415 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp13_ = *output_image;
+#line 415 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp14_ = gdk_pixbuf_get_height (_tmp13_);
+#line 415 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp15_ = _tmp14_;
+#line 415 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp16_ = output_height;
+#line 415 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp6_ = _tmp15_ != _tmp16_;
+#line 2845 "page-view.c"
+ }
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp6_) {
+#line 2849 "page-view.c"
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ GdkPixbuf* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+#line 417 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp17_ = output_width;
+#line 417 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp18_ = output_height;
+#line 417 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp19_ = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, _tmp17_, _tmp18_);
+#line 417 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _g_object_unref0 (*output_image);
+#line 417 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ *output_image = _tmp19_;
+#line 424 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ L = 0;
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp20_ = output_width;
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ R = _tmp20_ - 1;
+#line 426 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ T = 0;
+#line 427 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp21_ = output_height;
+#line 427 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ B = _tmp21_ - 1;
+#line 2877 "page-view.c"
+ } else {
+ ScanDirection _tmp22_ = 0;
+#line 432 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp22_ = scan_direction;
+#line 432 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ switch (_tmp22_) {
+#line 432 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case SCAN_DIRECTION_TOP_TO_BOTTOM:
+#line 2886 "page-view.c"
+ {
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ L = 0;
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp23_ = output_width;
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ R = _tmp23_ - 1;
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp24_ = old_scan_line;
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp25_ = output_height;
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp26_ = input_height;
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ T = (gint) ((((gdouble) _tmp24_) * _tmp25_) / _tmp26_);
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp27_ = scan_line;
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp28_ = output_height;
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp29_ = input_height;
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ B = (gint) (((((gdouble) _tmp27_) * _tmp28_) / _tmp29_) + 0.5);
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 2919 "page-view.c"
+ }
+#line 432 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case SCAN_DIRECTION_LEFT_TO_RIGHT:
+#line 2923 "page-view.c"
+ {
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp30_ = old_scan_line;
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp31_ = output_width;
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp32_ = input_width;
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ L = (gint) ((((gdouble) _tmp30_) * _tmp31_) / _tmp32_);
+#line 442 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp33_ = scan_line;
+#line 442 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp34_ = output_width;
+#line 442 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp35_ = input_width;
+#line 442 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ R = (gint) (((((gdouble) _tmp33_) * _tmp34_) / _tmp35_) + 0.5);
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ T = 0;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp36_ = output_height;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ B = _tmp36_ - 1;
+#line 445 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 2956 "page-view.c"
+ }
+#line 432 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case SCAN_DIRECTION_BOTTOM_TO_TOP:
+#line 2960 "page-view.c"
+ {
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ L = 0;
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp37_ = output_width;
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ R = _tmp37_ - 1;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp38_ = input_height;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp39_ = scan_line;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp40_ = output_height;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp41_ = input_height;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ T = (gint) ((((gdouble) (_tmp38_ - _tmp39_)) * _tmp40_) / _tmp41_);
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp42_ = input_height;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp43_ = old_scan_line;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp44_ = output_height;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp45_ = input_height;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ B = (gint) (((((gdouble) (_tmp42_ - _tmp43_)) * _tmp44_) / _tmp45_) + 0.5);
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 2999 "page-view.c"
+ }
+#line 432 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case SCAN_DIRECTION_RIGHT_TO_LEFT:
+#line 3003 "page-view.c"
+ {
+ gint _tmp46_ = 0;
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+ gint _tmp49_ = 0;
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+#line 453 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp46_ = input_width;
+#line 453 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp47_ = scan_line;
+#line 453 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp48_ = output_width;
+#line 453 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp49_ = input_width;
+#line 453 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ L = (gint) ((((gdouble) (_tmp46_ - _tmp47_)) * _tmp48_) / _tmp49_);
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp50_ = input_width;
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp51_ = old_scan_line;
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp52_ = output_width;
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp53_ = input_width;
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ R = (gint) (((((gdouble) (_tmp50_ - _tmp51_)) * _tmp52_) / _tmp53_) + 0.5);
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ T = 0;
+#line 456 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp54_ = output_height;
+#line 456 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ B = _tmp54_ - 1;
+#line 457 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 3042 "page-view.c"
+ }
+ default:
+ {
+ gint _tmp55_ = 0;
+ gint _tmp56_ = 0;
+ gint _tmp57_ = 0;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ T = 0;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp55_ = T;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ B = _tmp55_;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp56_ = B;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ R = _tmp56_;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp57_ = R;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ L = _tmp57_;
+#line 460 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 3065 "page-view.c"
+ }
+ }
+ }
+#line 465 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp58_ = R;
+#line 465 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp59_ = output_width;
+#line 465 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp58_ >= _tmp59_) {
+#line 3075 "page-view.c"
+ gint _tmp60_ = 0;
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp60_ = output_width;
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ R = _tmp60_ - 1;
+#line 3081 "page-view.c"
+ }
+#line 467 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp61_ = B;
+#line 467 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp62_ = output_height;
+#line 467 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp61_ >= _tmp62_) {
+#line 3089 "page-view.c"
+ gint _tmp63_ = 0;
+#line 468 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp63_ = output_height;
+#line 468 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ B = _tmp63_ - 1;
+#line 3095 "page-view.c"
+ }
+#line 470 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp64_ = L;
+#line 470 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (_tmp64_ >= 0);
+#line 471 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp65_ = R;
+#line 471 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp66_ = output_width;
+#line 471 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (_tmp65_ < _tmp66_);
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp67_ = T;
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (_tmp67_ >= 0);
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp68_ = B;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp69_ = output_height;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (_tmp68_ < _tmp69_);
+#line 474 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp70_ = *output_image;
+#line 474 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (_tmp70_ != NULL);
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp71_ = *output_image;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp72_ = gdk_pixbuf_get_pixels (_tmp71_);
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ output = _tmp72_;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ output_length1 = -1;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _output_size_ = output_length1;
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp73_ = *output_image;
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp74_ = gdk_pixbuf_get_rowstride (_tmp73_);
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp75_ = _tmp74_;
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ output_rowstride = _tmp75_;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp76_ = *output_image;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp77_ = gdk_pixbuf_get_n_channels (_tmp76_);
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp78_ = _tmp77_;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ output_n_channels = _tmp78_;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp79_ = page;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp80_ = page_get_has_data (_tmp79_);
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp81_ = _tmp80_;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!_tmp81_) {
+#line 3155 "page-view.c"
+ {
+ gint x = 0;
+ gint _tmp82_ = 0;
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp82_ = L;
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = _tmp82_;
+#line 3163 "page-view.c"
+ {
+ gboolean _tmp83_ = FALSE;
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp83_ = TRUE;
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ while (TRUE) {
+#line 3170 "page-view.c"
+ gint _tmp85_ = 0;
+ gint _tmp86_ = 0;
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!_tmp83_) {
+#line 3175 "page-view.c"
+ gint _tmp84_ = 0;
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp84_ = x;
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = _tmp84_ + 1;
+#line 3181 "page-view.c"
+ }
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp83_ = FALSE;
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp85_ = x;
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp86_ = R;
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!(_tmp85_ <= _tmp86_)) {
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 3193 "page-view.c"
+ }
+ {
+ gint y = 0;
+ gint _tmp87_ = 0;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp87_ = T;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = _tmp87_;
+#line 3202 "page-view.c"
+ {
+ gboolean _tmp88_ = FALSE;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp88_ = TRUE;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ while (TRUE) {
+#line 3209 "page-view.c"
+ gint _tmp90_ = 0;
+ gint _tmp91_ = 0;
+ gint o = 0;
+ gint _tmp92_ = 0;
+ gint _tmp93_ = 0;
+ gint _tmp94_ = 0;
+ gint _tmp95_ = 0;
+ guchar* _tmp96_ = NULL;
+ gint _tmp96__length1 = 0;
+ gint _tmp97_ = 0;
+ guchar* _tmp98_ = NULL;
+ gint _tmp98__length1 = 0;
+ gint _tmp99_ = 0;
+ guchar* _tmp100_ = NULL;
+ gint _tmp100__length1 = 0;
+ gint _tmp101_ = 0;
+ guchar _tmp102_ = '\0';
+ guchar _tmp103_ = '\0';
+ guchar _tmp104_ = '\0';
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!_tmp88_) {
+#line 3231 "page-view.c"
+ gint _tmp89_ = 0;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp89_ = y;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = _tmp89_ + 1;
+#line 3237 "page-view.c"
+ }
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp88_ = FALSE;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp90_ = y;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp91_ = B;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!(_tmp90_ <= _tmp91_)) {
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 3249 "page-view.c"
+ }
+#line 485 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp92_ = output_rowstride;
+#line 485 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp93_ = y;
+#line 485 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp94_ = x;
+#line 485 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp95_ = output_n_channels;
+#line 485 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ o = (_tmp92_ * _tmp93_) + (_tmp94_ * _tmp95_);
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp96_ = output;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp96__length1 = output_length1;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp97_ = o;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp98_ = output;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp98__length1 = output_length1;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp99_ = o;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp100_ = output;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp100__length1 = output_length1;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp101_ = o;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp100_[_tmp101_ + 2] = (guchar) 0xFF;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp102_ = _tmp100_[_tmp101_ + 2];
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp98_[_tmp99_ + 1] = _tmp102_;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp103_ = _tmp98_[_tmp99_ + 1];
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp96_[_tmp97_] = _tmp103_;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp104_ = _tmp96_[_tmp97_];
+#line 3291 "page-view.c"
+ }
+ }
+ }
+ }
+ }
+ }
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return;
+#line 3300 "page-view.c"
+ }
+ {
+ gint x = 0;
+ gint _tmp105_ = 0;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp105_ = L;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = _tmp105_;
+#line 3309 "page-view.c"
+ {
+ gboolean _tmp106_ = FALSE;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp106_ = TRUE;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ while (TRUE) {
+#line 3316 "page-view.c"
+ gint _tmp108_ = 0;
+ gint _tmp109_ = 0;
+ gdouble l = 0.0;
+ gint _tmp110_ = 0;
+ gint _tmp111_ = 0;
+ gint _tmp112_ = 0;
+ gdouble r = 0.0;
+ gint _tmp113_ = 0;
+ gint _tmp114_ = 0;
+ gint _tmp115_ = 0;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!_tmp106_) {
+#line 3329 "page-view.c"
+ gint _tmp107_ = 0;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp107_ = x;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = _tmp107_ + 1;
+#line 3335 "page-view.c"
+ }
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp106_ = FALSE;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp108_ = x;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp109_ = R;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!(_tmp108_ <= _tmp109_)) {
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 3347 "page-view.c"
+ }
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp110_ = x;
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp111_ = input_width;
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp112_ = output_width;
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ l = (((gdouble) _tmp110_) * _tmp111_) / _tmp112_;
+#line 495 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp113_ = x;
+#line 495 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp114_ = input_width;
+#line 495 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp115_ = output_width;
+#line 495 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ r = (((gdouble) (_tmp113_ + 1)) * _tmp114_) / _tmp115_;
+#line 3365 "page-view.c"
+ {
+ gint y = 0;
+ gint _tmp116_ = 0;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp116_ = T;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = _tmp116_;
+#line 3373 "page-view.c"
+ {
+ gboolean _tmp117_ = FALSE;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp117_ = TRUE;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ while (TRUE) {
+#line 3380 "page-view.c"
+ gint _tmp119_ = 0;
+ gint _tmp120_ = 0;
+ gdouble t = 0.0;
+ gint _tmp121_ = 0;
+ gint _tmp122_ = 0;
+ gint _tmp123_ = 0;
+ gdouble b = 0.0;
+ gint _tmp124_ = 0;
+ gint _tmp125_ = 0;
+ gint _tmp126_ = 0;
+ Page* _tmp127_ = NULL;
+ gdouble _tmp128_ = 0.0;
+ gdouble _tmp129_ = 0.0;
+ gdouble _tmp130_ = 0.0;
+ gdouble _tmp131_ = 0.0;
+ guchar* _tmp132_ = NULL;
+ gint _tmp132__length1 = 0;
+ gint _tmp133_ = 0;
+ gint _tmp134_ = 0;
+ gint _tmp135_ = 0;
+ gint _tmp136_ = 0;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!_tmp117_) {
+#line 3404 "page-view.c"
+ gint _tmp118_ = 0;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp118_ = y;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = _tmp118_ + 1;
+#line 3410 "page-view.c"
+ }
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp117_ = FALSE;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp119_ = y;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp120_ = B;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!(_tmp119_ <= _tmp120_)) {
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 3422 "page-view.c"
+ }
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp121_ = y;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp122_ = input_height;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp123_ = output_height;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ t = (((gdouble) _tmp121_) * _tmp122_) / _tmp123_;
+#line 500 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp124_ = y;
+#line 500 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp125_ = input_height;
+#line 500 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp126_ = output_height;
+#line 500 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ b = (((gdouble) (_tmp124_ + 1)) * _tmp125_) / _tmp126_;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp127_ = page;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp128_ = l;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp129_ = r;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp130_ = t;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp131_ = b;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp132_ = output;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp132__length1 = output_length1;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp133_ = output_rowstride;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp134_ = y;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp135_ = x;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp136_ = output_n_channels;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_set_pixel (self, _tmp127_, _tmp128_, _tmp129_, _tmp130_, _tmp131_, _tmp132_, _tmp132__length1, (_tmp133_ * _tmp134_) + (_tmp135_ * _tmp136_));
+#line 3464 "page-view.c"
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+
+static gint page_view_get_preview_width (PageView* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 509 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = self->priv->width_;
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = self->priv->border_width;
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = _tmp0_ - (_tmp1_ * 2);
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 3488 "page-view.c"
+}
+
+
+static gint page_view_get_preview_height (PageView* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 516 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = self->priv->height_;
+#line 516 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = self->priv->border_width;
+#line 516 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = _tmp0_ - (_tmp1_ * 2);
+#line 516 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 3506 "page-view.c"
+}
+
+
+static void page_view_update_page_view (PageView* self) {
+ gboolean _tmp0_ = FALSE;
+ gint old_scan_line = 0;
+ gint _tmp1_ = 0;
+ gint scan_line = 0;
+ Page* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ ScanDirection left_steps = 0;
+ ScanDirection _tmp5_ = 0;
+ Page* _tmp6_ = NULL;
+ ScanDirection _tmp7_ = 0;
+ ScanDirection _tmp8_ = 0;
+ gboolean _tmp9_ = FALSE;
+ ScanDirection _tmp10_ = 0;
+ Page* _tmp12_ = NULL;
+ ScanDirection _tmp13_ = 0;
+ ScanDirection _tmp14_ = 0;
+ Page* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ Page* _tmp18_ = NULL;
+ ScanDirection _tmp19_ = 0;
+ ScanDirection _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+#line 519 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 521 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = self->priv->update_image;
+#line 521 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!_tmp0_) {
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return;
+#line 3545 "page-view.c"
+ }
+#line 524 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = self->priv->scan_line;
+#line 524 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ old_scan_line = _tmp1_;
+#line 525 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = self->priv->_page;
+#line 525 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = page_get_scan_line (_tmp2_);
+#line 525 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = _tmp3_;
+#line 525 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ scan_line = _tmp4_;
+#line 528 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp5_ = self->priv->scan_direction;
+#line 528 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp6_ = self->priv->_page;
+#line 528 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp7_ = page_get_scan_direction (_tmp6_);
+#line 528 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp8_ = _tmp7_;
+#line 528 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ left_steps = _tmp5_ - _tmp8_;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp10_ = left_steps;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp10_ != 0) {
+#line 3573 "page-view.c"
+ GdkPixbuf* _tmp11_ = NULL;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp11_ = self->priv->image;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp9_ = _tmp11_ != NULL;
+#line 3579 "page-view.c"
+ } else {
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp9_ = FALSE;
+#line 3583 "page-view.c"
+ }
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp9_) {
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _g_object_unref0 (self->priv->image);
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->image = NULL;
+#line 3591 "page-view.c"
+ }
+#line 531 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp12_ = self->priv->_page;
+#line 531 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp13_ = page_get_scan_direction (_tmp12_);
+#line 531 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp14_ = _tmp13_;
+#line 531 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->scan_direction = _tmp14_;
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp15_ = self->priv->_page;
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp16_ = page_view_get_preview_width (self);
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp17_ = page_view_get_preview_height (self);
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp18_ = self->priv->_page;
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp19_ = page_get_scan_direction (_tmp18_);
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp20_ = _tmp19_;
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp21_ = old_scan_line;
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp22_ = scan_line;
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_update_preview (self, _tmp15_, &self->priv->image, _tmp16_, _tmp17_, _tmp20_, _tmp21_, _tmp22_);
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->update_image = FALSE;
+#line 540 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp23_ = scan_line;
+#line 540 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->scan_line = _tmp23_;
+#line 3625 "page-view.c"
+}
+
+
+static gint page_view_page_to_screen_x (PageView* self, gint x) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ Page* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = x;
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = page_view_get_preview_width (self);
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = self->priv->_page;
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = page_get_width (_tmp2_);
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = _tmp3_;
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = (gint) (((((gdouble) _tmp0_) * _tmp1_) / _tmp4_) + 0.5);
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 3652 "page-view.c"
+}
+
+
+static gint page_view_page_to_screen_y (PageView* self, gint y) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ Page* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = y;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = page_view_get_preview_height (self);
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = self->priv->_page;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = page_get_height (_tmp2_);
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = _tmp3_;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = (gint) (((((gdouble) _tmp0_) * _tmp1_) / _tmp4_) + 0.5);
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 3679 "page-view.c"
+}
+
+
+static gint page_view_screen_to_page_x (PageView* self, gint x) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ Page* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = x;
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = self->priv->_page;
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = page_get_width (_tmp1_);
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = _tmp2_;
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = page_view_get_preview_width (self);
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = (gint) (((((gdouble) _tmp0_) * _tmp3_) / _tmp4_) + 0.5);
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 3706 "page-view.c"
+}
+
+
+static gint page_view_screen_to_page_y (PageView* self, gint y) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ Page* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 558 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 560 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = y;
+#line 560 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = self->priv->_page;
+#line 560 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = page_get_height (_tmp1_);
+#line 560 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = _tmp2_;
+#line 560 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = page_view_get_preview_height (self);
+#line 560 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = (gint) (((((gdouble) _tmp0_) * _tmp3_) / _tmp4_) + 0.5);
+#line 560 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 3733 "page-view.c"
+}
+
+
+static CropLocation page_view_get_crop_location (PageView* self, gint x, gint y) {
+ CropLocation result = 0;
+ Page* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gint cx = 0;
+ Page* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint cy = 0;
+ Page* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint cw = 0;
+ Page* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint ch = 0;
+ Page* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint dx = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint dy = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint dw = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint dh = 0;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gint ix = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint iy = 0;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gboolean _tmp27_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+ gboolean _tmp29_ = FALSE;
+ gint _tmp30_ = 0;
+ gchar* name = NULL;
+ Page* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ gint crop_border = 0;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+ gboolean _tmp47_ = FALSE;
+ gint _tmp48_ = 0;
+ gint _tmp49_ = 0;
+ gboolean _tmp52_ = FALSE;
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+ gint _tmp55_ = 0;
+ gboolean _tmp58_ = FALSE;
+ gint _tmp59_ = 0;
+ gint _tmp60_ = 0;
+ gboolean _tmp64_ = FALSE;
+ gint _tmp65_ = 0;
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+ gint _tmp71_ = 0;
+ gint _tmp72_ = 0;
+ gint _tmp73_ = 0;
+ gint _tmp74_ = 0;
+ gint _tmp75_ = 0;
+ gint _tmp76_ = 0;
+ gint _tmp77_ = 0;
+ gint _tmp78_ = 0;
+ gint _tmp79_ = 0;
+ gint _tmp80_ = 0;
+#line 563 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = self->priv->_page;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = page_get_has_crop (_tmp0_);
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = _tmp1_;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!_tmp2_) {
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = 0;
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 3829 "page-view.c"
+ }
+#line 568 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = self->priv->_page;
+#line 568 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = page_get_crop_x (_tmp3_);
+#line 568 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp5_ = _tmp4_;
+#line 568 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cx = _tmp5_;
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp6_ = self->priv->_page;
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp7_ = page_get_crop_y (_tmp6_);
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp8_ = _tmp7_;
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cy = _tmp8_;
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp9_ = self->priv->_page;
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp10_ = page_get_crop_width (_tmp9_);
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp11_ = _tmp10_;
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cw = _tmp11_;
+#line 571 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp12_ = self->priv->_page;
+#line 571 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp13_ = page_get_crop_height (_tmp12_);
+#line 571 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp14_ = _tmp13_;
+#line 571 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ ch = _tmp14_;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp15_ = cx;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp16_ = page_view_page_to_screen_x (self, _tmp15_);
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dx = _tmp16_;
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp17_ = cy;
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp18_ = page_view_page_to_screen_y (self, _tmp17_);
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dy = _tmp18_;
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp19_ = cw;
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp20_ = page_view_page_to_screen_x (self, _tmp19_);
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dw = _tmp20_;
+#line 575 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp21_ = ch;
+#line 575 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp22_ = page_view_page_to_screen_y (self, _tmp21_);
+#line 575 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dh = _tmp22_;
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp23_ = x;
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp24_ = dx;
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ ix = _tmp23_ - _tmp24_;
+#line 577 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp25_ = y;
+#line 577 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp26_ = dy;
+#line 577 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ iy = _tmp25_ - _tmp26_;
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp30_ = ix;
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp30_ < 0) {
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp29_ = TRUE;
+#line 3905 "page-view.c"
+ } else {
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp31_ = ix;
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp32_ = dw;
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp29_ = _tmp31_ > _tmp32_;
+#line 3915 "page-view.c"
+ }
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp29_) {
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp28_ = TRUE;
+#line 3921 "page-view.c"
+ } else {
+ gint _tmp33_ = 0;
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp33_ = iy;
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp28_ = _tmp33_ < 0;
+#line 3928 "page-view.c"
+ }
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp28_) {
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp27_ = TRUE;
+#line 3934 "page-view.c"
+ } else {
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp34_ = iy;
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp35_ = dh;
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp27_ = _tmp34_ > _tmp35_;
+#line 3944 "page-view.c"
+ }
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp27_) {
+#line 580 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = CROP_LOCATION_NONE;
+#line 580 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 3952 "page-view.c"
+ }
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp36_ = self->priv->_page;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp37_ = page_get_crop_name (_tmp36_);
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp38_ = _tmp37_;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp39_ = g_strdup (_tmp38_);
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ name = _tmp39_;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp40_ = name;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp40_ != NULL) {
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = CROP_LOCATION_MIDDLE;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _g_free0 (name);
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 3974 "page-view.c"
+ }
+#line 588 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ crop_border = 20;
+#line 589 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp41_ = dw;
+#line 589 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp42_ = crop_border;
+#line 589 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp41_ < (_tmp42_ * 3)) {
+#line 3984 "page-view.c"
+ gint _tmp43_ = 0;
+#line 590 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp43_ = dw;
+#line 590 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ crop_border = _tmp43_ / 3;
+#line 3990 "page-view.c"
+ }
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp44_ = dh;
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp45_ = crop_border;
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp44_ < (_tmp45_ * 3)) {
+#line 3998 "page-view.c"
+ gint _tmp46_ = 0;
+#line 592 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp46_ = dh;
+#line 592 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ crop_border = _tmp46_ / 3;
+#line 4004 "page-view.c"
+ }
+#line 595 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp48_ = ix;
+#line 595 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp49_ = crop_border;
+#line 595 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp48_ < _tmp49_) {
+#line 4012 "page-view.c"
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+#line 595 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp50_ = iy;
+#line 595 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp51_ = crop_border;
+#line 595 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp47_ = _tmp50_ < _tmp51_;
+#line 4021 "page-view.c"
+ } else {
+#line 595 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp47_ = FALSE;
+#line 4025 "page-view.c"
+ }
+#line 595 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp47_) {
+#line 596 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = CROP_LOCATION_TOP_LEFT;
+#line 596 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _g_free0 (name);
+#line 596 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 4035 "page-view.c"
+ }
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp53_ = ix;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp54_ = dw;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp55_ = crop_border;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp53_ > (_tmp54_ - _tmp55_)) {
+#line 4045 "page-view.c"
+ gint _tmp56_ = 0;
+ gint _tmp57_ = 0;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp56_ = iy;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp57_ = crop_border;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp52_ = _tmp56_ < _tmp57_;
+#line 4054 "page-view.c"
+ } else {
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp52_ = FALSE;
+#line 4058 "page-view.c"
+ }
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp52_) {
+#line 599 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = CROP_LOCATION_TOP_RIGHT;
+#line 599 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _g_free0 (name);
+#line 599 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 4068 "page-view.c"
+ }
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp59_ = ix;
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp60_ = crop_border;
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp59_ < _tmp60_) {
+#line 4076 "page-view.c"
+ gint _tmp61_ = 0;
+ gint _tmp62_ = 0;
+ gint _tmp63_ = 0;
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp61_ = iy;
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp62_ = dh;
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp63_ = crop_border;
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp58_ = _tmp61_ > (_tmp62_ - _tmp63_);
+#line 4088 "page-view.c"
+ } else {
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp58_ = FALSE;
+#line 4092 "page-view.c"
+ }
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp58_) {
+#line 602 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = CROP_LOCATION_BOTTOM_LEFT;
+#line 602 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _g_free0 (name);
+#line 602 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 4102 "page-view.c"
+ }
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp65_ = ix;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp66_ = dw;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp67_ = crop_border;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp65_ > (_tmp66_ - _tmp67_)) {
+#line 4112 "page-view.c"
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+ gint _tmp70_ = 0;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp68_ = iy;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp69_ = dh;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp70_ = crop_border;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp64_ = _tmp68_ > (_tmp69_ - _tmp70_);
+#line 4124 "page-view.c"
+ } else {
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp64_ = FALSE;
+#line 4128 "page-view.c"
+ }
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp64_) {
+#line 605 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = CROP_LOCATION_BOTTOM_RIGHT;
+#line 605 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _g_free0 (name);
+#line 605 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 4138 "page-view.c"
+ }
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp71_ = ix;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp72_ = crop_border;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp71_ < _tmp72_) {
+#line 609 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = CROP_LOCATION_LEFT;
+#line 609 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _g_free0 (name);
+#line 609 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 4152 "page-view.c"
+ }
+#line 611 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp73_ = ix;
+#line 611 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp74_ = dw;
+#line 611 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp75_ = crop_border;
+#line 611 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp73_ > (_tmp74_ - _tmp75_)) {
+#line 612 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = CROP_LOCATION_RIGHT;
+#line 612 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _g_free0 (name);
+#line 612 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 4168 "page-view.c"
+ }
+#line 614 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp76_ = iy;
+#line 614 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp77_ = crop_border;
+#line 614 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp76_ < _tmp77_) {
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = CROP_LOCATION_TOP;
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _g_free0 (name);
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 4182 "page-view.c"
+ }
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp78_ = iy;
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp79_ = dh;
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp80_ = crop_border;
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp78_ > (_tmp79_ - _tmp80_)) {
+#line 618 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = CROP_LOCATION_BOTTOM;
+#line 618 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _g_free0 (name);
+#line 618 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 4198 "page-view.c"
+ }
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = CROP_LOCATION_MIDDLE;
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _g_free0 (name);
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 4206 "page-view.c"
+}
+
+
+void page_view_button_press (PageView* self, gint x, gint y) {
+ CropLocation location = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ CropLocation _tmp2_ = 0;
+ CropLocation _tmp3_ = 0;
+#line 624 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 627 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = x;
+#line 627 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = y;
+#line 627 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = page_view_get_crop_location (self, _tmp0_, _tmp1_);
+#line 627 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ location = _tmp2_;
+#line 628 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = location;
+#line 628 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp3_ != CROP_LOCATION_NONE) {
+#line 4230 "page-view.c"
+ CropLocation _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ Page* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ Page* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ Page* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ Page* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+#line 630 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = location;
+#line 630 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->crop_location = _tmp4_;
+#line 631 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp5_ = x;
+#line 631 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->selected_crop_px = (gdouble) _tmp5_;
+#line 632 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp6_ = y;
+#line 632 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->selected_crop_py = (gdouble) _tmp6_;
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp7_ = self->priv->_page;
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp8_ = page_get_crop_x (_tmp7_);
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp9_ = _tmp8_;
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->selected_crop_x = _tmp9_;
+#line 634 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp10_ = self->priv->_page;
+#line 634 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp11_ = page_get_crop_y (_tmp10_);
+#line 634 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp12_ = _tmp11_;
+#line 634 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->selected_crop_y = _tmp12_;
+#line 635 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp13_ = self->priv->_page;
+#line 635 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp14_ = page_get_crop_width (_tmp13_);
+#line 635 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp15_ = _tmp14_;
+#line 635 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->selected_crop_w = _tmp15_;
+#line 636 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp16_ = self->priv->_page;
+#line 636 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp17_ = page_get_crop_height (_tmp16_);
+#line 636 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp18_ = _tmp17_;
+#line 636 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->selected_crop_h = _tmp18_;
+#line 4290 "page-view.c"
+ }
+}
+
+
+void page_view_motion (PageView* self, gint x, gint y) {
+ CropLocation location = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ CropLocation _tmp2_ = 0;
+ GdkCursorType cursor = 0;
+ CropLocation _tmp3_ = 0;
+ CropLocation _tmp4_ = 0;
+ gint pw = 0;
+ Page* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint ph = 0;
+ Page* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint cw = 0;
+ Page* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint ch = 0;
+ Page* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint dx = 0;
+ gint _tmp18_ = 0;
+ gdouble _tmp19_ = 0.0;
+ gint _tmp20_ = 0;
+ gint dy = 0;
+ gint _tmp21_ = 0;
+ gdouble _tmp22_ = 0.0;
+ gint _tmp23_ = 0;
+ gint new_x = 0;
+ gint _tmp24_ = 0;
+ gint new_y = 0;
+ gint _tmp25_ = 0;
+ gint new_w = 0;
+ gint _tmp26_ = 0;
+ gint new_h = 0;
+ gint _tmp27_ = 0;
+ gint min_size = 0;
+ gint _tmp28_ = 0;
+ gboolean _tmp29_ = FALSE;
+ gboolean _tmp30_ = FALSE;
+ CropLocation _tmp31_ = 0;
+ gboolean _tmp42_ = FALSE;
+ gboolean _tmp43_ = FALSE;
+ CropLocation _tmp44_ = 0;
+ gboolean _tmp55_ = FALSE;
+ gboolean _tmp56_ = FALSE;
+ CropLocation _tmp57_ = 0;
+ gboolean _tmp72_ = FALSE;
+ gboolean _tmp73_ = FALSE;
+ CropLocation _tmp74_ = 0;
+ CropLocation _tmp89_ = 0;
+ CropLocation _tmp110_ = 0;
+ gboolean _tmp115_ = FALSE;
+ gboolean _tmp116_ = FALSE;
+ CropLocation _tmp117_ = 0;
+ gboolean _tmp124_ = FALSE;
+ gboolean _tmp125_ = FALSE;
+ CropLocation _tmp126_ = 0;
+ gboolean _tmp133_ = FALSE;
+ gboolean _tmp134_ = FALSE;
+ CropLocation _tmp135_ = 0;
+ gboolean _tmp140_ = FALSE;
+ gboolean _tmp141_ = FALSE;
+ CropLocation _tmp142_ = 0;
+ Page* _tmp147_ = NULL;
+ gint _tmp148_ = 0;
+ gint _tmp149_ = 0;
+ gboolean _tmp150_ = FALSE;
+ gint _tmp151_ = 0;
+ gint _tmp152_ = 0;
+#line 640 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 642 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = x;
+#line 642 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = y;
+#line 642 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = page_view_get_crop_location (self, _tmp0_, _tmp1_);
+#line 642 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ location = _tmp2_;
+#line 644 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = location;
+#line 644 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ switch (_tmp3_) {
+#line 644 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case CROP_LOCATION_MIDDLE:
+#line 4385 "page-view.c"
+ {
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cursor = GDK_HAND1;
+#line 648 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 4391 "page-view.c"
+ }
+#line 644 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case CROP_LOCATION_TOP:
+#line 4395 "page-view.c"
+ {
+#line 650 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cursor = GDK_TOP_SIDE;
+#line 651 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 4401 "page-view.c"
+ }
+#line 644 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case CROP_LOCATION_BOTTOM:
+#line 4405 "page-view.c"
+ {
+#line 653 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cursor = GDK_BOTTOM_SIDE;
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 4411 "page-view.c"
+ }
+#line 644 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case CROP_LOCATION_LEFT:
+#line 4415 "page-view.c"
+ {
+#line 656 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cursor = GDK_LEFT_SIDE;
+#line 657 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 4421 "page-view.c"
+ }
+#line 644 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case CROP_LOCATION_RIGHT:
+#line 4425 "page-view.c"
+ {
+#line 659 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cursor = GDK_RIGHT_SIDE;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 4431 "page-view.c"
+ }
+#line 644 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case CROP_LOCATION_TOP_LEFT:
+#line 4435 "page-view.c"
+ {
+#line 662 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cursor = GDK_TOP_LEFT_CORNER;
+#line 663 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 4441 "page-view.c"
+ }
+#line 644 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case CROP_LOCATION_TOP_RIGHT:
+#line 4445 "page-view.c"
+ {
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cursor = GDK_TOP_RIGHT_CORNER;
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 4451 "page-view.c"
+ }
+#line 644 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case CROP_LOCATION_BOTTOM_LEFT:
+#line 4455 "page-view.c"
+ {
+#line 668 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cursor = GDK_BOTTOM_LEFT_CORNER;
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 4461 "page-view.c"
+ }
+#line 644 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case CROP_LOCATION_BOTTOM_RIGHT:
+#line 4465 "page-view.c"
+ {
+#line 671 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cursor = GDK_BOTTOM_RIGHT_CORNER;
+#line 672 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 4471 "page-view.c"
+ }
+ default:
+ {
+#line 674 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cursor = GDK_ARROW;
+#line 675 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 4479 "page-view.c"
+ }
+ }
+#line 678 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = self->priv->crop_location;
+#line 678 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp4_ == CROP_LOCATION_NONE) {
+#line 4486 "page-view.c"
+ GdkCursorType _tmp5_ = 0;
+#line 680 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp5_ = cursor;
+#line 680 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_set_cursor (self, _tmp5_);
+#line 681 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return;
+#line 4494 "page-view.c"
+ }
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp6_ = self->priv->_page;
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp7_ = page_get_width (_tmp6_);
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp8_ = _tmp7_;
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ pw = _tmp8_;
+#line 686 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp9_ = self->priv->_page;
+#line 686 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp10_ = page_get_height (_tmp9_);
+#line 686 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp11_ = _tmp10_;
+#line 686 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ ph = _tmp11_;
+#line 687 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp12_ = self->priv->_page;
+#line 687 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp13_ = page_get_crop_width (_tmp12_);
+#line 687 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp14_ = _tmp13_;
+#line 687 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cw = _tmp14_;
+#line 688 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp15_ = self->priv->_page;
+#line 688 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp16_ = page_get_crop_height (_tmp15_);
+#line 688 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp17_ = _tmp16_;
+#line 688 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ ch = _tmp17_;
+#line 690 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp18_ = x;
+#line 690 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp19_ = self->priv->selected_crop_px;
+#line 690 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp20_ = page_view_screen_to_page_x (self, _tmp18_ - ((gint) _tmp19_));
+#line 690 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dx = _tmp20_;
+#line 691 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp21_ = y;
+#line 691 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp22_ = self->priv->selected_crop_py;
+#line 691 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp23_ = page_view_screen_to_page_y (self, _tmp21_ - ((gint) _tmp22_));
+#line 691 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dy = _tmp23_;
+#line 693 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp24_ = self->priv->selected_crop_x;
+#line 693 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ new_x = _tmp24_;
+#line 694 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp25_ = self->priv->selected_crop_y;
+#line 694 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ new_y = _tmp25_;
+#line 695 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp26_ = self->priv->selected_crop_w;
+#line 695 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ new_w = _tmp26_;
+#line 696 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp27_ = self->priv->selected_crop_h;
+#line 696 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ new_h = _tmp27_;
+#line 699 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp28_ = page_view_screen_to_page_x (self, 15);
+#line 699 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ min_size = _tmp28_;
+#line 700 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp31_ = self->priv->crop_location;
+#line 700 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp31_ == CROP_LOCATION_TOP_LEFT) {
+#line 700 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp30_ = TRUE;
+#line 4570 "page-view.c"
+ } else {
+ CropLocation _tmp32_ = 0;
+#line 701 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp32_ = self->priv->crop_location;
+#line 701 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp30_ = _tmp32_ == CROP_LOCATION_LEFT;
+#line 4577 "page-view.c"
+ }
+#line 700 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp30_) {
+#line 700 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp29_ = TRUE;
+#line 4583 "page-view.c"
+ } else {
+ CropLocation _tmp33_ = 0;
+#line 702 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp33_ = self->priv->crop_location;
+#line 702 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp29_ = _tmp33_ == CROP_LOCATION_BOTTOM_LEFT;
+#line 4590 "page-view.c"
+ }
+#line 700 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp29_) {
+#line 4594 "page-view.c"
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+#line 704 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp34_ = dx;
+#line 704 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp35_ = new_w;
+#line 704 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp36_ = min_size;
+#line 704 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp34_ > (_tmp35_ - _tmp36_)) {
+#line 4608 "page-view.c"
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+#line 705 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp37_ = new_w;
+#line 705 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp38_ = min_size;
+#line 705 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dx = _tmp37_ - _tmp38_;
+#line 4617 "page-view.c"
+ }
+#line 706 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp39_ = new_x;
+#line 706 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp40_ = dx;
+#line 706 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if ((_tmp39_ + _tmp40_) < 0) {
+#line 4625 "page-view.c"
+ gint _tmp41_ = 0;
+#line 707 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp41_ = new_x;
+#line 707 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dx = -_tmp41_;
+#line 4631 "page-view.c"
+ }
+ }
+#line 709 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp44_ = self->priv->crop_location;
+#line 709 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp44_ == CROP_LOCATION_TOP_LEFT) {
+#line 709 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp43_ = TRUE;
+#line 4640 "page-view.c"
+ } else {
+ CropLocation _tmp45_ = 0;
+#line 710 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp45_ = self->priv->crop_location;
+#line 710 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp43_ = _tmp45_ == CROP_LOCATION_TOP;
+#line 4647 "page-view.c"
+ }
+#line 709 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp43_) {
+#line 709 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp42_ = TRUE;
+#line 4653 "page-view.c"
+ } else {
+ CropLocation _tmp46_ = 0;
+#line 711 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp46_ = self->priv->crop_location;
+#line 711 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp42_ = _tmp46_ == CROP_LOCATION_TOP_RIGHT;
+#line 4660 "page-view.c"
+ }
+#line 709 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp42_) {
+#line 4664 "page-view.c"
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+ gint _tmp49_ = 0;
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+#line 713 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp47_ = dy;
+#line 713 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp48_ = new_h;
+#line 713 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp49_ = min_size;
+#line 713 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp47_ > (_tmp48_ - _tmp49_)) {
+#line 4678 "page-view.c"
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+#line 714 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp50_ = new_h;
+#line 714 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp51_ = min_size;
+#line 714 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dy = _tmp50_ - _tmp51_;
+#line 4687 "page-view.c"
+ }
+#line 715 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp52_ = new_y;
+#line 715 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp53_ = dy;
+#line 715 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if ((_tmp52_ + _tmp53_) < 0) {
+#line 4695 "page-view.c"
+ gint _tmp54_ = 0;
+#line 716 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp54_ = new_y;
+#line 716 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dy = -_tmp54_;
+#line 4701 "page-view.c"
+ }
+ }
+#line 719 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp57_ = self->priv->crop_location;
+#line 719 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp57_ == CROP_LOCATION_TOP_RIGHT) {
+#line 719 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp56_ = TRUE;
+#line 4710 "page-view.c"
+ } else {
+ CropLocation _tmp58_ = 0;
+#line 720 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp58_ = self->priv->crop_location;
+#line 720 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp56_ = _tmp58_ == CROP_LOCATION_RIGHT;
+#line 4717 "page-view.c"
+ }
+#line 719 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp56_) {
+#line 719 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp55_ = TRUE;
+#line 4723 "page-view.c"
+ } else {
+ CropLocation _tmp59_ = 0;
+#line 721 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp59_ = self->priv->crop_location;
+#line 721 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp55_ = _tmp59_ == CROP_LOCATION_BOTTOM_RIGHT;
+#line 4730 "page-view.c"
+ }
+#line 719 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp55_) {
+#line 4734 "page-view.c"
+ gint _tmp60_ = 0;
+ gint _tmp61_ = 0;
+ gint _tmp62_ = 0;
+ gint _tmp65_ = 0;
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+ gint _tmp68_ = 0;
+#line 723 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp60_ = dx;
+#line 723 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp61_ = min_size;
+#line 723 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp62_ = new_w;
+#line 723 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp60_ < (_tmp61_ - _tmp62_)) {
+#line 4750 "page-view.c"
+ gint _tmp63_ = 0;
+ gint _tmp64_ = 0;
+#line 724 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp63_ = min_size;
+#line 724 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp64_ = new_w;
+#line 724 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dx = _tmp63_ - _tmp64_;
+#line 4759 "page-view.c"
+ }
+#line 725 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp65_ = new_x;
+#line 725 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp66_ = new_w;
+#line 725 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp67_ = dx;
+#line 725 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp68_ = pw;
+#line 725 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (((_tmp65_ + _tmp66_) + _tmp67_) > _tmp68_) {
+#line 4771 "page-view.c"
+ gint _tmp69_ = 0;
+ gint _tmp70_ = 0;
+ gint _tmp71_ = 0;
+#line 726 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp69_ = pw;
+#line 726 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp70_ = new_x;
+#line 726 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp71_ = new_w;
+#line 726 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dx = (_tmp69_ - _tmp70_) - _tmp71_;
+#line 4783 "page-view.c"
+ }
+ }
+#line 728 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp74_ = self->priv->crop_location;
+#line 728 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp74_ == CROP_LOCATION_BOTTOM_LEFT) {
+#line 728 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp73_ = TRUE;
+#line 4792 "page-view.c"
+ } else {
+ CropLocation _tmp75_ = 0;
+#line 729 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp75_ = self->priv->crop_location;
+#line 729 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp73_ = _tmp75_ == CROP_LOCATION_BOTTOM;
+#line 4799 "page-view.c"
+ }
+#line 728 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp73_) {
+#line 728 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp72_ = TRUE;
+#line 4805 "page-view.c"
+ } else {
+ CropLocation _tmp76_ = 0;
+#line 730 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp76_ = self->priv->crop_location;
+#line 730 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp72_ = _tmp76_ == CROP_LOCATION_BOTTOM_RIGHT;
+#line 4812 "page-view.c"
+ }
+#line 728 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp72_) {
+#line 4816 "page-view.c"
+ gint _tmp77_ = 0;
+ gint _tmp78_ = 0;
+ gint _tmp79_ = 0;
+ gint _tmp82_ = 0;
+ gint _tmp83_ = 0;
+ gint _tmp84_ = 0;
+ gint _tmp85_ = 0;
+#line 732 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp77_ = dy;
+#line 732 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp78_ = min_size;
+#line 732 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp79_ = new_h;
+#line 732 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp77_ < (_tmp78_ - _tmp79_)) {
+#line 4832 "page-view.c"
+ gint _tmp80_ = 0;
+ gint _tmp81_ = 0;
+#line 733 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp80_ = min_size;
+#line 733 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp81_ = new_h;
+#line 733 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dy = _tmp80_ - _tmp81_;
+#line 4841 "page-view.c"
+ }
+#line 734 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp82_ = new_y;
+#line 734 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp83_ = new_h;
+#line 734 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp84_ = dy;
+#line 734 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp85_ = ph;
+#line 734 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (((_tmp82_ + _tmp83_) + _tmp84_) > _tmp85_) {
+#line 4853 "page-view.c"
+ gint _tmp86_ = 0;
+ gint _tmp87_ = 0;
+ gint _tmp88_ = 0;
+#line 735 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp86_ = ph;
+#line 735 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp87_ = new_y;
+#line 735 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp88_ = new_h;
+#line 735 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dy = (_tmp86_ - _tmp87_) - _tmp88_;
+#line 4865 "page-view.c"
+ }
+ }
+#line 737 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp89_ = self->priv->crop_location;
+#line 737 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp89_ == CROP_LOCATION_MIDDLE) {
+#line 4872 "page-view.c"
+ gint _tmp90_ = 0;
+ gint _tmp91_ = 0;
+ gint _tmp92_ = 0;
+ gint _tmp93_ = 0;
+ gint _tmp97_ = 0;
+ gint _tmp98_ = 0;
+ gint _tmp100_ = 0;
+ gint _tmp101_ = 0;
+ gint _tmp102_ = 0;
+ gint _tmp103_ = 0;
+ gint _tmp107_ = 0;
+ gint _tmp108_ = 0;
+#line 739 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp90_ = new_x;
+#line 739 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp91_ = dx;
+#line 739 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp92_ = new_w;
+#line 739 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp93_ = pw;
+#line 739 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (((_tmp90_ + _tmp91_) + _tmp92_) > _tmp93_) {
+#line 4895 "page-view.c"
+ gint _tmp94_ = 0;
+ gint _tmp95_ = 0;
+ gint _tmp96_ = 0;
+#line 740 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp94_ = pw;
+#line 740 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp95_ = new_x;
+#line 740 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp96_ = new_w;
+#line 740 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dx = (_tmp94_ - _tmp95_) - _tmp96_;
+#line 4907 "page-view.c"
+ }
+#line 741 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp97_ = new_x;
+#line 741 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp98_ = dx;
+#line 741 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if ((_tmp97_ + _tmp98_) < 0) {
+#line 4915 "page-view.c"
+ gint _tmp99_ = 0;
+#line 742 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp99_ = new_x;
+#line 742 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dx = -_tmp99_;
+#line 4921 "page-view.c"
+ }
+#line 743 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp100_ = new_y;
+#line 743 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp101_ = dy;
+#line 743 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp102_ = new_h;
+#line 743 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp103_ = ph;
+#line 743 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (((_tmp100_ + _tmp101_) + _tmp102_) > _tmp103_) {
+#line 4933 "page-view.c"
+ gint _tmp104_ = 0;
+ gint _tmp105_ = 0;
+ gint _tmp106_ = 0;
+#line 744 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp104_ = ph;
+#line 744 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp105_ = new_y;
+#line 744 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp106_ = new_h;
+#line 744 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dy = (_tmp104_ - _tmp105_) - _tmp106_;
+#line 4945 "page-view.c"
+ }
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp107_ = new_y;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp108_ = dy;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if ((_tmp107_ + _tmp108_) < 0) {
+#line 4953 "page-view.c"
+ gint _tmp109_ = 0;
+#line 746 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp109_ = new_y;
+#line 746 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dy = -_tmp109_;
+#line 4959 "page-view.c"
+ }
+ }
+#line 750 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp110_ = self->priv->crop_location;
+#line 750 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp110_ == CROP_LOCATION_MIDDLE) {
+#line 4966 "page-view.c"
+ gint _tmp111_ = 0;
+ gint _tmp112_ = 0;
+ gint _tmp113_ = 0;
+ gint _tmp114_ = 0;
+#line 752 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp111_ = new_x;
+#line 752 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp112_ = dx;
+#line 752 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ new_x = _tmp111_ + _tmp112_;
+#line 753 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp113_ = new_y;
+#line 753 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp114_ = dy;
+#line 753 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ new_y = _tmp113_ + _tmp114_;
+#line 4983 "page-view.c"
+ }
+#line 755 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp117_ = self->priv->crop_location;
+#line 755 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp117_ == CROP_LOCATION_TOP_LEFT) {
+#line 755 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp116_ = TRUE;
+#line 4991 "page-view.c"
+ } else {
+ CropLocation _tmp118_ = 0;
+#line 756 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp118_ = self->priv->crop_location;
+#line 756 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp116_ = _tmp118_ == CROP_LOCATION_LEFT;
+#line 4998 "page-view.c"
+ }
+#line 755 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp116_) {
+#line 755 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp115_ = TRUE;
+#line 5004 "page-view.c"
+ } else {
+ CropLocation _tmp119_ = 0;
+#line 757 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp119_ = self->priv->crop_location;
+#line 757 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp115_ = _tmp119_ == CROP_LOCATION_BOTTOM_LEFT;
+#line 5011 "page-view.c"
+ }
+#line 755 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp115_) {
+#line 5015 "page-view.c"
+ gint _tmp120_ = 0;
+ gint _tmp121_ = 0;
+ gint _tmp122_ = 0;
+ gint _tmp123_ = 0;
+#line 759 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp120_ = new_x;
+#line 759 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp121_ = dx;
+#line 759 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ new_x = _tmp120_ + _tmp121_;
+#line 760 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp122_ = new_w;
+#line 760 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp123_ = dx;
+#line 760 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ new_w = _tmp122_ - _tmp123_;
+#line 5032 "page-view.c"
+ }
+#line 762 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp126_ = self->priv->crop_location;
+#line 762 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp126_ == CROP_LOCATION_TOP_LEFT) {
+#line 762 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp125_ = TRUE;
+#line 5040 "page-view.c"
+ } else {
+ CropLocation _tmp127_ = 0;
+#line 763 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp127_ = self->priv->crop_location;
+#line 763 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp125_ = _tmp127_ == CROP_LOCATION_TOP;
+#line 5047 "page-view.c"
+ }
+#line 762 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp125_) {
+#line 762 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp124_ = TRUE;
+#line 5053 "page-view.c"
+ } else {
+ CropLocation _tmp128_ = 0;
+#line 764 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp128_ = self->priv->crop_location;
+#line 764 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp124_ = _tmp128_ == CROP_LOCATION_TOP_RIGHT;
+#line 5060 "page-view.c"
+ }
+#line 762 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp124_) {
+#line 5064 "page-view.c"
+ gint _tmp129_ = 0;
+ gint _tmp130_ = 0;
+ gint _tmp131_ = 0;
+ gint _tmp132_ = 0;
+#line 766 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp129_ = new_y;
+#line 766 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp130_ = dy;
+#line 766 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ new_y = _tmp129_ + _tmp130_;
+#line 767 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp131_ = new_h;
+#line 767 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp132_ = dy;
+#line 767 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ new_h = _tmp131_ - _tmp132_;
+#line 5081 "page-view.c"
+ }
+#line 770 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp135_ = self->priv->crop_location;
+#line 770 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp135_ == CROP_LOCATION_TOP_RIGHT) {
+#line 770 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp134_ = TRUE;
+#line 5089 "page-view.c"
+ } else {
+ CropLocation _tmp136_ = 0;
+#line 771 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp136_ = self->priv->crop_location;
+#line 771 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp134_ = _tmp136_ == CROP_LOCATION_RIGHT;
+#line 5096 "page-view.c"
+ }
+#line 770 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp134_) {
+#line 770 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp133_ = TRUE;
+#line 5102 "page-view.c"
+ } else {
+ CropLocation _tmp137_ = 0;
+#line 772 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp137_ = self->priv->crop_location;
+#line 772 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp133_ = _tmp137_ == CROP_LOCATION_BOTTOM_RIGHT;
+#line 5109 "page-view.c"
+ }
+#line 770 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp133_) {
+#line 5113 "page-view.c"
+ gint _tmp138_ = 0;
+ gint _tmp139_ = 0;
+#line 773 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp138_ = new_w;
+#line 773 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp139_ = dx;
+#line 773 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ new_w = _tmp138_ + _tmp139_;
+#line 5122 "page-view.c"
+ }
+#line 774 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp142_ = self->priv->crop_location;
+#line 774 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp142_ == CROP_LOCATION_BOTTOM_LEFT) {
+#line 774 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp141_ = TRUE;
+#line 5130 "page-view.c"
+ } else {
+ CropLocation _tmp143_ = 0;
+#line 775 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp143_ = self->priv->crop_location;
+#line 775 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp141_ = _tmp143_ == CROP_LOCATION_BOTTOM;
+#line 5137 "page-view.c"
+ }
+#line 774 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp141_) {
+#line 774 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp140_ = TRUE;
+#line 5143 "page-view.c"
+ } else {
+ CropLocation _tmp144_ = 0;
+#line 776 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp144_ = self->priv->crop_location;
+#line 776 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp140_ = _tmp144_ == CROP_LOCATION_BOTTOM_RIGHT;
+#line 5150 "page-view.c"
+ }
+#line 774 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp140_) {
+#line 5154 "page-view.c"
+ gint _tmp145_ = 0;
+ gint _tmp146_ = 0;
+#line 777 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp145_ = new_h;
+#line 777 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp146_ = dy;
+#line 777 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ new_h = _tmp145_ + _tmp146_;
+#line 5163 "page-view.c"
+ }
+#line 779 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp147_ = self->priv->_page;
+#line 779 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp148_ = new_x;
+#line 779 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp149_ = new_y;
+#line 779 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_move_crop (_tmp147_, _tmp148_, _tmp149_);
+#line 782 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp151_ = new_w;
+#line 782 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp152_ = cw;
+#line 782 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp151_ != _tmp152_) {
+#line 782 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp150_ = TRUE;
+#line 5181 "page-view.c"
+ } else {
+ gint _tmp153_ = 0;
+ gint _tmp154_ = 0;
+#line 782 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp153_ = new_h;
+#line 782 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp154_ = ch;
+#line 782 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp150_ = _tmp153_ != _tmp154_;
+#line 5191 "page-view.c"
+ }
+#line 782 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp150_) {
+#line 5195 "page-view.c"
+ Page* _tmp155_ = NULL;
+ gint _tmp156_ = 0;
+ gint _tmp157_ = 0;
+#line 783 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp155_ = self->priv->_page;
+#line 783 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp156_ = new_w;
+#line 783 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp157_ = new_h;
+#line 783 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_set_custom_crop (_tmp155_, _tmp156_, _tmp157_);
+#line 5207 "page-view.c"
+ }
+}
+
+
+void page_view_button_release (PageView* self, gint x, gint y) {
+#line 786 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 789 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->crop_location = CROP_LOCATION_NONE;
+#line 790 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_emit_by_name (self, "changed");
+#line 5219 "page-view.c"
+}
+
+
+static gboolean page_view_animation_cb (PageView* self) {
+ gboolean result = FALSE;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 793 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 795 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = self->priv->animate_segment;
+#line 795 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = self->priv->animate_n_segments;
+#line 795 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->animate_segment = (_tmp0_ + 1) % _tmp1_;
+#line 796 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_emit_by_name (self, "changed");
+#line 797 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = TRUE;
+#line 797 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 5241 "page-view.c"
+}
+
+
+static gboolean _page_view_animation_cb_gsource_func (gpointer self) {
+ gboolean result;
+ result = page_view_animation_cb ((PageView*) self);
+#line 813 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 5250 "page-view.c"
+}
+
+
+static void page_view_update_animation (PageView* self) {
+ gboolean animate = FALSE;
+ gboolean is_animating = FALSE;
+ gboolean _tmp0_ = FALSE;
+ Page* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ guint _tmp7_ = 0U;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 800 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 804 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = self->priv->_page;
+#line 804 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = page_get_is_scanning (_tmp1_);
+#line 804 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = _tmp2_;
+#line 804 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp3_) {
+#line 5275 "page-view.c"
+ Page* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+#line 804 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = self->priv->_page;
+#line 804 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp5_ = page_get_has_data (_tmp4_);
+#line 804 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp6_ = _tmp5_;
+#line 804 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = !_tmp6_;
+#line 5287 "page-view.c"
+ } else {
+#line 804 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = FALSE;
+#line 5291 "page-view.c"
+ }
+#line 804 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ animate = _tmp0_;
+#line 805 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp7_ = self->priv->animate_timeout;
+#line 805 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ is_animating = _tmp7_ != ((guint) 0);
+#line 806 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp8_ = animate;
+#line 806 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp9_ = is_animating;
+#line 806 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp8_ == _tmp9_) {
+#line 807 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return;
+#line 5307 "page-view.c"
+ }
+#line 809 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp10_ = animate;
+#line 809 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp10_) {
+#line 5313 "page-view.c"
+ guint _tmp11_ = 0U;
+#line 811 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->animate_segment = 0;
+#line 812 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp11_ = self->priv->animate_timeout;
+#line 812 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp11_ == ((guint) 0)) {
+#line 5321 "page-view.c"
+ guint _tmp12_ = 0U;
+#line 813 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp12_ = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 150, _page_view_animation_cb_gsource_func, page_view_ref (self), page_view_unref);
+#line 813 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->animate_timeout = _tmp12_;
+#line 5327 "page-view.c"
+ }
+ } else {
+ guint _tmp13_ = 0U;
+#line 817 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp13_ = self->priv->animate_timeout;
+#line 817 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp13_ != ((guint) 0)) {
+#line 5335 "page-view.c"
+ guint _tmp14_ = 0U;
+#line 818 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp14_ = self->priv->animate_timeout;
+#line 818 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_source_remove (_tmp14_);
+#line 5341 "page-view.c"
+ }
+#line 819 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->animate_timeout = (guint) 0;
+#line 5345 "page-view.c"
+ }
+}
+
+
+void page_view_render (PageView* self, cairo_t* context) {
+ gint w = 0;
+ gint _tmp0_ = 0;
+ gint h = 0;
+ gint _tmp1_ = 0;
+ cairo_t* _tmp2_ = NULL;
+ cairo_t* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ cairo_t* _tmp6_ = NULL;
+ cairo_t* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ cairo_t* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ cairo_t* _tmp16_ = NULL;
+ cairo_t* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ cairo_t* _tmp20_ = NULL;
+ GdkPixbuf* _tmp21_ = NULL;
+ cairo_t* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ Page* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp70_ = FALSE;
+ Page* _tmp71_ = NULL;
+ gboolean _tmp72_ = FALSE;
+ gboolean _tmp73_ = FALSE;
+ Page* _tmp118_ = NULL;
+ gboolean _tmp119_ = FALSE;
+ gboolean _tmp120_ = FALSE;
+#line 823 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 823 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (context != NULL);
+#line 825 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_update_animation (self);
+#line 826 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_update_page_view (self);
+#line 828 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = page_view_get_preview_width (self);
+#line 828 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ w = _tmp0_;
+#line 829 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = page_view_get_preview_height (self);
+#line 829 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ h = _tmp1_;
+#line 831 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = context;
+#line 831 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_set_line_width (_tmp2_, (gdouble) 1);
+#line 832 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = context;
+#line 832 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = self->priv->_x_offset;
+#line 832 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp5_ = self->priv->_y_offset;
+#line 832 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_translate (_tmp3_, (gdouble) _tmp4_, (gdouble) _tmp5_);
+#line 835 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp6_ = context;
+#line 835 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_set_source_rgb (_tmp6_, (gdouble) 0, (gdouble) 0, (gdouble) 0);
+#line 836 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp7_ = context;
+#line 836 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp8_ = self->priv->border_width;
+#line 836 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_set_line_width (_tmp7_, (gdouble) _tmp8_);
+#line 837 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp9_ = context;
+#line 837 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp10_ = self->priv->border_width;
+#line 837 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp11_ = self->priv->border_width;
+#line 837 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp12_ = self->priv->width_;
+#line 837 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp13_ = self->priv->border_width;
+#line 837 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp14_ = self->priv->height_;
+#line 837 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp15_ = self->priv->border_width;
+#line 837 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_rectangle (_tmp9_, ((gdouble) _tmp10_) / 2, ((gdouble) _tmp11_) / 2, (gdouble) (_tmp12_ - _tmp13_), (gdouble) (_tmp14_ - _tmp15_));
+#line 841 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp16_ = context;
+#line 841 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_stroke (_tmp16_);
+#line 844 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp17_ = context;
+#line 844 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp18_ = self->priv->border_width;
+#line 844 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp19_ = self->priv->border_width;
+#line 844 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_translate (_tmp17_, (gdouble) _tmp18_, (gdouble) _tmp19_);
+#line 845 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp20_ = context;
+#line 845 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp21_ = self->priv->image;
+#line 845 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ gdk_cairo_set_source_pixbuf (_tmp20_, _tmp21_, (gdouble) 0, (gdouble) 0);
+#line 846 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp22_ = context;
+#line 846 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_paint (_tmp22_);
+#line 849 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp24_ = self->priv->_page;
+#line 849 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp25_ = page_get_is_scanning (_tmp24_);
+#line 849 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp26_ = _tmp25_;
+#line 849 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp26_) {
+#line 5471 "page-view.c"
+ Page* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+ gboolean _tmp29_ = FALSE;
+#line 849 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp27_ = self->priv->_page;
+#line 849 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp28_ = page_get_has_data (_tmp27_);
+#line 849 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp29_ = _tmp28_;
+#line 849 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp23_ = !_tmp29_;
+#line 5483 "page-view.c"
+ } else {
+#line 849 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp23_ = FALSE;
+#line 5487 "page-view.c"
+ }
+#line 849 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp23_) {
+#line 5491 "page-view.c"
+ gdouble outer_radius = 0.0;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ gdouble arc = 0.0;
+ gint _tmp34_ = 0;
+ gdouble x = 0.0;
+ gdouble _tmp35_ = 0.0;
+ gdouble _tmp36_ = 0.0;
+ gdouble _tmp37_ = 0.0;
+ gdouble y = 0.0;
+ gdouble _tmp38_ = 0.0;
+ gdouble _tmp39_ = 0.0;
+ gdouble _tmp40_ = 0.0;
+ gdouble inner_radius = 0.0;
+ gdouble _tmp41_ = 0.0;
+ gdouble _tmp42_ = 0.0;
+ gdouble _tmp43_ = 0.0;
+ gdouble _tmp44_ = 0.0;
+ gdouble _tmp45_ = 0.0;
+ gdouble offset = 0.0;
+#line 852 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp30_ = w;
+#line 852 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp31_ = h;
+#line 852 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp30_ > _tmp31_) {
+#line 5518 "page-view.c"
+ gint _tmp32_ = 0;
+#line 853 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp32_ = w;
+#line 853 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ outer_radius = 0.15 * _tmp32_;
+#line 5524 "page-view.c"
+ } else {
+ gint _tmp33_ = 0;
+#line 855 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp33_ = h;
+#line 855 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ outer_radius = 0.15 * _tmp33_;
+#line 5531 "page-view.c"
+ }
+#line 856 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp34_ = self->priv->animate_n_segments;
+#line 856 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ arc = G_PI / _tmp34_;
+#line 859 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp35_ = outer_radius;
+#line 859 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp36_ = arc;
+#line 859 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp37_ = sin (_tmp36_);
+#line 859 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = _tmp35_ * _tmp37_;
+#line 860 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp38_ = outer_radius;
+#line 860 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp39_ = arc;
+#line 860 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp40_ = cos (_tmp39_);
+#line 860 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = _tmp38_ * (_tmp40_ - 1.0);
+#line 861 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp41_ = x;
+#line 861 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp42_ = x;
+#line 861 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp43_ = y;
+#line 861 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp44_ = y;
+#line 861 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp45_ = sqrt ((_tmp41_ * _tmp42_) + (_tmp43_ * _tmp44_));
+#line 861 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ inner_radius = 0.6 * _tmp45_;
+#line 863 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ offset = 0.0;
+#line 5567 "page-view.c"
+ {
+ gint i = 0;
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ i = 0;
+#line 5572 "page-view.c"
+ {
+ gboolean _tmp46_ = FALSE;
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp46_ = TRUE;
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ while (TRUE) {
+#line 5579 "page-view.c"
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+ gint _tmp52_ = 0;
+ gdouble _tmp53_ = 0.0;
+ gdouble _tmp54_ = 0.0;
+ gdouble _tmp55_ = 0.0;
+ gint _tmp56_ = 0;
+ gdouble _tmp57_ = 0.0;
+ gdouble _tmp58_ = 0.0;
+ gdouble _tmp59_ = 0.0;
+ cairo_t* _tmp60_ = NULL;
+ gdouble _tmp61_ = 0.0;
+ gdouble _tmp62_ = 0.0;
+ gdouble _tmp63_ = 0.0;
+ gint _tmp64_ = 0;
+ gint _tmp65_ = 0;
+ cairo_t* _tmp68_ = NULL;
+ cairo_t* _tmp69_ = NULL;
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!_tmp46_) {
+#line 5600 "page-view.c"
+ gint _tmp47_ = 0;
+ gdouble _tmp48_ = 0.0;
+ gdouble _tmp49_ = 0.0;
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp47_ = i;
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ i = _tmp47_ + 1;
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp48_ = offset;
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp49_ = arc;
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ offset = _tmp48_ + (_tmp49_ * 2);
+#line 5614 "page-view.c"
+ }
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp46_ = FALSE;
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp50_ = i;
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp51_ = self->priv->animate_n_segments;
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!(_tmp50_ < _tmp51_)) {
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 5626 "page-view.c"
+ }
+#line 866 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp52_ = w;
+#line 866 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp53_ = outer_radius;
+#line 866 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp54_ = offset;
+#line 866 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp55_ = sin (_tmp54_);
+#line 866 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = (_tmp52_ / 2) + (_tmp53_ * _tmp55_);
+#line 867 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp56_ = h;
+#line 867 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp57_ = outer_radius;
+#line 867 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp58_ = offset;
+#line 867 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp59_ = cos (_tmp58_);
+#line 867 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = (_tmp56_ / 2) - (_tmp57_ * _tmp59_);
+#line 868 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp60_ = context;
+#line 868 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp61_ = x;
+#line 868 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp62_ = y;
+#line 868 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp63_ = inner_radius;
+#line 868 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_arc (_tmp60_, _tmp61_, _tmp62_, _tmp63_, (gdouble) 0, 2 * G_PI);
+#line 870 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp64_ = i;
+#line 870 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp65_ = self->priv->animate_segment;
+#line 870 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp64_ == _tmp65_) {
+#line 5664 "page-view.c"
+ cairo_t* _tmp66_ = NULL;
+ cairo_t* _tmp67_ = NULL;
+#line 872 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp66_ = context;
+#line 872 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_set_source_rgb (_tmp66_, 0.75, 0.75, 0.75);
+#line 873 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp67_ = context;
+#line 873 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_fill_preserve (_tmp67_);
+#line 5675 "page-view.c"
+ }
+#line 876 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp68_ = context;
+#line 876 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_set_source_rgb (_tmp68_, 0.5, 0.5, 0.5);
+#line 877 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp69_ = context;
+#line 877 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_stroke (_tmp69_);
+#line 5685 "page-view.c"
+ }
+ }
+ }
+ }
+#line 882 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp71_ = self->priv->_page;
+#line 882 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp72_ = page_get_is_scanning (_tmp71_);
+#line 882 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp73_ = _tmp72_;
+#line 882 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp73_) {
+#line 5698 "page-view.c"
+ Page* _tmp74_ = NULL;
+ gint _tmp75_ = 0;
+ gint _tmp76_ = 0;
+#line 882 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp74_ = self->priv->_page;
+#line 882 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp75_ = page_get_scan_line (_tmp74_);
+#line 882 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp76_ = _tmp75_;
+#line 882 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp70_ = _tmp76_ > 0;
+#line 5710 "page-view.c"
+ } else {
+#line 882 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp70_ = FALSE;
+#line 5714 "page-view.c"
+ }
+#line 882 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp70_) {
+#line 5718 "page-view.c"
+ gint scan_line = 0;
+ Page* _tmp77_ = NULL;
+ gint _tmp78_ = 0;
+ gint _tmp79_ = 0;
+ gdouble s = 0.0;
+ gdouble x1 = 0.0;
+ gdouble y1 = 0.0;
+ gdouble x2 = 0.0;
+ gdouble y2 = 0.0;
+ Page* _tmp80_ = NULL;
+ ScanDirection _tmp81_ = 0;
+ ScanDirection _tmp82_ = 0;
+ cairo_t* _tmp110_ = NULL;
+ gdouble _tmp111_ = 0.0;
+ gdouble _tmp112_ = 0.0;
+ cairo_t* _tmp113_ = NULL;
+ gdouble _tmp114_ = 0.0;
+ gdouble _tmp115_ = 0.0;
+ cairo_t* _tmp116_ = NULL;
+ cairo_t* _tmp117_ = NULL;
+#line 884 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp77_ = self->priv->_page;
+#line 884 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp78_ = page_get_scan_line (_tmp77_);
+#line 884 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp79_ = _tmp78_;
+#line 884 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ scan_line = _tmp79_;
+#line 888 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp80_ = self->priv->_page;
+#line 888 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp81_ = page_get_scan_direction (_tmp80_);
+#line 888 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp82_ = _tmp81_;
+#line 888 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ switch (_tmp82_) {
+#line 888 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case SCAN_DIRECTION_TOP_TO_BOTTOM:
+#line 5757 "page-view.c"
+ {
+ gint _tmp83_ = 0;
+ gint _tmp84_ = 0;
+ gdouble _tmp85_ = 0.0;
+ gint _tmp86_ = 0;
+ gdouble _tmp87_ = 0.0;
+#line 891 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp83_ = scan_line;
+#line 891 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp84_ = page_view_page_to_screen_y (self, _tmp83_);
+#line 891 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ s = (gdouble) _tmp84_;
+#line 892 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x1 = (gdouble) 0;
+#line 892 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp85_ = s;
+#line 892 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y1 = _tmp85_ + 0.5;
+#line 893 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp86_ = w;
+#line 893 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x2 = (gdouble) _tmp86_;
+#line 893 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp87_ = s;
+#line 893 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y2 = _tmp87_ + 0.5;
+#line 894 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 5786 "page-view.c"
+ }
+#line 888 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case SCAN_DIRECTION_BOTTOM_TO_TOP:
+#line 5790 "page-view.c"
+ {
+ gint _tmp88_ = 0;
+ gint _tmp89_ = 0;
+ gint _tmp90_ = 0;
+ gdouble _tmp91_ = 0.0;
+ gint _tmp92_ = 0;
+ gint _tmp93_ = 0;
+ gdouble _tmp94_ = 0.0;
+#line 896 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp88_ = scan_line;
+#line 896 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp89_ = page_view_page_to_screen_y (self, _tmp88_);
+#line 896 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ s = (gdouble) _tmp89_;
+#line 897 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x1 = (gdouble) 0;
+#line 897 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp90_ = h;
+#line 897 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp91_ = s;
+#line 897 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y1 = (_tmp90_ - _tmp91_) + 0.5;
+#line 898 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp92_ = w;
+#line 898 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x2 = (gdouble) _tmp92_;
+#line 898 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp93_ = h;
+#line 898 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp94_ = s;
+#line 898 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y2 = (_tmp93_ - _tmp94_) + 0.5;
+#line 899 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 5825 "page-view.c"
+ }
+#line 888 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case SCAN_DIRECTION_LEFT_TO_RIGHT:
+#line 5829 "page-view.c"
+ {
+ gint _tmp95_ = 0;
+ gint _tmp96_ = 0;
+ gdouble _tmp97_ = 0.0;
+ gdouble _tmp98_ = 0.0;
+ gint _tmp99_ = 0;
+#line 901 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp95_ = scan_line;
+#line 901 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp96_ = page_view_page_to_screen_x (self, _tmp95_);
+#line 901 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ s = (gdouble) _tmp96_;
+#line 902 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp97_ = s;
+#line 902 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x1 = _tmp97_ + 0.5;
+#line 902 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y1 = (gdouble) 0;
+#line 903 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp98_ = s;
+#line 903 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x2 = _tmp98_ + 0.5;
+#line 903 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp99_ = h;
+#line 903 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y2 = (gdouble) _tmp99_;
+#line 904 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 5858 "page-view.c"
+ }
+#line 888 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ case SCAN_DIRECTION_RIGHT_TO_LEFT:
+#line 5862 "page-view.c"
+ {
+ gint _tmp100_ = 0;
+ gint _tmp101_ = 0;
+ gint _tmp102_ = 0;
+ gdouble _tmp103_ = 0.0;
+ gint _tmp104_ = 0;
+ gdouble _tmp105_ = 0.0;
+ gint _tmp106_ = 0;
+#line 906 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp100_ = scan_line;
+#line 906 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp101_ = page_view_page_to_screen_x (self, _tmp100_);
+#line 906 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ s = (gdouble) _tmp101_;
+#line 907 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp102_ = w;
+#line 907 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp103_ = s;
+#line 907 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x1 = (_tmp102_ - _tmp103_) + 0.5;
+#line 907 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y1 = (gdouble) 0;
+#line 908 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp104_ = w;
+#line 908 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp105_ = s;
+#line 908 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x2 = (_tmp104_ - _tmp105_) + 0.5;
+#line 908 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp106_ = h;
+#line 908 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y2 = (gdouble) _tmp106_;
+#line 909 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 5897 "page-view.c"
+ }
+ default:
+ {
+ gdouble _tmp107_ = 0.0;
+ gdouble _tmp108_ = 0.0;
+ gdouble _tmp109_ = 0.0;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y2 = (gdouble) 0;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp107_ = y2;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x2 = _tmp107_;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp108_ = x2;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y1 = _tmp108_;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp109_ = y1;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x1 = _tmp109_;
+#line 912 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ break;
+#line 5920 "page-view.c"
+ }
+ }
+#line 915 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp110_ = context;
+#line 915 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp111_ = x1;
+#line 915 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp112_ = y1;
+#line 915 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_move_to (_tmp110_, _tmp111_, _tmp112_);
+#line 916 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp113_ = context;
+#line 916 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp114_ = x2;
+#line 916 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp115_ = y2;
+#line 916 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_line_to (_tmp113_, _tmp114_, _tmp115_);
+#line 917 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp116_ = context;
+#line 917 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_set_source_rgb (_tmp116_, 1.0, 0.0, 0.0);
+#line 918 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp117_ = context;
+#line 918 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_stroke (_tmp117_);
+#line 5947 "page-view.c"
+ }
+#line 922 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp118_ = self->priv->_page;
+#line 922 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp119_ = page_get_has_crop (_tmp118_);
+#line 922 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp120_ = _tmp119_;
+#line 922 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp120_) {
+#line 5957 "page-view.c"
+ gint x = 0;
+ Page* _tmp121_ = NULL;
+ gint _tmp122_ = 0;
+ gint _tmp123_ = 0;
+ gint y = 0;
+ Page* _tmp124_ = NULL;
+ gint _tmp125_ = 0;
+ gint _tmp126_ = 0;
+ gint crop_width = 0;
+ Page* _tmp127_ = NULL;
+ gint _tmp128_ = 0;
+ gint _tmp129_ = 0;
+ gint crop_height = 0;
+ Page* _tmp130_ = NULL;
+ gint _tmp131_ = 0;
+ gint _tmp132_ = 0;
+ gint dx = 0;
+ gint _tmp133_ = 0;
+ gint _tmp134_ = 0;
+ gint dy = 0;
+ gint _tmp135_ = 0;
+ gint _tmp136_ = 0;
+ gint dw = 0;
+ gint _tmp137_ = 0;
+ gint _tmp138_ = 0;
+ gint dh = 0;
+ gint _tmp139_ = 0;
+ gint _tmp140_ = 0;
+ cairo_t* _tmp141_ = NULL;
+ gint _tmp142_ = 0;
+ gint _tmp143_ = 0;
+ cairo_t* _tmp144_ = NULL;
+ cairo_t* _tmp145_ = NULL;
+ gint _tmp146_ = 0;
+ gint _tmp147_ = 0;
+ gint _tmp148_ = 0;
+ gint _tmp149_ = 0;
+ cairo_t* _tmp150_ = NULL;
+ cairo_t* _tmp151_ = NULL;
+ cairo_t* _tmp152_ = NULL;
+ cairo_t* _tmp153_ = NULL;
+ gint _tmp154_ = 0;
+ gint _tmp155_ = 0;
+ gint _tmp156_ = 0;
+ gint _tmp157_ = 0;
+ cairo_t* _tmp158_ = NULL;
+ cairo_t* _tmp159_ = NULL;
+ cairo_t* _tmp160_ = NULL;
+ gint _tmp161_ = 0;
+ gint _tmp162_ = 0;
+ gint _tmp163_ = 0;
+ gint _tmp164_ = 0;
+ cairo_t* _tmp165_ = NULL;
+ cairo_t* _tmp166_ = NULL;
+#line 924 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp121_ = self->priv->_page;
+#line 924 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp122_ = page_get_crop_x (_tmp121_);
+#line 924 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp123_ = _tmp122_;
+#line 924 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ x = _tmp123_;
+#line 925 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp124_ = self->priv->_page;
+#line 925 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp125_ = page_get_crop_y (_tmp124_);
+#line 925 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp126_ = _tmp125_;
+#line 925 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ y = _tmp126_;
+#line 926 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp127_ = self->priv->_page;
+#line 926 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp128_ = page_get_crop_width (_tmp127_);
+#line 926 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp129_ = _tmp128_;
+#line 926 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ crop_width = _tmp129_;
+#line 927 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp130_ = self->priv->_page;
+#line 927 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp131_ = page_get_crop_height (_tmp130_);
+#line 927 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp132_ = _tmp131_;
+#line 927 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ crop_height = _tmp132_;
+#line 929 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp133_ = x;
+#line 929 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp134_ = page_view_page_to_screen_x (self, _tmp133_);
+#line 929 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dx = _tmp134_;
+#line 930 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp135_ = y;
+#line 930 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp136_ = page_view_page_to_screen_y (self, _tmp135_);
+#line 930 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dy = _tmp136_;
+#line 931 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp137_ = crop_width;
+#line 931 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp138_ = page_view_page_to_screen_x (self, _tmp137_);
+#line 931 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dw = _tmp138_;
+#line 932 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp139_ = crop_height;
+#line 932 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp140_ = page_view_page_to_screen_y (self, _tmp139_);
+#line 932 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dh = _tmp140_;
+#line 935 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp141_ = context;
+#line 935 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp142_ = w;
+#line 935 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp143_ = h;
+#line 935 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_rectangle (_tmp141_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp142_, (gdouble) _tmp143_);
+#line 936 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp144_ = context;
+#line 936 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_new_sub_path (_tmp144_);
+#line 937 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp145_ = context;
+#line 937 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp146_ = dx;
+#line 937 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp147_ = dy;
+#line 937 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp148_ = dw;
+#line 937 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp149_ = dh;
+#line 937 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_rectangle (_tmp145_, (gdouble) _tmp146_, (gdouble) _tmp147_, (gdouble) _tmp148_, (gdouble) _tmp149_);
+#line 938 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp150_ = context;
+#line 938 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_set_fill_rule (_tmp150_, CAIRO_FILL_RULE_EVEN_ODD);
+#line 939 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp151_ = context;
+#line 939 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_set_source_rgba (_tmp151_, 0.25, 0.25, 0.25, 0.2);
+#line 940 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp152_ = context;
+#line 940 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_fill (_tmp152_);
+#line 943 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp153_ = context;
+#line 943 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp154_ = dx;
+#line 943 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp155_ = dy;
+#line 943 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp156_ = dw;
+#line 943 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp157_ = dh;
+#line 943 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_rectangle (_tmp153_, _tmp154_ - 1.5, _tmp155_ - 1.5, (gdouble) (_tmp156_ + 3), (gdouble) (_tmp157_ + 3));
+#line 944 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp158_ = context;
+#line 944 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_set_source_rgb (_tmp158_, 1.0, 1.0, 1.0);
+#line 945 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp159_ = context;
+#line 945 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_stroke (_tmp159_);
+#line 946 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp160_ = context;
+#line 946 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp161_ = dx;
+#line 946 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp162_ = dy;
+#line 946 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp163_ = dw;
+#line 946 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp164_ = dh;
+#line 946 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_rectangle (_tmp160_, _tmp161_ - 0.5, _tmp162_ - 0.5, (gdouble) (_tmp163_ + 1), (gdouble) (_tmp164_ + 1));
+#line 947 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp165_ = context;
+#line 947 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_set_source_rgb (_tmp165_, 0.0, 0.0, 0.0);
+#line 948 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp166_ = context;
+#line 948 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ cairo_stroke (_tmp166_);
+#line 6144 "page-view.c"
+ }
+}
+
+
+static void page_view_page_pixels_changed_cb (PageView* self, Page* p) {
+#line 994 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 994 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (p != NULL);
+#line 997 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->update_image = TRUE;
+#line 998 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_emit_by_name (self, "changed");
+#line 6158 "page-view.c"
+}
+
+
+static void page_view_page_size_changed_cb (PageView* self, Page* p) {
+#line 1001 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 1001 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (p != NULL);
+#line 1004 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->update_image = TRUE;
+#line 1005 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_emit_by_name (self, "size-changed");
+#line 1006 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_emit_by_name (self, "changed");
+#line 6173 "page-view.c"
+}
+
+
+static void page_view_page_overlay_changed_cb (PageView* self, Page* p) {
+#line 1009 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 1009 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (p != NULL);
+#line 1011 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_emit_by_name (self, "changed");
+#line 6184 "page-view.c"
+}
+
+
+static void page_view_scan_direction_changed_cb (PageView* self, Page* p) {
+#line 1014 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 1014 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (p != NULL);
+#line 1017 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->update_image = TRUE;
+#line 1018 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_emit_by_name (self, "size-changed");
+#line 1019 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_emit_by_name (self, "changed");
+#line 6199 "page-view.c"
+}
+
+
+Page* page_view_get_page (PageView* self) {
+ Page* result;
+ Page* _tmp0_ = NULL;
+#line 29 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 29 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = self->priv->_page;
+#line 29 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = _tmp0_;
+#line 29 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 6214 "page-view.c"
+}
+
+
+static gpointer _page_ref0 (gpointer self) {
+#line 29 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return self ? page_ref (self) : NULL;
+#line 6221 "page-view.c"
+}
+
+
+static void page_view_set_page (PageView* self, Page* value) {
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+#line 29 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 29 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = value;
+#line 29 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = _page_ref0 (_tmp0_);
+#line 29 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _page_unref0 (self->priv->_page);
+#line 29 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->_page = _tmp1_;
+#line 6238 "page-view.c"
+}
+
+
+gboolean page_view_get_selected (PageView* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 38 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 38 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = self->priv->selected_;
+#line 38 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = _tmp0_;
+#line 38 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 6253 "page-view.c"
+}
+
+
+void page_view_set_selected (PageView* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = page_view_get_selected (self);
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = _tmp2_;
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp3_) {
+#line 6272 "page-view.c"
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = page_view_get_selected (self);
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp5_ = _tmp4_;
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = _tmp5_;
+#line 6281 "page-view.c"
+ } else {
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = FALSE;
+#line 6285 "page-view.c"
+ }
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp1_) {
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = TRUE;
+#line 6291 "page-view.c"
+ } else {
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp7_ = page_view_get_selected (self);
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp8_ = _tmp7_;
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!_tmp8_) {
+#line 6302 "page-view.c"
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp9_ = page_view_get_selected (self);
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp10_ = _tmp9_;
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp6_ = !_tmp10_;
+#line 6311 "page-view.c"
+ } else {
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp6_ = FALSE;
+#line 6315 "page-view.c"
+ }
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = _tmp6_;
+#line 6319 "page-view.c"
+ }
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp0_) {
+#line 42 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return;
+#line 6325 "page-view.c"
+ }
+#line 43 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp11_ = page_view_get_selected (self);
+#line 43 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp12_ = _tmp11_;
+#line 43 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_set_selected (self, _tmp12_);
+#line 44 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_emit_by_name (self, "changed");
+#line 6335 "page-view.c"
+}
+
+
+gint page_view_get_x_offset (PageView* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 64 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 64 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = self->priv->_x_offset;
+#line 64 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = _tmp0_;
+#line 64 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 6350 "page-view.c"
+}
+
+
+void page_view_set_x_offset (PageView* self, gint value) {
+ gint _tmp0_ = 0;
+#line 64 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 64 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = value;
+#line 64 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->_x_offset = _tmp0_;
+#line 6362 "page-view.c"
+}
+
+
+gint page_view_get_y_offset (PageView* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = self->priv->_y_offset;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = _tmp0_;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 6377 "page-view.c"
+}
+
+
+void page_view_set_y_offset (PageView* self, gint value) {
+ gint _tmp0_ = 0;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = value;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->_y_offset = _tmp0_;
+#line 6389 "page-view.c"
+}
+
+
+GdkCursorType page_view_get_cursor (PageView* self) {
+ GdkCursorType result;
+ GdkCursorType _tmp0_ = 0;
+#line 76 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 76 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = self->priv->_cursor;
+#line 76 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = _tmp0_;
+#line 76 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 6404 "page-view.c"
+}
+
+
+static void page_view_set_cursor (PageView* self, GdkCursorType value) {
+ GdkCursorType _tmp0_ = 0;
+#line 76 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 76 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = value;
+#line 76 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->_cursor = _tmp0_;
+#line 6416 "page-view.c"
+}
+
+
+gint page_view_get_width (PageView* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 954 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 954 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = self->priv->width_;
+#line 954 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = _tmp0_;
+#line 954 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 6431 "page-view.c"
+}
+
+
+void page_view_set_width (PageView* self, gint value) {
+ gint h = 0;
+ gint _tmp0_ = 0;
+ Page* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ Page* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 955 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = value;
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = self->priv->_page;
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = page_get_height (_tmp1_);
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = _tmp2_;
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = self->priv->_page;
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp5_ = page_get_width (_tmp4_);
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp6_ = _tmp5_;
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ h = (gint) ((((gdouble) _tmp0_) * _tmp3_) / _tmp6_);
+#line 959 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp8_ = self->priv->width_;
+#line 959 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp9_ = value;
+#line 959 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp8_ == _tmp9_) {
+#line 6473 "page-view.c"
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 959 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp10_ = self->priv->height_;
+#line 959 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp11_ = h;
+#line 959 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp7_ = _tmp10_ == _tmp11_;
+#line 6482 "page-view.c"
+ } else {
+#line 959 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp7_ = FALSE;
+#line 6486 "page-view.c"
+ }
+#line 959 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp7_) {
+#line 960 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return;
+#line 6492 "page-view.c"
+ }
+#line 962 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp12_ = value;
+#line 962 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->width_ = _tmp12_;
+#line 963 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp13_ = h;
+#line 963 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->height_ = _tmp13_;
+#line 966 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->update_image = TRUE;
+#line 968 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_emit_by_name (self, "size-changed");
+#line 969 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_emit_by_name (self, "changed");
+#line 6508 "page-view.c"
+}
+
+
+gint page_view_get_height (PageView* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 975 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 975 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = self->priv->height_;
+#line 975 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ result = _tmp0_;
+#line 975 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return result;
+#line 6523 "page-view.c"
+}
+
+
+void page_view_set_height (PageView* self, gint value) {
+ gint w = 0;
+ gint _tmp0_ = 0;
+ Page* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ Page* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 976 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (self != NULL);
+#line 979 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = value;
+#line 979 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp1_ = self->priv->_page;
+#line 979 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = page_get_width (_tmp1_);
+#line 979 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp3_ = _tmp2_;
+#line 979 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = self->priv->_page;
+#line 979 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp5_ = page_get_height (_tmp4_);
+#line 979 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp6_ = _tmp5_;
+#line 979 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ w = (gint) ((((gdouble) _tmp0_) * _tmp3_) / _tmp6_);
+#line 980 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp8_ = self->priv->width_;
+#line 980 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp9_ = w;
+#line 980 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp8_ == _tmp9_) {
+#line 6565 "page-view.c"
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 980 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp10_ = self->priv->height_;
+#line 980 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp11_ = value;
+#line 980 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp7_ = _tmp10_ == _tmp11_;
+#line 6574 "page-view.c"
+ } else {
+#line 980 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp7_ = FALSE;
+#line 6578 "page-view.c"
+ }
+#line 980 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (_tmp7_) {
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return;
+#line 6584 "page-view.c"
+ }
+#line 983 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp12_ = w;
+#line 983 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->width_ = _tmp12_;
+#line 984 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp13_ = value;
+#line 984 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->height_ = _tmp13_;
+#line 987 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->update_image = TRUE;
+#line 989 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_emit_by_name (self, "size-changed");
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_emit_by_name (self, "changed");
+#line 6600 "page-view.c"
+}
+
+
+static void value_page_view_init (GValue* value) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ value->data[0].v_pointer = NULL;
+#line 6607 "page-view.c"
+}
+
+
+static void value_page_view_free_value (GValue* value) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (value->data[0].v_pointer) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_unref (value->data[0].v_pointer);
+#line 6616 "page-view.c"
+ }
+}
+
+
+static void value_page_view_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (src_value->data[0].v_pointer) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dest_value->data[0].v_pointer = page_view_ref (src_value->data[0].v_pointer);
+#line 6626 "page-view.c"
+ } else {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 6630 "page-view.c"
+ }
+}
+
+
+static gpointer value_page_view_peek_pointer (const GValue* value) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return value->data[0].v_pointer;
+#line 6638 "page-view.c"
+}
+
+
+static gchar* value_page_view_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (collect_values[0].v_pointer) {
+#line 6645 "page-view.c"
+ PageView* object;
+ object = collect_values[0].v_pointer;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 6652 "page-view.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 6656 "page-view.c"
+ }
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ value->data[0].v_pointer = page_view_ref (object);
+#line 6660 "page-view.c"
+ } else {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ value->data[0].v_pointer = NULL;
+#line 6664 "page-view.c"
+ }
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return NULL;
+#line 6668 "page-view.c"
+}
+
+
+static gchar* value_page_view_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PageView** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!object_p) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 6679 "page-view.c"
+ }
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (!value->data[0].v_pointer) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ *object_p = NULL;
+#line 6685 "page-view.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ *object_p = value->data[0].v_pointer;
+#line 6689 "page-view.c"
+ } else {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ *object_p = page_view_ref (value->data[0].v_pointer);
+#line 6693 "page-view.c"
+ }
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return NULL;
+#line 6697 "page-view.c"
+}
+
+
+GParamSpec* param_spec_page_view (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPageView* spec;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PAGE_VIEW), NULL);
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return G_PARAM_SPEC (spec);
+#line 6711 "page-view.c"
+}
+
+
+gpointer value_get_page_view (const GValue* value) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PAGE_VIEW), NULL);
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return value->data[0].v_pointer;
+#line 6720 "page-view.c"
+}
+
+
+void value_set_page_view (GValue* value, gpointer v_object) {
+ PageView* old;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PAGE_VIEW));
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ old = value->data[0].v_pointer;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (v_object) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PAGE_VIEW));
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ value->data[0].v_pointer = v_object;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_ref (value->data[0].v_pointer);
+#line 6740 "page-view.c"
+ } else {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ value->data[0].v_pointer = NULL;
+#line 6744 "page-view.c"
+ }
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (old) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_unref (old);
+#line 6750 "page-view.c"
+ }
+}
+
+
+void value_take_page_view (GValue* value, gpointer v_object) {
+ PageView* old;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PAGE_VIEW));
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ old = value->data[0].v_pointer;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (v_object) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PAGE_VIEW));
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ value->data[0].v_pointer = v_object;
+#line 6769 "page-view.c"
+ } else {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ value->data[0].v_pointer = NULL;
+#line 6773 "page-view.c"
+ }
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (old) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_unref (old);
+#line 6779 "page-view.c"
+ }
+}
+
+
+static void page_view_class_init (PageViewClass * klass) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ page_view_parent_class = g_type_class_peek_parent (klass);
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ PAGE_VIEW_CLASS (klass)->finalize = page_view_finalize;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_type_class_add_private (klass, sizeof (PageViewPrivate));
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_new ("size_changed", TYPE_PAGE_VIEW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_new ("changed", TYPE_PAGE_VIEW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 6795 "page-view.c"
+}
+
+
+static void page_view_instance_init (PageView * self) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv = PAGE_VIEW_GET_PRIVATE (self);
+#line 32 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->image = NULL;
+#line 35 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->selected_ = FALSE;
+#line 48 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->border_width = 1;
+#line 51 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->update_image = TRUE;
+#line 76 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->_cursor = GDK_ARROW;
+#line 78 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->priv->animate_n_segments = 7;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self->ref_count = 1;
+#line 6816 "page-view.c"
+}
+
+
+static void page_view_finalize (PageView* obj) {
+ PageView * self;
+ Page* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ Page* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ Page* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ Page* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+ Page* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PAGE_VIEW, PageView);
+#line 97 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp0_ = self->priv->_page;
+#line 97 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_parse_name ("pixels-changed", TYPE_PAGE, &_tmp1_, NULL, FALSE);
+#line 97 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _page_view_page_pixels_changed_cb_page_pixels_changed, self);
+#line 98 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp2_ = self->priv->_page;
+#line 98 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_parse_name ("size-changed", TYPE_PAGE, &_tmp3_, NULL, FALSE);
+#line 98 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _page_view_page_size_changed_cb_page_size_changed, self);
+#line 99 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp4_ = self->priv->_page;
+#line 99 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_parse_name ("crop-changed", TYPE_PAGE, &_tmp5_, NULL, FALSE);
+#line 99 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _page_view_page_overlay_changed_cb_page_crop_changed, self);
+#line 100 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp6_ = self->priv->_page;
+#line 100 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_parse_name ("scan-line-changed", TYPE_PAGE, &_tmp7_, NULL, FALSE);
+#line 100 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _page_view_page_overlay_changed_cb_page_scan_line_changed, self);
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _tmp8_ = self->priv->_page;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_parse_name ("scan-direction-changed", TYPE_PAGE, &_tmp9_, NULL, FALSE);
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_signal_handlers_disconnect_matched (_tmp8_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _page_view_scan_direction_changed_cb_page_scan_direction_changed, self);
+#line 29 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _page_unref0 (self->priv->_page);
+#line 32 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ _g_object_unref0 (self->priv->image);
+#line 6868 "page-view.c"
+}
+
+
+GType page_view_get_type (void) {
+ static volatile gsize page_view_type_id__volatile = 0;
+ if (g_once_init_enter (&page_view_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_page_view_init, value_page_view_free_value, value_page_view_copy_value, value_page_view_peek_pointer, "p", value_page_view_collect_value, "p", value_page_view_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PageViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) page_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PageView), 0, (GInstanceInitFunc) page_view_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType page_view_type_id;
+ page_view_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PageView", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&page_view_type_id__volatile, page_view_type_id);
+ }
+ return page_view_type_id__volatile;
+}
+
+
+gpointer page_view_ref (gpointer instance) {
+ PageView* self;
+ self = instance;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ return instance;
+#line 6893 "page-view.c"
+}
+
+
+void page_view_unref (gpointer instance) {
+ PageView* self;
+ self = instance;
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ PAGE_VIEW_GET_CLASS (self)->finalize (self);
+#line 26 "/home/bob/bzr/simple-scan/trunk/src/page-view.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 6906 "page-view.c"
+ }
+}
+
+
+
diff --git a/src/page-view.vala b/src/page-view.vala
new file mode 100644
index 0000000..c982c4b
--- /dev/null
+++ b/src/page-view.vala
@@ -0,0 +1,1021 @@
+/*
+ * Copyright (C) 2009-2011 Canonical Ltd.
+ * Author: Robert Ancell <robert.ancell@canonical.com>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+public enum CropLocation
+{
+ NONE = 0,
+ MIDDLE,
+ TOP,
+ BOTTOM,
+ LEFT,
+ RIGHT,
+ TOP_LEFT,
+ TOP_RIGHT,
+ BOTTOM_LEFT,
+ BOTTOM_RIGHT
+}
+
+public class PageView
+{
+ /* Page being rendered */
+ public Page page { get; private set; }
+
+ /* Image to render at current resolution */
+ private Gdk.Pixbuf? image = null;
+
+ /* Border around image */
+ private bool selected_ = false;
+ public bool selected
+ {
+ get { return selected_; }
+ set
+ {
+ if ((this.selected && selected) || (!this.selected && !selected))
+ return;
+ this.selected = selected;
+ changed ();
+ }
+ }
+
+ private int border_width = 1;
+
+ /* True if image needs to be regenerated */
+ private bool update_image = true;
+
+ /* Direction of currently scanned image */
+ private ScanDirection scan_direction;
+
+ /* Next scan line to render */
+ private int scan_line;
+
+ /* Dimensions of image to generate */
+ private int width_;
+ private int height_;
+
+ /* Location to place this page */
+ public int x_offset { get; set; }
+ public int y_offset { get; set; }
+
+ private CropLocation crop_location;
+ private double selected_crop_px;
+ private double selected_crop_py;
+ private int selected_crop_x;
+ private int selected_crop_y;
+ private int selected_crop_w;
+ private int selected_crop_h;
+
+ /* Cursor over this page */
+ public Gdk.CursorType cursor { get; private set; default = Gdk.CursorType.ARROW; }
+
+ private int animate_n_segments = 7;
+ private int animate_segment;
+ private uint animate_timeout;
+
+ public signal void size_changed ();
+ public signal void changed ();
+
+ public PageView (Page page)
+ {
+ this.page = page;
+ page.pixels_changed.connect (page_pixels_changed_cb);
+ page.size_changed.connect (page_size_changed_cb);
+ page.crop_changed.connect (page_overlay_changed_cb);
+ page.scan_line_changed.connect (page_overlay_changed_cb);
+ page.scan_direction_changed.connect (scan_direction_changed_cb);
+ }
+
+ ~PageView ()
+ {
+ page.pixels_changed.disconnect (page_pixels_changed_cb);
+ page.size_changed.disconnect (page_size_changed_cb);
+ page.crop_changed.disconnect (page_overlay_changed_cb);
+ page.scan_line_changed.disconnect (page_overlay_changed_cb);
+ page.scan_direction_changed.disconnect (scan_direction_changed_cb);
+ }
+
+ private uchar get_sample (uchar[] pixels, int offset, int x, int depth, int sample)
+ {
+ // FIXME
+ return 0xFF;
+ }
+
+ private void get_pixel (Page page, int x, int y, uchar[] pixel)
+ {
+ switch (page.scan_direction)
+ {
+ case ScanDirection.TOP_TO_BOTTOM:
+ break;
+ case ScanDirection.BOTTOM_TO_TOP:
+ x = page.scan_width - x - 1;
+ y = page.scan_height - y - 1;
+ break;
+ case ScanDirection.LEFT_TO_RIGHT:
+ var t = x;
+ x = page.scan_width - y - 1;
+ y = t;
+ break;
+ case ScanDirection.RIGHT_TO_LEFT:
+ var t = x;
+ x = y;
+ y = page.scan_height - t - 1;
+ break;
+ }
+
+ var depth = page.depth;
+ var n_channels = page.n_channels;
+ unowned uchar[] pixels = page.get_pixels ();
+ var offset = page.rowstride * y;
+
+ /* Optimise for 8 bit images */
+ if (depth == 8 && n_channels == 3)
+ {
+ var o = offset + x * n_channels;
+ pixel[0] = pixels[o];
+ pixel[1] = pixels[o+1];
+ pixel[2] = pixels[o+2];
+ return;
+ }
+ else if (depth == 8 && n_channels == 1)
+ {
+ pixel[0] = pixel[1] = pixel[2] = pixels[offset + x];
+ return;
+ }
+
+ /* Optimise for bitmaps */
+ else if (depth == 1 && n_channels == 1)
+ {
+ var o = offset + (x / 8);
+ pixel[0] = pixel[1] = pixel[2] = (pixels[o] & (0x80 >> (x % 8))) != 0 ? 0x00 : 0xFF;
+ return;
+ }
+
+ /* Optimise for 2 bit images */
+ else if (depth == 2 && n_channels == 1)
+ {
+ int block_shift[4] = { 6, 4, 2, 0 };
+
+ var o = offset + (x / 4);
+ var sample = (pixels[o] >> block_shift[x % 4]) & 0x3;
+ sample = sample * 255 / 3;
+
+ pixel[0] = pixel[1] = pixel[2] = (uchar) sample;
+ return;
+ }
+
+ /* Use slow method */
+ pixel[0] = get_sample (pixels, offset, x, depth, x * n_channels);
+ pixel[1] = get_sample (pixels, offset, x, depth, x * n_channels + 1);
+ pixel[2] = get_sample (pixels, offset, x, depth, x * n_channels + 2);
+ }
+
+ private void set_pixel (Page page, double l, double r, double t, double b, uchar[] output, int offset)
+ {
+ /* Decimation:
+ *
+ * Target pixel is defined by (t,l)-(b,r)
+ * It touches 16 pixels in original image
+ * It completely covers 4 pixels in original image (T,L)-(B,R)
+ * Add covered pixels and add weighted partially covered pixels.
+ * Divide by total area.
+ *
+ * l L R r
+ * +-----+-----+-----+-----+
+ * | | | | |
+ * t | +--+-----+-----+---+ |
+ * T +--+--+-----+-----+---+-+
+ * | | | | | | |
+ * | | | | | | |
+ * +--+--+-----+-----+---+-+
+ * | | | | | | |
+ * | | | | | | |
+ * B +--+--+-----+-----+---+-+
+ * | | | | | | |
+ * b | +--+-----+-----+---+ |
+ * +-----+-----+-----+-----+
+ *
+ *
+ * Interpolation:
+ *
+ * l r
+ * +-----+-----+-----+-----+
+ * | | | | |
+ * | | | | |
+ * +-----+-----+-----+-----+
+ * t | | +-+--+ | |
+ * | | | | | | |
+ * +-----+---+-+--+--+-----+
+ * b | | +-+--+ | |
+ * | | | | |
+ * +-----+-----+-----+-----+
+ * | | | | |
+ * | | | | |
+ * +-----+-----+-----+-----+
+ *
+ * Same again, just no completely covered pixels.
+ */
+
+ var L = (int) l;
+ if (L != l)
+ L++;
+ var R = (int) r;
+ var T = (int) t;
+ if (T != t)
+ T++;
+ var B = (int) b;
+
+ var red = 0.0;
+ var green = 0.0;
+ var blue = 0.0;
+
+ /* Target can fit inside one source pixel
+ * +-----+
+ * | |
+ * | +--+| +-----+-----+ +-----+ +-----+ +-----+
+ * +-+--++ or | +-++ | or | +-+ | or | +--+| or | +--+
+ * | +--+| | +-++ | | +-+ | | | || | | |
+ * | | +-----+-----+ +-----+ +-+--++ +--+--+
+ * +-----+
+ */
+ if ((r - l <= 1.0 && (int)r == (int)l) || (b - t <= 1.0 && (int)b == (int)t))
+ {
+ /* Inside */
+ if ((int)l == (int)r || (int)t == (int)b)
+ {
+ uchar p[3];
+ get_pixel (page, (int)l, (int)t, p);
+ output[offset] = p[0];
+ output[offset+1] = p[1];
+ output[offset+2] = p[2];
+ return;
+ }
+
+ /* Stradling horizontal edge */
+ if (L > R)
+ {
+ uchar p[3];
+ get_pixel (page, R, T-1, p);
+ red += p[0] * (r-l)*(T-t);
+ green += p[1] * (r-l)*(T-t);
+ blue += p[2] * (r-l)*(T-t);
+ for (var y = T; y < B; y++)
+ {
+ get_pixel (page, R, y, p);
+ red += p[0] * (r-l);
+ green += p[1] * (r-l);
+ blue += p[2] * (r-l);
+ }
+ get_pixel (page, R, B, p);
+ red += p[0] * (r-l)*(b-B);
+ green += p[1] * (r-l)*(b-B);
+ blue += p[2] * (r-l)*(b-B);
+ }
+ /* Stradling vertical edge */
+ else
+ {
+ uchar p[3];
+ get_pixel (page, L - 1, B, p);
+ red += p[0] * (b-t)*(L-l);
+ green += p[1] * (b-t)*(L-l);
+ blue += p[2] * (b-t)*(L-l);
+ for (var x = L; x < R; x++) {
+ get_pixel (page, x, B, p);
+ red += p[0] * (b-t);
+ green += p[1] * (b-t);
+ blue += p[2] * (b-t);
+ }
+ get_pixel (page, R, B, p);
+ red += p[0] * (b-t)*(r-R);
+ green += p[1] * (b-t)*(r-R);
+ blue += p[2] * (b-t)*(r-R);
+ }
+
+ var scale = 1.0 / ((r - l) * (b - t));
+ output[offset] = (uchar)(red * scale + 0.5);
+ output[offset+1] = (uchar)(green * scale + 0.5);
+ output[offset+2] = (uchar)(blue * scale + 0.5);
+ return;
+ }
+
+ /* Add the middle pixels */
+ for (var x = L; x < R; x++)
+ {
+ for (var y = T; y < B; y++)
+ {
+ uchar p[3];
+ get_pixel (page, x, y, p);
+ red += p[0];
+ green += p[1];
+ blue += p[2];
+ }
+ }
+
+ /* Add the weighted top and bottom pixels */
+ for (var x = L; x < R; x++)
+ {
+ if (t != T)
+ {
+ uchar p[3];
+ get_pixel (page, x, T - 1, p);
+ red += p[0] * (T - t);
+ green += p[1] * (T - t);
+ blue += p[2] * (T - t);
+ }
+
+ if (b != B)
+ {
+ uchar p[3];
+ get_pixel (page, x, B, p);
+ red += p[0] * (b - B);
+ green += p[1] * (b - B);
+ blue += p[2] * (b - B);
+ }
+ }
+
+ /* Add the left and right pixels */
+ for (var y = T; y < B; y++)
+ {
+ if (l != L)
+ {
+ uchar p[3];
+ get_pixel (page, L - 1, y, p);
+ red += p[0] * (L - l);
+ green += p[1] * (L - l);
+ blue += p[2] * (L - l);
+ }
+
+ if (r != R)
+ {
+ uchar p[3];
+ get_pixel (page, R, y, p);
+ red += p[0] * (r - R);
+ green += p[1] * (r - R);
+ blue += p[2] * (r - R);
+ }
+ }
+
+ /* Add the corner pixels */
+ if (l != L && t != T)
+ {
+ uchar p[3];
+ get_pixel (page, L - 1, T - 1, p);
+ red += p[0] * (L - l)*(T - t);
+ green += p[1] * (L - l)*(T - t);
+ blue += p[2] * (L - l)*(T - t);
+ }
+ if (r != R && t != T)
+ {
+ uchar p[3];
+ get_pixel (page, R, T - 1, p);
+ red += p[0] * (r - R)*(T - t);
+ green += p[1] * (r - R)*(T - t);
+ blue += p[2] * (r - R)*(T - t);
+ }
+ if (r != R && b != B)
+ {
+ uchar p[3];
+ get_pixel (page, R, B, p);
+ red += p[0] * (r - R)*(b - B);
+ green += p[1] * (r - R)*(b - B);
+ blue += p[2] * (r - R)*(b - B);
+ }
+ if (l != L && b != B)
+ {
+ uchar p[3];
+ get_pixel (page, L - 1, B, p);
+ red += p[0] * (L - l)*(b - B);
+ green += p[1] * (L - l)*(b - B);
+ blue += p[2] * (L - l)*(b - B);
+ }
+
+ /* Scale pixel values and clamp in range [0, 255] */
+ var scale = 1.0 / ((r - l) * (b - t));
+ output[offset] = (uchar)(red * scale + 0.5);
+ output[offset+1] = (uchar)(green * scale + 0.5);
+ output[offset+2] = (uchar)(blue * scale + 0.5);
+ }
+
+ private void update_preview (Page page, ref Gdk.Pixbuf? output_image, int output_width, int output_height,
+ ScanDirection scan_direction, int old_scan_line, int scan_line)
+ {
+ var input_width = page.width;
+ var input_height = page.height;
+
+ /* Create new image if one does not exist or has changed size */
+ int L, R, T, B;
+ if (output_image == null ||
+ output_image.width != output_width ||
+ output_image.height != output_height)
+ {
+ output_image = new Gdk.Pixbuf (Gdk.Colorspace.RGB,
+ false,
+ 8,
+ output_width,
+ output_height);
+
+ /* Update entire image */
+ L = 0;
+ R = output_width - 1;
+ T = 0;
+ B = output_height - 1;
+ }
+ /* Otherwise only update changed area */
+ else
+ {
+ switch (scan_direction)
+ {
+ case ScanDirection.TOP_TO_BOTTOM:
+ L = 0;
+ R = output_width - 1;
+ T = (int)((double)old_scan_line * output_height / input_height);
+ B = (int)((double)scan_line * output_height / input_height + 0.5);
+ break;
+ case ScanDirection.LEFT_TO_RIGHT:
+ L = (int)((double)old_scan_line * output_width / input_width);
+ R = (int)((double)scan_line * output_width / input_width + 0.5);
+ T = 0;
+ B = output_height - 1;
+ break;
+ case ScanDirection.BOTTOM_TO_TOP:
+ L = 0;
+ R = output_width - 1;
+ T = (int)((double)(input_height - scan_line) * output_height / input_height);
+ B = (int)((double)(input_height - old_scan_line) * output_height / input_height + 0.5);
+ break;
+ case ScanDirection.RIGHT_TO_LEFT:
+ L = (int)((double)(input_width - scan_line) * output_width / input_width);
+ R = (int)((double)(input_width - old_scan_line) * output_width / input_width + 0.5);
+ T = 0;
+ B = output_height - 1;
+ break;
+ default:
+ L = R = B = T = 0;
+ break;
+ }
+ }
+
+ /* FIXME: There's an off by one error in there somewhere... */
+ if (R >= output_width)
+ R = output_width - 1;
+ if (B >= output_height)
+ B = output_height - 1;
+
+ return_if_fail (L >= 0);
+ return_if_fail (R < output_width);
+ return_if_fail (T >= 0);
+ return_if_fail (B < output_height);
+ return_if_fail (output_image != null);
+
+ unowned uchar[] output = output_image.get_pixels ();
+ var output_rowstride = output_image.rowstride;
+ var output_n_channels = output_image.n_channels;
+
+ if (!page.has_data)
+ {
+ for (var x = L; x <= R; x++)
+ for (var y = T; y <= B; y++)
+ {
+ var o = output_rowstride * y + x * output_n_channels;
+ output[o] = output[o+1] = output[o+2] = 0xFF;
+ }
+ return;
+ }
+
+ /* Update changed area */
+ for (var x = L; x <= R; x++)
+ {
+ var l = (double)x * input_width / output_width;
+ var r = (double)(x + 1) * input_width / output_width;
+
+ for (var y = T; y <= B; y++)
+ {
+ var t = (double)y * input_height / output_height;
+ var b = (double)(y + 1) * input_height / output_height;
+
+ set_pixel (page,
+ l, r, t, b,
+ output, output_rowstride * y + x * output_n_channels);
+ }
+ }
+ }
+
+ private int get_preview_width ()
+ {
+ return width_ - border_width * 2;
+ }
+
+ private int get_preview_height ()
+ {
+ return height_ - border_width * 2;
+ }
+
+ private void update_page_view ()
+ {
+ if (!update_image)
+ return;
+
+ var old_scan_line = scan_line;
+ var scan_line = page.scan_line;
+
+ /* Delete old image if scan direction changed */
+ var left_steps = scan_direction - page.scan_direction;
+ if (left_steps != 0 && image != null)
+ image = null;
+ scan_direction = page.scan_direction;
+
+ update_preview (page,
+ ref image,
+ get_preview_width (),
+ get_preview_height (),
+ page.scan_direction, old_scan_line, scan_line);
+
+ update_image = false;
+ this.scan_line = scan_line;
+ }
+
+ private int page_to_screen_x (int x)
+ {
+ return (int) ((double)x * get_preview_width () / page.width + 0.5);
+ }
+
+ private int page_to_screen_y (int y)
+ {
+ return (int) ((double)y * get_preview_height () / page.height + 0.5);
+ }
+
+ private int screen_to_page_x (int x)
+ {
+ return (int) ((double)x * page.width / get_preview_width () + 0.5);
+ }
+
+ private int screen_to_page_y (int y)
+ {
+ return (int) ((double)y * page.height / get_preview_height () + 0.5);
+ }
+
+ private CropLocation get_crop_location (int x, int y)
+ {
+ if (!page.has_crop)
+ return 0;
+
+ var cx = page.crop_x;
+ var cy = page.crop_y;
+ var cw = page.crop_width;
+ var ch = page.crop_height;
+ var dx = page_to_screen_x (cx);
+ var dy = page_to_screen_y (cy);
+ var dw = page_to_screen_x (cw);
+ var dh = page_to_screen_y (ch);
+ var ix = x - dx;
+ var iy = y - dy;
+
+ if (ix < 0 || ix > dw || iy < 0 || iy > dh)
+ return CropLocation.NONE;
+
+ /* Can't resize named crops */
+ var name = page.crop_name;
+ if (name != null)
+ return CropLocation.MIDDLE;
+
+ /* Adjust borders so can select */
+ int crop_border = 20;
+ if (dw < crop_border * 3)
+ crop_border = dw / 3;
+ if (dh < crop_border * 3)
+ crop_border = dh / 3;
+
+ /* Top left */
+ if (ix < crop_border && iy < crop_border)
+ return CropLocation.TOP_LEFT;
+ /* Top right */
+ if (ix > dw - crop_border && iy < crop_border)
+ return CropLocation.TOP_RIGHT;
+ /* Bottom left */
+ if (ix < crop_border && iy > dh - crop_border)
+ return CropLocation.BOTTOM_LEFT;
+ /* Bottom right */
+ if (ix > dw - crop_border && iy > dh - crop_border)
+ return CropLocation.BOTTOM_RIGHT;
+
+ /* Left */
+ if (ix < crop_border)
+ return CropLocation.LEFT;
+ /* Right */
+ if (ix > dw - crop_border)
+ return CropLocation.RIGHT;
+ /* Top */
+ if (iy < crop_border)
+ return CropLocation.TOP;
+ /* Bottom */
+ if (iy > dh - crop_border)
+ return CropLocation.BOTTOM;
+
+ /* In the middle */
+ return CropLocation.MIDDLE;
+ }
+
+ public void button_press (int x, int y)
+ {
+ /* See if selecting crop */
+ var location = get_crop_location (x, y);
+ if (location != CropLocation.NONE)
+ {
+ crop_location = location;
+ selected_crop_px = x;
+ selected_crop_py = y;
+ selected_crop_x = page.crop_x;
+ selected_crop_y = page.crop_y;
+ selected_crop_w = page.crop_width;
+ selected_crop_h = page.crop_height;;
+ }
+ }
+
+ public void motion (int x, int y)
+ {
+ var location = get_crop_location (x, y);
+ Gdk.CursorType cursor;
+ switch (location)
+ {
+ case CropLocation.MIDDLE:
+ cursor = Gdk.CursorType.HAND1;
+ break;
+ case CropLocation.TOP:
+ cursor = Gdk.CursorType.TOP_SIDE;
+ break;
+ case CropLocation.BOTTOM:
+ cursor = Gdk.CursorType.BOTTOM_SIDE;
+ break;
+ case CropLocation.LEFT:
+ cursor = Gdk.CursorType.LEFT_SIDE;
+ break;
+ case CropLocation.RIGHT:
+ cursor = Gdk.CursorType.RIGHT_SIDE;
+ break;
+ case CropLocation.TOP_LEFT:
+ cursor = Gdk.CursorType.TOP_LEFT_CORNER;
+ break;
+ case CropLocation.TOP_RIGHT:
+ cursor = Gdk.CursorType.TOP_RIGHT_CORNER;
+ break;
+ case CropLocation.BOTTOM_LEFT:
+ cursor = Gdk.CursorType.BOTTOM_LEFT_CORNER;
+ break;
+ case CropLocation.BOTTOM_RIGHT:
+ cursor = Gdk.CursorType.BOTTOM_RIGHT_CORNER;
+ break;
+ default:
+ cursor = Gdk.CursorType.ARROW;
+ break;
+ }
+
+ if (crop_location == CropLocation.NONE)
+ {
+ this.cursor = cursor;
+ return;
+ }
+
+ /* Move the crop */
+ var pw = page.width;
+ var ph = page.height;
+ var cw = page.crop_width;
+ var ch = page.crop_height;
+
+ var dx = screen_to_page_x (x - (int) selected_crop_px);
+ var dy = screen_to_page_y (y - (int) selected_crop_py);
+
+ var new_x = selected_crop_x;
+ var new_y = selected_crop_y;
+ var new_w = selected_crop_w;
+ var new_h = selected_crop_h;
+
+ /* Limit motion to remain within page and minimum crop size */
+ var min_size = screen_to_page_x (15);
+ if (crop_location == CropLocation.TOP_LEFT ||
+ crop_location == CropLocation.LEFT ||
+ crop_location == CropLocation.BOTTOM_LEFT)
+ {
+ if (dx > new_w - min_size)
+ dx = new_w - min_size;
+ if (new_x + dx < 0)
+ dx = -new_x;
+ }
+ if (crop_location == CropLocation.TOP_LEFT ||
+ crop_location == CropLocation.TOP ||
+ crop_location == CropLocation.TOP_RIGHT)
+ {
+ if (dy > new_h - min_size)
+ dy = new_h - min_size;
+ if (new_y + dy < 0)
+ dy = -new_y;
+ }
+
+ if (crop_location == CropLocation.TOP_RIGHT ||
+ crop_location == CropLocation.RIGHT ||
+ crop_location == CropLocation.BOTTOM_RIGHT)
+ {
+ if (dx < min_size - new_w)
+ dx = min_size - new_w;
+ if (new_x + new_w + dx > pw)
+ dx = pw - new_x - new_w;
+ }
+ if (crop_location == CropLocation.BOTTOM_LEFT ||
+ crop_location == CropLocation.BOTTOM ||
+ crop_location == CropLocation.BOTTOM_RIGHT)
+ {
+ if (dy < min_size - new_h)
+ dy = min_size - new_h;
+ if (new_y + new_h + dy > ph)
+ dy = ph - new_y - new_h;
+ }
+ if (crop_location == CropLocation.MIDDLE)
+ {
+ if (new_x + dx + new_w > pw)
+ dx = pw - new_x - new_w;
+ if (new_x + dx < 0)
+ dx = -new_x;
+ if (new_y + dy + new_h > ph)
+ dy = ph - new_y - new_h;
+ if (new_y + dy < 0)
+ dy = -new_y;
+ }
+
+ /* Move crop */
+ if (crop_location == CropLocation.MIDDLE)
+ {
+ new_x += dx;
+ new_y += dy;
+ }
+ if (crop_location == CropLocation.TOP_LEFT ||
+ crop_location == CropLocation.LEFT ||
+ crop_location == CropLocation.BOTTOM_LEFT)
+ {
+ new_x += dx;
+ new_w -= dx;
+ }
+ if (crop_location == CropLocation.TOP_LEFT ||
+ crop_location == CropLocation.TOP ||
+ crop_location == CropLocation.TOP_RIGHT)
+ {
+ new_y += dy;
+ new_h -= dy;
+ }
+
+ if (crop_location == CropLocation.TOP_RIGHT ||
+ crop_location == CropLocation.RIGHT ||
+ crop_location == CropLocation.BOTTOM_RIGHT)
+ new_w += dx;
+ if (crop_location == CropLocation.BOTTOM_LEFT ||
+ crop_location == CropLocation.BOTTOM ||
+ crop_location == CropLocation.BOTTOM_RIGHT)
+ new_h += dy;
+
+ page.move_crop (new_x, new_y);
+
+ /* If reshaped crop, must be a custom crop */
+ if (new_w != cw || new_h != ch)
+ page.set_custom_crop (new_w, new_h);
+ }
+
+ public void button_release (int x, int y)
+ {
+ /* Complete crop */
+ crop_location = CropLocation.NONE;
+ changed ();
+ }
+
+ private bool animation_cb ()
+ {
+ animate_segment = (animate_segment + 1) % animate_n_segments;
+ changed ();
+ return true;
+ }
+
+ private void update_animation ()
+ {
+ bool animate, is_animating;
+
+ animate = page.is_scanning && !page.has_data;
+ is_animating = animate_timeout != 0;
+ if (animate == is_animating)
+ return;
+
+ if (animate)
+ {
+ animate_segment = 0;
+ if (animate_timeout == 0)
+ animate_timeout = Timeout.add (150, animation_cb);
+ }
+ else
+ {
+ if (animate_timeout != 0)
+ Source.remove (animate_timeout);
+ animate_timeout = 0;
+ }
+ }
+
+ public void render (Cairo.Context context)
+ {
+ update_animation ();
+ update_page_view ();
+
+ var w = get_preview_width ();
+ var h = get_preview_height ();
+
+ context.set_line_width (1);
+ context.translate (x_offset, y_offset);
+
+ /* Draw page border */
+ context.set_source_rgb (0, 0, 0);
+ context.set_line_width (border_width);
+ context.rectangle ((double)border_width / 2,
+ (double)border_width / 2,
+ width_ - border_width,
+ height_ - border_width);
+ context.stroke ();
+
+ /* Draw image */
+ context.translate (border_width, border_width);
+ Gdk.cairo_set_source_pixbuf (context, image, 0, 0);
+ context.paint ();
+
+ /* Draw throbber */
+ if (page.is_scanning && !page.has_data)
+ {
+ double outer_radius;
+ if (w > h)
+ outer_radius = 0.15 * w;
+ else
+ outer_radius = 0.15 * h;
+ var arc = Math.PI / animate_n_segments;
+
+ /* Space circles */
+ var x = outer_radius * Math.sin (arc);
+ var y = outer_radius * (Math.cos (arc) - 1.0);
+ var inner_radius = 0.6 * Math.sqrt (x*x + y*y);
+
+ double offset = 0.0;
+ for (var i = 0; i < animate_n_segments; i++, offset += arc * 2)
+ {
+ x = w / 2 + outer_radius * Math.sin (offset);
+ y = h / 2 - outer_radius * Math.cos (offset);
+ context.arc (x, y, inner_radius, 0, 2 * Math.PI);
+
+ if (i == animate_segment)
+ {
+ context.set_source_rgb (0.75, 0.75, 0.75);
+ context.fill_preserve ();
+ }
+
+ context.set_source_rgb (0.5, 0.5, 0.5);
+ context.stroke ();
+ }
+ }
+
+ /* Draw scan line */
+ if (page.is_scanning && page.scan_line > 0)
+ {
+ var scan_line = page.scan_line;
+
+ double s;
+ double x1, y1, x2, y2;
+ switch (page.scan_direction)
+ {
+ case ScanDirection.TOP_TO_BOTTOM:
+ s = page_to_screen_y (scan_line);
+ x1 = 0; y1 = s + 0.5;
+ x2 = w; y2 = s + 0.5;
+ break;
+ case ScanDirection.BOTTOM_TO_TOP:
+ s = page_to_screen_y (scan_line);
+ x1 = 0; y1 = h - s + 0.5;
+ x2 = w; y2 = h - s + 0.5;
+ break;
+ case ScanDirection.LEFT_TO_RIGHT:
+ s = page_to_screen_x (scan_line);
+ x1 = s + 0.5; y1 = 0;
+ x2 = s + 0.5; y2 = h;
+ break;
+ case ScanDirection.RIGHT_TO_LEFT:
+ s = page_to_screen_x (scan_line);
+ x1 = w - s + 0.5; y1 = 0;
+ x2 = w - s + 0.5; y2 = h;
+ break;
+ default:
+ x1 = y1 = x2 = y2 = 0;
+ break;
+ }
+
+ context.move_to (x1, y1);
+ context.line_to (x2, y2);
+ context.set_source_rgb (1.0, 0.0, 0.0);
+ context.stroke ();
+ }
+
+ /* Draw crop */
+ if (page.has_crop)
+ {
+ var x = page.crop_x;
+ var y = page.crop_y;
+ var crop_width = page.crop_width;
+ var crop_height = page.crop_height;
+
+ var dx = page_to_screen_x (x);
+ var dy = page_to_screen_y (y);
+ var dw = page_to_screen_x (crop_width);
+ var dh = page_to_screen_y (crop_height);
+
+ /* Shade out cropped area */
+ context.rectangle (0, 0, w, h);
+ context.new_sub_path ();
+ context.rectangle (dx, dy, dw, dh);
+ context.set_fill_rule (Cairo.FillRule.EVEN_ODD);
+ context.set_source_rgba (0.25, 0.25, 0.25, 0.2);
+ context.fill ();
+
+ /* Show new edge */
+ context.rectangle (dx - 1.5, dy - 1.5, dw + 3, dh + 3);
+ context.set_source_rgb (1.0, 1.0, 1.0);
+ context.stroke ();
+ context.rectangle (dx - 0.5, dy - 0.5, dw + 1, dh + 1);
+ context.set_source_rgb (0.0, 0.0, 0.0);
+ context.stroke ();
+ }
+ }
+
+ public int width
+ {
+ get { return width_; }
+ set
+ {
+ // FIXME: Automatically update when get updated image
+ var h = (int) ((double) value * page.height / page.width);
+ if (width_ == value && height_ == h)
+ return;
+
+ width_ = value;
+ height_ = h;
+
+ /* Regenerate image */
+ update_image = true;
+
+ size_changed ();
+ changed ();
+ }
+ }
+
+ public int height
+ {
+ get { return height_; }
+ set
+ {
+ // FIXME: Automatically update when get updated image
+ var w = (int) ((double) value * page.width / page.height);
+ if (width_ == w && height_ == value)
+ return;
+
+ width_ = w;
+ height_ = value;
+
+ /* Regenerate image */
+ update_image = true;
+
+ size_changed ();
+ changed ();
+ }
+ }
+
+ private void page_pixels_changed_cb (Page p)
+ {
+ /* Regenerate image */
+ update_image = true;
+ changed ();
+ }
+
+ private void page_size_changed_cb (Page p)
+ {
+ /* Regenerate image */
+ update_image = true;
+ size_changed ();
+ changed ();
+ }
+
+ private void page_overlay_changed_cb (Page p)
+ {
+ changed ();
+ }
+
+ private void scan_direction_changed_cb (Page p)
+ {
+ /* Regenerate image */
+ update_image = true;
+ size_changed ();
+ changed ();
+ }
+}
diff --git a/src/page.c b/src/page.c
new file mode 100644
index 0000000..9f5a9f2
--- /dev/null
+++ b/src/page.c
@@ -0,0 +1,4863 @@
+/* page.c generated by valac 0.24.0, the Vala compiler
+ * generated from page.vala, do not modify */
+
+/*
+ * Copyright (C) 2009-2011 Canonical Ltd.
+ * Author: Robert Ancell <robert.ancell@canonical.com>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <float.h>
+#include <math.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <glib/gstdio.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <gio/gio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_SCAN_DIRECTION (scan_direction_get_type ())
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _PagePrivate PagePrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_SCAN_PAGE_INFO (scan_page_info_get_type ())
+#define SCAN_PAGE_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCAN_PAGE_INFO, ScanPageInfo))
+#define SCAN_PAGE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCAN_PAGE_INFO, ScanPageInfoClass))
+#define IS_SCAN_PAGE_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCAN_PAGE_INFO))
+#define IS_SCAN_PAGE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCAN_PAGE_INFO))
+#define SCAN_PAGE_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCAN_PAGE_INFO, ScanPageInfoClass))
+
+typedef struct _ScanPageInfo ScanPageInfo;
+typedef struct _ScanPageInfoClass ScanPageInfoClass;
+typedef struct _ScanPageInfoPrivate ScanPageInfoPrivate;
+
+#define TYPE_SCAN_LINE (scan_line_get_type ())
+#define SCAN_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCAN_LINE, ScanLine))
+#define SCAN_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCAN_LINE, ScanLineClass))
+#define IS_SCAN_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCAN_LINE))
+#define IS_SCAN_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCAN_LINE))
+#define SCAN_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCAN_LINE, ScanLineClass))
+
+typedef struct _ScanLine ScanLine;
+typedef struct _ScanLineClass ScanLineClass;
+typedef struct _ScanLinePrivate ScanLinePrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_PIXBUF_WRITER (pixbuf_writer_get_type ())
+#define PIXBUF_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXBUF_WRITER, PixbufWriter))
+#define PIXBUF_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXBUF_WRITER, PixbufWriterClass))
+#define IS_PIXBUF_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXBUF_WRITER))
+#define IS_PIXBUF_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXBUF_WRITER))
+#define PIXBUF_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXBUF_WRITER, PixbufWriterClass))
+
+typedef struct _PixbufWriter PixbufWriter;
+typedef struct _PixbufWriterClass PixbufWriterClass;
+#define _pixbuf_writer_unref0(var) ((var == NULL) ? NULL : (var = (pixbuf_writer_unref (var), NULL)))
+typedef struct _ParamSpecPage ParamSpecPage;
+typedef struct _PixbufWriterPrivate PixbufWriterPrivate;
+typedef struct _ParamSpecPixbufWriter ParamSpecPixbufWriter;
+
+typedef enum {
+ SCAN_DIRECTION_TOP_TO_BOTTOM,
+ SCAN_DIRECTION_LEFT_TO_RIGHT,
+ SCAN_DIRECTION_BOTTOM_TO_TOP,
+ SCAN_DIRECTION_RIGHT_TO_LEFT
+} ScanDirection;
+
+struct _Page {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PagePrivate * priv;
+};
+
+struct _PageClass {
+ GTypeClass parent_class;
+ void (*finalize) (Page *self);
+};
+
+struct _PagePrivate {
+ gint _dpi;
+ gint expected_rows;
+ gint _depth;
+ gchar* _color_profile;
+ gint _scan_width;
+ gint _scan_height;
+ gint _rowstride;
+ gint _n_channels;
+ guchar* pixels;
+ gint pixels_length1;
+ gint _pixels_size_;
+ gboolean _is_scanning;
+ gboolean _has_data;
+ gint _scan_line;
+ ScanDirection scan_direction_;
+ gboolean _has_crop;
+ gchar* _crop_name;
+ gint _crop_x;
+ gint _crop_y;
+ gint _crop_width;
+ gint _crop_height;
+};
+
+struct _ScanPageInfo {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ScanPageInfoPrivate * priv;
+ gint width;
+ gint height;
+ gint depth;
+ gint n_channels;
+ gdouble dpi;
+ gchar* device;
+};
+
+struct _ScanPageInfoClass {
+ GTypeClass parent_class;
+ void (*finalize) (ScanPageInfo *self);
+};
+
+struct _ScanLine {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ScanLinePrivate * priv;
+ gint number;
+ gint n_lines;
+ gint width;
+ gint depth;
+ gint channel;
+ guchar* data;
+ gint data_length1;
+ gint data_length;
+};
+
+struct _ScanLineClass {
+ GTypeClass parent_class;
+ void (*finalize) (ScanLine *self);
+};
+
+struct _ParamSpecPage {
+ GParamSpec parent_instance;
+};
+
+struct _PixbufWriter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PixbufWriterPrivate * priv;
+ GFileOutputStream* stream;
+};
+
+struct _PixbufWriterClass {
+ GTypeClass parent_class;
+ void (*finalize) (PixbufWriter *self);
+};
+
+struct _ParamSpecPixbufWriter {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer page_parent_class = NULL;
+static gpointer pixbuf_writer_parent_class = NULL;
+
+GType scan_direction_get_type (void) G_GNUC_CONST;
+gpointer page_ref (gpointer instance);
+void page_unref (gpointer instance);
+GParamSpec* param_spec_page (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_page (GValue* value, gpointer v_object);
+void value_take_page (GValue* value, gpointer v_object);
+gpointer value_get_page (const GValue* value);
+GType page_get_type (void) G_GNUC_CONST;
+#define PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PAGE, PagePrivate))
+enum {
+ PAGE_DUMMY_PROPERTY
+};
+Page* page_new (gint width, gint height, gint dpi, ScanDirection scan_direction);
+Page* page_construct (GType object_type, gint width, gint height, gint dpi, ScanDirection scan_direction);
+static void page_set_scan_width (Page* self, gint value);
+static void page_set_scan_height (Page* self, gint value);
+static void page_set_dpi (Page* self, gint value);
+void page_set_scan_direction (Page* self, ScanDirection value);
+Page* page_new_from_data (gint scan_width, gint scan_height, gint rowstride, gint n_channels, gint depth, gint dpi, ScanDirection scan_direction, const gchar* color_profile, guchar* pixels, int pixels_length1, gboolean has_crop, const gchar* crop_name, gint crop_x, gint crop_y, gint crop_width, gint crop_height);
+Page* page_construct_from_data (GType object_type, gint scan_width, gint scan_height, gint rowstride, gint n_channels, gint depth, gint dpi, ScanDirection scan_direction, const gchar* color_profile, guchar* pixels, int pixels_length1, gboolean has_crop, const gchar* crop_name, gint crop_x, gint crop_y, gint crop_width, gint crop_height);
+static void page_set_rowstride (Page* self, gint value);
+static void page_set_n_channels (Page* self, gint value);
+static void page_set_depth (Page* self, gint value);
+void page_set_color_profile (Page* self, const gchar* value);
+static guchar* _vala_array_dup3 (guchar* self, int length);
+static void page_set_has_data (Page* self, gboolean value);
+static void page_set_has_crop (Page* self, gboolean value);
+static void page_set_crop_name (Page* self, const gchar* value);
+static void page_set_crop_x (Page* self, gint value);
+static void page_set_crop_y (Page* self, gint value);
+static void page_set_crop_width (Page* self, gint value);
+static void page_set_crop_height (Page* self, gint value);
+gpointer scan_page_info_ref (gpointer instance);
+void scan_page_info_unref (gpointer instance);
+GParamSpec* param_spec_scan_page_info (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_scan_page_info (GValue* value, gpointer v_object);
+void value_take_scan_page_info (GValue* value, gpointer v_object);
+gpointer value_get_scan_page_info (const GValue* value);
+GType scan_page_info_get_type (void) G_GNUC_CONST;
+void page_set_page_info (Page* self, ScanPageInfo* info);
+gint page_get_scan_height (Page* self);
+gint page_get_scan_width (Page* self);
+gint page_get_depth (Page* self);
+gint page_get_n_channels (Page* self);
+gint page_get_rowstride (Page* self);
+void page_start (Page* self);
+static void page_set_is_scanning (Page* self, gboolean value);
+gpointer scan_line_ref (gpointer instance);
+void scan_line_unref (gpointer instance);
+GParamSpec* param_spec_scan_line (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_scan_line (GValue* value, gpointer v_object);
+void value_take_scan_line (GValue* value, gpointer v_object);
+gpointer value_get_scan_line (const GValue* value);
+GType scan_line_get_type (void) G_GNUC_CONST;
+static void page_parse_line (Page* self, ScanLine* line, gint n, gboolean* size_changed);
+static void page_set_scan_line (Page* self, gint value);
+void page_parse_scan_line (Page* self, ScanLine* line);
+void page_finish (Page* self);
+gint page_get_scan_line (Page* self);
+void page_rotate_left (Page* self);
+ScanDirection page_get_scan_direction (Page* self);
+void page_rotate_right (Page* self);
+void page_set_no_crop (Page* self);
+gboolean page_get_has_crop (Page* self);
+void page_set_custom_crop (Page* self, gint width, gint height);
+const gchar* page_get_crop_name (Page* self);
+gint page_get_crop_width (Page* self);
+gint page_get_crop_height (Page* self);
+void page_set_named_crop (Page* self, const gchar* name);
+gint page_get_width (Page* self);
+gint page_get_height (Page* self);
+gint page_get_dpi (Page* self);
+void page_move_crop (Page* self, gint x, gint y);
+void page_rotate_crop (Page* self);
+gint page_get_crop_x (Page* self);
+gint page_get_crop_y (Page* self);
+guchar* page_get_pixels (Page* self, int* result_length1);
+static guchar page_get_sample (Page* self, guchar* pixels, int pixels_length1, gint offset, gint x, gint depth, gint n_channels, gint channel);
+static void page_get_pixel (Page* self, gint x, gint y, guchar* pixel, int pixel_length1, gint offset);
+GdkPixbuf* page_get_image (Page* self, gboolean apply_crop);
+static gchar* page_get_icc_data_encoded (Page* self, const gchar* icc_profile_filename);
+void page_copy_to_clipboard (Page* self, GtkWindow* window);
+void page_save (Page* self, const gchar* type, gint quality, GFile* file, GError** error);
+gpointer pixbuf_writer_ref (gpointer instance);
+void pixbuf_writer_unref (gpointer instance);
+GParamSpec* param_spec_pixbuf_writer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixbuf_writer (GValue* value, gpointer v_object);
+void value_take_pixbuf_writer (GValue* value, gpointer v_object);
+gpointer value_get_pixbuf_writer (const GValue* value);
+GType pixbuf_writer_get_type (void) G_GNUC_CONST;
+PixbufWriter* pixbuf_writer_new (GFileOutputStream* stream);
+PixbufWriter* pixbuf_writer_construct (GType object_type, GFileOutputStream* stream);
+const gchar* page_get_color_profile (Page* self);
+void pixbuf_writer_save (PixbufWriter* self, GdkPixbuf* image, const gchar* type, gchar** option_keys, int option_keys_length1, gchar** option_values, int option_values_length1, GError** error);
+gboolean page_get_is_landscape (Page* self);
+gboolean page_get_is_scanning (Page* self);
+gboolean page_get_has_data (Page* self);
+gboolean page_get_is_color (Page* self);
+static void page_finalize (Page* obj);
+enum {
+ PIXBUF_WRITER_DUMMY_PROPERTY
+};
+static gboolean pixbuf_writer_write_pixbuf_data (PixbufWriter* self, guint8* buf, int buf_length1, GError** error);
+static gboolean _pixbuf_writer_write_pixbuf_data_gdk_pixbuf_save_func (guint8* buf, gsize buf_length1, GError** error, gpointer self);
+static void pixbuf_writer_finalize (PixbufWriter* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+GType scan_direction_get_type (void) {
+ static volatile gsize scan_direction_type_id__volatile = 0;
+ if (g_once_init_enter (&scan_direction_type_id__volatile)) {
+ static const GEnumValue values[] = {{SCAN_DIRECTION_TOP_TO_BOTTOM, "SCAN_DIRECTION_TOP_TO_BOTTOM", "top-to-bottom"}, {SCAN_DIRECTION_LEFT_TO_RIGHT, "SCAN_DIRECTION_LEFT_TO_RIGHT", "left-to-right"}, {SCAN_DIRECTION_BOTTOM_TO_TOP, "SCAN_DIRECTION_BOTTOM_TO_TOP", "bottom-to-top"}, {SCAN_DIRECTION_RIGHT_TO_LEFT, "SCAN_DIRECTION_RIGHT_TO_LEFT", "right-to-left"}, {0, NULL, NULL}};
+ GType scan_direction_type_id;
+ scan_direction_type_id = g_enum_register_static ("ScanDirection", values);
+ g_once_init_leave (&scan_direction_type_id__volatile, scan_direction_type_id);
+ }
+ return scan_direction_type_id__volatile;
+}
+
+
+Page* page_construct (GType object_type, gint width, gint height, gint dpi, ScanDirection scan_direction) {
+ Page* self = NULL;
+ gboolean _tmp0_ = FALSE;
+ ScanDirection _tmp1_ = 0;
+ gint _tmp7_ = 0;
+ ScanDirection _tmp8_ = 0;
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self = (Page*) g_type_create_instance (object_type);
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = scan_direction;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp1_ == SCAN_DIRECTION_TOP_TO_BOTTOM) {
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = TRUE;
+#line 319 "page.c"
+ } else {
+ ScanDirection _tmp2_ = 0;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = scan_direction;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = _tmp2_ == SCAN_DIRECTION_BOTTOM_TO_TOP;
+#line 326 "page.c"
+ }
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp0_) {
+#line 330 "page.c"
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 178 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = width;
+#line 178 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_width (self, _tmp3_);
+#line 179 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = height;
+#line 179 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_height (self, _tmp4_);
+#line 341 "page.c"
+ } else {
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 183 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = height;
+#line 183 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_width (self, _tmp5_);
+#line 184 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = width;
+#line 184 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_height (self, _tmp6_);
+#line 353 "page.c"
+ }
+#line 186 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7_ = dpi;
+#line 186 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_dpi (self, _tmp7_);
+#line 187 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp8_ = scan_direction;
+#line 187 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_direction (self, _tmp8_);
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return self;
+#line 365 "page.c"
+}
+
+
+Page* page_new (gint width, gint height, gint dpi, ScanDirection scan_direction) {
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return page_construct (TYPE_PAGE, width, height, dpi, scan_direction);
+#line 372 "page.c"
+}
+
+
+static guchar* _vala_array_dup3 (guchar* self, int length) {
+#line 215 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return g_memdup (self, length * sizeof (guchar));
+#line 379 "page.c"
+}
+
+
+Page* page_construct_from_data (GType object_type, gint scan_width, gint scan_height, gint rowstride, gint n_channels, gint depth, gint dpi, ScanDirection scan_direction, const gchar* color_profile, guchar* pixels, int pixels_length1, gboolean has_crop, const gchar* crop_name, gint crop_x, gint crop_y, gint crop_width, gint crop_height) {
+ Page* self = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ ScanDirection _tmp7_ = 0;
+ const gchar* _tmp8_ = NULL;
+ guchar* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ guchar* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ guchar* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ gboolean _tmp12_ = FALSE;
+ const gchar* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+#line 190 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self = (Page*) g_type_create_instance (object_type);
+#line 206 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = scan_width;
+#line 206 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_width (self, _tmp0_);
+#line 207 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = scan_height;
+#line 207 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_height (self, _tmp1_);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = scan_height;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->expected_rows = _tmp2_;
+#line 209 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = rowstride;
+#line 209 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_rowstride (self, _tmp3_);
+#line 210 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = n_channels;
+#line 210 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_n_channels (self, _tmp4_);
+#line 211 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = depth;
+#line 211 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_depth (self, _tmp5_);
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = dpi;
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_dpi (self, _tmp6_);
+#line 213 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7_ = scan_direction;
+#line 213 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_direction (self, _tmp7_);
+#line 214 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp8_ = color_profile;
+#line 214 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_color_profile (self, _tmp8_);
+#line 215 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp9_ = pixels;
+#line 215 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp9__length1 = pixels_length1;
+#line 215 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp10_ = (_tmp9_ != NULL) ? _vala_array_dup3 (_tmp9_, _tmp9__length1) : ((gpointer) _tmp9_);
+#line 215 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp10__length1 = _tmp9__length1;
+#line 215 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->pixels = (g_free (self->priv->pixels), NULL);
+#line 215 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->pixels = _tmp10_;
+#line 215 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->pixels_length1 = _tmp10__length1;
+#line 215 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_pixels_size_ = self->priv->pixels_length1;
+#line 216 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp11_ = pixels;
+#line 216 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp11__length1 = pixels_length1;
+#line 216 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_has_data (self, _tmp11_ != NULL);
+#line 217 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp12_ = has_crop;
+#line 217 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_has_crop (self, _tmp12_);
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp13_ = crop_name;
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_name (self, _tmp13_);
+#line 219 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp14_ = crop_x;
+#line 219 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_x (self, _tmp14_);
+#line 220 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp15_ = crop_y;
+#line 220 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_y (self, _tmp15_);
+#line 221 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_ = crop_width;
+#line 221 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_width (self, _tmp16_);
+#line 222 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp17_ = crop_height;
+#line 222 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_height (self, _tmp17_);
+#line 190 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return self;
+#line 492 "page.c"
+}
+
+
+Page* page_new_from_data (gint scan_width, gint scan_height, gint rowstride, gint n_channels, gint depth, gint dpi, ScanDirection scan_direction, const gchar* color_profile, guchar* pixels, int pixels_length1, gboolean has_crop, const gchar* crop_name, gint crop_x, gint crop_y, gint crop_width, gint crop_height) {
+#line 190 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return page_construct_from_data (TYPE_PAGE, scan_width, scan_height, rowstride, n_channels, depth, dpi, scan_direction, color_profile, pixels, pixels_length1, has_crop, crop_name, crop_x, crop_y, crop_width, crop_height);
+#line 499 "page.c"
+}
+
+
+void page_set_page_info (Page* self, ScanPageInfo* info) {
+ ScanPageInfo* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ ScanPageInfo* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ ScanPageInfo* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ ScanPageInfo* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ ScanPageInfo* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ ScanPageInfo* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ guchar* _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ gint _tmp21_ = 0;
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (info != NULL);
+#line 227 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = info;
+#line 227 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = _tmp0_->height;
+#line 227 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->expected_rows = _tmp1_;
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = info;
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = _tmp2_->dpi;
+#line 228 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_dpi (self, (gint) _tmp3_);
+#line 231 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = info;
+#line 231 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = _tmp4_->width;
+#line 231 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_width (self, _tmp5_);
+#line 232 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = info;
+#line 232 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7_ = _tmp6_->height;
+#line 232 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_height (self, _tmp7_);
+#line 234 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp8_ = self->priv->_scan_height;
+#line 234 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp8_ < 0) {
+#line 558 "page.c"
+ gint _tmp9_ = 0;
+#line 235 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp9_ = self->priv->_scan_width;
+#line 235 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_height (self, _tmp9_ / 2);
+#line 564 "page.c"
+ }
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp10_ = info;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp11_ = _tmp10_->depth;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_depth (self, _tmp11_);
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp12_ = info;
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp13_ = _tmp12_->n_channels;
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_n_channels (self, _tmp13_);
+#line 238 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp14_ = self->priv->_scan_width;
+#line 238 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp15_ = self->priv->_depth;
+#line 238 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_ = self->priv->_n_channels;
+#line 238 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_rowstride (self, (((_tmp14_ * _tmp15_) * _tmp16_) + 7) / 8);
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp17_ = self->priv->_scan_height;
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp18_ = self->priv->_rowstride;
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp19_ = _tmp17_ * _tmp18_;
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->pixels = g_renew (guchar, self->priv->pixels, _tmp17_ * _tmp18_);
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ (_tmp19_ > self->priv->pixels_length1) ? memset (self->priv->pixels + self->priv->pixels_length1, 0, sizeof (guchar) * (_tmp19_ - self->priv->pixels_length1)) : NULL;
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->pixels_length1 = _tmp19_;
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_pixels_size_ = _tmp19_;
+#line 240 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp20_ = self->priv->pixels;
+#line 240 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp20__length1 = self->priv->pixels_length1;
+#line 240 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (_tmp20_ != NULL);
+#line 243 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp21_ = self->priv->_depth;
+#line 243 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp21_ == 1) {
+#line 610 "page.c"
+ guchar* _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+#line 244 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp22_ = self->priv->pixels;
+#line 244 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp22__length1 = self->priv->pixels_length1;
+#line 244 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp23_ = self->priv->_scan_height;
+#line 244 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp24_ = self->priv->_rowstride;
+#line 244 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ memset (_tmp22_, 0x00, (gsize) (_tmp23_ * _tmp24_));
+#line 625 "page.c"
+ } else {
+ guchar* _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp25_ = self->priv->pixels;
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp25__length1 = self->priv->pixels_length1;
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp26_ = self->priv->_scan_height;
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp27_ = self->priv->_rowstride;
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ memset (_tmp25_, 0xFF, (gsize) (_tmp26_ * _tmp27_));
+#line 641 "page.c"
+ }
+#line 248 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "size-changed");
+#line 249 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "pixels-changed");
+#line 647 "page.c"
+}
+
+
+void page_start (Page* self) {
+#line 252 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_is_scanning (self, TRUE);
+#line 255 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "scan-line-changed");
+#line 658 "page.c"
+}
+
+
+static void page_parse_line (Page* self, ScanLine* line, gint n, gboolean* size_changed) {
+ gboolean _vala_size_changed = FALSE;
+ gint line_number = 0;
+ ScanLine* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint offset = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint line_offset = 0;
+ gint _tmp15_ = 0;
+ ScanLine* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp32_ = 0;
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (line != NULL);
+#line 260 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = line;
+#line 260 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = _tmp0_->number;
+#line 260 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = n;
+#line 260 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ line_number = _tmp1_ + _tmp2_;
+#line 263 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _vala_size_changed = FALSE;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ while (TRUE) {
+#line 692 "page.c"
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint rows = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = line_number;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = self->priv->_scan_height;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (!(_tmp3_ >= _tmp4_)) {
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 712 "page.c"
+ }
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = self->priv->_scan_height;
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ rows = _tmp5_;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = rows;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7_ = self->priv->_scan_width;
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_height (self, _tmp6_ + (_tmp7_ / 2));
+#line 269 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp8_ = rows;
+#line 269 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp9_ = self->priv->_scan_height;
+#line 269 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_debug ("page.vala:269: Extending image from %d lines to %d lines", _tmp8_, _tmp9_);
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp10_ = self->priv->_scan_height;
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp11_ = self->priv->_rowstride;
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp12_ = _tmp10_ * _tmp11_;
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->pixels = g_renew (guchar, self->priv->pixels, _tmp10_ * _tmp11_);
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ (_tmp12_ > self->priv->pixels_length1) ? memset (self->priv->pixels + self->priv->pixels_length1, 0, sizeof (guchar) * (_tmp12_ - self->priv->pixels_length1)) : NULL;
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->pixels_length1 = _tmp12_;
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_pixels_size_ = _tmp12_;
+#line 272 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _vala_size_changed = TRUE;
+#line 746 "page.c"
+ }
+#line 276 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp13_ = line_number;
+#line 276 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp14_ = self->priv->_rowstride;
+#line 276 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ offset = _tmp13_ * _tmp14_;
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp15_ = n;
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_ = line;
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp17_ = _tmp16_->data_length;
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ line_offset = _tmp15_ * _tmp17_;
+#line 762 "page.c"
+ {
+ gint i = 0;
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ i = 0;
+#line 767 "page.c"
+ {
+ gboolean _tmp18_ = FALSE;
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp18_ = TRUE;
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ while (TRUE) {
+#line 774 "page.c"
+ gint _tmp20_ = 0;
+ ScanLine* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ guchar* _tmp23_ = NULL;
+ gint _tmp23__length1 = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ ScanLine* _tmp26_ = NULL;
+ guchar* _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ guchar _tmp30_ = '\0';
+ guchar _tmp31_ = '\0';
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (!_tmp18_) {
+#line 791 "page.c"
+ gint _tmp19_ = 0;
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp19_ = i;
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ i = _tmp19_ + 1;
+#line 797 "page.c"
+ }
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp18_ = FALSE;
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp20_ = i;
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp21_ = line;
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp22_ = _tmp21_->data_length;
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (!(_tmp20_ < _tmp22_)) {
+#line 278 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 811 "page.c"
+ }
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp23_ = self->priv->pixels;
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp23__length1 = self->priv->pixels_length1;
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp24_ = offset;
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp25_ = i;
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp26_ = line;
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp27_ = _tmp26_->data;
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp27__length1 = _tmp26_->data_length1;
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp28_ = line_offset;
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp29_ = i;
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp30_ = _tmp27_[_tmp28_ + _tmp29_];
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp23_[_tmp24_ + _tmp25_] = _tmp30_;
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp31_ = _tmp23_[_tmp24_ + _tmp25_];
+#line 837 "page.c"
+ }
+ }
+ }
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp32_ = line_number;
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_line (self, _tmp32_);
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (size_changed) {
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ *size_changed = _vala_size_changed;
+#line 849 "page.c"
+ }
+}
+
+
+void page_parse_scan_line (Page* self, ScanLine* line) {
+ gboolean size_has_changed = FALSE;
+ gboolean _tmp8_ = FALSE;
+#line 284 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 284 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (line != NULL);
+#line 286 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ size_has_changed = FALSE;
+#line 863 "page.c"
+ {
+ gint i = 0;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ i = 0;
+#line 868 "page.c"
+ {
+ gboolean _tmp0_ = FALSE;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = TRUE;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ while (TRUE) {
+#line 875 "page.c"
+ gint _tmp2_ = 0;
+ ScanLine* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ ScanLine* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (!_tmp0_) {
+#line 884 "page.c"
+ gint _tmp1_ = 0;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = i;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ i = _tmp1_ + 1;
+#line 890 "page.c"
+ }
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = FALSE;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = i;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = line;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = _tmp3_->n_lines;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (!(_tmp2_ < _tmp4_)) {
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 904 "page.c"
+ }
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = line;
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = i;
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_parse_line (self, _tmp5_, _tmp6_, &_tmp7_);
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ size_has_changed = _tmp7_;
+#line 914 "page.c"
+ }
+ }
+ }
+#line 290 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_has_data (self, TRUE);
+#line 292 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp8_ = size_has_changed;
+#line 292 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp8_) {
+#line 293 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "size-changed");
+#line 926 "page.c"
+ }
+#line 294 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "scan-line-changed");
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "pixels-changed");
+#line 932 "page.c"
+}
+
+
+void page_finish (Page* self) {
+ gboolean size_has_changed = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ gboolean _tmp11_ = FALSE;
+#line 298 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ size_has_changed = FALSE;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = self->priv->expected_rows;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp1_ < 0) {
+#line 949 "page.c"
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = self->priv->_scan_line;
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = self->priv->_scan_height;
+#line 304 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = _tmp2_ != _tmp3_;
+#line 958 "page.c"
+ } else {
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = FALSE;
+#line 962 "page.c"
+ }
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp0_) {
+#line 966 "page.c"
+ gint rows = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = self->priv->_scan_height;
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ rows = _tmp4_;
+#line 307 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = self->priv->_scan_line;
+#line 307 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_height (self, _tmp5_);
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = self->priv->_scan_height;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7_ = self->priv->_rowstride;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp8_ = _tmp6_ * _tmp7_;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->pixels = g_renew (guchar, self->priv->pixels, _tmp6_ * _tmp7_);
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ (_tmp8_ > self->priv->pixels_length1) ? memset (self->priv->pixels + self->priv->pixels_length1, 0, sizeof (guchar) * (_tmp8_ - self->priv->pixels_length1)) : NULL;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->pixels_length1 = _tmp8_;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_pixels_size_ = _tmp8_;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp9_ = rows;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp10_ = self->priv->_scan_height;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_debug ("page.vala:309: Trimming page from %d lines to %d lines", _tmp9_, _tmp10_);
+#line 311 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ size_has_changed = TRUE;
+#line 1005 "page.c"
+ }
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_is_scanning (self, FALSE);
+#line 315 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp11_ = size_has_changed;
+#line 315 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp11_) {
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "size-changed");
+#line 1015 "page.c"
+ }
+#line 317 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "scan-line-changed");
+#line 318 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "scan-finished");
+#line 1021 "page.c"
+}
+
+
+void page_rotate_left (Page* self) {
+ ScanDirection _tmp0_ = 0;
+ ScanDirection _tmp1_ = 0;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = page_get_scan_direction (self);
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = _tmp0_;
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ switch (_tmp1_) {
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ case SCAN_DIRECTION_TOP_TO_BOTTOM:
+#line 1038 "page.c"
+ {
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_direction (self, SCAN_DIRECTION_LEFT_TO_RIGHT);
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1044 "page.c"
+ }
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ case SCAN_DIRECTION_LEFT_TO_RIGHT:
+#line 1048 "page.c"
+ {
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_direction (self, SCAN_DIRECTION_BOTTOM_TO_TOP);
+#line 330 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1054 "page.c"
+ }
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ case SCAN_DIRECTION_BOTTOM_TO_TOP:
+#line 1058 "page.c"
+ {
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_direction (self, SCAN_DIRECTION_RIGHT_TO_LEFT);
+#line 333 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1064 "page.c"
+ }
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ case SCAN_DIRECTION_RIGHT_TO_LEFT:
+#line 1068 "page.c"
+ {
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_direction (self, SCAN_DIRECTION_TOP_TO_BOTTOM);
+#line 336 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1074 "page.c"
+ }
+ default:
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1079 "page.c"
+ }
+}
+
+
+void page_rotate_right (Page* self) {
+ ScanDirection _tmp0_ = 0;
+ ScanDirection _tmp1_ = 0;
+#line 340 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = page_get_scan_direction (self);
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = _tmp0_;
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ switch (_tmp1_) {
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ case SCAN_DIRECTION_TOP_TO_BOTTOM:
+#line 1097 "page.c"
+ {
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_direction (self, SCAN_DIRECTION_RIGHT_TO_LEFT);
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1103 "page.c"
+ }
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ case SCAN_DIRECTION_LEFT_TO_RIGHT:
+#line 1107 "page.c"
+ {
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_direction (self, SCAN_DIRECTION_TOP_TO_BOTTOM);
+#line 349 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1113 "page.c"
+ }
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ case SCAN_DIRECTION_BOTTOM_TO_TOP:
+#line 1117 "page.c"
+ {
+#line 351 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_direction (self, SCAN_DIRECTION_LEFT_TO_RIGHT);
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1123 "page.c"
+ }
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ case SCAN_DIRECTION_RIGHT_TO_LEFT:
+#line 1127 "page.c"
+ {
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_scan_direction (self, SCAN_DIRECTION_BOTTOM_TO_TOP);
+#line 355 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1133 "page.c"
+ }
+ default:
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1138 "page.c"
+ }
+}
+
+
+void page_set_no_crop (Page* self) {
+ gboolean _tmp0_ = FALSE;
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 361 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_has_crop;
+#line 361 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (!_tmp0_) {
+#line 362 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return;
+#line 1153 "page.c"
+ }
+#line 363 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_has_crop (self, FALSE);
+#line 364 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_name (self, NULL);
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_x (self, 0);
+#line 366 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_y (self, 0);
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_width (self, 0);
+#line 368 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_height (self, 0);
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "crop-changed");
+#line 1169 "page.c"
+}
+
+
+void page_set_custom_crop (Page* self, gint width, gint height) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ const gchar* _tmp5_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+#line 372 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 374 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = width;
+#line 374 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (_tmp0_ >= 1);
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = height;
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (_tmp1_ >= 1);
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = self->priv->_crop_name;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp5_ == NULL) {
+#line 1196 "page.c"
+ gboolean _tmp6_ = FALSE;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = self->priv->_has_crop;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = _tmp6_;
+#line 1202 "page.c"
+ } else {
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = FALSE;
+#line 1206 "page.c"
+ }
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp4_) {
+#line 1210 "page.c"
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7_ = self->priv->_crop_width;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp8_ = width;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = _tmp7_ == _tmp8_;
+#line 1219 "page.c"
+ } else {
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = FALSE;
+#line 1223 "page.c"
+ }
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp3_) {
+#line 1227 "page.c"
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp9_ = self->priv->_crop_height;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp10_ = height;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = _tmp9_ == _tmp10_;
+#line 1236 "page.c"
+ } else {
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = FALSE;
+#line 1240 "page.c"
+ }
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp2_) {
+#line 378 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return;
+#line 1246 "page.c"
+ }
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_name (self, NULL);
+#line 380 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_has_crop (self, TRUE);
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp11_ = width;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_width (self, _tmp11_);
+#line 383 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp12_ = height;
+#line 383 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_height (self, _tmp12_);
+#line 396 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "crop-changed");
+#line 1262 "page.c"
+}
+
+
+void page_set_named_crop (Page* self, const gchar* name) {
+ gdouble w = 0.0;
+ gdouble h = 0.0;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GQuark _tmp3_ = 0U;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ static GQuark _tmp2_label0 = 0;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ static GQuark _tmp2_label1 = 0;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ static GQuark _tmp2_label2 = 0;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ static GQuark _tmp2_label3 = 0;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ static GQuark _tmp2_label4 = 0;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ static GQuark _tmp2_label5 = 0;
+#line 1284 "page.c"
+ const gchar* _tmp5_ = NULL;
+ gint pw = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint ph = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gdouble _tmp15_ = 0.0;
+ gint _tmp16_ = 0;
+ gdouble _tmp17_ = 0.0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+#line 399 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 399 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (name != NULL);
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = name;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = _tmp0_;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("A4")))) {
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ switch (0) {
+#line 1316 "page.c"
+ default:
+ {
+#line 405 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ w = 8.3;
+#line 406 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ h = 11.7;
+#line 407 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1325 "page.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("A5")))) {
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ switch (0) {
+#line 1331 "page.c"
+ default:
+ {
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ w = 5.8;
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ h = 8.3;
+#line 411 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1340 "page.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("A6")))) {
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ switch (0) {
+#line 1346 "page.c"
+ default:
+ {
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ w = 4.1;
+#line 414 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ h = 5.8;
+#line 415 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1355 "page.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label3) ? _tmp2_label3 : (_tmp2_label3 = g_quark_from_static_string ("letter")))) {
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ switch (0) {
+#line 1361 "page.c"
+ default:
+ {
+#line 417 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ w = 8.5;
+#line 418 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ h = (gdouble) 11;
+#line 419 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1370 "page.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label4) ? _tmp2_label4 : (_tmp2_label4 = g_quark_from_static_string ("legal")))) {
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ switch (0) {
+#line 1376 "page.c"
+ default:
+ {
+#line 421 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ w = 8.5;
+#line 422 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ h = (gdouble) 14;
+#line 423 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1385 "page.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label5) ? _tmp2_label5 : (_tmp2_label5 = g_quark_from_static_string ("4x6")))) {
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ switch (0) {
+#line 1391 "page.c"
+ default:
+ {
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ w = (gdouble) 4;
+#line 426 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ h = (gdouble) 6;
+#line 427 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1400 "page.c"
+ }
+ }
+ } else {
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ switch (0) {
+#line 1406 "page.c"
+ default:
+ {
+ const gchar* _tmp4_ = NULL;
+#line 429 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = name;
+#line 429 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_warning ("page.vala:429: Unknown paper size '%s'", _tmp4_);
+#line 430 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return;
+#line 1416 "page.c"
+ }
+ }
+ }
+#line 433 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = name;
+#line 433 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_name (self, _tmp5_);
+#line 434 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_has_crop (self, TRUE);
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = page_get_width (self);
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7_ = _tmp6_;
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ pw = _tmp7_;
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp8_ = page_get_height (self);
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp9_ = _tmp8_;
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ ph = _tmp9_;
+#line 440 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp10_ = pw;
+#line 440 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp11_ = ph;
+#line 440 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp10_ > _tmp11_) {
+#line 1444 "page.c"
+ gdouble t = 0.0;
+ gdouble _tmp12_ = 0.0;
+ gdouble _tmp13_ = 0.0;
+ gdouble _tmp14_ = 0.0;
+#line 442 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp12_ = w;
+#line 442 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ t = _tmp12_;
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp13_ = h;
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ w = _tmp13_;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp14_ = t;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ h = _tmp14_;
+#line 1461 "page.c"
+ }
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp15_ = w;
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_ = self->priv->_dpi;
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_width (self, (gint) ((_tmp15_ * _tmp16_) + 0.5));
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp17_ = h;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp18_ = self->priv->_dpi;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_height (self, (gint) ((_tmp17_ * _tmp18_) + 0.5));
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp19_ = self->priv->_crop_width;
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp20_ = pw;
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp19_ < _tmp20_) {
+#line 1481 "page.c"
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+#line 452 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp21_ = pw;
+#line 452 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp22_ = self->priv->_crop_width;
+#line 452 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_x (self, (_tmp21_ - _tmp22_) / 2);
+#line 1490 "page.c"
+ } else {
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_x (self, 0);
+#line 1494 "page.c"
+ }
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp23_ = self->priv->_crop_height;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp24_ = ph;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp23_ < _tmp24_) {
+#line 1502 "page.c"
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+#line 456 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp25_ = ph;
+#line 456 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp26_ = self->priv->_crop_height;
+#line 456 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_y (self, (_tmp25_ - _tmp26_) / 2);
+#line 1511 "page.c"
+ } else {
+#line 458 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_y (self, 0);
+#line 1515 "page.c"
+ }
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "crop-changed");
+#line 1519 "page.c"
+}
+
+
+void page_move_crop (Page* self, gint x, gint y) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 462 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 464 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = x;
+#line 464 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (_tmp0_ >= 0);
+#line 465 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = y;
+#line 465 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (_tmp1_ >= 0);
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = x;
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = page_get_width (self);
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = _tmp3_;
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (_tmp2_ < _tmp4_);
+#line 467 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = y;
+#line 467 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = page_get_height (self);
+#line 467 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7_ = _tmp6_;
+#line 467 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (_tmp5_ < _tmp7_);
+#line 469 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp8_ = x;
+#line 469 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_x (self, _tmp8_);
+#line 470 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp9_ = y;
+#line 470 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_y (self, _tmp9_);
+#line 471 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "crop-changed");
+#line 1570 "page.c"
+}
+
+
+void page_rotate_crop (Page* self) {
+ gboolean _tmp0_ = FALSE;
+ gint t = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ const gchar* _tmp4_ = NULL;
+#line 474 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_has_crop;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (!_tmp0_) {
+#line 477 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return;
+#line 1589 "page.c"
+ }
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = self->priv->_crop_width;
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ t = _tmp1_;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = self->priv->_crop_height;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_width (self, _tmp2_);
+#line 481 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = t;
+#line 481 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_height (self, _tmp3_);
+#line 484 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = self->priv->_crop_name;
+#line 484 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp4_ == NULL) {
+#line 1607 "page.c"
+ gint w = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint h = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp21_ = 0;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = page_get_width (self);
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = _tmp5_;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ w = _tmp6_;
+#line 487 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7_ = page_get_height (self);
+#line 487 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp8_ = _tmp7_;
+#line 487 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ h = _tmp8_;
+#line 489 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp9_ = self->priv->_crop_x;
+#line 489 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp10_ = self->priv->_crop_width;
+#line 489 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp11_ = w;
+#line 489 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if ((_tmp9_ + _tmp10_) > _tmp11_) {
+#line 1642 "page.c"
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp12_ = w;
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp13_ = self->priv->_crop_width;
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_x (self, _tmp12_ - _tmp13_);
+#line 1651 "page.c"
+ }
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp14_ = self->priv->_crop_x;
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp14_ < 0) {
+#line 1657 "page.c"
+ gint _tmp15_ = 0;
+#line 493 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_x (self, 0);
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp15_ = w;
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_width (self, _tmp15_);
+#line 1665 "page.c"
+ }
+#line 496 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_ = self->priv->_crop_y;
+#line 496 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp17_ = self->priv->_crop_height;
+#line 496 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp18_ = h;
+#line 496 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if ((_tmp16_ + _tmp17_) > _tmp18_) {
+#line 1675 "page.c"
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp19_ = h;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp20_ = self->priv->_crop_height;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_y (self, _tmp19_ - _tmp20_);
+#line 1684 "page.c"
+ }
+#line 498 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp21_ = self->priv->_crop_y;
+#line 498 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp21_ < 0) {
+#line 1690 "page.c"
+ gint _tmp22_ = 0;
+#line 500 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_y (self, 0);
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp22_ = h;
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_height (self, _tmp22_);
+#line 1698 "page.c"
+ }
+ }
+#line 505 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "crop-changed");
+#line 1703 "page.c"
+}
+
+
+guchar* page_get_pixels (Page* self, int* result_length1) {
+ guchar* result = NULL;
+ guchar* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ guchar* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->pixels;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0__length1 = self->priv->pixels_length1;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = _tmp0_;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (result_length1) {
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ *result_length1 = _tmp1__length1;
+#line 1727 "page.c"
+ }
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp1_;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 1733 "page.c"
+}
+
+
+static guchar page_get_sample (Page* self, guchar* pixels, int pixels_length1, gint offset, gint x, gint depth, gint n_channels, gint channel) {
+ guchar result = '\0';
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, '\0');
+#line 517 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = (guchar) 0xFF;
+#line 517 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 1745 "page.c"
+}
+
+
+static void page_get_pixel (Page* self, gint x, gint y, guchar* pixel, int pixel_length1, gint offset) {
+ ScanDirection _tmp0_ = 0;
+ ScanDirection _tmp1_ = 0;
+ gint line_offset = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gboolean _tmp16_ = FALSE;
+ gint _tmp17_ = 0;
+ guchar* _tmp98_ = NULL;
+ gint _tmp98__length1 = 0;
+ gint _tmp99_ = 0;
+ guchar* _tmp100_ = NULL;
+ gint _tmp100__length1 = 0;
+ gint _tmp101_ = 0;
+ gint _tmp102_ = 0;
+ gint _tmp103_ = 0;
+ gint _tmp104_ = 0;
+ guchar _tmp105_ = '\0';
+ guchar _tmp106_ = '\0';
+ guchar* _tmp107_ = NULL;
+ gint _tmp107__length1 = 0;
+ gint _tmp108_ = 0;
+ guchar* _tmp109_ = NULL;
+ gint _tmp109__length1 = 0;
+ gint _tmp110_ = 0;
+ gint _tmp111_ = 0;
+ gint _tmp112_ = 0;
+ gint _tmp113_ = 0;
+ guchar _tmp114_ = '\0';
+ guchar _tmp115_ = '\0';
+ guchar* _tmp116_ = NULL;
+ gint _tmp116__length1 = 0;
+ gint _tmp117_ = 0;
+ guchar* _tmp118_ = NULL;
+ gint _tmp118__length1 = 0;
+ gint _tmp119_ = 0;
+ gint _tmp120_ = 0;
+ gint _tmp121_ = 0;
+ gint _tmp122_ = 0;
+ guchar _tmp123_ = '\0';
+ guchar _tmp124_ = '\0';
+#line 521 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = page_get_scan_direction (self);
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = _tmp0_;
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ switch (_tmp1_) {
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ case SCAN_DIRECTION_TOP_TO_BOTTOM:
+#line 1800 "page.c"
+ {
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1804 "page.c"
+ }
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ case SCAN_DIRECTION_BOTTOM_TO_TOP:
+#line 1808 "page.c"
+ {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 528 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = self->priv->_scan_width;
+#line 528 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = x;
+#line 528 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ x = (_tmp2_ - _tmp3_) - 1;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = self->priv->_scan_height;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = y;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ y = (_tmp4_ - _tmp5_) - 1;
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1828 "page.c"
+ }
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ case SCAN_DIRECTION_LEFT_TO_RIGHT:
+#line 1832 "page.c"
+ {
+ gint t = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 532 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = x;
+#line 532 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ t = _tmp6_;
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7_ = self->priv->_scan_width;
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp8_ = y;
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ x = (_tmp7_ - _tmp8_) - 1;
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp9_ = t;
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ y = _tmp9_;
+#line 535 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1855 "page.c"
+ }
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ case SCAN_DIRECTION_RIGHT_TO_LEFT:
+#line 1859 "page.c"
+ {
+ gint t = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 537 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp10_ = x;
+#line 537 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ t = _tmp10_;
+#line 538 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp11_ = y;
+#line 538 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ x = _tmp11_;
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp12_ = self->priv->_scan_height;
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp13_ = t;
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ y = (_tmp12_ - _tmp13_) - 1;
+#line 540 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1882 "page.c"
+ }
+ default:
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 1887 "page.c"
+ }
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp14_ = self->priv->_rowstride;
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp15_ = y;
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ line_offset = _tmp14_ * _tmp15_;
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp17_ = self->priv->_depth;
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp17_ == 8) {
+#line 1899 "page.c"
+ gint _tmp18_ = 0;
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp18_ = self->priv->_n_channels;
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_ = _tmp18_ == 3;
+#line 1905 "page.c"
+ } else {
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_ = FALSE;
+#line 1909 "page.c"
+ }
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp16_) {
+#line 1913 "page.c"
+ gint o = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ guchar* _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ gint _tmp23_ = 0;
+ guchar* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ gint _tmp25_ = 0;
+ guchar _tmp26_ = '\0';
+ guchar _tmp27_ = '\0';
+ guchar* _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ gint _tmp29_ = 0;
+ guchar* _tmp30_ = NULL;
+ gint _tmp30__length1 = 0;
+ gint _tmp31_ = 0;
+ guchar _tmp32_ = '\0';
+ guchar _tmp33_ = '\0';
+ guchar* _tmp34_ = NULL;
+ gint _tmp34__length1 = 0;
+ gint _tmp35_ = 0;
+ guchar* _tmp36_ = NULL;
+ gint _tmp36__length1 = 0;
+ gint _tmp37_ = 0;
+ guchar _tmp38_ = '\0';
+ guchar _tmp39_ = '\0';
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp19_ = line_offset;
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp20_ = x;
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp21_ = self->priv->_n_channels;
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ o = _tmp19_ + (_tmp20_ * _tmp21_);
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp22_ = pixel;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp22__length1 = pixel_length1;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp23_ = offset;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp24_ = self->priv->pixels;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp24__length1 = self->priv->pixels_length1;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp25_ = o;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp26_ = _tmp24_[_tmp25_];
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp22_[_tmp23_ + 0] = _tmp26_;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp27_ = _tmp22_[_tmp23_ + 0];
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp28_ = pixel;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp28__length1 = pixel_length1;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp29_ = offset;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp30_ = self->priv->pixels;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp30__length1 = self->priv->pixels_length1;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp31_ = o;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp32_ = _tmp30_[_tmp31_ + 1];
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp28_[_tmp29_ + 1] = _tmp32_;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp33_ = _tmp28_[_tmp29_ + 1];
+#line 551 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp34_ = pixel;
+#line 551 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp34__length1 = pixel_length1;
+#line 551 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp35_ = offset;
+#line 551 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp36_ = self->priv->pixels;
+#line 551 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp36__length1 = self->priv->pixels_length1;
+#line 551 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp37_ = o;
+#line 551 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp38_ = _tmp36_[_tmp37_ + 2];
+#line 551 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp34_[_tmp35_ + 2] = _tmp38_;
+#line 551 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp39_ = _tmp34_[_tmp35_ + 2];
+#line 552 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return;
+#line 2006 "page.c"
+ } else {
+ gboolean _tmp40_ = FALSE;
+ gint _tmp41_ = 0;
+#line 554 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp41_ = self->priv->_depth;
+#line 554 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp41_ == 8) {
+#line 2014 "page.c"
+ gint _tmp42_ = 0;
+#line 554 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp42_ = self->priv->_n_channels;
+#line 554 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp40_ = _tmp42_ == 1;
+#line 2020 "page.c"
+ } else {
+#line 554 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp40_ = FALSE;
+#line 2024 "page.c"
+ }
+#line 554 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp40_) {
+#line 2028 "page.c"
+ guchar p = '\0';
+ guchar* _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+ guchar _tmp46_ = '\0';
+ guchar* _tmp47_ = NULL;
+ gint _tmp47__length1 = 0;
+ gint _tmp48_ = 0;
+ guchar* _tmp49_ = NULL;
+ gint _tmp49__length1 = 0;
+ gint _tmp50_ = 0;
+ guchar* _tmp51_ = NULL;
+ gint _tmp51__length1 = 0;
+ gint _tmp52_ = 0;
+ guchar _tmp53_ = '\0';
+ guchar _tmp54_ = '\0';
+ guchar _tmp55_ = '\0';
+ guchar _tmp56_ = '\0';
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp43_ = self->priv->pixels;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp43__length1 = self->priv->pixels_length1;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp44_ = line_offset;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp45_ = x;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp46_ = _tmp43_[_tmp44_ + _tmp45_];
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ p = _tmp46_;
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp47_ = pixel;
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp47__length1 = pixel_length1;
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp48_ = offset;
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp49_ = pixel;
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp49__length1 = pixel_length1;
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp50_ = offset;
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp51_ = pixel;
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp51__length1 = pixel_length1;
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp52_ = offset;
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp53_ = p;
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp51_[_tmp52_ + 2] = _tmp53_;
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp54_ = _tmp51_[_tmp52_ + 2];
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp49_[_tmp50_ + 1] = _tmp54_;
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp55_ = _tmp49_[_tmp50_ + 1];
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp47_[_tmp48_ + 0] = _tmp55_;
+#line 557 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp56_ = _tmp47_[_tmp48_ + 0];
+#line 558 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return;
+#line 2094 "page.c"
+ } else {
+ gboolean _tmp57_ = FALSE;
+ gint _tmp58_ = 0;
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp58_ = self->priv->_depth;
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp58_ == 1) {
+#line 2102 "page.c"
+ gint _tmp59_ = 0;
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp59_ = self->priv->_n_channels;
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp57_ = _tmp59_ == 1;
+#line 2108 "page.c"
+ } else {
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp57_ = FALSE;
+#line 2112 "page.c"
+ }
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp57_) {
+#line 2116 "page.c"
+ guchar p = '\0';
+ guchar* _tmp60_ = NULL;
+ gint _tmp60__length1 = 0;
+ gint _tmp61_ = 0;
+ gint _tmp62_ = 0;
+ guchar _tmp63_ = '\0';
+ gint _tmp64_ = 0;
+ guchar _tmp65_ = '\0';
+ gint _tmp66_ = 0;
+ guchar* _tmp67_ = NULL;
+ gint _tmp67__length1 = 0;
+ gint _tmp68_ = 0;
+ guchar* _tmp69_ = NULL;
+ gint _tmp69__length1 = 0;
+ gint _tmp70_ = 0;
+ guchar* _tmp71_ = NULL;
+ gint _tmp71__length1 = 0;
+ gint _tmp72_ = 0;
+ guchar _tmp73_ = '\0';
+ guchar _tmp74_ = '\0';
+ guchar _tmp75_ = '\0';
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp60_ = self->priv->pixels;
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp60__length1 = self->priv->pixels_length1;
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp61_ = line_offset;
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp62_ = x;
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp63_ = _tmp60_[_tmp61_ + (_tmp62_ / 8)];
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ p = _tmp63_;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp65_ = p;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp66_ = x;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (((gint) (_tmp65_ & (0x80 >> (_tmp66_ % 8)))) != 0) {
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp64_ = 0x00;
+#line 2158 "page.c"
+ } else {
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp64_ = 0xFF;
+#line 2162 "page.c"
+ }
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp67_ = pixel;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp67__length1 = pixel_length1;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp68_ = offset;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp69_ = pixel;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp69__length1 = pixel_length1;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp70_ = offset;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp71_ = pixel;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp71__length1 = pixel_length1;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp72_ = offset;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp71_[_tmp72_ + 2] = (guchar) _tmp64_;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp73_ = _tmp71_[_tmp72_ + 2];
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp69_[_tmp70_ + 1] = _tmp73_;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp74_ = _tmp69_[_tmp70_ + 1];
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp67_[_tmp68_ + 0] = _tmp74_;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp75_ = _tmp67_[_tmp68_ + 0];
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return;
+#line 2196 "page.c"
+ } else {
+ gboolean _tmp76_ = FALSE;
+ gint _tmp77_ = 0;
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp77_ = self->priv->_depth;
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp77_ == 2) {
+#line 2204 "page.c"
+ gint _tmp78_ = 0;
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp78_ = self->priv->_n_channels;
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp76_ = _tmp78_ == 1;
+#line 2210 "page.c"
+ } else {
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp76_ = FALSE;
+#line 2214 "page.c"
+ }
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp76_) {
+#line 2218 "page.c"
+ gint block_shift[4] = {0};
+ gint _tmp79_[4] = {0};
+ guchar p = '\0';
+ guchar* _tmp80_ = NULL;
+ gint _tmp80__length1 = 0;
+ gint _tmp81_ = 0;
+ gint _tmp82_ = 0;
+ guchar _tmp83_ = '\0';
+ gint sample = 0;
+ guchar _tmp84_ = '\0';
+ gint _tmp85_ = 0;
+ gint _tmp86_ = 0;
+ gint _tmp87_ = 0;
+ guchar* _tmp88_ = NULL;
+ gint _tmp88__length1 = 0;
+ gint _tmp89_ = 0;
+ guchar* _tmp90_ = NULL;
+ gint _tmp90__length1 = 0;
+ gint _tmp91_ = 0;
+ guchar* _tmp92_ = NULL;
+ gint _tmp92__length1 = 0;
+ gint _tmp93_ = 0;
+ gint _tmp94_ = 0;
+ guchar _tmp95_ = '\0';
+ guchar _tmp96_ = '\0';
+ guchar _tmp97_ = '\0';
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp79_[0] = 6;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp79_[1] = 4;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp79_[2] = 2;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp79_[3] = 0;
+#line 572 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ memcpy (block_shift, _tmp79_, 4 * sizeof (gint));
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp80_ = self->priv->pixels;
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp80__length1 = self->priv->pixels_length1;
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp81_ = line_offset;
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp82_ = x;
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp83_ = _tmp80_[_tmp81_ + (_tmp82_ / 4)];
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ p = _tmp83_;
+#line 575 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp84_ = p;
+#line 575 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp85_ = x;
+#line 575 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp86_ = block_shift[_tmp85_ % 4];
+#line 575 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ sample = (_tmp84_ >> _tmp86_) & 0x3;
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp87_ = sample;
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ sample = (_tmp87_ * 255) / 3;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp88_ = pixel;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp88__length1 = pixel_length1;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp89_ = offset;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp90_ = pixel;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp90__length1 = pixel_length1;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp91_ = offset;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp92_ = pixel;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp92__length1 = pixel_length1;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp93_ = offset;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp94_ = sample;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp92_[_tmp93_ + 2] = (guchar) _tmp94_;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp95_ = _tmp92_[_tmp93_ + 2];
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp90_[_tmp91_ + 1] = _tmp95_;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp96_ = _tmp90_[_tmp91_ + 1];
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp88_[_tmp89_ + 0] = _tmp96_;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp97_ = _tmp88_[_tmp89_ + 0];
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return;
+#line 2313 "page.c"
+ }
+ }
+ }
+ }
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp98_ = pixel;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp98__length1 = pixel_length1;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp99_ = offset;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp100_ = self->priv->pixels;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp100__length1 = self->priv->pixels_length1;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp101_ = line_offset;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp102_ = x;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp103_ = self->priv->_depth;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp104_ = self->priv->_n_channels;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp105_ = page_get_sample (self, _tmp100_, _tmp100__length1, _tmp101_, _tmp102_, _tmp103_, _tmp104_, 0);
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp98_[_tmp99_ + 0] = _tmp105_;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp106_ = _tmp98_[_tmp99_ + 0];
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp107_ = pixel;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp107__length1 = pixel_length1;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp108_ = offset;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp109_ = self->priv->pixels;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp109__length1 = self->priv->pixels_length1;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp110_ = line_offset;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp111_ = x;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp112_ = self->priv->_depth;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp113_ = self->priv->_n_channels;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp114_ = page_get_sample (self, _tmp109_, _tmp109__length1, _tmp110_, _tmp111_, _tmp112_, _tmp113_, 1);
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp107_[_tmp108_ + 1] = _tmp114_;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp115_ = _tmp107_[_tmp108_ + 1];
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp116_ = pixel;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp116__length1 = pixel_length1;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp117_ = offset;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp118_ = self->priv->pixels;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp118__length1 = self->priv->pixels_length1;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp119_ = line_offset;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp120_ = x;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp121_ = self->priv->_depth;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp122_ = self->priv->_n_channels;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp123_ = page_get_sample (self, _tmp118_, _tmp118__length1, _tmp119_, _tmp120_, _tmp121_, _tmp122_, 2);
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp116_[_tmp117_ + 2] = _tmp123_;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp124_ = _tmp116_[_tmp117_ + 2];
+#line 2390 "page.c"
+}
+
+
+GdkPixbuf* page_get_image (Page* self, gboolean apply_crop) {
+ GdkPixbuf* result = NULL;
+ gint l = 0;
+ gint r = 0;
+ gint t = 0;
+ gint b = 0;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GdkPixbuf* image = NULL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ GdkPixbuf* _tmp29_ = NULL;
+ guint8* image_pixels = NULL;
+ GdkPixbuf* _tmp30_ = NULL;
+ guint8* _tmp31_ = NULL;
+ gint image_pixels_length1 = 0;
+ gint _image_pixels_size_ = 0;
+#line 588 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = apply_crop;
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp1_) {
+#line 2419 "page.c"
+ gboolean _tmp2_ = FALSE;
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = self->priv->_has_crop;
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = _tmp2_;
+#line 2425 "page.c"
+ } else {
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = FALSE;
+#line 2429 "page.c"
+ }
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp0_) {
+#line 2433 "page.c"
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+#line 593 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = self->priv->_crop_x;
+#line 593 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ l = _tmp3_;
+#line 594 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = l;
+#line 594 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = self->priv->_crop_width;
+#line 594 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ r = _tmp4_ + _tmp5_;
+#line 595 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = self->priv->_crop_y;
+#line 595 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ t = _tmp6_;
+#line 596 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7_ = t;
+#line 596 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp8_ = self->priv->_crop_height;
+#line 596 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ b = _tmp7_ + _tmp8_;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp9_ = l;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp9_ < 0) {
+#line 599 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ l = 0;
+#line 2474 "page.c"
+ }
+#line 600 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp10_ = r;
+#line 600 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp11_ = page_get_width (self);
+#line 600 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp12_ = _tmp11_;
+#line 600 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp10_ > _tmp12_) {
+#line 2484 "page.c"
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp13_ = page_get_width (self);
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp14_ = _tmp13_;
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ r = _tmp14_;
+#line 2493 "page.c"
+ }
+#line 602 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp15_ = t;
+#line 602 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp15_ < 0) {
+#line 603 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ t = 0;
+#line 2501 "page.c"
+ }
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_ = b;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp17_ = page_get_height (self);
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp18_ = _tmp17_;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp16_ > _tmp18_) {
+#line 2511 "page.c"
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 605 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp19_ = page_get_height (self);
+#line 605 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp20_ = _tmp19_;
+#line 605 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ b = _tmp20_;
+#line 2520 "page.c"
+ }
+ } else {
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+#line 609 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ l = 0;
+#line 610 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp21_ = page_get_width (self);
+#line 610 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp22_ = _tmp21_;
+#line 610 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ r = _tmp22_;
+#line 611 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ t = 0;
+#line 612 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp23_ = page_get_height (self);
+#line 612 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp24_ = _tmp23_;
+#line 612 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ b = _tmp24_;
+#line 2543 "page.c"
+ }
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp25_ = r;
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp26_ = l;
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp27_ = b;
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp28_ = t;
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp29_ = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, _tmp25_ - _tmp26_, _tmp27_ - _tmp28_);
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ image = _tmp29_;
+#line 616 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp30_ = image;
+#line 616 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp31_ = gdk_pixbuf_get_pixels (_tmp30_);
+#line 616 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ image_pixels = _tmp31_;
+#line 616 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ image_pixels_length1 = -1;
+#line 616 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _image_pixels_size_ = image_pixels_length1;
+#line 2567 "page.c"
+ {
+ gint y = 0;
+ gint _tmp32_ = 0;
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp32_ = t;
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ y = _tmp32_;
+#line 2575 "page.c"
+ {
+ gboolean _tmp33_ = FALSE;
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp33_ = TRUE;
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ while (TRUE) {
+#line 2582 "page.c"
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ gint offset = 0;
+ GdkPixbuf* _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (!_tmp33_) {
+#line 2592 "page.c"
+ gint _tmp34_ = 0;
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp34_ = y;
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ y = _tmp34_ + 1;
+#line 2598 "page.c"
+ }
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp33_ = FALSE;
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp35_ = y;
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp36_ = b;
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (!(_tmp35_ < _tmp36_)) {
+#line 617 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 2610 "page.c"
+ }
+#line 619 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp37_ = image;
+#line 619 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp38_ = gdk_pixbuf_get_rowstride (_tmp37_);
+#line 619 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp39_ = y;
+#line 619 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp40_ = t;
+#line 619 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ offset = _tmp38_ * (_tmp39_ - _tmp40_);
+#line 2622 "page.c"
+ {
+ gint x = 0;
+ gint _tmp41_ = 0;
+#line 620 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp41_ = l;
+#line 620 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ x = _tmp41_;
+#line 2630 "page.c"
+ {
+ gboolean _tmp42_ = FALSE;
+#line 620 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp42_ = TRUE;
+#line 620 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ while (TRUE) {
+#line 2637 "page.c"
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ gint _tmp47_ = 0;
+ guint8* _tmp48_ = NULL;
+ gint _tmp48__length1 = 0;
+ gint _tmp49_ = 0;
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+#line 620 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (!_tmp42_) {
+#line 2649 "page.c"
+ gint _tmp43_ = 0;
+#line 620 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp43_ = x;
+#line 620 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ x = _tmp43_ + 1;
+#line 2655 "page.c"
+ }
+#line 620 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp42_ = FALSE;
+#line 620 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp44_ = x;
+#line 620 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp45_ = r;
+#line 620 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (!(_tmp44_ < _tmp45_)) {
+#line 620 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 2667 "page.c"
+ }
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp46_ = x;
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp47_ = y;
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp48_ = image_pixels;
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp48__length1 = image_pixels_length1;
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp49_ = offset;
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp50_ = x;
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp51_ = l;
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_get_pixel (self, _tmp46_, _tmp47_, _tmp48_, _tmp48__length1, _tmp49_ + ((_tmp50_ - _tmp51_) * 3));
+#line 2685 "page.c"
+ }
+ }
+ }
+ }
+ }
+ }
+#line 624 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = image;
+#line 624 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 2696 "page.c"
+}
+
+
+static gchar* string_to_utf8 (const gchar* self, int* result_length1) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gchar* _tmp2_ = NULL;
+ gint _result__length1 = 0;
+ gint __result__size_ = 0;
+ gint _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gchar* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+#line 1303 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1304 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = strlen (self);
+#line 1304 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp1_ = _tmp0_;
+#line 1304 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp2_ = g_new0 (gchar, _tmp1_ + 1);
+#line 1304 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _result_ = _tmp2_;
+#line 1304 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _result__length1 = _tmp1_ + 1;
+#line 1304 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ __result__size_ = _result__length1;
+#line 1305 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp3_ = _result__length1;
+#line 1305 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _result__length1 = _tmp3_ - 1;
+#line 1306 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp4_ = _result_;
+#line 1306 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp4__length1 = _result__length1;
+#line 1306 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp5_ = strlen (self);
+#line 1306 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp6_ = _tmp5_;
+#line 1306 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ memcpy (_tmp4_, self, (gsize) _tmp6_);
+#line 1307 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp7_ = _result_;
+#line 1307 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp7__length1 = _result__length1;
+#line 1307 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (result_length1) {
+#line 1307 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ *result_length1 = _tmp7__length1;
+#line 2751 "page.c"
+ }
+#line 1307 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = _tmp7_;
+#line 1307 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 2757 "page.c"
+}
+
+
+static gchar* page_get_icc_data_encoded (Page* self, const gchar* icc_profile_filename) {
+ gchar* result = NULL;
+ gchar* contents = NULL;
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+ guchar* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 627 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 627 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (icc_profile_filename != NULL, NULL);
+#line 2776 "page.c"
+ {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = icc_profile_filename;
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_file_get_contents (_tmp0_, &_tmp1_, NULL, &_inner_error_);
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (contents);
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ contents = _tmp1_;
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_inner_error_ != NULL) {
+#line 2790 "page.c"
+ goto __catch3_g_error;
+ }
+ }
+ goto __finally3;
+ __catch3_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 631 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ e = _inner_error_;
+#line 631 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _inner_error_ = NULL;
+#line 637 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = e;
+#line 637 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = _tmp2_->message;
+#line 637 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_warning ("page.vala:637: failed to get icc profile data: %s", _tmp3_);
+#line 638 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = NULL;
+#line 638 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_error_free0 (e);
+#line 638 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (contents);
+#line 638 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 2818 "page.c"
+ }
+ __finally3:
+#line 631 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_inner_error_ != NULL) {
+#line 631 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (contents);
+#line 631 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 631 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_clear_error (&_inner_error_);
+#line 631 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return NULL;
+#line 2831 "page.c"
+ }
+#line 642 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = contents;
+#line 642 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = string_to_utf8 (_tmp4_, &_tmp5_);
+#line 642 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7_ = (guchar*) _tmp6_;
+#line 642 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7__length1 = (_tmp5_ * sizeof (gchar)) / sizeof (guchar);
+#line 642 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp8_ = g_base64_encode (_tmp7_, (_tmp5_ * sizeof (gchar)) / sizeof (guchar));
+#line 642 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp9_ = _tmp8_;
+#line 642 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7_ = (g_free (_tmp7_), NULL);
+#line 642 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp9_;
+#line 642 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (contents);
+#line 642 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 2853 "page.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 2860 "page.c"
+}
+
+
+void page_copy_to_clipboard (Page* self, GtkWindow* window) {
+ GdkDisplay* display = NULL;
+ GtkWindow* _tmp0_ = NULL;
+ GdkDisplay* _tmp1_ = NULL;
+ GdkDisplay* _tmp2_ = NULL;
+ GtkClipboard* clipboard = NULL;
+ GtkClipboard* _tmp3_ = NULL;
+ GtkClipboard* _tmp4_ = NULL;
+ GdkPixbuf* image = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+#line 645 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 645 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (window != NULL);
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = window;
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = gtk_widget_get_display ((GtkWidget*) _tmp0_);
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ display = _tmp2_;
+#line 648 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = gtk_clipboard_get_for_display (display, GDK_SELECTION_CLIPBOARD);
+#line 648 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 648 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ clipboard = _tmp4_;
+#line 649 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = page_get_image (self, TRUE);
+#line 649 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ image = _tmp5_;
+#line 650 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ gtk_clipboard_set_image (clipboard, image);
+#line 645 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_object_unref0 (image);
+#line 645 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_object_unref0 (clipboard);
+#line 645 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_object_unref0 (display);
+#line 2904 "page.c"
+}
+
+
+void page_save (Page* self, const gchar* type, gint quality, GFile* file, GError** error) {
+ GFileOutputStream* stream = NULL;
+ GFile* _tmp0_ = NULL;
+ GFileOutputStream* _tmp1_ = NULL;
+ PixbufWriter* writer = NULL;
+ GFileOutputStream* _tmp2_ = NULL;
+ PixbufWriter* _tmp3_ = NULL;
+ GdkPixbuf* image = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ gchar* icc_profile_data = NULL;
+ const gchar* _tmp5_ = NULL;
+ GCompareFunc _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ GError * _inner_error_ = NULL;
+#line 653 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 653 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (type != NULL);
+#line 653 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (file != NULL);
+#line 655 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = file;
+#line 655 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = g_file_replace (_tmp0_, NULL, FALSE, G_FILE_CREATE_NONE, NULL, &_inner_error_);
+#line 655 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ stream = _tmp1_;
+#line 655 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_inner_error_ != NULL) {
+#line 655 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_propagate_error (error, _inner_error_);
+#line 655 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return;
+#line 2941 "page.c"
+ }
+#line 656 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = stream;
+#line 656 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = pixbuf_writer_new (_tmp2_);
+#line 656 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ writer = _tmp3_;
+#line 657 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = page_get_image (self, TRUE);
+#line 657 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ image = _tmp4_;
+#line 659 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ icc_profile_data = NULL;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = self->priv->_color_profile;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp5_ != NULL) {
+#line 2959 "page.c"
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 661 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = self->priv->_color_profile;
+#line 661 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7_ = page_get_icc_data_encoded (self, _tmp6_);
+#line 661 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (icc_profile_data);
+#line 661 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ icc_profile_data = _tmp7_;
+#line 2970 "page.c"
+ }
+#line 663 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp8_ = g_strcmp0;
+#line 663 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp9_ = type;
+#line 663 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp10_ = _tmp8_ (_tmp9_, "jpeg");
+#line 663 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp10_ == 0) {
+#line 2980 "page.c"
+ gchar** keys = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar** _tmp16_ = NULL;
+ gint keys_length1 = 0;
+ gint _keys_size_ = 0;
+ gchar** values = NULL;
+ gint _tmp17_ = 0;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gchar* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gchar* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar** _tmp26_ = NULL;
+ gint values_length1 = 0;
+ gint _values_size_ = 0;
+ const gchar* _tmp27_ = NULL;
+ PixbufWriter* _tmp30_ = NULL;
+ GdkPixbuf* _tmp31_ = NULL;
+ gchar** _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ gchar** _tmp33_ = NULL;
+ gint _tmp33__length1 = 0;
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp11_ = g_strdup ("quality");
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp12_ = g_strdup ("density-unit");
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp13_ = g_strdup ("x-density");
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp14_ = g_strdup ("y-density");
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp15_ = g_strdup ("icc-profile");
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_ = g_new0 (gchar*, 6 + 1);
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_[0] = _tmp11_;
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_[1] = _tmp12_;
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_[2] = _tmp13_;
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_[3] = _tmp14_;
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_[4] = _tmp15_;
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_[5] = NULL;
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ keys = _tmp16_;
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ keys_length1 = 6;
+#line 665 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _keys_size_ = keys_length1;
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp17_ = quality;
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp18_ = g_strdup_printf ("%d", _tmp17_);
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp19_ = g_strdup ("dots-per-inch");
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp20_ = self->priv->_dpi;
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp21_ = g_strdup_printf ("%d", _tmp20_);
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp22_ = self->priv->_dpi;
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp23_ = g_strdup_printf ("%d", _tmp22_);
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp24_ = icc_profile_data;
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp25_ = g_strdup (_tmp24_);
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp26_ = g_new0 (gchar*, 6 + 1);
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp26_[0] = _tmp18_;
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp26_[1] = _tmp19_;
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp26_[2] = _tmp21_;
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp26_[3] = _tmp23_;
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp26_[4] = _tmp25_;
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp26_[5] = NULL;
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ values = _tmp26_;
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ values_length1 = 6;
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _values_size_ = values_length1;
+#line 667 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp27_ = icc_profile_data;
+#line 667 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp27_ == NULL) {
+#line 3082 "page.c"
+ gchar** _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ gchar* _tmp29_ = NULL;
+#line 668 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp28_ = keys;
+#line 668 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp28__length1 = keys_length1;
+#line 668 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (_tmp28_[4]);
+#line 668 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp28_[4] = NULL;
+#line 668 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp29_ = _tmp28_[4];
+#line 3096 "page.c"
+ }
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp30_ = writer;
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp31_ = image;
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp32_ = keys;
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp32__length1 = keys_length1;
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp33_ = values;
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp33__length1 = values_length1;
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ pixbuf_writer_save (_tmp30_, _tmp31_, "jpeg", _tmp32_, _tmp32__length1, _tmp33_, _tmp33__length1, &_inner_error_);
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_inner_error_ != NULL) {
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_propagate_error (error, _inner_error_);
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ keys = (_vala_array_free (keys, keys_length1, (GDestroyNotify) g_free), NULL);
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (icc_profile_data);
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_object_unref0 (image);
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _pixbuf_writer_unref0 (writer);
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_object_unref0 (stream);
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return;
+#line 3130 "page.c"
+ }
+#line 663 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
+#line 663 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ keys = (_vala_array_free (keys, keys_length1, (GDestroyNotify) g_free), NULL);
+#line 3136 "page.c"
+ } else {
+ GCompareFunc _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+#line 671 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp34_ = g_strcmp0;
+#line 671 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp35_ = type;
+#line 671 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp36_ = _tmp34_ (_tmp35_, "png");
+#line 671 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp36_ == 0) {
+#line 3149 "page.c"
+ gchar** keys = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar** _tmp38_ = NULL;
+ gint keys_length1 = 0;
+ gint _keys_size_ = 0;
+ gchar** values = NULL;
+ const gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gchar** _tmp41_ = NULL;
+ gint values_length1 = 0;
+ gint _values_size_ = 0;
+ const gchar* _tmp42_ = NULL;
+ PixbufWriter* _tmp45_ = NULL;
+ GdkPixbuf* _tmp46_ = NULL;
+ gchar** _tmp47_ = NULL;
+ gint _tmp47__length1 = 0;
+ gchar** _tmp48_ = NULL;
+ gint _tmp48__length1 = 0;
+#line 673 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp37_ = g_strdup ("icc-profile");
+#line 673 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp38_ = g_new0 (gchar*, 2 + 1);
+#line 673 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp38_[0] = _tmp37_;
+#line 673 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp38_[1] = NULL;
+#line 673 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ keys = _tmp38_;
+#line 673 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ keys_length1 = 2;
+#line 673 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _keys_size_ = keys_length1;
+#line 674 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp39_ = icc_profile_data;
+#line 674 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp40_ = g_strdup (_tmp39_);
+#line 674 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp41_ = g_new0 (gchar*, 2 + 1);
+#line 674 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp41_[0] = _tmp40_;
+#line 674 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp41_[1] = NULL;
+#line 674 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ values = _tmp41_;
+#line 674 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ values_length1 = 2;
+#line 674 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _values_size_ = values_length1;
+#line 675 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp42_ = icc_profile_data;
+#line 675 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp42_ == NULL) {
+#line 3202 "page.c"
+ gchar** _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ gchar* _tmp44_ = NULL;
+#line 676 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp43_ = keys;
+#line 676 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp43__length1 = keys_length1;
+#line 676 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (_tmp43_[0]);
+#line 676 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp43_[0] = NULL;
+#line 676 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp44_ = _tmp43_[0];
+#line 3216 "page.c"
+ }
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp45_ = writer;
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp46_ = image;
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp47_ = keys;
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp47__length1 = keys_length1;
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp48_ = values;
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp48__length1 = values_length1;
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ pixbuf_writer_save (_tmp45_, _tmp46_, "png", _tmp47_, _tmp47__length1, _tmp48_, _tmp48__length1, &_inner_error_);
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_inner_error_ != NULL) {
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_propagate_error (error, _inner_error_);
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ keys = (_vala_array_free (keys, keys_length1, (GDestroyNotify) g_free), NULL);
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (icc_profile_data);
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_object_unref0 (image);
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _pixbuf_writer_unref0 (writer);
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_object_unref0 (stream);
+#line 677 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return;
+#line 3250 "page.c"
+ }
+#line 671 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
+#line 671 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ keys = (_vala_array_free (keys, keys_length1, (GDestroyNotify) g_free), NULL);
+#line 3256 "page.c"
+ } else {
+ GCompareFunc _tmp49_ = NULL;
+ const gchar* _tmp50_ = NULL;
+ gint _tmp51_ = 0;
+#line 679 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp49_ = g_strcmp0;
+#line 679 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp50_ = type;
+#line 679 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp51_ = _tmp49_ (_tmp50_, "tiff");
+#line 679 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp51_ == 0) {
+#line 3269 "page.c"
+ gchar** keys = NULL;
+ gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ gchar** _tmp54_ = NULL;
+ gint keys_length1 = 0;
+ gint _keys_size_ = 0;
+ gchar** values = NULL;
+ gchar* _tmp55_ = NULL;
+ const gchar* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ gchar** _tmp58_ = NULL;
+ gint values_length1 = 0;
+ gint _values_size_ = 0;
+ const gchar* _tmp59_ = NULL;
+ PixbufWriter* _tmp62_ = NULL;
+ GdkPixbuf* _tmp63_ = NULL;
+ gchar** _tmp64_ = NULL;
+ gint _tmp64__length1 = 0;
+ gchar** _tmp65_ = NULL;
+ gint _tmp65__length1 = 0;
+#line 681 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp52_ = g_strdup ("compression");
+#line 681 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp53_ = g_strdup ("icc-profile");
+#line 681 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp54_ = g_new0 (gchar*, 3 + 1);
+#line 681 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp54_[0] = _tmp52_;
+#line 681 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp54_[1] = _tmp53_;
+#line 681 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp54_[2] = NULL;
+#line 681 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ keys = _tmp54_;
+#line 681 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ keys_length1 = 3;
+#line 681 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _keys_size_ = keys_length1;
+#line 682 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp55_ = g_strdup ("8");
+#line 682 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp56_ = icc_profile_data;
+#line 682 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp57_ = g_strdup (_tmp56_);
+#line 682 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp58_ = g_new0 (gchar*, 3 + 1);
+#line 682 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp58_[0] = _tmp55_;
+#line 682 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp58_[1] = _tmp57_;
+#line 682 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp58_[2] = NULL;
+#line 682 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ values = _tmp58_;
+#line 682 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ values_length1 = 3;
+#line 682 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _values_size_ = values_length1;
+#line 683 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp59_ = icc_profile_data;
+#line 683 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp59_ == NULL) {
+#line 3332 "page.c"
+ gchar** _tmp60_ = NULL;
+ gint _tmp60__length1 = 0;
+ gchar* _tmp61_ = NULL;
+#line 684 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp60_ = keys;
+#line 684 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp60__length1 = keys_length1;
+#line 684 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (_tmp60_[1]);
+#line 684 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp60_[1] = NULL;
+#line 684 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp61_ = _tmp60_[1];
+#line 3346 "page.c"
+ }
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp62_ = writer;
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp63_ = image;
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp64_ = keys;
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp64__length1 = keys_length1;
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp65_ = values;
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp65__length1 = values_length1;
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ pixbuf_writer_save (_tmp62_, _tmp63_, "tiff", _tmp64_, _tmp64__length1, _tmp65_, _tmp65__length1, &_inner_error_);
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_inner_error_ != NULL) {
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_propagate_error (error, _inner_error_);
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ keys = (_vala_array_free (keys, keys_length1, (GDestroyNotify) g_free), NULL);
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (icc_profile_data);
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_object_unref0 (image);
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _pixbuf_writer_unref0 (writer);
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_object_unref0 (stream);
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return;
+#line 3380 "page.c"
+ }
+#line 679 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
+#line 679 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ keys = (_vala_array_free (keys, keys_length1, (GDestroyNotify) g_free), NULL);
+#line 3386 "page.c"
+ } else {
+ }
+ }
+ }
+#line 653 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (icc_profile_data);
+#line 653 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_object_unref0 (image);
+#line 653 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _pixbuf_writer_unref0 (writer);
+#line 653 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_object_unref0 (stream);
+#line 3399 "page.c"
+}
+
+
+gint page_get_width (Page* self) {
+ gint result;
+ gboolean _tmp0_ = FALSE;
+ ScanDirection _tmp1_ = 0;
+ ScanDirection _tmp2_ = 0;
+#line 25 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 27 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = page_get_scan_direction (self);
+#line 27 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = _tmp1_;
+#line 27 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp2_ == SCAN_DIRECTION_TOP_TO_BOTTOM) {
+#line 27 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = TRUE;
+#line 3418 "page.c"
+ } else {
+ ScanDirection _tmp3_ = 0;
+ ScanDirection _tmp4_ = 0;
+#line 27 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = page_get_scan_direction (self);
+#line 27 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = _tmp3_;
+#line 27 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = _tmp4_ == SCAN_DIRECTION_BOTTOM_TO_TOP;
+#line 3428 "page.c"
+ }
+#line 27 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp0_) {
+#line 3432 "page.c"
+ gint _tmp5_ = 0;
+#line 28 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = self->priv->_scan_width;
+#line 28 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp5_;
+#line 28 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3440 "page.c"
+ } else {
+ gint _tmp6_ = 0;
+#line 30 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = self->priv->_scan_height;
+#line 30 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp6_;
+#line 30 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3449 "page.c"
+ }
+}
+
+
+gint page_get_height (Page* self) {
+ gint result;
+ gboolean _tmp0_ = FALSE;
+ ScanDirection _tmp1_ = 0;
+ ScanDirection _tmp2_ = 0;
+#line 37 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = page_get_scan_direction (self);
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = _tmp1_;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp2_ == SCAN_DIRECTION_TOP_TO_BOTTOM) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = TRUE;
+#line 3469 "page.c"
+ } else {
+ ScanDirection _tmp3_ = 0;
+ ScanDirection _tmp4_ = 0;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = page_get_scan_direction (self);
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = _tmp3_;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = _tmp4_ == SCAN_DIRECTION_BOTTOM_TO_TOP;
+#line 3479 "page.c"
+ }
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp0_) {
+#line 3483 "page.c"
+ gint _tmp5_ = 0;
+#line 40 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = self->priv->_scan_height;
+#line 40 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp5_;
+#line 40 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3491 "page.c"
+ } else {
+ gint _tmp6_ = 0;
+#line 42 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = self->priv->_scan_width;
+#line 42 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp6_;
+#line 42 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3500 "page.c"
+ }
+}
+
+
+gboolean page_get_is_landscape (Page* self) {
+ gboolean result;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 47 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 47 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = page_get_width (self);
+#line 47 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = _tmp0_;
+#line 47 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = page_get_height (self);
+#line 47 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = _tmp2_;
+#line 47 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp1_ > _tmp3_;
+#line 47 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3525 "page.c"
+}
+
+
+gint page_get_dpi (Page* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 50 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 50 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_dpi;
+#line 50 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 50 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3540 "page.c"
+}
+
+
+static void page_set_dpi (Page* self, gint value) {
+ gint _tmp0_ = 0;
+#line 50 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 50 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 50 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_dpi = _tmp0_;
+#line 3552 "page.c"
+}
+
+
+gint page_get_depth (Page* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 56 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 56 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_depth;
+#line 56 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 56 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3567 "page.c"
+}
+
+
+static void page_set_depth (Page* self, gint value) {
+ gint _tmp0_ = 0;
+#line 56 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 56 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 56 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_depth = _tmp0_;
+#line 3579 "page.c"
+}
+
+
+const gchar* page_get_color_profile (Page* self) {
+ const gchar* result;
+ const gchar* _tmp0_ = NULL;
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_color_profile;
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3594 "page.c"
+}
+
+
+void page_set_color_profile (Page* self, const gchar* value) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (self->priv->_color_profile);
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_color_profile = _tmp1_;
+#line 3611 "page.c"
+}
+
+
+gint page_get_scan_width (Page* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 62 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 62 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_scan_width;
+#line 62 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 62 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3626 "page.c"
+}
+
+
+static void page_set_scan_width (Page* self, gint value) {
+ gint _tmp0_ = 0;
+#line 62 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 62 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 62 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_scan_width = _tmp0_;
+#line 3638 "page.c"
+}
+
+
+gint page_get_scan_height (Page* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_scan_height;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3653 "page.c"
+}
+
+
+static void page_set_scan_height (Page* self, gint value) {
+ gint _tmp0_ = 0;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_scan_height = _tmp0_;
+#line 3665 "page.c"
+}
+
+
+gint page_get_rowstride (Page* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 68 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 68 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_rowstride;
+#line 68 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 68 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3680 "page.c"
+}
+
+
+static void page_set_rowstride (Page* self, gint value) {
+ gint _tmp0_ = 0;
+#line 68 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 68 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 68 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_rowstride = _tmp0_;
+#line 3692 "page.c"
+}
+
+
+gint page_get_n_channels (Page* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 71 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 71 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_n_channels;
+#line 71 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 71 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3707 "page.c"
+}
+
+
+static void page_set_n_channels (Page* self, gint value) {
+ gint _tmp0_ = 0;
+#line 71 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 71 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 71 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_n_channels = _tmp0_;
+#line 3719 "page.c"
+}
+
+
+gboolean page_get_is_scanning (Page* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_is_scanning;
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3734 "page.c"
+}
+
+
+static void page_set_is_scanning (Page* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_is_scanning = _tmp0_;
+#line 3746 "page.c"
+}
+
+
+gboolean page_get_has_data (Page* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_has_data;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3761 "page.c"
+}
+
+
+static void page_set_has_data (Page* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 80 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_has_data = _tmp0_;
+#line 3773 "page.c"
+}
+
+
+gint page_get_scan_line (Page* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_scan_line;
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3788 "page.c"
+}
+
+
+static void page_set_scan_line (Page* self, gint value) {
+ gint _tmp0_ = 0;
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_scan_line = _tmp0_;
+#line 3800 "page.c"
+}
+
+
+gboolean page_get_is_color (Page* self) {
+ gboolean result;
+ gint _tmp0_ = 0;
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_n_channels;
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_ > 1;
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3815 "page.c"
+}
+
+
+ScanDirection page_get_scan_direction (Page* self) {
+ ScanDirection result;
+ ScanDirection _tmp0_ = 0;
+#line 92 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 92 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->scan_direction_;
+#line 92 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 92 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 3830 "page.c"
+}
+
+
+void page_set_scan_direction (Page* self, ScanDirection value) {
+ ScanDirection _tmp0_ = 0;
+ ScanDirection _tmp1_ = 0;
+ gboolean size_has_changed = FALSE;
+ gint left_steps = 0;
+ ScanDirection _tmp2_ = 0;
+ ScanDirection _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+ ScanDirection _tmp35_ = 0;
+ gboolean _tmp36_ = FALSE;
+ gboolean _tmp37_ = FALSE;
+#line 94 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 96 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->scan_direction_;
+#line 96 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = value;
+#line 96 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 97 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return;
+#line 3857 "page.c"
+ }
+#line 100 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ size_has_changed = FALSE;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = value;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = self->priv->scan_direction_;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ left_steps = (gint) (_tmp2_ - _tmp3_);
+#line 102 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp4_ = left_steps;
+#line 102 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp4_ < 0) {
+#line 3871 "page.c"
+ gint _tmp5_ = 0;
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp5_ = left_steps;
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ left_steps = _tmp5_ + 4;
+#line 3877 "page.c"
+ }
+#line 104 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp6_ = left_steps;
+#line 104 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp6_ != 2) {
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ size_has_changed = TRUE;
+#line 3885 "page.c"
+ }
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp7_ = self->priv->_has_crop;
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp7_) {
+#line 3891 "page.c"
+ gint _tmp8_ = 0;
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp8_ = left_steps;
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ switch (_tmp8_) {
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ case 1:
+#line 3899 "page.c"
+ {
+ gint t = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp9_ = self->priv->_crop_x;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ t = _tmp9_;
+#line 115 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp10_ = self->priv->_crop_y;
+#line 115 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_x (self, _tmp10_);
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp11_ = page_get_width (self);
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp12_ = _tmp11_;
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp13_ = t;
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp14_ = self->priv->_crop_width;
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_y (self, _tmp12_ - (_tmp13_ + _tmp14_));
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp15_ = self->priv->_crop_width;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ t = _tmp15_;
+#line 118 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp16_ = self->priv->_crop_height;
+#line 118 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_width (self, _tmp16_);
+#line 119 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp17_ = t;
+#line 119 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_height (self, _tmp17_);
+#line 120 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 3943 "page.c"
+ }
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ case 2:
+#line 3947 "page.c"
+ {
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp18_ = page_get_width (self);
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp19_ = _tmp18_;
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp20_ = self->priv->_crop_x;
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp21_ = self->priv->_crop_width;
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_x (self, _tmp19_ - (_tmp20_ + _tmp21_));
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp22_ = page_get_width (self);
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp23_ = _tmp22_;
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp24_ = self->priv->_crop_y;
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp25_ = self->priv->_crop_height;
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_y (self, _tmp23_ - (_tmp24_ + _tmp25_));
+#line 125 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 3979 "page.c"
+ }
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ case 3:
+#line 3983 "page.c"
+ {
+ gint t = 0;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp26_ = self->priv->_crop_y;
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ t = _tmp26_;
+#line 129 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp27_ = self->priv->_crop_x;
+#line 129 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_y (self, _tmp27_);
+#line 130 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp28_ = page_get_height (self);
+#line 130 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp29_ = _tmp28_;
+#line 130 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp30_ = t;
+#line 130 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp31_ = self->priv->_crop_height;
+#line 130 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_x (self, _tmp29_ - (_tmp30_ + _tmp31_));
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp32_ = self->priv->_crop_width;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ t = _tmp32_;
+#line 132 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp33_ = self->priv->_crop_height;
+#line 132 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_width (self, _tmp33_);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp34_ = t;
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_set_crop_height (self, _tmp34_);
+#line 134 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 4027 "page.c"
+ }
+ default:
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ break;
+#line 4032 "page.c"
+ }
+ }
+#line 138 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp35_ = value;
+#line 138 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->scan_direction_ = _tmp35_;
+#line 139 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp36_ = size_has_changed;
+#line 139 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp36_) {
+#line 140 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "size-changed");
+#line 4045 "page.c"
+ }
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "scan-direction-changed");
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp37_ = self->priv->_has_crop;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_tmp37_) {
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_emit_by_name (self, "crop-changed");
+#line 4055 "page.c"
+ }
+}
+
+
+gboolean page_get_has_crop (Page* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_has_crop;
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 4071 "page.c"
+}
+
+
+static void page_set_has_crop (Page* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_has_crop = _tmp0_;
+#line 4083 "page.c"
+}
+
+
+const gchar* page_get_crop_name (Page* self) {
+ const gchar* result;
+ const gchar* _tmp0_ = NULL;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_crop_name;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 4098 "page.c"
+}
+
+
+static void page_set_crop_name (Page* self, const gchar* value) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (self->priv->_crop_name);
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_crop_name = _tmp1_;
+#line 4115 "page.c"
+}
+
+
+gint page_get_crop_x (Page* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_crop_x;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 4130 "page.c"
+}
+
+
+static void page_set_crop_x (Page* self, gint value) {
+ gint _tmp0_ = 0;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_crop_x = _tmp0_;
+#line 4142 "page.c"
+}
+
+
+gint page_get_crop_y (Page* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_crop_y;
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 4157 "page.c"
+}
+
+
+static void page_set_crop_y (Page* self, gint value) {
+ gint _tmp0_ = 0;
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_crop_y = _tmp0_;
+#line 4169 "page.c"
+}
+
+
+gint page_get_crop_width (Page* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_crop_width;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 4184 "page.c"
+}
+
+
+static void page_set_crop_width (Page* self, gint value) {
+ gint _tmp0_ = 0;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_crop_width = _tmp0_;
+#line 4196 "page.c"
+}
+
+
+gint page_get_crop_height (Page* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->priv->_crop_height;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = _tmp0_;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 4211 "page.c"
+}
+
+
+static void page_set_crop_height (Page* self, gint value) {
+ gint _tmp0_ = 0;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = value;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->_crop_height = _tmp0_;
+#line 4223 "page.c"
+}
+
+
+static void value_page_init (GValue* value) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ value->data[0].v_pointer = NULL;
+#line 4230 "page.c"
+}
+
+
+static void value_page_free_value (GValue* value) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (value->data[0].v_pointer) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_unref (value->data[0].v_pointer);
+#line 4239 "page.c"
+ }
+}
+
+
+static void value_page_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (src_value->data[0].v_pointer) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ dest_value->data[0].v_pointer = page_ref (src_value->data[0].v_pointer);
+#line 4249 "page.c"
+ } else {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 4253 "page.c"
+ }
+}
+
+
+static gpointer value_page_peek_pointer (const GValue* value) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return value->data[0].v_pointer;
+#line 4261 "page.c"
+}
+
+
+static gchar* value_page_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (collect_values[0].v_pointer) {
+#line 4268 "page.c"
+ Page* object;
+ object = collect_values[0].v_pointer;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4275 "page.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4279 "page.c"
+ }
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ value->data[0].v_pointer = page_ref (object);
+#line 4283 "page.c"
+ } else {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ value->data[0].v_pointer = NULL;
+#line 4287 "page.c"
+ }
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return NULL;
+#line 4291 "page.c"
+}
+
+
+static gchar* value_page_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ Page** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (!object_p) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 4302 "page.c"
+ }
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (!value->data[0].v_pointer) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ *object_p = NULL;
+#line 4308 "page.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ *object_p = value->data[0].v_pointer;
+#line 4312 "page.c"
+ } else {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ *object_p = page_ref (value->data[0].v_pointer);
+#line 4316 "page.c"
+ }
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return NULL;
+#line 4320 "page.c"
+}
+
+
+GParamSpec* param_spec_page (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPage* spec;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PAGE), NULL);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return G_PARAM_SPEC (spec);
+#line 4334 "page.c"
+}
+
+
+gpointer value_get_page (const GValue* value) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PAGE), NULL);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return value->data[0].v_pointer;
+#line 4343 "page.c"
+}
+
+
+void value_set_page (GValue* value, gpointer v_object) {
+ Page* old;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PAGE));
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ old = value->data[0].v_pointer;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (v_object) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PAGE));
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ value->data[0].v_pointer = v_object;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_ref (value->data[0].v_pointer);
+#line 4363 "page.c"
+ } else {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ value->data[0].v_pointer = NULL;
+#line 4367 "page.c"
+ }
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (old) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_unref (old);
+#line 4373 "page.c"
+ }
+}
+
+
+void value_take_page (GValue* value, gpointer v_object) {
+ Page* old;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PAGE));
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ old = value->data[0].v_pointer;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (v_object) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PAGE));
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ value->data[0].v_pointer = v_object;
+#line 4392 "page.c"
+ } else {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ value->data[0].v_pointer = NULL;
+#line 4396 "page.c"
+ }
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (old) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_unref (old);
+#line 4402 "page.c"
+ }
+}
+
+
+static void page_class_init (PageClass * klass) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ page_parent_class = g_type_class_peek_parent (klass);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ PAGE_CLASS (klass)->finalize = page_finalize;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_type_class_add_private (klass, sizeof (PagePrivate));
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_new ("pixels_changed", TYPE_PAGE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_new ("size_changed", TYPE_PAGE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_new ("scan_line_changed", TYPE_PAGE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_new ("scan_direction_changed", TYPE_PAGE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_new ("crop_changed", TYPE_PAGE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_signal_new ("scan_finished", TYPE_PAGE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 4426 "page.c"
+}
+
+
+static void page_instance_init (Page * self) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv = PAGE_GET_PRIVATE (self);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->ref_count = 1;
+#line 4435 "page.c"
+}
+
+
+static void page_finalize (Page* obj) {
+ Page * self;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PAGE, Page);
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (self->priv->_color_profile);
+#line 74 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->priv->pixels = (g_free (self->priv->pixels), NULL);
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_free0 (self->priv->_crop_name);
+#line 4449 "page.c"
+}
+
+
+GType page_get_type (void) {
+ static volatile gsize page_type_id__volatile = 0;
+ if (g_once_init_enter (&page_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_page_init, value_page_free_value, value_page_copy_value, value_page_peek_pointer, "p", value_page_collect_value, "p", value_page_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Page), 0, (GInstanceInitFunc) page_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType page_type_id;
+ page_type_id = g_type_register_fundamental (g_type_fundamental_next (), "Page", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&page_type_id__volatile, page_type_id);
+ }
+ return page_type_id__volatile;
+}
+
+
+gpointer page_ref (gpointer instance) {
+ Page* self;
+ self = instance;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return instance;
+#line 4474 "page.c"
+}
+
+
+void page_unref (gpointer instance) {
+ Page* self;
+ self = instance;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ PAGE_GET_CLASS (self)->finalize (self);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 4487 "page.c"
+ }
+}
+
+
+PixbufWriter* pixbuf_writer_construct (GType object_type, GFileOutputStream* stream) {
+ PixbufWriter* self = NULL;
+ GFileOutputStream* _tmp0_ = NULL;
+ GFileOutputStream* _tmp1_ = NULL;
+#line 696 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (stream != NULL, NULL);
+#line 696 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self = (PixbufWriter*) g_type_create_instance (object_type);
+#line 698 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = stream;
+#line 698 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 698 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_object_unref0 (self->stream);
+#line 698 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->stream = _tmp1_;
+#line 696 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return self;
+#line 4510 "page.c"
+}
+
+
+PixbufWriter* pixbuf_writer_new (GFileOutputStream* stream) {
+#line 696 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return pixbuf_writer_construct (TYPE_PIXBUF_WRITER, stream);
+#line 4517 "page.c"
+}
+
+
+static gboolean _pixbuf_writer_write_pixbuf_data_gdk_pixbuf_save_func (guint8* buf, gsize buf_length1, GError** error, gpointer self) {
+ gboolean result;
+ result = pixbuf_writer_write_pixbuf_data ((PixbufWriter*) self, buf, buf_length1, error);
+#line 703 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 4526 "page.c"
+}
+
+
+void pixbuf_writer_save (PixbufWriter* self, GdkPixbuf* image, const gchar* type, gchar** option_keys, int option_keys_length1, gchar** option_values, int option_values_length1, GError** error) {
+ GdkPixbuf* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 701 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (self != NULL);
+#line 701 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (image != NULL);
+#line 701 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (type != NULL);
+#line 703 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = image;
+#line 703 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = type;
+#line 703 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2_ = option_keys;
+#line 703 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp2__length1 = option_keys_length1;
+#line 703 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3_ = option_values;
+#line 703 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp3__length1 = option_values_length1;
+#line 703 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ gdk_pixbuf_save_to_callbackv (_tmp0_, _pixbuf_writer_write_pixbuf_data_gdk_pixbuf_save_func, self, _tmp1_, _tmp2_, _tmp3_, &_inner_error_);
+#line 703 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_inner_error_ != NULL) {
+#line 703 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_propagate_error (error, _inner_error_);
+#line 703 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return;
+#line 4564 "page.c"
+ }
+}
+
+
+static gboolean pixbuf_writer_write_pixbuf_data (PixbufWriter* self, guint8* buf, int buf_length1, GError** error) {
+ gboolean result = FALSE;
+ GFileOutputStream* _tmp0_ = NULL;
+ guint8* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 706 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 708 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp0_ = self->stream;
+#line 708 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1_ = buf;
+#line 708 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _tmp1__length1 = buf_length1;
+#line 708 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_output_stream_write_all ((GOutputStream*) _tmp0_, _tmp1_, (gsize) _tmp1__length1, NULL, NULL, &_inner_error_);
+#line 708 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (_inner_error_ != NULL) {
+#line 708 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_propagate_error (error, _inner_error_);
+#line 708 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return FALSE;
+#line 4591 "page.c"
+ }
+#line 709 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ result = TRUE;
+#line 709 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return result;
+#line 4597 "page.c"
+}
+
+
+static void value_pixbuf_writer_init (GValue* value) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ value->data[0].v_pointer = NULL;
+#line 4604 "page.c"
+}
+
+
+static void value_pixbuf_writer_free_value (GValue* value) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (value->data[0].v_pointer) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ pixbuf_writer_unref (value->data[0].v_pointer);
+#line 4613 "page.c"
+ }
+}
+
+
+static void value_pixbuf_writer_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (src_value->data[0].v_pointer) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ dest_value->data[0].v_pointer = pixbuf_writer_ref (src_value->data[0].v_pointer);
+#line 4623 "page.c"
+ } else {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 4627 "page.c"
+ }
+}
+
+
+static gpointer value_pixbuf_writer_peek_pointer (const GValue* value) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return value->data[0].v_pointer;
+#line 4635 "page.c"
+}
+
+
+static gchar* value_pixbuf_writer_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (collect_values[0].v_pointer) {
+#line 4642 "page.c"
+ PixbufWriter* object;
+ object = collect_values[0].v_pointer;
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4649 "page.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4653 "page.c"
+ }
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ value->data[0].v_pointer = pixbuf_writer_ref (object);
+#line 4657 "page.c"
+ } else {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ value->data[0].v_pointer = NULL;
+#line 4661 "page.c"
+ }
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return NULL;
+#line 4665 "page.c"
+}
+
+
+static gchar* value_pixbuf_writer_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PixbufWriter** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (!object_p) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 4676 "page.c"
+ }
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (!value->data[0].v_pointer) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ *object_p = NULL;
+#line 4682 "page.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ *object_p = value->data[0].v_pointer;
+#line 4686 "page.c"
+ } else {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ *object_p = pixbuf_writer_ref (value->data[0].v_pointer);
+#line 4690 "page.c"
+ }
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return NULL;
+#line 4694 "page.c"
+}
+
+
+GParamSpec* param_spec_pixbuf_writer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPixbufWriter* spec;
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PIXBUF_WRITER), NULL);
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return G_PARAM_SPEC (spec);
+#line 4708 "page.c"
+}
+
+
+gpointer value_get_pixbuf_writer (const GValue* value) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PIXBUF_WRITER), NULL);
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return value->data[0].v_pointer;
+#line 4717 "page.c"
+}
+
+
+void value_set_pixbuf_writer (GValue* value, gpointer v_object) {
+ PixbufWriter* old;
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PIXBUF_WRITER));
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ old = value->data[0].v_pointer;
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (v_object) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PIXBUF_WRITER));
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ value->data[0].v_pointer = v_object;
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ pixbuf_writer_ref (value->data[0].v_pointer);
+#line 4737 "page.c"
+ } else {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ value->data[0].v_pointer = NULL;
+#line 4741 "page.c"
+ }
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (old) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ pixbuf_writer_unref (old);
+#line 4747 "page.c"
+ }
+}
+
+
+void value_take_pixbuf_writer (GValue* value, gpointer v_object) {
+ PixbufWriter* old;
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PIXBUF_WRITER));
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ old = value->data[0].v_pointer;
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (v_object) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PIXBUF_WRITER));
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ value->data[0].v_pointer = v_object;
+#line 4766 "page.c"
+ } else {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ value->data[0].v_pointer = NULL;
+#line 4770 "page.c"
+ }
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (old) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ pixbuf_writer_unref (old);
+#line 4776 "page.c"
+ }
+}
+
+
+static void pixbuf_writer_class_init (PixbufWriterClass * klass) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ pixbuf_writer_parent_class = g_type_class_peek_parent (klass);
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ PIXBUF_WRITER_CLASS (klass)->finalize = pixbuf_writer_finalize;
+#line 4786 "page.c"
+}
+
+
+static void pixbuf_writer_instance_init (PixbufWriter * self) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self->ref_count = 1;
+#line 4793 "page.c"
+}
+
+
+static void pixbuf_writer_finalize (PixbufWriter* obj) {
+ PixbufWriter * self;
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PIXBUF_WRITER, PixbufWriter);
+#line 694 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ _g_object_unref0 (self->stream);
+#line 4803 "page.c"
+}
+
+
+GType pixbuf_writer_get_type (void) {
+ static volatile gsize pixbuf_writer_type_id__volatile = 0;
+ if (g_once_init_enter (&pixbuf_writer_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_pixbuf_writer_init, value_pixbuf_writer_free_value, value_pixbuf_writer_copy_value, value_pixbuf_writer_peek_pointer, "p", value_pixbuf_writer_collect_value, "p", value_pixbuf_writer_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PixbufWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pixbuf_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PixbufWriter), 0, (GInstanceInitFunc) pixbuf_writer_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType pixbuf_writer_type_id;
+ pixbuf_writer_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PixbufWriter", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&pixbuf_writer_type_id__volatile, pixbuf_writer_type_id);
+ }
+ return pixbuf_writer_type_id__volatile;
+}
+
+
+gpointer pixbuf_writer_ref (gpointer instance) {
+ PixbufWriter* self;
+ self = instance;
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ return instance;
+#line 4828 "page.c"
+}
+
+
+void pixbuf_writer_unref (gpointer instance) {
+ PixbufWriter* self;
+ self = instance;
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ PIXBUF_WRITER_GET_CLASS (self)->finalize (self);
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/page.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 4841 "page.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/page.vala b/src/page.vala
new file mode 100644
index 0000000..b375723
--- /dev/null
+++ b/src/page.vala
@@ -0,0 +1,711 @@
+/*
+ * Copyright (C) 2009-2011 Canonical Ltd.
+ * Author: Robert Ancell <robert.ancell@canonical.com>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+public enum ScanDirection
+{
+ TOP_TO_BOTTOM,
+ LEFT_TO_RIGHT,
+ BOTTOM_TO_TOP,
+ RIGHT_TO_LEFT
+}
+
+public class Page
+{
+ /* Width of the page in pixels after rotation applied */
+ public int width
+ {
+ get
+ {
+ if (scan_direction == ScanDirection.TOP_TO_BOTTOM || scan_direction == ScanDirection.BOTTOM_TO_TOP)
+ return scan_width;
+ else
+ return scan_height;
+ }
+ }
+
+ /* Height of the page in pixels after rotation applied */
+ public int height
+ {
+ get
+ {
+ if (scan_direction == ScanDirection.TOP_TO_BOTTOM || scan_direction == ScanDirection.BOTTOM_TO_TOP)
+ return scan_height;
+ else
+ return scan_width;
+ }
+ }
+
+ /* true if the page is landscape (wider than the height) */
+ public bool is_landscape { get { return width > height; } }
+
+ /* Resolution of page */
+ public int dpi { get; private set; }
+
+ /* Number of rows in this page or -1 if currently unknown */
+ private int expected_rows;
+
+ /* Bit depth */
+ public int depth { get; private set; }
+
+ /* Color profile */
+ public string? color_profile { get; set; }
+
+ /* Width of raw scan data in pixels */
+ public int scan_width { get; private set; }
+
+ /* Height of raw scan data in pixels */
+ public int scan_height { get; private set; }
+
+ /* Offset between rows in scan data */
+ public int rowstride { get; private set; }
+
+ /* Number of color channels */
+ public int n_channels { get; private set; }
+
+ /* Pixel data */
+ private uchar[] pixels;
+
+ /* Page is getting data */
+ public bool is_scanning { get; private set; }
+
+ /* true if have some page data */
+ public bool has_data { get; private set; }
+
+ /* Expected next scan row */
+ public int scan_line { get; private set; }
+
+ /* true if scan contains color information */
+ public bool is_color { get { return n_channels > 1; } }
+
+ /* Rotation of scanned data */
+ private ScanDirection scan_direction_;
+ public ScanDirection scan_direction
+ {
+ get { return scan_direction_; }
+
+ set
+ {
+ if (scan_direction_ == value)
+ return;
+
+ /* Work out how many times it has been rotated to the left */
+ var size_has_changed = false;
+ var left_steps = (int) (value - scan_direction_);
+ if (left_steps < 0)
+ left_steps += 4;
+ if (left_steps != 2)
+ size_has_changed = true;
+
+ /* Rotate crop */
+ if (has_crop)
+ {
+ switch (left_steps)
+ {
+ /* 90 degrees counter-clockwise */
+ case 1:
+ var t = crop_x;
+ crop_x = crop_y;
+ crop_y = width - (t + crop_width);
+ t = crop_width;
+ crop_width = crop_height;
+ crop_height = t;
+ break;
+ /* 180 degrees */
+ case 2:
+ crop_x = width - (crop_x + crop_width);
+ crop_y = width - (crop_y + crop_height);
+ break;
+ /* 90 degrees clockwise */
+ case 3:
+ var t = crop_y;
+ crop_y = crop_x;
+ crop_x = height - (t + crop_height);
+ t = crop_width;
+ crop_width = crop_height;
+ crop_height = t;
+ break;
+ }
+ }
+
+ scan_direction_ = value;
+ if (size_has_changed)
+ size_changed ();
+ scan_direction_changed ();
+ if (has_crop)
+ crop_changed ();
+ }
+
+ default = ScanDirection.TOP_TO_BOTTOM;
+ }
+
+ /* True if the page has a crop set */
+ public bool has_crop { get; private set; }
+
+ /* Name of the crop if using a named crop */
+ public string? crop_name { get; private set; }
+
+ /* X co-ordinate of top left crop corner */
+ public int crop_x { get; private set; }
+
+ /* Y co-ordinate of top left crop corner */
+ public int crop_y { get; private set; }
+
+ /* Width of crop in pixels */
+ public int crop_width { get; private set; }
+
+ /* Height of crop in pixels*/
+ public int crop_height { get; private set; }
+
+ public signal void pixels_changed ();
+ public signal void size_changed ();
+ public signal void scan_line_changed ();
+ public signal void scan_direction_changed ();
+ public signal void crop_changed ();
+ public signal void scan_finished ();
+
+ public Page (int width, int height, int dpi, ScanDirection scan_direction)
+ {
+ if (scan_direction == ScanDirection.TOP_TO_BOTTOM || scan_direction == ScanDirection.BOTTOM_TO_TOP)
+ {
+ scan_width = width;
+ scan_height = height;
+ }
+ else
+ {
+ scan_width = height;
+ scan_height = width;
+ }
+ this.dpi = dpi;
+ this.scan_direction = scan_direction;
+ }
+
+ public Page.from_data (int scan_width,
+ int scan_height,
+ int rowstride,
+ int n_channels,
+ int depth,
+ int dpi,
+ ScanDirection scan_direction,
+ string? color_profile,
+ uchar[]? pixels,
+ bool has_crop,
+ string? crop_name,
+ int crop_x,
+ int crop_y,
+ int crop_width,
+ int crop_height)
+ {
+ this.scan_width = scan_width;
+ this.scan_height = scan_height;
+ this.expected_rows = scan_height;
+ this.rowstride = rowstride;
+ this.n_channels = n_channels;
+ this.depth = depth;
+ this.dpi = dpi;
+ this.scan_direction = scan_direction;
+ this.color_profile = color_profile;
+ this.pixels = pixels;
+ has_data = pixels != null;
+ this.has_crop = has_crop;
+ this.crop_name = crop_name;
+ this.crop_x = crop_x;
+ this.crop_y = crop_y;
+ this.crop_width = crop_width;
+ this.crop_height = crop_height;
+ }
+
+ public void set_page_info (ScanPageInfo info)
+ {
+ expected_rows = info.height;
+ dpi = (int) info.dpi;
+
+ /* Create a white page */
+ scan_width = info.width;
+ scan_height = info.height;
+ /* Variable height, try 50% of the width for now */
+ if (scan_height < 0)
+ scan_height = scan_width / 2;
+ depth = info.depth;
+ n_channels = info.n_channels;
+ rowstride = (scan_width * depth * n_channels + 7) / 8;
+ pixels.resize (scan_height * rowstride);
+ return_if_fail (pixels != null);
+
+ /* Fill with white */
+ if (depth == 1)
+ Memory.set (pixels, 0x00, scan_height * rowstride);
+ else
+ Memory.set (pixels, 0xFF, scan_height * rowstride);
+
+ size_changed ();
+ pixels_changed ();
+ }
+
+ public void start ()
+ {
+ is_scanning = true;
+ scan_line_changed ();
+ }
+
+ private void parse_line (ScanLine line, int n, out bool size_changed)
+ {
+ var line_number = line.number + n;
+
+ /* Extend image if necessary */
+ size_changed = false;
+ while (line_number >= scan_height)
+ {
+ /* Extend image */
+ var rows = scan_height;
+ scan_height = rows + scan_width / 2;
+ debug ("Extending image from %d lines to %d lines", rows, scan_height);
+ pixels.resize (scan_height * rowstride);
+
+ size_changed = true;
+ }
+
+ /* Copy in new row */
+ var offset = line_number * rowstride;
+ var line_offset = n * line.data_length;
+ for (var i = 0; i < line.data_length; i++)
+ pixels[offset+i] = line.data[line_offset+i];
+
+ scan_line = line_number;
+ }
+
+ public void parse_scan_line (ScanLine line)
+ {
+ bool size_has_changed = false;
+ for (var i = 0; i < line.n_lines; i++)
+ parse_line (line, i, out size_has_changed);
+
+ has_data = true;
+
+ if (size_has_changed)
+ size_changed ();
+ scan_line_changed ();
+ pixels_changed ();
+ }
+
+ public void finish ()
+ {
+ bool size_has_changed = false;
+
+ /* Trim page */
+ if (expected_rows < 0 &&
+ scan_line != scan_height)
+ {
+ var rows = scan_height;
+ scan_height = scan_line;
+ pixels.resize (scan_height * rowstride);
+ debug ("Trimming page from %d lines to %d lines", rows, scan_height);
+
+ size_has_changed = true;
+ }
+ is_scanning = false;
+
+ if (size_has_changed)
+ size_changed ();
+ scan_line_changed ();
+ scan_finished ();
+ }
+
+ public void rotate_left ()
+ {
+ switch (scan_direction)
+ {
+ case ScanDirection.TOP_TO_BOTTOM:
+ scan_direction = ScanDirection.LEFT_TO_RIGHT;
+ break;
+ case ScanDirection.LEFT_TO_RIGHT:
+ scan_direction = ScanDirection.BOTTOM_TO_TOP;
+ break;
+ case ScanDirection.BOTTOM_TO_TOP:
+ scan_direction = ScanDirection.RIGHT_TO_LEFT;
+ break;
+ case ScanDirection.RIGHT_TO_LEFT:
+ scan_direction = ScanDirection.TOP_TO_BOTTOM;
+ break;
+ }
+ }
+
+ public void rotate_right ()
+ {
+ switch (scan_direction)
+ {
+ case ScanDirection.TOP_TO_BOTTOM:
+ scan_direction = ScanDirection.RIGHT_TO_LEFT;
+ break;
+ case ScanDirection.LEFT_TO_RIGHT:
+ scan_direction = ScanDirection.TOP_TO_BOTTOM;
+ break;
+ case ScanDirection.BOTTOM_TO_TOP:
+ scan_direction = ScanDirection.LEFT_TO_RIGHT;
+ break;
+ case ScanDirection.RIGHT_TO_LEFT:
+ scan_direction = ScanDirection.BOTTOM_TO_TOP;
+ break;
+ }
+ }
+
+ public void set_no_crop ()
+ {
+ if (!has_crop)
+ return;
+ has_crop = false;
+ crop_name = null;
+ crop_x = 0;
+ crop_y = 0;
+ crop_width = 0;
+ crop_height = 0;
+ crop_changed ();
+ }
+
+ public void set_custom_crop (int width, int height)
+ {
+ return_if_fail (width >= 1);
+ return_if_fail (height >= 1);
+
+ if (crop_name == null && has_crop && crop_width == width && crop_height == height)
+ return;
+ crop_name = null;
+ has_crop = true;
+
+ crop_width = width;
+ crop_height = height;
+
+ /*var pw = width;
+ var ph = height;
+ if (crop_width < pw)
+ crop_x = (pw - crop_width) / 2;
+ else
+ crop_x = 0;
+ if (crop_height < ph)
+ crop_y = (ph - crop_height) / 2;
+ else
+ crop_y = 0;*/
+
+ crop_changed ();
+ }
+
+ public void set_named_crop (string name)
+ {
+ double w, h;
+ switch (name)
+ {
+ case "A4":
+ w = 8.3;
+ h = 11.7;
+ break;
+ case "A5":
+ w = 5.8;
+ h = 8.3;
+ break;
+ case "A6":
+ w = 4.1;
+ h = 5.8;
+ break;
+ case "letter":
+ w = 8.5;
+ h = 11;
+ break;
+ case "legal":
+ w = 8.5;
+ h = 14;
+ break;
+ case "4x6":
+ w = 4;
+ h = 6;
+ break;
+ default:
+ warning ("Unknown paper size '%s'", name);
+ return;
+ }
+
+ crop_name = name;
+ has_crop = true;
+
+ var pw = width;
+ var ph = height;
+
+ /* Rotate to match original aspect */
+ if (pw > ph)
+ {
+ var t = w;
+ w = h;
+ h = t;
+ }
+
+ /* Custom crop, make slightly smaller than original */
+ crop_width = (int) (w * dpi + 0.5);
+ crop_height = (int) (h * dpi + 0.5);
+
+ if (crop_width < pw)
+ crop_x = (pw - crop_width) / 2;
+ else
+ crop_x = 0;
+ if (crop_height < ph)
+ crop_y = (ph - crop_height) / 2;
+ else
+ crop_y = 0;
+ crop_changed ();
+ }
+
+ public void move_crop (int x, int y)
+ {
+ return_if_fail (x >= 0);
+ return_if_fail (y >= 0);
+ return_if_fail (x < width);
+ return_if_fail (y < height);
+
+ crop_x = x;
+ crop_y = y;
+ crop_changed ();
+ }
+
+ public void rotate_crop ()
+ {
+ if (!has_crop)
+ return;
+
+ var t = crop_width;
+ crop_width = crop_height;
+ crop_height = t;
+
+ /* Clip custom crops */
+ if (crop_name == null)
+ {
+ var w = width;
+ var h = height;
+
+ if (crop_x + crop_width > w)
+ crop_x = w - crop_width;
+ if (crop_x < 0)
+ {
+ crop_x = 0;
+ crop_width = w;
+ }
+ if (crop_y + crop_height > h)
+ crop_y = h - crop_height;
+ if (crop_y < 0)
+ {
+ crop_y = 0;
+ crop_height = h;
+ }
+ }
+
+ crop_changed ();
+ }
+
+ public unowned uchar[] get_pixels ()
+ {
+ return pixels;
+ }
+
+ // FIXME: Copied from page-view, should be shared code
+ private uchar get_sample (uchar[] pixels, int offset, int x, int depth, int n_channels, int channel)
+ {
+ // FIXME
+ return 0xFF;
+ }
+
+ // FIXME: Copied from page-view, should be shared code
+ private void get_pixel (int x, int y, uchar[] pixel, int offset)
+ {
+ switch (scan_direction)
+ {
+ case ScanDirection.TOP_TO_BOTTOM:
+ break;
+ case ScanDirection.BOTTOM_TO_TOP:
+ x = scan_width - x - 1;
+ y = scan_height - y - 1;
+ break;
+ case ScanDirection.LEFT_TO_RIGHT:
+ var t = x;
+ x = scan_width - y - 1;
+ y = t;
+ break;
+ case ScanDirection.RIGHT_TO_LEFT:
+ var t = x;
+ x = y;
+ y = scan_height - t - 1;
+ break;
+ }
+
+ var line_offset = rowstride * y;
+
+ /* Optimise for 8 bit images */
+ if (depth == 8 && n_channels == 3)
+ {
+ var o = line_offset + x * n_channels;
+ pixel[offset+0] = pixels[o];
+ pixel[offset+1] = pixels[o+1];
+ pixel[offset+2] = pixels[o+2];
+ return;
+ }
+ else if (depth == 8 && n_channels == 1)
+ {
+ var p = pixels[line_offset + x];
+ pixel[offset+0] = pixel[offset+1] = pixel[offset+2] = p;
+ return;
+ }
+
+ /* Optimise for bitmaps */
+ else if (depth == 1 && n_channels == 1)
+ {
+ var p = pixels[line_offset + (x / 8)];
+ pixel[offset+0] = pixel[offset+1] = pixel[offset+2] = (p & (0x80 >> (x % 8))) != 0 ? 0x00 : 0xFF;
+ return;
+ }
+
+ /* Optimise for 2 bit images */
+ else if (depth == 2 && n_channels == 1)
+ {
+ int block_shift[4] = { 6, 4, 2, 0 };
+
+ var p = pixels[line_offset + (x / 4)];
+ var sample = (p >> block_shift[x % 4]) & 0x3;
+ sample = sample * 255 / 3;
+
+ pixel[offset+0] = pixel[offset+1] = pixel[offset+2] = (uchar) sample;
+ return;
+ }
+
+ /* Use slow method */
+ pixel[offset+0] = get_sample (pixels, line_offset, x, depth, n_channels, 0);
+ pixel[offset+1] = get_sample (pixels, line_offset, x, depth, n_channels, 1);
+ pixel[offset+2] = get_sample (pixels, line_offset, x, depth, n_channels, 2);
+ }
+
+ public Gdk.Pixbuf get_image (bool apply_crop)
+ {
+ int l, r, t, b;
+ if (apply_crop && has_crop)
+ {
+ l = crop_x;
+ r = l + crop_width;
+ t = crop_y;
+ b = t + crop_height;
+
+ if (l < 0)
+ l = 0;
+ if (r > width)
+ r = width;
+ if (t < 0)
+ t = 0;
+ if (b > height)
+ b = height;
+ }
+ else
+ {
+ l = 0;
+ r = width;
+ t = 0;
+ b = height;
+ }
+
+ var image = new Gdk.Pixbuf (Gdk.Colorspace.RGB, false, 8, r - l, b - t);
+ unowned uint8[] image_pixels = image.get_pixels ();
+ for (var y = t; y < b; y++)
+ {
+ var offset = image.get_rowstride () * (y - t);
+ for (var x = l; x < r; x++)
+ get_pixel (x, y, image_pixels, offset + (x - l) * 3);
+ }
+
+ return image;
+ }
+
+ private string? get_icc_data_encoded (string icc_profile_filename)
+ {
+ /* Get binary data */
+ string contents;
+ try
+ {
+ FileUtils.get_contents (icc_profile_filename, out contents);
+ }
+ catch (Error e)
+ {
+ warning ("failed to get icc profile data: %s", e.message);
+ return null;
+ }
+
+ /* Encode into base64 */
+ return Base64.encode ((uchar[]) contents.to_utf8 ());
+ }
+
+ public void copy_to_clipboard (Gtk.Window window)
+ {
+ var display = window.get_display ();
+ var clipboard = Gtk.Clipboard.get_for_display (display, Gdk.SELECTION_CLIPBOARD);
+ var image = get_image (true);
+ clipboard.set_image (image);
+ }
+
+ public void save (string type, int quality, File file) throws Error
+ {
+ var stream = file.replace (null, false, FileCreateFlags.NONE, null);
+ var writer = new PixbufWriter (stream);
+ var image = get_image (true);
+
+ string? icc_profile_data = null;
+ if (color_profile != null)
+ icc_profile_data = get_icc_data_encoded (color_profile);
+
+ if (strcmp (type, "jpeg") == 0)
+ {
+ string[] keys = { "quality", "density-unit", "x-density", "y-density", "icc-profile", null };
+ string[] values = { "%d".printf (quality), "dots-per-inch", "%d".printf (dpi), "%d".printf (dpi), icc_profile_data, null };
+ if (icc_profile_data == null)
+ keys[4] = null;
+ writer.save (image, "jpeg", keys, values);
+ }
+ else if (strcmp (type, "png") == 0)
+ {
+ string[] keys = { "icc-profile", null };
+ string[] values = { icc_profile_data, null };
+ if (icc_profile_data == null)
+ keys[0] = null;
+ writer.save (image, "png", keys, values);
+ }
+ else if (strcmp (type, "tiff") == 0)
+ {
+ string[] keys = { "compression", "icc-profile", null };
+ string[] values = { "8" /* Deflate compression */, icc_profile_data, null };
+ if (icc_profile_data == null)
+ keys[1] = null;
+ writer.save (image, "tiff", keys, values);
+ }
+ else
+ ; // FIXME: Throw Error
+ }
+}
+
+public class PixbufWriter
+{
+ public FileOutputStream stream;
+
+ public PixbufWriter (FileOutputStream stream)
+ {
+ this.stream = stream;
+ }
+
+ public void save (Gdk.Pixbuf image, string type, string[] option_keys, string[] option_values) throws Error
+ {
+ image.save_to_callbackv (write_pixbuf_data, type, option_keys, option_values);
+ }
+
+ private bool write_pixbuf_data (uint8[] buf) throws Error
+ {
+ stream.write_all (buf, null, null);
+ return true;
+ }
+}
diff --git a/src/resources.c b/src/resources.c
new file mode 100644
index 0000000..124a8cd
--- /dev/null
+++ b/src/resources.c
@@ -0,0 +1,6477 @@
+#include <gio/gio.h>
+
+#if defined (__ELF__) && ( __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6))
+# define SECTION __attribute__ ((section (".gresource.simple_scan"), aligned (8)))
+#else
+# define SECTION
+#endif
+
+static const SECTION union { const guint8 data[50751]; const double alignment; void * const ptr;} simple_scan_resource_data = { {
+ 0x47, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x18, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x28, 0x05, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+ 0x05, 0x00, 0x00, 0x00, 0xd4, 0xb5, 0x02, 0x00,
+ 0xff, 0xff, 0xff, 0xff, 0xac, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x4c, 0x00, 0xb0, 0x00, 0x00, 0x00,
+ 0xb4, 0x00, 0x00, 0x00, 0x4b, 0x50, 0x90, 0x0b,
+ 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00,
+ 0x04, 0x00, 0x4c, 0x00, 0xb8, 0x00, 0x00, 0x00,
+ 0xbc, 0x00, 0x00, 0x00, 0x6e, 0xa3, 0x22, 0x37,
+ 0x03, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00,
+ 0x0b, 0x00, 0x4c, 0x00, 0xc8, 0x00, 0x00, 0x00,
+ 0xcc, 0x00, 0x00, 0x00, 0xb0, 0xb7, 0x24, 0x30,
+ 0x01, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00,
+ 0x06, 0x00, 0x4c, 0x00, 0xd4, 0x00, 0x00, 0x00,
+ 0xd8, 0x00, 0x00, 0x00, 0x76, 0x8d, 0xc8, 0xbd,
+ 0x02, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00,
+ 0x0e, 0x00, 0x76, 0x00, 0xe8, 0x00, 0x00, 0x00,
+ 0x3f, 0xc6, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x6f, 0x72, 0x67, 0x2f,
+ 0x03, 0x00, 0x00, 0x00, 0x53, 0x69, 0x6d, 0x70,
+ 0x6c, 0x65, 0x53, 0x63, 0x61, 0x6e, 0x2f, 0x00,
+ 0x04, 0x00, 0x00, 0x00, 0x67, 0x6e, 0x6f, 0x6d,
+ 0x65, 0x2f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2d, 0x73,
+ 0x63, 0x61, 0x6e, 0x2e, 0x75, 0x69, 0x00, 0x00,
+ 0x47, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3c, 0x3f, 0x78, 0x6d, 0x6c, 0x20, 0x76, 0x65,
+ 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x31,
+ 0x2e, 0x30, 0x22, 0x20, 0x65, 0x6e, 0x63, 0x6f,
+ 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x55, 0x54,
+ 0x46, 0x2d, 0x38, 0x22, 0x3f, 0x3e, 0x0a, 0x3c,
+ 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
+ 0x65, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x69,
+ 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
+ 0x2d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
+ 0x73, 0x20, 0x67, 0x74, 0x6b, 0x2b, 0x20, 0x33,
+ 0x2e, 0x31, 0x30, 0x20, 0x2d, 0x2d, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x22,
+ 0x20, 0x69, 0x64, 0x3d, 0x22, 0x61, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x5f, 0x64,
+ 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x22, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63,
+ 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72,
+ 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e,
+ 0x31, 0x32, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x73,
+ 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6d, 0x6f, 0x64, 0x61, 0x6c, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x79,
+ 0x70, 0x65, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x22,
+ 0x3e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x75, 0x72, 0x67, 0x65, 0x6e, 0x63,
+ 0x79, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x20, 0x69, 0x6e,
+ 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2d, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3d, 0x22, 0x76, 0x62,
+ 0x6f, 0x78, 0x22, 0x3e, 0x3c, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x42, 0x6f,
+ 0x78, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x64,
+ 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x2d, 0x76, 0x62,
+ 0x6f, 0x78, 0x31, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0x76, 0x65, 0x72,
+ 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x22,
+ 0x3e, 0x31, 0x32, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x74,
+ 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2d, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3d, 0x22, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x72, 0x65, 0x61,
+ 0x22, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x42, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x42, 0x6f, 0x78, 0x22, 0x20, 0x69,
+ 0x64, 0x3d, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f,
+ 0x67, 0x2d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x5f, 0x61, 0x72, 0x65, 0x61, 0x31, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75,
+ 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x79, 0x6f, 0x75,
+ 0x74, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x22,
+ 0x3e, 0x65, 0x6e, 0x64, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x61, 0x75, 0x74, 0x68,
+ 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61,
+ 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73,
+ 0x3d, 0x22, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x20, 0x74, 0x6f, 0x20, 0x73, 0x75, 0x62, 0x6d,
+ 0x69, 0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f,
+ 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x22,
+ 0x3e, 0x5f, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x7a, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69,
+ 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61,
+ 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x73,
+ 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64,
+ 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x66, 0x69, 0x6c, 0x6c, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22,
+ 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70,
+ 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c,
+ 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x66, 0x69, 0x6c, 0x6c, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x61,
+ 0x63, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22,
+ 0x3e, 0x65, 0x6e, 0x64, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22,
+ 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70,
+ 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c,
+ 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x42, 0x6f, 0x78, 0x22, 0x20, 0x69, 0x64, 0x3d,
+ 0x22, 0x76, 0x62, 0x6f, 0x78, 0x35, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75,
+ 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x62, 0x6f, 0x72, 0x64, 0x65,
+ 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22,
+ 0x3e, 0x35, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6f, 0x72, 0x69,
+ 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x22, 0x3e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63,
+ 0x61, 0x6c, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x70, 0x61,
+ 0x63, 0x69, 0x6e, 0x67, 0x22, 0x3e, 0x31, 0x32,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x4c, 0x61, 0x62, 0x65,
+ 0x6c, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x61,
+ 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65,
+ 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75,
+ 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c,
+ 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x3d, 0x22, 0x54, 0x68, 0x69, 0x73,
+ 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x69,
+ 0x73, 0x20, 0x73, 0x65, 0x74, 0x20, 0x64, 0x79,
+ 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c,
+ 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x73,
+ 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x72, 0x61,
+ 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x22,
+ 0x3e, 0x54, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x6e,
+ 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x3f,
+ 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65,
+ 0x64, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69,
+ 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x65, 0x78, 0x70, 0x61, 0x6e,
+ 0x64, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x6c, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22,
+ 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70,
+ 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c,
+ 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x47, 0x72, 0x69, 0x64, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x67, 0x72, 0x69, 0x64, 0x32, 0x22,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63,
+ 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x6f, 0x77, 0x5f,
+ 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x22,
+ 0x3e, 0x36, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x70, 0x61, 0x63,
+ 0x69, 0x6e, 0x67, 0x22, 0x3e, 0x36, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47,
+ 0x74, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22,
+ 0x20, 0x69, 0x64, 0x3d, 0x22, 0x75, 0x73, 0x65,
+ 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x6e,
+ 0x74, 0x72, 0x79, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68,
+ 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69,
+ 0x6e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
+ 0x5f, 0x63, 0x68, 0x61, 0x72, 0x22, 0x3e, 0xe2,
+ 0x97, 0x8f, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70,
+ 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c,
+ 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61,
+ 0x63, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61,
+ 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, 0x68,
+ 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47,
+ 0x74, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22,
+ 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70, 0x61, 0x73,
+ 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x65, 0x6e,
+ 0x74, 0x72, 0x79, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68,
+ 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76,
+ 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74,
+ 0x79, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x69, 0x6e, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x68, 0x61,
+ 0x72, 0x22, 0x3e, 0xe2, 0x97, 0x8f, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69,
+ 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f,
+ 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e,
+ 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f,
+ 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e,
+ 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74,
+ 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68,
+ 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63,
+ 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4c, 0x61,
+ 0x62, 0x65, 0x6c, 0x22, 0x20, 0x69, 0x64, 0x3d,
+ 0x22, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d,
+ 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63,
+ 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65,
+ 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73,
+ 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d,
+ 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22,
+ 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x62, 0x65,
+ 0x73, 0x69, 0x64, 0x65, 0x20, 0x75, 0x73, 0x65,
+ 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x65, 0x6e,
+ 0x74, 0x72, 0x79, 0x22, 0x3e, 0x5f, 0x55, 0x73,
+ 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x66,
+ 0x6f, 0x72, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x3a, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75,
+ 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72,
+ 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x6e, 0x65,
+ 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x5f, 0x77, 0x69,
+ 0x64, 0x67, 0x65, 0x74, 0x22, 0x3e, 0x75, 0x73,
+ 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x65,
+ 0x6e, 0x74, 0x72, 0x79, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74,
+ 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74,
+ 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22,
+ 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69,
+ 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69,
+ 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x4c, 0x61, 0x62, 0x65,
+ 0x6c, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70,
+ 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76,
+ 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63,
+ 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22,
+ 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79,
+ 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x4c, 0x61,
+ 0x62, 0x65, 0x6c, 0x20, 0x62, 0x65, 0x73, 0x69,
+ 0x64, 0x65, 0x20, 0x70, 0x61, 0x73, 0x73, 0x77,
+ 0x6f, 0x72, 0x64, 0x20, 0x65, 0x6e, 0x74, 0x72,
+ 0x79, 0x22, 0x3e, 0x5f, 0x50, 0x61, 0x73, 0x73,
+ 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65,
+ 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x6e,
+ 0x65, 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x5f, 0x77,
+ 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x3e, 0x70,
+ 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f,
+ 0x65, 0x6e, 0x74, 0x72, 0x79, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e,
+ 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61,
+ 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61,
+ 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68,
+ 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65,
+ 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b,
+ 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61,
+ 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x78,
+ 0x70, 0x61, 0x6e, 0x64, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x69,
+ 0x6c, 0x6c, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x70, 0x6f, 0x73, 0x69, 0x74,
+ 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0x31, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69,
+ 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63,
+ 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x78, 0x70,
+ 0x61, 0x6e, 0x64, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c,
+ 0x6c, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e,
+ 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x61, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x67, 0x65,
+ 0x74, 0x73, 0x3e, 0x3c, 0x61, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x67, 0x65,
+ 0x74, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x3d, 0x22, 0x30, 0x22, 0x3e, 0x61,
+ 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65,
+ 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3c,
+ 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2d,
+ 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x3e, 0x3c,
+ 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2d,
+ 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x73, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x41, 0x64, 0x6a, 0x75, 0x73,
+ 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x20, 0x69,
+ 0x64, 0x3d, 0x22, 0x62, 0x72, 0x69, 0x67, 0x68,
+ 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x64,
+ 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74,
+ 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x22,
+ 0x3e, 0x2d, 0x31, 0x30, 0x30, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x75, 0x70, 0x70, 0x65, 0x72, 0x22, 0x3e, 0x31,
+ 0x30, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x74, 0x65,
+ 0x70, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d,
+ 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e,
+ 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22,
+ 0x3e, 0x31, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d,
+ 0x65, 0x6e, 0x74, 0x22, 0x20, 0x69, 0x64, 0x3d,
+ 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x73,
+ 0x74, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74,
+ 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x6f,
+ 0x77, 0x65, 0x72, 0x22, 0x3e, 0x2d, 0x31, 0x30,
+ 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x70, 0x70, 0x65,
+ 0x72, 0x22, 0x3e, 0x31, 0x30, 0x30, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x69, 0x6e,
+ 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22,
+ 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x61, 0x67,
+ 0x65, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d,
+ 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x31, 0x30, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4c, 0x69, 0x73,
+ 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x64, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
+ 0x22, 0x3e, 0x3c, 0x63, 0x6f, 0x6c, 0x75, 0x6d,
+ 0x6e, 0x73, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20,
+ 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x2d, 0x6e,
+ 0x61, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20,
+ 0x2d, 0x2d, 0x3e, 0x3c, 0x63, 0x6f, 0x6c, 0x75,
+ 0x6d, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d,
+ 0x22, 0x67, 0x63, 0x68, 0x61, 0x72, 0x61, 0x72,
+ 0x72, 0x61, 0x79, 0x22, 0x2f, 0x3e, 0x3c, 0x21,
+ 0x2d, 0x2d, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d,
+ 0x6e, 0x2d, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6c,
+ 0x61, 0x62, 0x65, 0x6c, 0x20, 0x2d, 0x2d, 0x3e,
+ 0x3c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x20,
+ 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x67, 0x63,
+ 0x68, 0x61, 0x72, 0x61, 0x72, 0x72, 0x61, 0x79,
+ 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x63, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x6e, 0x73, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x49, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x20, 0x69,
+ 0x64, 0x3d, 0x22, 0x65, 0x6d, 0x61, 0x69, 0x6c,
+ 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75,
+ 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x69, 0x63, 0x6f, 0x6e, 0x5f,
+ 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x6d, 0x61,
+ 0x69, 0x6c, 0x2d, 0x73, 0x65, 0x6e, 0x64, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x49, 0x6d, 0x61,
+ 0x67, 0x65, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22,
+ 0x68, 0x65, 0x6c, 0x70, 0x5f, 0x69, 0x6d, 0x61,
+ 0x67, 0x65, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73,
+ 0x74, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x67, 0x74,
+ 0x6b, 0x2d, 0x68, 0x65, 0x6c, 0x70, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x4c, 0x69, 0x73, 0x74,
+ 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x20, 0x69,
+ 0x64, 0x3d, 0x22, 0x70, 0x61, 0x67, 0x65, 0x5f,
+ 0x73, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x6f, 0x64,
+ 0x65, 0x6c, 0x22, 0x3e, 0x3c, 0x63, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x6e, 0x73, 0x3e, 0x3c, 0x21, 0x2d,
+ 0x2d, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e,
+ 0x2d, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x73, 0x69,
+ 0x64, 0x65, 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x63,
+ 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x20, 0x74, 0x79,
+ 0x70, 0x65, 0x3d, 0x22, 0x67, 0x69, 0x6e, 0x74,
+ 0x22, 0x2f, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20,
+ 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x2d, 0x6e,
+ 0x61, 0x6d, 0x65, 0x20, 0x6c, 0x61, 0x62, 0x65,
+ 0x6c, 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x63, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x6e, 0x20, 0x74, 0x79, 0x70,
+ 0x65, 0x3d, 0x22, 0x67, 0x63, 0x68, 0x61, 0x72,
+ 0x61, 0x72, 0x72, 0x61, 0x79, 0x22, 0x2f, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e,
+ 0x73, 0x3e, 0x3c, 0x64, 0x61, 0x74, 0x61, 0x3e,
+ 0x3c, 0x72, 0x6f, 0x77, 0x3e, 0x3c, 0x63, 0x6f,
+ 0x6c, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x30, 0x22,
+ 0x3e, 0x33, 0x3c, 0x2f, 0x63, 0x6f, 0x6c, 0x3e,
+ 0x3c, 0x63, 0x6f, 0x6c, 0x20, 0x69, 0x64, 0x3d,
+ 0x22, 0x31, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e,
+ 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d,
+ 0x22, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x20, 0x62,
+ 0x6f, 0x78, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c,
+ 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x63, 0x61,
+ 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x6f,
+ 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73,
+ 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, 0x61,
+ 0x67, 0x65, 0x22, 0x3e, 0x46, 0x72, 0x6f, 0x6e,
+ 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x61,
+ 0x63, 0x6b, 0x3c, 0x2f, 0x63, 0x6f, 0x6c, 0x3e,
+ 0x3c, 0x2f, 0x72, 0x6f, 0x77, 0x3e, 0x3c, 0x72,
+ 0x6f, 0x77, 0x3e, 0x3c, 0x63, 0x6f, 0x6c, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x30, 0x22, 0x3e, 0x31,
+ 0x3c, 0x2f, 0x63, 0x6f, 0x6c, 0x3e, 0x3c, 0x63,
+ 0x6f, 0x6c, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x31,
+ 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c,
+ 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22,
+ 0x79, 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x43,
+ 0x6f, 0x6d, 0x62, 0x6f, 0x20, 0x62, 0x6f, 0x78,
+ 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x66,
+ 0x6f, 0x72, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x6e,
+ 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20,
+ 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x20, 0x73, 0x69,
+ 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20,
+ 0x70, 0x61, 0x67, 0x65, 0x22, 0x3e, 0x46, 0x72,
+ 0x6f, 0x6e, 0x74, 0x3c, 0x2f, 0x63, 0x6f, 0x6c,
+ 0x3e, 0x3c, 0x2f, 0x72, 0x6f, 0x77, 0x3e, 0x3c,
+ 0x72, 0x6f, 0x77, 0x3e, 0x3c, 0x63, 0x6f, 0x6c,
+ 0x20, 0x69, 0x64, 0x3d, 0x22, 0x30, 0x22, 0x3e,
+ 0x32, 0x3c, 0x2f, 0x63, 0x6f, 0x6c, 0x3e, 0x3c,
+ 0x63, 0x6f, 0x6c, 0x20, 0x69, 0x64, 0x3d, 0x22,
+ 0x31, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73,
+ 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d,
+ 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22,
+ 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x20, 0x62, 0x6f,
+ 0x78, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20,
+ 0x66, 0x6f, 0x72, 0x20, 0x73, 0x63, 0x61, 0x6e,
+ 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x73, 0x69,
+ 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20,
+ 0x70, 0x61, 0x67, 0x65, 0x22, 0x3e, 0x42, 0x61,
+ 0x63, 0x6b, 0x3c, 0x2f, 0x63, 0x6f, 0x6c, 0x3e,
+ 0x3c, 0x2f, 0x72, 0x6f, 0x77, 0x3e, 0x3c, 0x2f,
+ 0x64, 0x61, 0x74, 0x61, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72,
+ 0x65, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70,
+ 0x61, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a,
+ 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x22,
+ 0x3e, 0x3c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e,
+ 0x73, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x63,
+ 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x2d, 0x6e, 0x61,
+ 0x6d, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68,
+ 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x63, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65,
+ 0x3d, 0x22, 0x67, 0x69, 0x6e, 0x74, 0x22, 0x2f,
+ 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x63, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x6e, 0x2d, 0x6e, 0x61, 0x6d,
+ 0x65, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
+ 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x63, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65,
+ 0x3d, 0x22, 0x67, 0x69, 0x6e, 0x74, 0x22, 0x2f,
+ 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x63, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x6e, 0x2d, 0x6e, 0x61, 0x6d,
+ 0x65, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20,
+ 0x2d, 0x2d, 0x3e, 0x3c, 0x63, 0x6f, 0x6c, 0x75,
+ 0x6d, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d,
+ 0x22, 0x67, 0x63, 0x68, 0x61, 0x72, 0x61, 0x72,
+ 0x72, 0x61, 0x79, 0x22, 0x2f, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x53,
+ 0x74, 0x6f, 0x72, 0x65, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x5f,
+ 0x64, 0x70, 0x69, 0x5f, 0x6d, 0x6f, 0x64, 0x65,
+ 0x6c, 0x22, 0x3e, 0x3c, 0x63, 0x6f, 0x6c, 0x75,
+ 0x6d, 0x6e, 0x73, 0x3e, 0x3c, 0x21, 0x2d, 0x2d,
+ 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x2d,
+ 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x64, 0x70, 0x69,
+ 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x63, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65,
+ 0x3d, 0x22, 0x67, 0x69, 0x6e, 0x74, 0x22, 0x2f,
+ 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x63, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x6e, 0x2d, 0x6e, 0x61, 0x6d,
+ 0x65, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20,
+ 0x2d, 0x2d, 0x3e, 0x3c, 0x63, 0x6f, 0x6c, 0x75,
+ 0x6d, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d,
+ 0x22, 0x67, 0x63, 0x68, 0x61, 0x72, 0x61, 0x72,
+ 0x72, 0x61, 0x79, 0x22, 0x2f, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x41, 0x64, 0x6a, 0x75, 0x73,
+ 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x20, 0x69,
+ 0x64, 0x3d, 0x22, 0x71, 0x75, 0x61, 0x6c, 0x69,
+ 0x74, 0x79, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73,
+ 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75,
+ 0x70, 0x70, 0x65, 0x72, 0x22, 0x3e, 0x31, 0x30,
+ 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x74, 0x65, 0x70,
+ 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65,
+ 0x6e, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x70, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x63,
+ 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x3e,
+ 0x31, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x74,
+ 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x20,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x55,
+ 0x73, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72,
+ 0x66, 0x61, 0x63, 0x65, 0x22, 0x20, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64,
+ 0x6f, 0x77, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74,
+ 0x69, 0x74, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x72,
+ 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22,
+ 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
+ 0x73, 0x3d, 0x22, 0x54, 0x69, 0x74, 0x6c, 0x65,
+ 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x61, 0x6e,
+ 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x22,
+ 0x3e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20,
+ 0x53, 0x63, 0x61, 0x6e, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69,
+ 0x63, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+ 0x22, 0x3e, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65,
+ 0x72, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67,
+ 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x75, 0x72, 0x65, 0x2d, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c,
+ 0x65, 0x72, 0x3d, 0x22, 0x73, 0x69, 0x6d, 0x70,
+ 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x5f,
+ 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x63,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65,
+ 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x63,
+ 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70,
+ 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f,
+ 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x2d, 0x65, 0x76,
+ 0x65, 0x6e, 0x74, 0x22, 0x20, 0x68, 0x61, 0x6e,
+ 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x77, 0x69,
+ 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x64, 0x65, 0x6c,
+ 0x65, 0x74, 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73, 0x77,
+ 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e,
+ 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x73, 0x69, 0x67,
+ 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77,
+ 0x2d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2d, 0x65,
+ 0x76, 0x65, 0x6e, 0x74, 0x22, 0x20, 0x68, 0x61,
+ 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x73,
+ 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x73, 0x63,
+ 0x61, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f,
+ 0x77, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77,
+ 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x65,
+ 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x62, 0x22,
+ 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65, 0x64,
+ 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x42, 0x6f, 0x78, 0x22, 0x20, 0x69, 0x64, 0x3d,
+ 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x76, 0x62,
+ 0x6f, 0x78, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6f,
+ 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x22, 0x3e, 0x76, 0x65, 0x72, 0x74,
+ 0x69, 0x63, 0x61, 0x6c, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x4d, 0x65, 0x6e, 0x75, 0x42, 0x61, 0x72, 0x22,
+ 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6d, 0x65, 0x6e,
+ 0x75, 0x62, 0x61, 0x72, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69,
+ 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63,
+ 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x4d, 0x65, 0x6e, 0x75, 0x49,
+ 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d,
+ 0x22, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
+ 0x74, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74,
+ 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c,
+ 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72,
+ 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22,
+ 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
+ 0x73, 0x3d, 0x22, 0x4c, 0x61, 0x62, 0x65, 0x6c,
+ 0x20, 0x6f, 0x6e, 0x20, 0x64, 0x6f, 0x63, 0x75,
+ 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x65, 0x6e,
+ 0x75, 0x20, 0x28, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x73, 0x20, 0x61, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20,
+ 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x6f, 0x63,
+ 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x65,
+ 0x2e, 0x67, 0x2e, 0x20, 0x73, 0x61, 0x76, 0x65,
+ 0x2c, 0x20, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x29,
+ 0x22, 0x3e, 0x5f, 0x44, 0x6f, 0x63, 0x75, 0x6d,
+ 0x65, 0x6e, 0x74, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73,
+ 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c,
+ 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d,
+ 0x22, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x6e, 0x75,
+ 0x22, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x4d, 0x65, 0x6e, 0x75,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x64, 0x6f,
+ 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d,
+ 0x65, 0x6e, 0x75, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65,
+ 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x6e, 0x65, 0x77, 0x5f,
+ 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d,
+ 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22,
+ 0x3e, 0x67, 0x74, 0x6b, 0x2d, 0x6e, 0x65, 0x77,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62,
+ 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66,
+ 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73,
+ 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c,
+ 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f,
+ 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x61,
+ 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74,
+ 0x6f, 0x72, 0x20, 0x6b, 0x65, 0x79, 0x3d, 0x22,
+ 0x6e, 0x22, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61,
+ 0x6c, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76,
+ 0x61, 0x74, 0x65, 0x22, 0x20, 0x6d, 0x6f, 0x64,
+ 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x3d, 0x22,
+ 0x47, 0x44, 0x4b, 0x5f, 0x43, 0x4f, 0x4e, 0x54,
+ 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x41, 0x53, 0x4b,
+ 0x22, 0x2f, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e,
+ 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74,
+ 0x65, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c,
+ 0x65, 0x72, 0x3d, 0x22, 0x6e, 0x65, 0x77, 0x5f,
+ 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x63,
+ 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63,
+ 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70,
+ 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65,
+ 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x73, 0x63,
+ 0x61, 0x6e, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69,
+ 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62,
+ 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e,
+ 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d,
+ 0x22, 0x53, 0x63, 0x61, 0x6e, 0x20, 0x6d, 0x65,
+ 0x6e, 0x75, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x22,
+ 0x3e, 0x53, 0x63, 0x5f, 0x61, 0x6e, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63,
+ 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f,
+ 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x74,
+ 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65,
+ 0x3d, 0x22, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x6e,
+ 0x75, 0x22, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4d, 0x65, 0x6e,
+ 0x75, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x73,
+ 0x63, 0x61, 0x6e, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f,
+ 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4d, 0x65,
+ 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x73, 0x63, 0x61, 0x6e,
+ 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f,
+ 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d,
+ 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f,
+ 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62,
+ 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e,
+ 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d,
+ 0x22, 0x53, 0x63, 0x61, 0x6e, 0x20, 0x6d, 0x65,
+ 0x6e, 0x75, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x20,
+ 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20,
+ 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65,
+ 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x66, 0x72,
+ 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73,
+ 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x3e,
+ 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x5f,
+ 0x50, 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75,
+ 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72,
+ 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x61, 0x63,
+ 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f,
+ 0x72, 0x20, 0x6b, 0x65, 0x79, 0x3d, 0x22, 0x31,
+ 0x22, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c,
+ 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61,
+ 0x74, 0x65, 0x22, 0x20, 0x6d, 0x6f, 0x64, 0x69,
+ 0x66, 0x69, 0x65, 0x72, 0x73, 0x3d, 0x22, 0x47,
+ 0x44, 0x4b, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52,
+ 0x4f, 0x4c, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x22,
+ 0x2f, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61,
+ 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65,
+ 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x72, 0x3d, 0x22, 0x73, 0x63, 0x61, 0x6e, 0x5f,
+ 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x63,
+ 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63,
+ 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70,
+ 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x4d, 0x65, 0x6e, 0x75, 0x49,
+ 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d,
+ 0x22, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x61, 0x6c,
+ 0x6c, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74,
+ 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c,
+ 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72,
+ 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22,
+ 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
+ 0x73, 0x3d, 0x22, 0x53, 0x63, 0x61, 0x6e, 0x20,
+ 0x6d, 0x65, 0x6e, 0x75, 0x20, 0x69, 0x74, 0x65,
+ 0x6d, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61,
+ 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61,
+ 0x67, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d,
+ 0x20, 0x61, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d,
+ 0x65, 0x6e, 0x74, 0x20, 0x66, 0x65, 0x65, 0x64,
+ 0x65, 0x72, 0x22, 0x3e, 0x41, 0x6c, 0x6c, 0x20,
+ 0x50, 0x61, 0x67, 0x65, 0x73, 0x20, 0x46, 0x72,
+ 0x6f, 0x6d, 0x20, 0x5f, 0x46, 0x65, 0x65, 0x64,
+ 0x65, 0x72, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65,
+ 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69,
+ 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x61, 0x63, 0x63, 0x65,
+ 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20,
+ 0x6b, 0x65, 0x79, 0x3d, 0x22, 0x66, 0x22, 0x20,
+ 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3d, 0x22,
+ 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65,
+ 0x22, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69,
+ 0x65, 0x72, 0x73, 0x3d, 0x22, 0x47, 0x44, 0x4b,
+ 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c,
+ 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x22, 0x2f, 0x3e,
+ 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x63,
+ 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x20,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d,
+ 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75,
+ 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x63, 0x61, 0x6e,
+ 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f,
+ 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x5f,
+ 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70,
+ 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22,
+ 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x4d, 0x65, 0x6e, 0x75,
+ 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x73,
+ 0x63, 0x61, 0x6e, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69,
+ 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x65,
+ 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63,
+ 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65,
+ 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73,
+ 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d,
+ 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22,
+ 0x4d, 0x65, 0x6e, 0x75, 0x20, 0x65, 0x6e, 0x74,
+ 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74,
+ 0x6f, 0x70, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65,
+ 0x6e, 0x74, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x22,
+ 0x3e, 0x5f, 0x53, 0x74, 0x6f, 0x70, 0x20, 0x53,
+ 0x63, 0x61, 0x6e, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73,
+ 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c,
+ 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x61, 0x63, 0x63,
+ 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
+ 0x20, 0x6b, 0x65, 0x79, 0x3d, 0x22, 0x45, 0x73,
+ 0x63, 0x61, 0x70, 0x65, 0x22, 0x20, 0x73, 0x69,
+ 0x67, 0x6e, 0x61, 0x6c, 0x3d, 0x22, 0x61, 0x63,
+ 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x2f,
+ 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61,
+ 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22,
+ 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72,
+ 0x3d, 0x22, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x73,
+ 0x63, 0x61, 0x6e, 0x5f, 0x62, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b,
+ 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73,
+ 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22,
+ 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x53,
+ 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72,
+ 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6d, 0x65,
+ 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x32, 0x22,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63,
+ 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x52, 0x61,
+ 0x64, 0x69, 0x6f, 0x4d, 0x65, 0x6e, 0x75, 0x49,
+ 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d,
+ 0x22, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6d, 0x65,
+ 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75,
+ 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c,
+ 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c,
+ 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22,
+ 0x79, 0x65, 0x73, 0x22, 0x3e, 0x54, 0x65, 0x78,
+ 0x74, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f,
+ 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x61,
+ 0x73, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f,
+ 0x67, 0x67, 0x6c, 0x65, 0x64, 0x22, 0x20, 0x68,
+ 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22,
+ 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6d, 0x65, 0x6e,
+ 0x75, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x6f,
+ 0x67, 0x67, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x62,
+ 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65,
+ 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47,
+ 0x74, 0x6b, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x4d,
+ 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22,
+ 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70, 0x68, 0x6f,
+ 0x74, 0x6f, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69,
+ 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74,
+ 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73,
+ 0x22, 0x3e, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e,
+ 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64,
+ 0x72, 0x61, 0x77, 0x5f, 0x61, 0x73, 0x5f, 0x72,
+ 0x61, 0x64, 0x69, 0x6f, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x67, 0x72, 0x6f,
+ 0x75, 0x70, 0x22, 0x3e, 0x74, 0x65, 0x78, 0x74,
+ 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65,
+ 0x6d, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67,
+ 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65,
+ 0x64, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c,
+ 0x65, 0x72, 0x3d, 0x22, 0x70, 0x68, 0x6f, 0x74,
+ 0x6f, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74,
+ 0x65, 0x6d, 0x5f, 0x74, 0x6f, 0x67, 0x67, 0x6c,
+ 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73,
+ 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22,
+ 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c,
+ 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65,
+ 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x72,
+ 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6d,
+ 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x22,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63,
+ 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65,
+ 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73,
+ 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d,
+ 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22,
+ 0x4d, 0x65, 0x6e, 0x75, 0x20, 0x69, 0x74, 0x65,
+ 0x6d, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x6f,
+ 0x72, 0x64, 0x65, 0x72, 0x20, 0x70, 0x61, 0x67,
+ 0x65, 0x73, 0x22, 0x3e, 0x52, 0x65, 0x6f, 0x72,
+ 0x64, 0x65, 0x72, 0x20, 0x50, 0x61, 0x67, 0x65,
+ 0x73, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f,
+ 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61,
+ 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65,
+ 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x72, 0x3d, 0x22, 0x72, 0x65, 0x6f, 0x72, 0x64,
+ 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69,
+ 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x63, 0x74, 0x69,
+ 0x76, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x62, 0x22,
+ 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65, 0x64,
+ 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65,
+ 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x73, 0x61, 0x76, 0x65,
+ 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65,
+ 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c,
+ 0x22, 0x3e, 0x67, 0x74, 0x6b, 0x2d, 0x73, 0x61,
+ 0x76, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x65, 0x6e,
+ 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75,
+ 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75,
+ 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x6f,
+ 0x63, 0x6b, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x61, 0x63, 0x63, 0x65,
+ 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20,
+ 0x6b, 0x65, 0x79, 0x3d, 0x22, 0x73, 0x22, 0x20,
+ 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3d, 0x22,
+ 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65,
+ 0x22, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69,
+ 0x65, 0x72, 0x73, 0x3d, 0x22, 0x47, 0x44, 0x4b,
+ 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c,
+ 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x22, 0x2f, 0x3e,
+ 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x63,
+ 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x20,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d,
+ 0x22, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x66, 0x69,
+ 0x6c, 0x65, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65,
+ 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73, 0x77,
+ 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e,
+ 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x49, 0x6d,
+ 0x61, 0x67, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x49,
+ 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d,
+ 0x22, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x61, 0x73,
+ 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65,
+ 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c,
+ 0x22, 0x3e, 0x67, 0x74, 0x6b, 0x2d, 0x73, 0x61,
+ 0x76, 0x65, 0x2d, 0x61, 0x73, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76,
+ 0x65, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66,
+ 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73,
+ 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c,
+ 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f,
+ 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x61,
+ 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74,
+ 0x6f, 0x72, 0x20, 0x6b, 0x65, 0x79, 0x3d, 0x22,
+ 0x73, 0x22, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61,
+ 0x6c, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76,
+ 0x61, 0x74, 0x65, 0x22, 0x20, 0x6d, 0x6f, 0x64,
+ 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x3d, 0x22,
+ 0x47, 0x44, 0x4b, 0x5f, 0x53, 0x48, 0x49, 0x46,
+ 0x54, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x20, 0x7c,
+ 0x20, 0x47, 0x44, 0x4b, 0x5f, 0x43, 0x4f, 0x4e,
+ 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x41, 0x53,
+ 0x4b, 0x22, 0x2f, 0x3e, 0x3c, 0x73, 0x69, 0x67,
+ 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61,
+ 0x74, 0x65, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x73, 0x61, 0x76,
+ 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x66, 0x69, 0x6c,
+ 0x65, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64,
+ 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61,
+ 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f,
+ 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x49, 0x6d, 0x61,
+ 0x67, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74,
+ 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22,
+ 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x6d, 0x65,
+ 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74,
+ 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73,
+ 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x3d, 0x22, 0x4c, 0x61, 0x62, 0x65,
+ 0x6c, 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x6d, 0x61,
+ 0x69, 0x6c, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x20,
+ 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x5f, 0x45,
+ 0x6d, 0x61, 0x69, 0x6c, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76,
+ 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63,
+ 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e,
+ 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x3e, 0x65,
+ 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x69, 0x6d, 0x61,
+ 0x67, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65,
+ 0x5f, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72,
+ 0x61, 0x74, 0x6f, 0x72, 0x20, 0x6b, 0x65, 0x79,
+ 0x3d, 0x22, 0x65, 0x22, 0x20, 0x73, 0x69, 0x67,
+ 0x6e, 0x61, 0x6c, 0x3d, 0x22, 0x61, 0x63, 0x74,
+ 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x20, 0x6d,
+ 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73,
+ 0x3d, 0x22, 0x47, 0x44, 0x4b, 0x5f, 0x43, 0x4f,
+ 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x41,
+ 0x53, 0x4b, 0x22, 0x2f, 0x3e, 0x3c, 0x73, 0x69,
+ 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76,
+ 0x61, 0x74, 0x65, 0x22, 0x20, 0x68, 0x61, 0x6e,
+ 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x65, 0x6d,
+ 0x61, 0x69, 0x6c, 0x5f, 0x62, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b,
+ 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73,
+ 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22,
+ 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x6e, 0x75,
+ 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x5f,
+ 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d,
+ 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22,
+ 0x3e, 0x67, 0x74, 0x6b, 0x2d, 0x70, 0x72, 0x69,
+ 0x6e, 0x74, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65,
+ 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73,
+ 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72,
+ 0x61, 0x74, 0x6f, 0x72, 0x20, 0x6b, 0x65, 0x79,
+ 0x3d, 0x22, 0x70, 0x22, 0x20, 0x73, 0x69, 0x67,
+ 0x6e, 0x61, 0x6c, 0x3d, 0x22, 0x61, 0x63, 0x74,
+ 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x20, 0x6d,
+ 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73,
+ 0x3d, 0x22, 0x47, 0x44, 0x4b, 0x5f, 0x43, 0x4f,
+ 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x41,
+ 0x53, 0x4b, 0x22, 0x2f, 0x3e, 0x3c, 0x73, 0x69,
+ 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76,
+ 0x61, 0x74, 0x65, 0x22, 0x20, 0x68, 0x61, 0x6e,
+ 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x70, 0x72,
+ 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b,
+ 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73,
+ 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22,
+ 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x53,
+ 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72,
+ 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x64, 0x6f,
+ 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73,
+ 0x65, 0x70, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69,
+ 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47,
+ 0x74, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d,
+ 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22,
+ 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70, 0x72, 0x65,
+ 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73,
+ 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65,
+ 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c,
+ 0x22, 0x3e, 0x67, 0x74, 0x6b, 0x2d, 0x70, 0x72,
+ 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
+ 0x73, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75,
+ 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72,
+ 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65,
+ 0x5f, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x63, 0x74,
+ 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x20, 0x68,
+ 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22,
+ 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
+ 0x63, 0x65, 0x73, 0x5f, 0x62, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b,
+ 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73,
+ 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22,
+ 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x53,
+ 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72,
+ 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x73, 0x65,
+ 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x6d,
+ 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x31,
+ 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f,
+ 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x6e, 0x75,
+ 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x71, 0x75, 0x69, 0x74, 0x5f, 0x6d,
+ 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x22,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e,
+ 0x67, 0x74, 0x6b, 0x2d, 0x71, 0x75, 0x69, 0x74,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62,
+ 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66,
+ 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73,
+ 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c,
+ 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f,
+ 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x61,
+ 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74,
+ 0x6f, 0x72, 0x20, 0x6b, 0x65, 0x79, 0x3d, 0x22,
+ 0x77, 0x22, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61,
+ 0x6c, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76,
+ 0x61, 0x74, 0x65, 0x22, 0x20, 0x6d, 0x6f, 0x64,
+ 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x3d, 0x22,
+ 0x47, 0x44, 0x4b, 0x5f, 0x43, 0x4f, 0x4e, 0x54,
+ 0x52, 0x4f, 0x4c, 0x5f, 0x4d, 0x41, 0x53, 0x4b,
+ 0x22, 0x2f, 0x3e, 0x3c, 0x61, 0x63, 0x63, 0x65,
+ 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20,
+ 0x6b, 0x65, 0x79, 0x3d, 0x22, 0x71, 0x22, 0x20,
+ 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3d, 0x22,
+ 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65,
+ 0x22, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69,
+ 0x65, 0x72, 0x73, 0x3d, 0x22, 0x47, 0x44, 0x4b,
+ 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c,
+ 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x22, 0x2f, 0x3e,
+ 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x63,
+ 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x20,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d,
+ 0x22, 0x71, 0x75, 0x69, 0x74, 0x5f, 0x6d, 0x65,
+ 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61,
+ 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f,
+ 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70,
+ 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22,
+ 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4d, 0x65,
+ 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x70, 0x61, 0x67, 0x65,
+ 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65,
+ 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62,
+ 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66,
+ 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61,
+ 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73,
+ 0x3d, 0x22, 0x50, 0x61, 0x67, 0x65, 0x20, 0x6d,
+ 0x65, 0x6e, 0x75, 0x20, 0x28, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72,
+ 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x70, 0x61,
+ 0x67, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e,
+ 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x2c,
+ 0x20, 0x63, 0x72, 0x6f, 0x70, 0x29, 0x22, 0x3e,
+ 0x5f, 0x50, 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65,
+ 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x20, 0x74, 0x79, 0x70,
+ 0x65, 0x3d, 0x22, 0x73, 0x75, 0x62, 0x6d, 0x65,
+ 0x6e, 0x75, 0x22, 0x3e, 0x3c, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4d, 0x65,
+ 0x6e, 0x75, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22,
+ 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x65, 0x6e,
+ 0x75, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62,
+ 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66,
+ 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4d,
+ 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22,
+ 0x20, 0x69, 0x64, 0x3d, 0x22, 0x72, 0x6f, 0x74,
+ 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x66, 0x74,
+ 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65,
+ 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62,
+ 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66,
+ 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61,
+ 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73,
+ 0x3d, 0x22, 0x4d, 0x65, 0x6e, 0x75, 0x20, 0x69,
+ 0x74, 0x65, 0x6d, 0x20, 0x74, 0x6f, 0x20, 0x72,
+ 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x70, 0x61,
+ 0x67, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x65,
+ 0x66, 0x74, 0x20, 0x28, 0x61, 0x6e, 0x74, 0x69,
+ 0x2d, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69,
+ 0x73, 0x65, 0x29, 0x22, 0x3e, 0x52, 0x6f, 0x74,
+ 0x61, 0x74, 0x65, 0x20, 0x5f, 0x4c, 0x65, 0x66,
+ 0x74, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f,
+ 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x61, 0x63, 0x63, 0x65, 0x6c,
+ 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x6b,
+ 0x65, 0x79, 0x3d, 0x22, 0x62, 0x72, 0x61, 0x63,
+ 0x6b, 0x65, 0x74, 0x6c, 0x65, 0x66, 0x74, 0x22,
+ 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3d,
+ 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74,
+ 0x65, 0x22, 0x2f, 0x3e, 0x3c, 0x73, 0x69, 0x67,
+ 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61,
+ 0x74, 0x65, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x72, 0x6f, 0x74,
+ 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x66, 0x74,
+ 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f,
+ 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x5f,
+ 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70,
+ 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22,
+ 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x4d, 0x65, 0x6e, 0x75,
+ 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65,
+ 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6d,
+ 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x22,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63,
+ 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65,
+ 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73,
+ 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d,
+ 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22,
+ 0x4d, 0x65, 0x6e, 0x75, 0x20, 0x69, 0x74, 0x65,
+ 0x6d, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x6f, 0x74,
+ 0x61, 0x74, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65,
+ 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68,
+ 0x74, 0x20, 0x28, 0x63, 0x6c, 0x6f, 0x63, 0x6b,
+ 0x77, 0x69, 0x73, 0x65, 0x29, 0x22, 0x3e, 0x52,
+ 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x5f, 0x52,
+ 0x69, 0x67, 0x68, 0x74, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75,
+ 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72,
+ 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x61, 0x63,
+ 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f,
+ 0x72, 0x20, 0x6b, 0x65, 0x79, 0x3d, 0x22, 0x62,
+ 0x72, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x72, 0x69,
+ 0x67, 0x68, 0x74, 0x22, 0x20, 0x73, 0x69, 0x67,
+ 0x6e, 0x61, 0x6c, 0x3d, 0x22, 0x61, 0x63, 0x74,
+ 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x2f, 0x3e,
+ 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x63,
+ 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x20,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d,
+ 0x22, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x5f,
+ 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x62, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69,
+ 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22,
+ 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65, 0x64,
+ 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65,
+ 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63,
+ 0x72, 0x6f, 0x70, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69,
+ 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61,
+ 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20,
+ 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65,
+ 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x4c, 0x61, 0x62,
+ 0x65, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70,
+ 0x61, 0x67, 0x65, 0x20, 0x63, 0x72, 0x6f, 0x70,
+ 0x20, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x6e, 0x75,
+ 0x22, 0x3e, 0x5f, 0x43, 0x72, 0x6f, 0x70, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e,
+ 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x20, 0x74,
+ 0x79, 0x70, 0x65, 0x3d, 0x22, 0x73, 0x75, 0x62,
+ 0x6d, 0x65, 0x6e, 0x75, 0x22, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x4d, 0x65, 0x6e, 0x75, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x63, 0x72, 0x6f, 0x70, 0x5f, 0x6d,
+ 0x65, 0x6e, 0x75, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x4d, 0x65,
+ 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x5f, 0x63,
+ 0x72, 0x6f, 0x70, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69,
+ 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61,
+ 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20,
+ 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65,
+ 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x52, 0x61, 0x64,
+ 0x69, 0x6f, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f,
+ 0x20, 0x63, 0x72, 0x6f, 0x70, 0x22, 0x3e, 0x5f,
+ 0x4e, 0x6f, 0x6e, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75,
+ 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72,
+ 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x63, 0x74,
+ 0x69, 0x76, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x64, 0x72, 0x61, 0x77,
+ 0x5f, 0x61, 0x73, 0x5f, 0x72, 0x61, 0x64, 0x69,
+ 0x6f, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61,
+ 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, 0x22,
+ 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72,
+ 0x3d, 0x22, 0x6e, 0x6f, 0x5f, 0x63, 0x72, 0x6f,
+ 0x70, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74,
+ 0x65, 0x6d, 0x5f, 0x74, 0x6f, 0x67, 0x67, 0x6c,
+ 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73,
+ 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22,
+ 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x52,
+ 0x61, 0x64, 0x69, 0x6f, 0x4d, 0x65, 0x6e, 0x75,
+ 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x61, 0x34, 0x5f, 0x6d, 0x65, 0x6e,
+ 0x75, 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76,
+ 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63,
+ 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22,
+ 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79,
+ 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x52, 0x61,
+ 0x64, 0x69, 0x6f, 0x20, 0x62, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63,
+ 0x72, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20,
+ 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x20,
+ 0x41, 0x34, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x22,
+ 0x3e, 0x41, 0x5f, 0x34, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75,
+ 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72,
+ 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64, 0x72, 0x61,
+ 0x77, 0x5f, 0x61, 0x73, 0x5f, 0x72, 0x61, 0x64,
+ 0x69, 0x6f, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x67, 0x72, 0x6f, 0x75, 0x70,
+ 0x22, 0x3e, 0x6e, 0x6f, 0x5f, 0x63, 0x72, 0x6f,
+ 0x70, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74,
+ 0x65, 0x6d, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69,
+ 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x67, 0x67, 0x6c,
+ 0x65, 0x64, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x61, 0x34, 0x5f,
+ 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d,
+ 0x5f, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64,
+ 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61,
+ 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f,
+ 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x52, 0x61, 0x64,
+ 0x69, 0x6f, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74,
+ 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22,
+ 0x61, 0x35, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69,
+ 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74,
+ 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73,
+ 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x3d, 0x22, 0x52, 0x61, 0x64, 0x69,
+ 0x6f, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x72, 0x6f,
+ 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x61,
+ 0x67, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x35,
+ 0x20, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x3e, 0x41,
+ 0x5f, 0x35, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65,
+ 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69,
+ 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x64, 0x72, 0x61, 0x77, 0x5f,
+ 0x61, 0x73, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x6f,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x3e,
+ 0x6e, 0x6f, 0x5f, 0x63, 0x72, 0x6f, 0x70, 0x5f,
+ 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e,
+ 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64,
+ 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x72, 0x3d, 0x22, 0x61, 0x35, 0x5f, 0x6d, 0x65,
+ 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74,
+ 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, 0x5f, 0x63,
+ 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70,
+ 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x52, 0x61, 0x64, 0x69, 0x6f,
+ 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x61, 0x36,
+ 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65,
+ 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62,
+ 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66,
+ 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61,
+ 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73,
+ 0x3d, 0x22, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x20,
+ 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x66,
+ 0x6f, 0x72, 0x20, 0x63, 0x72, 0x6f, 0x70, 0x70,
+ 0x69, 0x6e, 0x67, 0x20, 0x70, 0x61, 0x67, 0x65,
+ 0x20, 0x74, 0x6f, 0x20, 0x41, 0x36, 0x20, 0x73,
+ 0x69, 0x7a, 0x65, 0x22, 0x3e, 0x41, 0x5f, 0x36,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75,
+ 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x61, 0x73,
+ 0x5f, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x67,
+ 0x72, 0x6f, 0x75, 0x70, 0x22, 0x3e, 0x6e, 0x6f,
+ 0x5f, 0x63, 0x72, 0x6f, 0x70, 0x5f, 0x6d, 0x65,
+ 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74,
+ 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, 0x22, 0x20,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d,
+ 0x22, 0x61, 0x36, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x6f, 0x67,
+ 0x67, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22,
+ 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65, 0x64,
+ 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x4d, 0x65,
+ 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x6c, 0x65, 0x74, 0x74,
+ 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69,
+ 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74,
+ 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73,
+ 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x3d, 0x22, 0x52, 0x61, 0x64, 0x69,
+ 0x6f, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x72, 0x6f,
+ 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x61,
+ 0x67, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x55, 0x53,
+ 0x20, 0x6c, 0x65, 0x74, 0x74, 0x65, 0x72, 0x20,
+ 0x73, 0x69, 0x7a, 0x65, 0x22, 0x3e, 0x5f, 0x4c,
+ 0x65, 0x74, 0x74, 0x65, 0x72, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65,
+ 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64, 0x72,
+ 0x61, 0x77, 0x5f, 0x61, 0x73, 0x5f, 0x72, 0x61,
+ 0x64, 0x69, 0x6f, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x67, 0x72, 0x6f, 0x75,
+ 0x70, 0x22, 0x3e, 0x6e, 0x6f, 0x5f, 0x63, 0x72,
+ 0x6f, 0x70, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69,
+ 0x74, 0x65, 0x6d, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73,
+ 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x67, 0x67,
+ 0x6c, 0x65, 0x64, 0x22, 0x20, 0x68, 0x61, 0x6e,
+ 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x6c, 0x65,
+ 0x74, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x6e,
+ 0x75, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x6f,
+ 0x67, 0x67, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x62,
+ 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65,
+ 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47,
+ 0x74, 0x6b, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x4d,
+ 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22,
+ 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6c, 0x65, 0x67,
+ 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69,
+ 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74,
+ 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73,
+ 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x3d, 0x22, 0x52, 0x61, 0x64, 0x69,
+ 0x6f, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x72, 0x6f,
+ 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f,
+ 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f,
+ 0x20, 0x55, 0x53, 0x20, 0x6c, 0x65, 0x67, 0x61,
+ 0x6c, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x3e,
+ 0x4c, 0x65, 0x5f, 0x67, 0x61, 0x6c, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64,
+ 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64,
+ 0x72, 0x61, 0x77, 0x5f, 0x61, 0x73, 0x5f, 0x72,
+ 0x61, 0x64, 0x69, 0x6f, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x67, 0x72, 0x6f,
+ 0x75, 0x70, 0x22, 0x3e, 0x6e, 0x6f, 0x5f, 0x63,
+ 0x72, 0x6f, 0x70, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x69, 0x74, 0x65, 0x6d, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x67,
+ 0x67, 0x6c, 0x65, 0x64, 0x22, 0x20, 0x68, 0x61,
+ 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x6c,
+ 0x65, 0x67, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x6e,
+ 0x75, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x6f,
+ 0x67, 0x67, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x62,
+ 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65,
+ 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47,
+ 0x74, 0x6b, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x4d,
+ 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22,
+ 0x20, 0x69, 0x64, 0x3d, 0x22, 0x66, 0x6f, 0x75,
+ 0x72, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x69, 0x78,
+ 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65,
+ 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62,
+ 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66,
+ 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61,
+ 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73,
+ 0x3d, 0x22, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x20,
+ 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x66,
+ 0x6f, 0x72, 0x20, 0x63, 0x72, 0x6f, 0x70, 0x70,
+ 0x69, 0x6e, 0x67, 0x20, 0x70, 0x61, 0x67, 0x65,
+ 0x20, 0x74, 0x6f, 0x20, 0x34, 0x78, 0x36, 0x20,
+ 0x69, 0x6e, 0x63, 0x68, 0x22, 0x3e, 0x34, 0xc3,
+ 0x97, 0x36, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65,
+ 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69,
+ 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x64, 0x72, 0x61, 0x77, 0x5f,
+ 0x61, 0x73, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x6f,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x3e,
+ 0x6e, 0x6f, 0x5f, 0x63, 0x72, 0x6f, 0x70, 0x5f,
+ 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e,
+ 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64,
+ 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x72, 0x3d, 0x22, 0x66, 0x6f, 0x75, 0x72, 0x5f,
+ 0x62, 0x79, 0x5f, 0x73, 0x69, 0x78, 0x5f, 0x6d,
+ 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x5f,
+ 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, 0x5f,
+ 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70,
+ 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22,
+ 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x52, 0x61, 0x64, 0x69,
+ 0x6f, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65,
+ 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63,
+ 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x72,
+ 0x6f, 0x70, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69,
+ 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74,
+ 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73,
+ 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x3d, 0x22, 0x52, 0x61, 0x64, 0x69,
+ 0x6f, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x72, 0x6f,
+ 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f,
+ 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x20,
+ 0x70, 0x61, 0x67, 0x65, 0x20, 0x73, 0x69, 0x7a,
+ 0x65, 0x22, 0x3e, 0x5f, 0x43, 0x75, 0x73, 0x74,
+ 0x6f, 0x6d, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65,
+ 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69,
+ 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x64, 0x72, 0x61, 0x77, 0x5f,
+ 0x61, 0x73, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x6f,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x3e,
+ 0x6e, 0x6f, 0x5f, 0x63, 0x72, 0x6f, 0x70, 0x5f,
+ 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e,
+ 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64,
+ 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x72, 0x3d, 0x22, 0x63, 0x75, 0x73, 0x74, 0x6f,
+ 0x6d, 0x5f, 0x63, 0x72, 0x6f, 0x70, 0x5f, 0x6d,
+ 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x5f,
+ 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, 0x5f,
+ 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70,
+ 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22,
+ 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x53, 0x65, 0x70, 0x61,
+ 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x6e,
+ 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69,
+ 0x64, 0x3d, 0x22, 0x63, 0x72, 0x6f, 0x70, 0x5f,
+ 0x73, 0x65, 0x70, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69,
+ 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61,
+ 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x4d, 0x65, 0x6e, 0x75, 0x49,
+ 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d,
+ 0x22, 0x63, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x6f,
+ 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x6e,
+ 0x75, 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76,
+ 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73,
+ 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f,
+ 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62,
+ 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e,
+ 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d,
+ 0x22, 0x4d, 0x65, 0x6e, 0x75, 0x20, 0x69, 0x74,
+ 0x65, 0x6d, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x6f,
+ 0x74, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x63, 0x72, 0x6f, 0x70, 0x20, 0x61, 0x72,
+ 0x65, 0x61, 0x22, 0x3e, 0x5f, 0x52, 0x6f, 0x74,
+ 0x61, 0x74, 0x65, 0x20, 0x43, 0x72, 0x6f, 0x70,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75,
+ 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61,
+ 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22,
+ 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72,
+ 0x3d, 0x22, 0x63, 0x72, 0x6f, 0x70, 0x5f, 0x72,
+ 0x6f, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65,
+ 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61,
+ 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f,
+ 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70,
+ 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22,
+ 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4d, 0x65,
+ 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x70, 0x61, 0x67, 0x65,
+ 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x6c, 0x65,
+ 0x66, 0x74, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69,
+ 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74,
+ 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73,
+ 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x3d, 0x22, 0x4d, 0x65, 0x6e, 0x75,
+ 0x20, 0x69, 0x74, 0x65, 0x6d, 0x20, 0x74, 0x6f,
+ 0x20, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x74, 0x68,
+ 0x65, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
+ 0x65, 0x64, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20,
+ 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c,
+ 0x65, 0x66, 0x74, 0x22, 0x3e, 0x4d, 0x6f, 0x76,
+ 0x65, 0x20, 0x4c, 0x65, 0x66, 0x74, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65,
+ 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x6b, 0x65,
+ 0x79, 0x3d, 0x22, 0x6c, 0x65, 0x73, 0x73, 0x22,
+ 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3d,
+ 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74,
+ 0x65, 0x22, 0x2f, 0x3e, 0x3c, 0x73, 0x69, 0x67,
+ 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61,
+ 0x74, 0x65, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x70, 0x61, 0x67,
+ 0x65, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x6c,
+ 0x65, 0x66, 0x74, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x63, 0x74,
+ 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x62,
+ 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65,
+ 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47,
+ 0x74, 0x6b, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74,
+ 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22,
+ 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x6f, 0x76,
+ 0x65, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f,
+ 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d,
+ 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f,
+ 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62,
+ 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e,
+ 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d,
+ 0x22, 0x4d, 0x65, 0x6e, 0x75, 0x20, 0x69, 0x74,
+ 0x65, 0x6d, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x6f,
+ 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73,
+ 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20,
+ 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x20,
+ 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, 0x67, 0x68,
+ 0x74, 0x22, 0x3e, 0x4d, 0x6f, 0x76, 0x65, 0x20,
+ 0x52, 0x69, 0x67, 0x68, 0x74, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65,
+ 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x61,
+ 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74,
+ 0x6f, 0x72, 0x20, 0x6b, 0x65, 0x79, 0x3d, 0x22,
+ 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x22,
+ 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3d,
+ 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74,
+ 0x65, 0x22, 0x2f, 0x3e, 0x3c, 0x73, 0x69, 0x67,
+ 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61,
+ 0x74, 0x65, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x70, 0x61, 0x67,
+ 0x65, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x72,
+ 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6d, 0x65, 0x6e,
+ 0x75, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x63,
+ 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x63,
+ 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70,
+ 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65,
+ 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, 0x6f,
+ 0x70, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6c,
+ 0x69, 0x70, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f,
+ 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d,
+ 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22,
+ 0x3e, 0x67, 0x74, 0x6b, 0x2d, 0x63, 0x6f, 0x70,
+ 0x79, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x65, 0x6e, 0x73,
+ 0x69, 0x74, 0x69, 0x76, 0x65, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63,
+ 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e,
+ 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x75, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x63,
+ 0x6b, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x61, 0x63, 0x63, 0x65, 0x6c,
+ 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x6b,
+ 0x65, 0x79, 0x3d, 0x22, 0x63, 0x22, 0x20, 0x73,
+ 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3d, 0x22, 0x61,
+ 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22,
+ 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65,
+ 0x72, 0x73, 0x3d, 0x22, 0x47, 0x44, 0x4b, 0x5f,
+ 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f,
+ 0x4d, 0x41, 0x53, 0x4b, 0x22, 0x2f, 0x3e, 0x3c,
+ 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x63, 0x74,
+ 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x20, 0x68,
+ 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22,
+ 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x6f, 0x5f,
+ 0x63, 0x6c, 0x69, 0x70, 0x62, 0x6f, 0x61, 0x72,
+ 0x64, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64,
+ 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61,
+ 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f,
+ 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x49, 0x6d, 0x61,
+ 0x67, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74,
+ 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22,
+ 0x70, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x6c,
+ 0x65, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x67, 0x74, 0x6b,
+ 0x2d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f,
+ 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65,
+ 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69,
+ 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x73,
+ 0x74, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x61, 0x63,
+ 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f,
+ 0x72, 0x20, 0x6b, 0x65, 0x79, 0x3d, 0x22, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x22, 0x20, 0x73,
+ 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x3d, 0x22, 0x61,
+ 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22,
+ 0x2f, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61,
+ 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65,
+ 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x72, 0x3d, 0x22, 0x70, 0x61, 0x67, 0x65, 0x5f,
+ 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x6d,
+ 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x5f,
+ 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65,
+ 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61,
+ 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f,
+ 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4d,
+ 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22,
+ 0x20, 0x69, 0x64, 0x3d, 0x22, 0x68, 0x65, 0x6c,
+ 0x70, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74,
+ 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c,
+ 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72,
+ 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22,
+ 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
+ 0x73, 0x3d, 0x22, 0x4c, 0x61, 0x62, 0x65, 0x6c,
+ 0x20, 0x6f, 0x6e, 0x20, 0x68, 0x65, 0x6c, 0x70,
+ 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x22, 0x3e, 0x5f,
+ 0x48, 0x65, 0x6c, 0x70, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75,
+ 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72,
+ 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65,
+ 0x3d, 0x22, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x6e,
+ 0x75, 0x22, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4d, 0x65, 0x6e,
+ 0x75, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x68,
+ 0x65, 0x6c, 0x70, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f,
+ 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x49, 0x6d,
+ 0x61, 0x67, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x49,
+ 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d,
+ 0x22, 0x68, 0x65, 0x6c, 0x70, 0x5f, 0x63, 0x6f,
+ 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x6d,
+ 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x22,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20,
+ 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65,
+ 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x48, 0x65, 0x6c,
+ 0x70, 0x7c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
+ 0x74, 0x73, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x22,
+ 0x3e, 0x5f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
+ 0x74, 0x73, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65,
+ 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x6d,
+ 0x61, 0x67, 0x65, 0x22, 0x3e, 0x68, 0x65, 0x6c,
+ 0x70, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x74,
+ 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x61, 0x63,
+ 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f,
+ 0x72, 0x20, 0x6b, 0x65, 0x79, 0x3d, 0x22, 0x46,
+ 0x31, 0x22, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61,
+ 0x6c, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76,
+ 0x61, 0x74, 0x65, 0x22, 0x2f, 0x3e, 0x3c, 0x73,
+ 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69,
+ 0x76, 0x61, 0x74, 0x65, 0x22, 0x20, 0x68, 0x61,
+ 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x68,
+ 0x65, 0x6c, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x74,
+ 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x6d, 0x65, 0x6e,
+ 0x75, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x63,
+ 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x63,
+ 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70,
+ 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65,
+ 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x61, 0x62,
+ 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x67, 0x74, 0x6b,
+ 0x2d, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63,
+ 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f,
+ 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x74,
+ 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67,
+ 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61,
+ 0x74, 0x65, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x61, 0x62, 0x6f,
+ 0x75, 0x74, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69,
+ 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x63, 0x74, 0x69,
+ 0x76, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x62, 0x22,
+ 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65, 0x64,
+ 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b,
+ 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x78, 0x70, 0x61,
+ 0x6e, 0x64, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x6c,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
+ 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47,
+ 0x74, 0x6b, 0x54, 0x6f, 0x6f, 0x6c, 0x62, 0x61,
+ 0x72, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x74,
+ 0x6f, 0x6f, 0x6c, 0x62, 0x61, 0x72, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63,
+ 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x74, 0x79,
+ 0x6c, 0x65, 0x3e, 0x3c, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x2d,
+ 0x74, 0x6f, 0x6f, 0x6c, 0x62, 0x61, 0x72, 0x22,
+ 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c,
+ 0x65, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x54, 0x6f, 0x6f, 0x6c, 0x42,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20, 0x69,
+ 0x64, 0x3d, 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x74,
+ 0x6f, 0x6f, 0x6c, 0x62, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62,
+ 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66,
+ 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f,
+ 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x5f, 0x74, 0x65,
+ 0x78, 0x74, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e,
+ 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d,
+ 0x22, 0x54, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70,
+ 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x65, 0x77,
+ 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
+ 0x74, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x22, 0x3e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x20,
+ 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x64, 0x6f,
+ 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20,
+ 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65,
+ 0x73, 0x22, 0x3e, 0x4e, 0x65, 0x77, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64,
+ 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73,
+ 0x74, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x22,
+ 0x3e, 0x67, 0x74, 0x6b, 0x2d, 0x6e, 0x65, 0x77,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e,
+ 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64,
+ 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x72, 0x3d, 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x62,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x63, 0x6c,
+ 0x69, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x62,
+ 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65,
+ 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e,
+ 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x68, 0x6f, 0x6d, 0x6f, 0x67, 0x65,
+ 0x6e, 0x65, 0x6f, 0x75, 0x73, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f,
+ 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x4d, 0x65, 0x6e, 0x75, 0x54, 0x6f, 0x6f,
+ 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22,
+ 0x20, 0x69, 0x64, 0x3d, 0x22, 0x73, 0x63, 0x61,
+ 0x6e, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x62, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69,
+ 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61,
+ 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70,
+ 0x5f, 0x74, 0x65, 0x78, 0x74, 0x22, 0x20, 0x74,
+ 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73,
+ 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x3d, 0x22, 0x54, 0x6f, 0x6f, 0x6c,
+ 0x74, 0x69, 0x70, 0x20, 0x66, 0x6f, 0x72, 0x20,
+ 0x73, 0x63, 0x61, 0x6e, 0x20, 0x74, 0x6f, 0x6f,
+ 0x6c, 0x62, 0x61, 0x72, 0x20, 0x62, 0x75, 0x74,
+ 0x74, 0x6f, 0x6e, 0x22, 0x3e, 0x53, 0x63, 0x61,
+ 0x6e, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67,
+ 0x6c, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20,
+ 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x72,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x69, 0x73, 0x5f, 0x69, 0x6d,
+ 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74,
+ 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73,
+ 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x3d, 0x22, 0x4c, 0x61, 0x62, 0x65,
+ 0x6c, 0x20, 0x6f, 0x6e, 0x20, 0x73, 0x63, 0x61,
+ 0x6e, 0x20, 0x74, 0x6f, 0x6f, 0x6c, 0x62, 0x61,
+ 0x72, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e,
+ 0x53, 0x63, 0x61, 0x6e, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75,
+ 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72,
+ 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x63, 0x6f,
+ 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3e,
+ 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x6d, 0x65, 0x6e, 0x75, 0x22, 0x3e,
+ 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x62, 0x75, 0x74,
+ 0x74, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e,
+ 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64,
+ 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x72, 0x3d, 0x22, 0x73, 0x63, 0x61, 0x6e, 0x5f,
+ 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x63,
+ 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63,
+ 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70,
+ 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69,
+ 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x65, 0x78, 0x70, 0x61, 0x6e,
+ 0x64, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x68, 0x6f, 0x6d, 0x6f, 0x67,
+ 0x65, 0x6e, 0x65, 0x6f, 0x75, 0x73, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e,
+ 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x54, 0x6f, 0x6f, 0x6c, 0x42,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20, 0x69,
+ 0x64, 0x3d, 0x22, 0x73, 0x61, 0x76, 0x65, 0x5f,
+ 0x74, 0x6f, 0x6f, 0x6c, 0x62, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x65, 0x6e, 0x73,
+ 0x69, 0x74, 0x69, 0x76, 0x65, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63,
+ 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69,
+ 0x70, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x22, 0x20,
+ 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65,
+ 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x54, 0x6f, 0x6f,
+ 0x6c, 0x74, 0x69, 0x70, 0x20, 0x66, 0x6f, 0x72,
+ 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f,
+ 0x6f, 0x6c, 0x62, 0x61, 0x72, 0x20, 0x62, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x3e, 0x53, 0x61,
+ 0x76, 0x65, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d,
+ 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x61,
+ 0x20, 0x66, 0x69, 0x6c, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x69, 0x73, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72,
+ 0x74, 0x61, 0x6e, 0x74, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62,
+ 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e,
+ 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x3e, 0x53,
+ 0x61, 0x76, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73,
+ 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c,
+ 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x74, 0x6f, 0x63,
+ 0x6b, 0x5f, 0x69, 0x64, 0x22, 0x3e, 0x67, 0x74,
+ 0x6b, 0x2d, 0x73, 0x61, 0x76, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63,
+ 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x22, 0x20,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d,
+ 0x22, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x66, 0x69,
+ 0x6c, 0x65, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65,
+ 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73, 0x77,
+ 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e,
+ 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61,
+ 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x78,
+ 0x70, 0x61, 0x6e, 0x64, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x6f,
+ 0x6d, 0x6f, 0x67, 0x65, 0x6e, 0x65, 0x6f, 0x75,
+ 0x73, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b,
+ 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x54, 0x6f, 0x6f,
+ 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22,
+ 0x20, 0x69, 0x64, 0x3d, 0x22, 0x73, 0x74, 0x6f,
+ 0x70, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x62, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69,
+ 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x65,
+ 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63,
+ 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x6f, 0x6c,
+ 0x74, 0x69, 0x70, 0x5f, 0x74, 0x65, 0x78, 0x74,
+ 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c,
+ 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22,
+ 0x79, 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x54,
+ 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x20, 0x66,
+ 0x6f, 0x72, 0x20, 0x73, 0x74, 0x6f, 0x70, 0x20,
+ 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x3e,
+ 0x53, 0x74, 0x6f, 0x70, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74,
+ 0x20, 0x73, 0x63, 0x61, 0x6e, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74,
+ 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73,
+ 0x22, 0x3e, 0x53, 0x74, 0x6f, 0x70, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64,
+ 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73,
+ 0x74, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x22,
+ 0x3e, 0x67, 0x74, 0x6b, 0x2d, 0x73, 0x74, 0x6f,
+ 0x70, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67,
+ 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65,
+ 0x64, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c,
+ 0x65, 0x72, 0x3d, 0x22, 0x73, 0x74, 0x6f, 0x70,
+ 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x62, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69,
+ 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22,
+ 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65, 0x64,
+ 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x68, 0x6f, 0x6d, 0x6f, 0x67, 0x65, 0x6e,
+ 0x65, 0x6f, 0x75, 0x73, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70,
+ 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c,
+ 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f,
+ 0x72, 0x54, 0x6f, 0x6f, 0x6c, 0x49, 0x74, 0x65,
+ 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x74,
+ 0x6f, 0x6f, 0x6c, 0x62, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x32, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x68, 0x6f, 0x6d, 0x6f, 0x67, 0x65, 0x6e,
+ 0x65, 0x6f, 0x75, 0x73, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70,
+ 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c,
+ 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x54, 0x6f, 0x6f, 0x6c, 0x42, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22,
+ 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6c,
+ 0x65, 0x66, 0x74, 0x5f, 0x74, 0x6f, 0x6f, 0x6c,
+ 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75,
+ 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x74,
+ 0x69, 0x70, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x22,
+ 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79,
+ 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x54, 0x6f,
+ 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x20, 0x66, 0x6f,
+ 0x72, 0x20, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65,
+ 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x28, 0x63,
+ 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x2d, 0x63,
+ 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69, 0x73, 0x65,
+ 0x29, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x22, 0x3e, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65,
+ 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67,
+ 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x28, 0x63,
+ 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x2d, 0x63,
+ 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69, 0x73, 0x65,
+ 0x29, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65,
+ 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73,
+ 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d,
+ 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22,
+ 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x6f, 0x6e,
+ 0x20, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20,
+ 0x70, 0x61, 0x67, 0x65, 0x20, 0x6c, 0x65, 0x66,
+ 0x74, 0x20, 0x28, 0x61, 0x6e, 0x74, 0x69, 0x2d,
+ 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69, 0x73,
+ 0x65, 0x29, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x22,
+ 0x3e, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20,
+ 0x4c, 0x65, 0x66, 0x74, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75,
+ 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72,
+ 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x63, 0x6f,
+ 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3e,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x72,
+ 0x6f, 0x74, 0x61, 0x74, 0x65, 0x2d, 0x6c, 0x65,
+ 0x66, 0x74, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69,
+ 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x6c, 0x69, 0x63, 0x6b,
+ 0x65, 0x64, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x72, 0x6f, 0x74,
+ 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x66, 0x74,
+ 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f,
+ 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x5f,
+ 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70,
+ 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22,
+ 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b,
+ 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x78, 0x70, 0x61,
+ 0x6e, 0x64, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x6f, 0x6d, 0x6f,
+ 0x67, 0x65, 0x6e, 0x65, 0x6f, 0x75, 0x73, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e,
+ 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x54, 0x6f, 0x6f, 0x6c, 0x42,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20, 0x69,
+ 0x64, 0x3d, 0x22, 0x72, 0x6f, 0x74, 0x61, 0x74,
+ 0x65, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f,
+ 0x74, 0x6f, 0x6f, 0x6c, 0x62, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74,
+ 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x5f, 0x74,
+ 0x65, 0x78, 0x74, 0x22, 0x20, 0x74, 0x72, 0x61,
+ 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73,
+ 0x3d, 0x22, 0x54, 0x6f, 0x6f, 0x6c, 0x74, 0x69,
+ 0x70, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x6f,
+ 0x74, 0x61, 0x74, 0x65, 0x20, 0x72, 0x69, 0x67,
+ 0x68, 0x74, 0x20, 0x28, 0x63, 0x6c, 0x6f, 0x63,
+ 0x6b, 0x77, 0x69, 0x73, 0x65, 0x29, 0x20, 0x62,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x3e, 0x52,
+ 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68,
+ 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74,
+ 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69,
+ 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x6c, 0x6f,
+ 0x63, 0x6b, 0x77, 0x69, 0x73, 0x65, 0x29, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22,
+ 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79,
+ 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x4c, 0x61,
+ 0x62, 0x65, 0x6c, 0x20, 0x6f, 0x6e, 0x20, 0x72,
+ 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x70, 0x61,
+ 0x67, 0x65, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74,
+ 0x20, 0x28, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x77,
+ 0x69, 0x73, 0x65, 0x29, 0x20, 0x69, 0x74, 0x65,
+ 0x6d, 0x22, 0x3e, 0x52, 0x6f, 0x74, 0x61, 0x74,
+ 0x65, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e,
+ 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d,
+ 0x65, 0x22, 0x3e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x2d, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65,
+ 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63,
+ 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x22, 0x20,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d,
+ 0x22, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x5f,
+ 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x62, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69,
+ 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22,
+ 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65, 0x64,
+ 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x68, 0x6f, 0x6d, 0x6f, 0x67, 0x65, 0x6e,
+ 0x65, 0x6f, 0x75, 0x73, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70,
+ 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c,
+ 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x54, 0x6f,
+ 0x6f, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, 0x72,
+ 0x6f, 0x70, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x62,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76,
+ 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63,
+ 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69,
+ 0x70, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x22, 0x20,
+ 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65,
+ 0x73, 0x22, 0x3e, 0x43, 0x72, 0x6f, 0x70, 0x20,
+ 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x6c, 0x65,
+ 0x63, 0x74, 0x65, 0x64, 0x20, 0x70, 0x61, 0x67,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x73, 0x5f, 0x69,
+ 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20,
+ 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65,
+ 0x73, 0x22, 0x3e, 0x43, 0x72, 0x6f, 0x70, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e,
+ 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d,
+ 0x65, 0x22, 0x3e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x2d, 0x63, 0x72, 0x6f, 0x70, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74,
+ 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, 0x22, 0x20,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d,
+ 0x22, 0x63, 0x72, 0x6f, 0x70, 0x5f, 0x74, 0x6f,
+ 0x6f, 0x6c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x5f, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64,
+ 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61,
+ 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f,
+ 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63,
+ 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x78, 0x70,
+ 0x61, 0x6e, 0x64, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x6f, 0x6d,
+ 0x6f, 0x67, 0x65, 0x6e, 0x65, 0x6f, 0x75, 0x73,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69,
+ 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63,
+ 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x78, 0x70,
+ 0x61, 0x6e, 0x64, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c,
+ 0x6c, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e,
+ 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68,
+ 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x2f, 0x3e, 0x3c,
+ 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x20, 0x74,
+ 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x69, 0x74,
+ 0x6c, 0x65, 0x62, 0x61, 0x72, 0x22, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42,
+ 0x61, 0x72, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22,
+ 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x61,
+ 0x72, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62,
+ 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66,
+ 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x65,
+ 0x78, 0x70, 0x61, 0x6e, 0x64, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x68,
+ 0x6f, 0x77, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65,
+ 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x20, 0x74,
+ 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73,
+ 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x3d, 0x22, 0x54, 0x69, 0x74, 0x6c,
+ 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x61,
+ 0x6e, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77,
+ 0x22, 0x3e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65,
+ 0x20, 0x53, 0x63, 0x61, 0x6e, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x69, 0x74, 0x6c,
+ 0x65, 0x62, 0x61, 0x72, 0x22, 0x2f, 0x3e, 0x3c,
+ 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x42, 0x6f, 0x78, 0x22, 0x20, 0x69, 0x64, 0x3d,
+ 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x62, 0x6f,
+ 0x78, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62,
+ 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x6f, 0x72, 0x69, 0x65, 0x6e,
+ 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3e,
+ 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74,
+ 0x61, 0x6c, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x61, 0x6c,
+ 0x69, 0x67, 0x6e, 0x22, 0x3e, 0x63, 0x65, 0x6e,
+ 0x74, 0x65, 0x72, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73,
+ 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64,
+ 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x74, 0x79,
+ 0x6c, 0x65, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x42, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22,
+ 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x62, 0x75, 0x74,
+ 0x74, 0x6f, 0x6e, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f,
+ 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x5f, 0x74, 0x65,
+ 0x78, 0x74, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e,
+ 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d,
+ 0x22, 0x54, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70,
+ 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x6f,
+ 0x70, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x22, 0x3e, 0x53, 0x74, 0x6f, 0x70, 0x20, 0x74,
+ 0x68, 0x65, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65,
+ 0x6e, 0x74, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22,
+ 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79,
+ 0x65, 0x73, 0x22, 0x3e, 0x53, 0x74, 0x6f, 0x70,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75,
+ 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63,
+ 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x22, 0x20,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d,
+ 0x22, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x73, 0x63,
+ 0x61, 0x6e, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65,
+ 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73, 0x77,
+ 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e,
+ 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x73, 0x74, 0x79,
+ 0x6c, 0x65, 0x3e, 0x3c, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x74, 0x65, 0x78, 0x74, 0x2d, 0x62, 0x75, 0x74,
+ 0x74, 0x6f, 0x6e, 0x22, 0x2f, 0x3e, 0x3c, 0x2f,
+ 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x2f,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c,
+ 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x73, 0x63, 0x61, 0x6e,
+ 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70,
+ 0x5f, 0x74, 0x65, 0x78, 0x74, 0x22, 0x20, 0x74,
+ 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73,
+ 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x3d, 0x22, 0x54, 0x6f, 0x6f, 0x6c,
+ 0x74, 0x69, 0x70, 0x20, 0x66, 0x6f, 0x72, 0x20,
+ 0x73, 0x63, 0x61, 0x6e, 0x20, 0x74, 0x6f, 0x6f,
+ 0x6c, 0x62, 0x61, 0x72, 0x20, 0x62, 0x75, 0x74,
+ 0x74, 0x6f, 0x6e, 0x22, 0x3e, 0x53, 0x63, 0x61,
+ 0x6e, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67,
+ 0x6c, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20,
+ 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x72,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c,
+ 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c,
+ 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22,
+ 0x79, 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x4c,
+ 0x61, 0x62, 0x65, 0x6c, 0x20, 0x6f, 0x6e, 0x20,
+ 0x73, 0x63, 0x61, 0x6e, 0x20, 0x74, 0x6f, 0x6f,
+ 0x6c, 0x62, 0x61, 0x72, 0x20, 0x69, 0x74, 0x65,
+ 0x6d, 0x22, 0x3e, 0x53, 0x63, 0x61, 0x6e, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e,
+ 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6c,
+ 0x69, 0x63, 0x6b, 0x65, 0x64, 0x22, 0x20, 0x68,
+ 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22,
+ 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x62, 0x75, 0x74,
+ 0x74, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x63,
+ 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20,
+ 0x73, 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d,
+ 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x73,
+ 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x62,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x2f, 0x3e,
+ 0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47,
+ 0x74, 0x6b, 0x4d, 0x65, 0x6e, 0x75, 0x42, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x62,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76,
+ 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70,
+ 0x6f, 0x70, 0x75, 0x70, 0x22, 0x3e, 0x73, 0x63,
+ 0x61, 0x6e, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x5f, 0x68, 0x62, 0x5f, 0x6d, 0x65, 0x6e,
+ 0x75, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x74, 0x79,
+ 0x6c, 0x65, 0x3e, 0x3c, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x74, 0x65, 0x78, 0x74, 0x2d, 0x62, 0x75, 0x74,
+ 0x74, 0x6f, 0x6e, 0x22, 0x2f, 0x3e, 0x3c, 0x2f,
+ 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x2f,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c,
+ 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x79,
+ 0x70, 0x65, 0x22, 0x3e, 0x73, 0x74, 0x61, 0x72,
+ 0x74, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61,
+ 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x42,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20, 0x69,
+ 0x64, 0x3d, 0x22, 0x73, 0x61, 0x76, 0x65, 0x5f,
+ 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76,
+ 0x65, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66,
+ 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f,
+ 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x5f, 0x74, 0x65,
+ 0x78, 0x74, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e,
+ 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d,
+ 0x22, 0x54, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70,
+ 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x61, 0x76,
+ 0x65, 0x20, 0x74, 0x6f, 0x6f, 0x6c, 0x62, 0x61,
+ 0x72, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x22, 0x3e, 0x53, 0x61, 0x76, 0x65, 0x20, 0x64,
+ 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x20,
+ 0x74, 0x6f, 0x20, 0x61, 0x20, 0x66, 0x69, 0x6c,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f,
+ 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61,
+ 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x22,
+ 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72,
+ 0x3d, 0x22, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x66,
+ 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b,
+ 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73,
+ 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22,
+ 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x73, 0x74,
+ 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2d, 0x62,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x2f, 0x3e,
+ 0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x73, 0x61, 0x76, 0x65,
+ 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x7a,
+ 0x65, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69,
+ 0x63, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+ 0x22, 0x3e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+ 0x6e, 0x74, 0x2d, 0x73, 0x61, 0x76, 0x65, 0x2d,
+ 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x69, 0x63,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61,
+ 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x0a, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69,
+ 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x42, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22,
+ 0x6e, 0x65, 0x77, 0x5f, 0x62, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74,
+ 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x5f, 0x74,
+ 0x65, 0x78, 0x74, 0x22, 0x20, 0x74, 0x72, 0x61,
+ 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73,
+ 0x3d, 0x22, 0x54, 0x6f, 0x6f, 0x6c, 0x74, 0x69,
+ 0x70, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x65,
+ 0x77, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+ 0x6e, 0x74, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x22, 0x3e, 0x53, 0x74, 0x61, 0x72, 0x74,
+ 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x64,
+ 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e,
+ 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6c,
+ 0x69, 0x63, 0x6b, 0x65, 0x64, 0x22, 0x20, 0x68,
+ 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22,
+ 0x6e, 0x65, 0x77, 0x5f, 0x62, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b,
+ 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73,
+ 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22,
+ 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x73, 0x74,
+ 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2d, 0x62,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x2f, 0x3e,
+ 0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x6e, 0x65, 0x77, 0x5f,
+ 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76,
+ 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69,
+ 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x7a, 0x65,
+ 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x63,
+ 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22,
+ 0x3e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
+ 0x74, 0x2d, 0x6e, 0x65, 0x77, 0x2d, 0x73, 0x79,
+ 0x6d, 0x62, 0x6f, 0x6c, 0x69, 0x63, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b,
+ 0x69, 0x6e, 0x67, 0x3e, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c,
+ 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47,
+ 0x74, 0x6b, 0x42, 0x6f, 0x78, 0x22, 0x20, 0x69,
+ 0x64, 0x3d, 0x22, 0x72, 0x6f, 0x74, 0x61, 0x74,
+ 0x65, 0x5f, 0x62, 0x6f, 0x78, 0x22, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76,
+ 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6f,
+ 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x22, 0x3e, 0x68, 0x6f, 0x72, 0x69,
+ 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x22,
+ 0x3e, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x73, 0x74, 0x79, 0x6c, 0x65,
+ 0x3e, 0x3c, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x69,
+ 0x6e, 0x6b, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x3c,
+ 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x72, 0x6f, 0x74, 0x61,
+ 0x74, 0x65, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74,
+ 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63,
+ 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x6f, 0x6c,
+ 0x74, 0x69, 0x70, 0x5f, 0x74, 0x65, 0x78, 0x74,
+ 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c,
+ 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22,
+ 0x79, 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x54,
+ 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x20, 0x66,
+ 0x6f, 0x72, 0x20, 0x72, 0x6f, 0x74, 0x61, 0x74,
+ 0x65, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20,
+ 0x28, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69,
+ 0x73, 0x65, 0x29, 0x20, 0x62, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x22, 0x3e, 0x52, 0x6f, 0x74, 0x61,
+ 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70,
+ 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74,
+ 0x68, 0x65, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74,
+ 0x20, 0x28, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x77,
+ 0x69, 0x73, 0x65, 0x29, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75,
+ 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72,
+ 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69,
+ 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x6c, 0x69, 0x63, 0x6b,
+ 0x65, 0x64, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x72, 0x6f, 0x74,
+ 0x61, 0x74, 0x65, 0x5f, 0x72, 0x69, 0x67, 0x68,
+ 0x74, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64,
+ 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61,
+ 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f,
+ 0x22, 0x2f, 0x3e, 0x3c, 0x73, 0x74, 0x79, 0x6c,
+ 0x65, 0x3e, 0x3c, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69,
+ 0x6d, 0x61, 0x67, 0x65, 0x2d, 0x62, 0x75, 0x74,
+ 0x74, 0x6f, 0x6e, 0x22, 0x2f, 0x3e, 0x3c, 0x2f,
+ 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x72, 0x69,
+ 0x67, 0x68, 0x74, 0x2d, 0x62, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x63, 0x6f, 0x6e,
+ 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x3e, 0x31,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x69, 0x63, 0x6f, 0x6e, 0x5f,
+ 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x72, 0x6f, 0x74,
+ 0x61, 0x74, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68,
+ 0x74, 0x2d, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
+ 0x69, 0x63, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c,
+ 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x79, 0x70,
+ 0x65, 0x22, 0x3e, 0x65, 0x6e, 0x64, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69,
+ 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x42, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22,
+ 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6c,
+ 0x65, 0x66, 0x74, 0x5f, 0x62, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74,
+ 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x5f, 0x74,
+ 0x65, 0x78, 0x74, 0x22, 0x20, 0x74, 0x72, 0x61,
+ 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73,
+ 0x3d, 0x22, 0x54, 0x6f, 0x6f, 0x6c, 0x74, 0x69,
+ 0x70, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x6f,
+ 0x74, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x66,
+ 0x74, 0x20, 0x28, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x65, 0x72, 0x2d, 0x63, 0x6c, 0x6f, 0x63, 0x6b,
+ 0x77, 0x69, 0x73, 0x65, 0x29, 0x20, 0x62, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x3e, 0x52, 0x6f,
+ 0x74, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f,
+ 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66,
+ 0x74, 0x20, 0x28, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x65, 0x72, 0x2d, 0x63, 0x6c, 0x6f, 0x63, 0x6b,
+ 0x77, 0x69, 0x73, 0x65, 0x29, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65,
+ 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73,
+ 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6c, 0x69, 0x63,
+ 0x6b, 0x65, 0x64, 0x22, 0x20, 0x68, 0x61, 0x6e,
+ 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x72, 0x6f,
+ 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x66,
+ 0x74, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64,
+ 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61,
+ 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f,
+ 0x22, 0x2f, 0x3e, 0x3c, 0x73, 0x74, 0x79, 0x6c,
+ 0x65, 0x3e, 0x3c, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69,
+ 0x6d, 0x61, 0x67, 0x65, 0x2d, 0x62, 0x75, 0x74,
+ 0x74, 0x6f, 0x6e, 0x22, 0x2f, 0x3e, 0x3c, 0x2f,
+ 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x6c, 0x65,
+ 0x66, 0x74, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62,
+ 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x69, 0x63, 0x6f, 0x6e, 0x5f,
+ 0x73, 0x69, 0x7a, 0x65, 0x22, 0x3e, 0x31, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x6e,
+ 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x2d, 0x72, 0x6f, 0x74, 0x61,
+ 0x74, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x2d,
+ 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x69, 0x63,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61,
+ 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x61,
+ 0x63, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22,
+ 0x3e, 0x65, 0x6e, 0x64, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69,
+ 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x70, 0x61, 0x63, 0x6b, 0x5f,
+ 0x74, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x65, 0x6e,
+ 0x64, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61,
+ 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x54,
+ 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x42, 0x75, 0x74,
+ 0x74, 0x6f, 0x6e, 0x22, 0x20, 0x69, 0x64, 0x3d,
+ 0x22, 0x63, 0x72, 0x6f, 0x70, 0x5f, 0x62, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69,
+ 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61,
+ 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70,
+ 0x5f, 0x74, 0x65, 0x78, 0x74, 0x22, 0x20, 0x74,
+ 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73,
+ 0x22, 0x3e, 0x43, 0x72, 0x6f, 0x70, 0x20, 0x74,
+ 0x68, 0x65, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63,
+ 0x74, 0x65, 0x64, 0x20, 0x70, 0x61, 0x67, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75,
+ 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74,
+ 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, 0x22, 0x20,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d,
+ 0x22, 0x63, 0x72, 0x6f, 0x70, 0x5f, 0x62, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x67,
+ 0x67, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22,
+ 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65, 0x64,
+ 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c,
+ 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65,
+ 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22,
+ 0x2f, 0x3e, 0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c,
+ 0x65, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x63, 0x72, 0x6f, 0x70,
+ 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x69,
+ 0x7a, 0x65, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d,
+ 0x65, 0x22, 0x3e, 0x65, 0x64, 0x69, 0x74, 0x2d,
+ 0x63, 0x75, 0x74, 0x2d, 0x73, 0x79, 0x6d, 0x62,
+ 0x6f, 0x6c, 0x69, 0x63, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e,
+ 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x74,
+ 0x79, 0x70, 0x65, 0x22, 0x3e, 0x65, 0x6e, 0x64,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63,
+ 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70,
+ 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x0a,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f,
+ 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61,
+ 0x74, 0x65, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4c, 0x69, 0x73,
+ 0x74, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74,
+ 0x5f, 0x64, 0x70, 0x69, 0x5f, 0x6d, 0x6f, 0x64,
+ 0x65, 0x6c, 0x22, 0x3e, 0x3c, 0x63, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x6e, 0x73, 0x3e, 0x3c, 0x21, 0x2d,
+ 0x2d, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e,
+ 0x2d, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x64, 0x70,
+ 0x69, 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x63, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x6e, 0x20, 0x74, 0x79, 0x70,
+ 0x65, 0x3d, 0x22, 0x67, 0x69, 0x6e, 0x74, 0x22,
+ 0x2f, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x63,
+ 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x2d, 0x6e, 0x61,
+ 0x6d, 0x65, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c,
+ 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x63, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65,
+ 0x3d, 0x22, 0x67, 0x63, 0x68, 0x61, 0x72, 0x61,
+ 0x72, 0x72, 0x61, 0x79, 0x22, 0x2f, 0x3e, 0x3c,
+ 0x2f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x44, 0x69, 0x61, 0x6c,
+ 0x6f, 0x67, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22,
+ 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
+ 0x63, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x61, 0x6c,
+ 0x6f, 0x67, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x62,
+ 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x77, 0x69,
+ 0x64, 0x74, 0x68, 0x22, 0x3e, 0x37, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x20,
+ 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65,
+ 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x54, 0x69, 0x74,
+ 0x6c, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72,
+ 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
+ 0x73, 0x20, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67,
+ 0x22, 0x3e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72,
+ 0x65, 0x6e, 0x63, 0x65, 0x73, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x72, 0x65, 0x73, 0x69, 0x7a, 0x61, 0x62, 0x6c,
+ 0x65, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x69, 0x63, 0x6f, 0x6e, 0x5f,
+ 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x73, 0x63,
+ 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x74, 0x79, 0x70, 0x65, 0x5f, 0x68, 0x69, 0x6e,
+ 0x74, 0x22, 0x3e, 0x6e, 0x6f, 0x72, 0x6d, 0x61,
+ 0x6c, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67,
+ 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65,
+ 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x20,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d,
+ 0x22, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
+ 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x61,
+ 0x6c, 0x6f, 0x67, 0x5f, 0x64, 0x65, 0x6c, 0x65,
+ 0x74, 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61,
+ 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f,
+ 0x22, 0x2f, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e,
+ 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c,
+ 0x65, 0x72, 0x3d, 0x22, 0x70, 0x72, 0x65, 0x66,
+ 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x5f,
+ 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x5f, 0x72,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f,
+ 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70,
+ 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22,
+ 0x2f, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61,
+ 0x6c, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3d,
+ 0x22, 0x76, 0x62, 0x6f, 0x78, 0x22, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x42, 0x6f, 0x78, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67,
+ 0x2d, 0x76, 0x62, 0x6f, 0x78, 0x32, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75,
+ 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x6f, 0x72, 0x69, 0x65, 0x6e,
+ 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3e,
+ 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x73, 0x70, 0x61, 0x63, 0x69,
+ 0x6e, 0x67, 0x22, 0x3e, 0x32, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x20, 0x69,
+ 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2d,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3d, 0x22, 0x61,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x72,
+ 0x65, 0x61, 0x22, 0x3e, 0x3c, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x42, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x42, 0x6f, 0x78, 0x22,
+ 0x20, 0x69, 0x64, 0x3d, 0x22, 0x64, 0x69, 0x61,
+ 0x6c, 0x6f, 0x67, 0x2d, 0x61, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x32,
+ 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f,
+ 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x79,
+ 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x74, 0x79, 0x6c,
+ 0x65, 0x22, 0x3e, 0x65, 0x6e, 0x64, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47,
+ 0x74, 0x6b, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70, 0x72,
+ 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
+ 0x73, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f,
+ 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x67,
+ 0x74, 0x6b, 0x2d, 0x63, 0x6c, 0x6f, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62,
+ 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66,
+ 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x63,
+ 0x65, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x64, 0x65,
+ 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73,
+ 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e,
+ 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x6c, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
+ 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f,
+ 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e,
+ 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x6c, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70,
+ 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65,
+ 0x22, 0x3e, 0x65, 0x6e, 0x64, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
+ 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f,
+ 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x47, 0x72, 0x69, 0x64, 0x22, 0x20, 0x69,
+ 0x64, 0x3d, 0x22, 0x67, 0x72, 0x69, 0x64, 0x33,
+ 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f,
+ 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x62, 0x6f, 0x72,
+ 0x64, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74,
+ 0x68, 0x22, 0x3e, 0x35, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72,
+ 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x69,
+ 0x6e, 0x67, 0x22, 0x3e, 0x36, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73,
+ 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x22, 0x3e,
+ 0x36, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4c, 0x61, 0x62,
+ 0x65, 0x6c, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22,
+ 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6c,
+ 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69,
+ 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61,
+ 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x78, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x22,
+ 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62,
+ 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e,
+ 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d,
+ 0x22, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x62,
+ 0x65, 0x73, 0x69, 0x64, 0x65, 0x20, 0x73, 0x63,
+ 0x61, 0x6e, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x20,
+ 0x62, 0x6f, 0x78, 0x22, 0x3e, 0x53, 0x63, 0x61,
+ 0x6e, 0x20, 0x53, 0x5f, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x3a, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65,
+ 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69,
+ 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x6d, 0x6e, 0x65, 0x6d, 0x6f,
+ 0x6e, 0x69, 0x63, 0x5f, 0x77, 0x69, 0x64, 0x67,
+ 0x65, 0x74, 0x22, 0x3e, 0x64, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x62, 0x6f,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63,
+ 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66,
+ 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68,
+ 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f,
+ 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68,
+ 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69,
+ 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22,
+ 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70,
+ 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c,
+ 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x42, 0x6f, 0x78,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x64, 0x65,
+ 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6d,
+ 0x62, 0x6f, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68,
+ 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d,
+ 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x3e, 0x64, 0x65,
+ 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64,
+ 0x65, 0x6c, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69,
+ 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x68, 0x61, 0x6e, 0x67,
+ 0x65, 0x64, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x64, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x62,
+ 0x6f, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
+ 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73, 0x77,
+ 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e,
+ 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61,
+ 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65,
+ 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63,
+ 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74,
+ 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63,
+ 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77,
+ 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
+ 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f,
+ 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74,
+ 0x5f, 0x64, 0x70, 0x69, 0x5f, 0x6c, 0x61, 0x62,
+ 0x65, 0x6c, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x78,
+ 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x22, 0x3e, 0x30,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c,
+ 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c,
+ 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22,
+ 0x79, 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x4c,
+ 0x61, 0x62, 0x65, 0x6c, 0x20, 0x62, 0x65, 0x73,
+ 0x69, 0x64, 0x65, 0x20, 0x73, 0x63, 0x61, 0x6e,
+ 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20,
+ 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x20, 0x62, 0x6f,
+ 0x78, 0x22, 0x3e, 0x5f, 0x54, 0x65, 0x78, 0x74,
+ 0x20, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74,
+ 0x69, 0x6f, 0x6e, 0x3a, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75,
+ 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72,
+ 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x6e, 0x65,
+ 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x5f, 0x77, 0x69,
+ 0x64, 0x67, 0x65, 0x74, 0x22, 0x3e, 0x74, 0x65,
+ 0x78, 0x74, 0x5f, 0x64, 0x70, 0x69, 0x5f, 0x63,
+ 0x6f, 0x6d, 0x62, 0x6f, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74,
+ 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74,
+ 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22,
+ 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69,
+ 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69,
+ 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x4c, 0x61, 0x62, 0x65,
+ 0x6c, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70,
+ 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x64, 0x70, 0x69,
+ 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75,
+ 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x78, 0x61, 0x6c, 0x69, 0x67,
+ 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c,
+ 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72,
+ 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22,
+ 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
+ 0x73, 0x3d, 0x22, 0x4c, 0x61, 0x62, 0x65, 0x6c,
+ 0x20, 0x62, 0x65, 0x73, 0x69, 0x64, 0x65, 0x20,
+ 0x73, 0x63, 0x61, 0x6e, 0x20, 0x73, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x62,
+ 0x6f, 0x20, 0x62, 0x6f, 0x78, 0x22, 0x3e, 0x5f,
+ 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x20, 0x52, 0x65,
+ 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e,
+ 0x3a, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f,
+ 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x6d, 0x6e, 0x65, 0x6d, 0x6f, 0x6e,
+ 0x69, 0x63, 0x5f, 0x77, 0x69, 0x64, 0x67, 0x65,
+ 0x74, 0x22, 0x3e, 0x70, 0x68, 0x6f, 0x74, 0x6f,
+ 0x5f, 0x64, 0x70, 0x69, 0x5f, 0x63, 0x6f, 0x6d,
+ 0x62, 0x6f, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70,
+ 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c,
+ 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61,
+ 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61,
+ 0x63, 0x68, 0x22, 0x3e, 0x32, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, 0x68,
+ 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47,
+ 0x74, 0x6b, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x42,
+ 0x6f, 0x78, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22,
+ 0x74, 0x65, 0x78, 0x74, 0x5f, 0x64, 0x70, 0x69,
+ 0x5f, 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75,
+ 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x68, 0x65, 0x78, 0x70, 0x61,
+ 0x6e, 0x64, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
+ 0x22, 0x3e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x64,
+ 0x70, 0x69, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63,
+ 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66,
+ 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68,
+ 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f,
+ 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68,
+ 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69,
+ 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22,
+ 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70,
+ 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c,
+ 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x42, 0x6f, 0x78,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70, 0x68,
+ 0x6f, 0x74, 0x6f, 0x5f, 0x64, 0x70, 0x69, 0x5f,
+ 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x22, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76,
+ 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63,
+ 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x68, 0x65, 0x78, 0x70, 0x61, 0x6e,
+ 0x64, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x22,
+ 0x3e, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x64,
+ 0x70, 0x69, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63,
+ 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66,
+ 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68,
+ 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f,
+ 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68,
+ 0x22, 0x3e, 0x32, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69,
+ 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22,
+ 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70,
+ 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c,
+ 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x69,
+ 0x64, 0x3d, 0x22, 0x70, 0x61, 0x67, 0x65, 0x5f,
+ 0x73, 0x69, 0x64, 0x65, 0x5f, 0x6c, 0x61, 0x62,
+ 0x65, 0x6c, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x78,
+ 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x22, 0x3e, 0x30,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c,
+ 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c,
+ 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22,
+ 0x79, 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x4c,
+ 0x61, 0x62, 0x65, 0x6c, 0x20, 0x62, 0x65, 0x73,
+ 0x69, 0x64, 0x65, 0x20, 0x73, 0x63, 0x61, 0x6e,
+ 0x20, 0x73, 0x69, 0x64, 0x65, 0x20, 0x63, 0x6f,
+ 0x6d, 0x62, 0x6f, 0x20, 0x62, 0x6f, 0x78, 0x22,
+ 0x3e, 0x53, 0x63, 0x61, 0x6e, 0x20, 0x53, 0x69,
+ 0x64, 0x65, 0x3a, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73,
+ 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c,
+ 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x6e, 0x65, 0x6d,
+ 0x6f, 0x6e, 0x69, 0x63, 0x5f, 0x77, 0x69, 0x64,
+ 0x67, 0x65, 0x74, 0x22, 0x3e, 0x70, 0x68, 0x6f,
+ 0x74, 0x6f, 0x5f, 0x64, 0x70, 0x69, 0x5f, 0x63,
+ 0x6f, 0x6d, 0x62, 0x6f, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74,
+ 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74,
+ 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x33, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22,
+ 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69,
+ 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69,
+ 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x43, 0x6f, 0x6d, 0x62,
+ 0x6f, 0x42, 0x6f, 0x78, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73,
+ 0x69, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x62,
+ 0x6f, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62,
+ 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66,
+ 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65,
+ 0x78, 0x70, 0x61, 0x6e, 0x64, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x6f,
+ 0x64, 0x65, 0x6c, 0x22, 0x3e, 0x70, 0x61, 0x67,
+ 0x65, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x6d,
+ 0x6f, 0x64, 0x65, 0x6c, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74,
+ 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74,
+ 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x33, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22,
+ 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69,
+ 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69,
+ 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x4c, 0x61, 0x62, 0x65,
+ 0x6c, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70,
+ 0x61, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a,
+ 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63,
+ 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x78, 0x61, 0x6c, 0x69,
+ 0x67, 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74,
+ 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73,
+ 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x3d, 0x22, 0x4c, 0x61, 0x62, 0x65,
+ 0x6c, 0x20, 0x62, 0x65, 0x73, 0x69, 0x64, 0x65,
+ 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x73, 0x69,
+ 0x7a, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x6f,
+ 0x20, 0x62, 0x6f, 0x78, 0x22, 0x3e, 0x50, 0x61,
+ 0x67, 0x65, 0x20, 0x53, 0x69, 0x7a, 0x65, 0x3a,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75,
+ 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x6d, 0x6e, 0x65, 0x6d, 0x6f, 0x6e, 0x69,
+ 0x63, 0x5f, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74,
+ 0x22, 0x3e, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x5f,
+ 0x64, 0x70, 0x69, 0x5f, 0x63, 0x6f, 0x6d, 0x62,
+ 0x6f, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61,
+ 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65,
+ 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63,
+ 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74,
+ 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63,
+ 0x68, 0x22, 0x3e, 0x34, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77,
+ 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
+ 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f,
+ 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x42, 0x6f,
+ 0x78, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70,
+ 0x61, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a,
+ 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x22,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63,
+ 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x78, 0x70,
+ 0x61, 0x6e, 0x64, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x6f, 0x64, 0x65,
+ 0x6c, 0x22, 0x3e, 0x70, 0x61, 0x70, 0x65, 0x72,
+ 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6d, 0x6f,
+ 0x64, 0x65, 0x6c, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c,
+ 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74,
+ 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74,
+ 0x61, 0x63, 0x68, 0x22, 0x3e, 0x34, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e,
+ 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67,
+ 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e,
+ 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x4c, 0x61, 0x62, 0x65, 0x6c,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x62, 0x72,
+ 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73,
+ 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75,
+ 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x78, 0x61, 0x6c, 0x69, 0x67,
+ 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c,
+ 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72,
+ 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22,
+ 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
+ 0x73, 0x3d, 0x22, 0x4c, 0x61, 0x62, 0x65, 0x6c,
+ 0x20, 0x62, 0x65, 0x73, 0x69, 0x64, 0x65, 0x20,
+ 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65,
+ 0x73, 0x73, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65,
+ 0x22, 0x3e, 0x42, 0x72, 0x69, 0x67, 0x68, 0x74,
+ 0x6e, 0x65, 0x73, 0x73, 0x3a, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65,
+ 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c,
+ 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74,
+ 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74,
+ 0x61, 0x63, 0x68, 0x22, 0x3e, 0x35, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e,
+ 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67,
+ 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e,
+ 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x53, 0x63, 0x61, 0x6c, 0x65,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x62, 0x72,
+ 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73,
+ 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75,
+ 0x73, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x68, 0x65, 0x78, 0x70, 0x61, 0x6e,
+ 0x64, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74,
+ 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x62, 0x72,
+ 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73,
+ 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d,
+ 0x65, 0x6e, 0x74, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64, 0x72,
+ 0x61, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b,
+ 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74,
+ 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22,
+ 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70,
+ 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22,
+ 0x3e, 0x35, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64,
+ 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e,
+ 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61,
+ 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4c,
+ 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61,
+ 0x73, 0x74, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c,
+ 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f,
+ 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x78, 0x61, 0x6c,
+ 0x69, 0x67, 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20,
+ 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65,
+ 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x4c, 0x61, 0x62,
+ 0x65, 0x6c, 0x20, 0x62, 0x65, 0x73, 0x69, 0x64,
+ 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61,
+ 0x73, 0x74, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65,
+ 0x22, 0x3e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61,
+ 0x73, 0x74, 0x3a, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73,
+ 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c,
+ 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x6e, 0x65, 0x6d,
+ 0x6f, 0x6e, 0x69, 0x63, 0x5f, 0x77, 0x69, 0x64,
+ 0x67, 0x65, 0x74, 0x22, 0x3e, 0x63, 0x6f, 0x6e,
+ 0x74, 0x72, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x63,
+ 0x61, 0x6c, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c,
+ 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74,
+ 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74,
+ 0x61, 0x63, 0x68, 0x22, 0x3e, 0x36, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e,
+ 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67,
+ 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e,
+ 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x53, 0x63, 0x61, 0x6c, 0x65,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, 0x6f,
+ 0x6e, 0x74, 0x72, 0x61, 0x73, 0x74, 0x5f, 0x73,
+ 0x63, 0x61, 0x6c, 0x65, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69,
+ 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61,
+ 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x68, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65,
+ 0x6e, 0x74, 0x22, 0x3e, 0x63, 0x6f, 0x6e, 0x74,
+ 0x72, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x6a,
+ 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c,
+ 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74,
+ 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74,
+ 0x61, 0x63, 0x68, 0x22, 0x3e, 0x36, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e,
+ 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67,
+ 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e,
+ 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x4c, 0x61, 0x62, 0x65, 0x6c,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x71, 0x75,
+ 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x78, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x22, 0x3e,
+ 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65,
+ 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73,
+ 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d,
+ 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22,
+ 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x62, 0x65,
+ 0x73, 0x69, 0x64, 0x65, 0x20, 0x71, 0x75, 0x61,
+ 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x61,
+ 0x6c, 0x65, 0x22, 0x3e, 0x51, 0x75, 0x61, 0x6c,
+ 0x69, 0x74, 0x79, 0x3a, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75,
+ 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72,
+ 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x6e, 0x65,
+ 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x5f, 0x77, 0x69,
+ 0x64, 0x67, 0x65, 0x74, 0x22, 0x3e, 0x71, 0x75,
+ 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x63,
+ 0x61, 0x6c, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c,
+ 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74,
+ 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74,
+ 0x61, 0x63, 0x68, 0x22, 0x3e, 0x37, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e,
+ 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67,
+ 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e,
+ 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x53, 0x63, 0x61, 0x6c, 0x65,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x71, 0x75,
+ 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x63,
+ 0x61, 0x6c, 0x65, 0x22, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73,
+ 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e,
+ 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68,
+ 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61,
+ 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e,
+ 0x74, 0x22, 0x3e, 0x71, 0x75, 0x61, 0x6c, 0x69,
+ 0x74, 0x79, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73,
+ 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x64, 0x72, 0x61, 0x77, 0x5f, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61,
+ 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65,
+ 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63,
+ 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74,
+ 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63,
+ 0x68, 0x22, 0x3e, 0x37, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77,
+ 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
+ 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f,
+ 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e,
+ 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x6c, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22,
+ 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70,
+ 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c,
+ 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2d,
+ 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x73, 0x3e,
+ 0x3c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2d,
+ 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x20, 0x72,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x3d,
+ 0x22, 0x31, 0x22, 0x3e, 0x70, 0x72, 0x65, 0x66,
+ 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x5f,
+ 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x62, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x3c, 0x2f, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x77, 0x69, 0x64,
+ 0x67, 0x65, 0x74, 0x3e, 0x3c, 0x2f, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x77, 0x69, 0x64,
+ 0x67, 0x65, 0x74, 0x73, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x4d, 0x65, 0x6e, 0x75, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x62,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x6d, 0x65,
+ 0x6e, 0x75, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b,
+ 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x73, 0x63,
+ 0x61, 0x6e, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c,
+ 0x65, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65,
+ 0x6d, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62,
+ 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66,
+ 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61,
+ 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61,
+ 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73,
+ 0x3d, 0x22, 0x54, 0x6f, 0x6f, 0x6c, 0x62, 0x61,
+ 0x72, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x6d,
+ 0x65, 0x6e, 0x75, 0x20, 0x69, 0x74, 0x65, 0x6d,
+ 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e,
+ 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c,
+ 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x66,
+ 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20,
+ 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x22,
+ 0x3e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20,
+ 0x5f, 0x50, 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65,
+ 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73,
+ 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69,
+ 0x76, 0x61, 0x74, 0x65, 0x22, 0x20, 0x68, 0x61,
+ 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x73,
+ 0x63, 0x61, 0x6e, 0x5f, 0x62, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b,
+ 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73,
+ 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22,
+ 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4d,
+ 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22,
+ 0x20, 0x69, 0x64, 0x3d, 0x22, 0x73, 0x63, 0x61,
+ 0x6e, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x62, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x6e,
+ 0x75, 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76,
+ 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63,
+ 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22,
+ 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79,
+ 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22, 0x54, 0x6f,
+ 0x6f, 0x6c, 0x62, 0x61, 0x72, 0x20, 0x73, 0x63,
+ 0x61, 0x6e, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x20,
+ 0x69, 0x74, 0x65, 0x6d, 0x20, 0x74, 0x6f, 0x20,
+ 0x73, 0x63, 0x61, 0x6e, 0x20, 0x61, 0x6c, 0x6c,
+ 0x20, 0x70, 0x61, 0x67, 0x65, 0x73, 0x20, 0x66,
+ 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x64, 0x6f,
+ 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66,
+ 0x65, 0x65, 0x64, 0x65, 0x72, 0x22, 0x3e, 0x41,
+ 0x6c, 0x6c, 0x20, 0x50, 0x61, 0x67, 0x65, 0x73,
+ 0x20, 0x46, 0x72, 0x6f, 0x6d, 0x20, 0x5f, 0x46,
+ 0x65, 0x65, 0x64, 0x65, 0x72, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65,
+ 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73,
+ 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69,
+ 0x76, 0x61, 0x74, 0x65, 0x22, 0x20, 0x68, 0x61,
+ 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x63,
+ 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75,
+ 0x73, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x62,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x63, 0x6c,
+ 0x69, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x62,
+ 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65,
+ 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47,
+ 0x74, 0x6b, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61,
+ 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x6e, 0x75, 0x49,
+ 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d,
+ 0x22, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65,
+ 0x6d, 0x31, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69,
+ 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f,
+ 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46,
+ 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x4d, 0x65,
+ 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74,
+ 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f,
+ 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d,
+ 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f,
+ 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62,
+ 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e,
+ 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x3e, 0x54,
+ 0x65, 0x78, 0x74, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x73,
+ 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c,
+ 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x64, 0x72, 0x61, 0x77,
+ 0x5f, 0x61, 0x73, 0x5f, 0x72, 0x61, 0x64, 0x69,
+ 0x6f, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61,
+ 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, 0x22,
+ 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72,
+ 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6d,
+ 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x5f,
+ 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, 0x5f,
+ 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70,
+ 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22,
+ 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x52, 0x61, 0x64, 0x69,
+ 0x6f, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65,
+ 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70,
+ 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x74,
+ 0x74, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69,
+ 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61,
+ 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20,
+ 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65,
+ 0x73, 0x22, 0x3e, 0x50, 0x68, 0x6f, 0x74, 0x6f,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75,
+ 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x64, 0x72, 0x61, 0x77, 0x5f, 0x61, 0x73, 0x5f,
+ 0x72, 0x61, 0x64, 0x69, 0x6f, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x67, 0x72,
+ 0x6f, 0x75, 0x70, 0x22, 0x3e, 0x74, 0x65, 0x78,
+ 0x74, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65,
+ 0x6d, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67,
+ 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65,
+ 0x64, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c,
+ 0x65, 0x72, 0x3d, 0x22, 0x70, 0x68, 0x6f, 0x74,
+ 0x6f, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74,
+ 0x65, 0x6d, 0x5f, 0x74, 0x6f, 0x67, 0x67, 0x6c,
+ 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73,
+ 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22,
+ 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f,
+ 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x4d, 0x65, 0x6e, 0x75, 0x22, 0x20, 0x69,
+ 0x64, 0x3d, 0x22, 0x73, 0x63, 0x61, 0x6e, 0x5f,
+ 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x68,
+ 0x62, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x22, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75,
+ 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x4d, 0x65, 0x6e, 0x75,
+ 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69, 0x64,
+ 0x3d, 0x22, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x73,
+ 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x62, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x68, 0x62, 0x5f,
+ 0x6d, 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d,
+ 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c,
+ 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f,
+ 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c,
+ 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62,
+ 0x65, 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e,
+ 0x73, 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d,
+ 0x22, 0x54, 0x6f, 0x6f, 0x6c, 0x62, 0x61, 0x72,
+ 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x6d, 0x65,
+ 0x6e, 0x75, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x20,
+ 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20,
+ 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65,
+ 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x66, 0x72,
+ 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73,
+ 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x3e,
+ 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x5f,
+ 0x50, 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75,
+ 0x73, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72,
+ 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x54, 0x72,
+ 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69,
+ 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76,
+ 0x61, 0x74, 0x65, 0x22, 0x20, 0x68, 0x61, 0x6e,
+ 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x73, 0x63,
+ 0x61, 0x6e, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65,
+ 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x73, 0x77,
+ 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e,
+ 0x6f, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63,
+ 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68,
+ 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4d, 0x65,
+ 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x73, 0x63, 0x61, 0x6e,
+ 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x62, 0x75, 0x74,
+ 0x74, 0x6f, 0x6e, 0x5f, 0x68, 0x62, 0x5f, 0x6d,
+ 0x65, 0x6e, 0x75, 0x69, 0x74, 0x65, 0x6d, 0x22,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63,
+ 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73,
+ 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65,
+ 0x6c, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73,
+ 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d,
+ 0x22, 0x79, 0x65, 0x73, 0x22, 0x20, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3d, 0x22,
+ 0x54, 0x6f, 0x6f, 0x6c, 0x62, 0x61, 0x72, 0x20,
+ 0x73, 0x63, 0x61, 0x6e, 0x20, 0x6d, 0x65, 0x6e,
+ 0x75, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x20, 0x74,
+ 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x61,
+ 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x67, 0x65, 0x73,
+ 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20,
+ 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+ 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x72, 0x22,
+ 0x3e, 0x41, 0x6c, 0x6c, 0x20, 0x50, 0x61, 0x67,
+ 0x65, 0x73, 0x20, 0x46, 0x72, 0x6f, 0x6d, 0x20,
+ 0x5f, 0x46, 0x65, 0x65, 0x64, 0x65, 0x72, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75, 0x6e,
+ 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x63,
+ 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x20,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d,
+ 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75,
+ 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x63, 0x61, 0x6e,
+ 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f,
+ 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x5f,
+ 0x63, 0x62, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70,
+ 0x70, 0x65, 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22,
+ 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69,
+ 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d,
+ 0x22, 0x47, 0x74, 0x6b, 0x53, 0x65, 0x70, 0x61,
+ 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x6e,
+ 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20, 0x69,
+ 0x64, 0x3d, 0x22, 0x6d, 0x65, 0x6e, 0x75, 0x69,
+ 0x74, 0x65, 0x6d, 0x33, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69,
+ 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61,
+ 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22,
+ 0x47, 0x74, 0x6b, 0x52, 0x61, 0x64, 0x69, 0x6f,
+ 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d,
+ 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x74, 0x65,
+ 0x78, 0x74, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x5f, 0x68, 0x62, 0x5f, 0x6d, 0x65, 0x6e,
+ 0x75, 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76,
+ 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63,
+ 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73,
+ 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c,
+ 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22,
+ 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79,
+ 0x65, 0x73, 0x22, 0x3e, 0x54, 0x65, 0x78, 0x74,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75,
+ 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x61, 0x73,
+ 0x5f, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x22, 0x3e,
+ 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x67,
+ 0x67, 0x6c, 0x65, 0x64, 0x22, 0x20, 0x68, 0x61,
+ 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x74,
+ 0x65, 0x78, 0x74, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x6f, 0x67,
+ 0x67, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22,
+ 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65, 0x64,
+ 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e, 0x3c,
+ 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e,
+ 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e,
+ 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74,
+ 0x6b, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x4d, 0x65,
+ 0x6e, 0x75, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x20,
+ 0x69, 0x64, 0x3d, 0x22, 0x70, 0x68, 0x6f, 0x74,
+ 0x6f, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x5f, 0x68, 0x62, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69,
+ 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61,
+ 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22,
+ 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20,
+ 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x22, 0x79, 0x65,
+ 0x73, 0x22, 0x3e, 0x50, 0x68, 0x6f, 0x74, 0x6f,
+ 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x22, 0x75, 0x73, 0x65, 0x5f, 0x75,
+ 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65,
+ 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
+ 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22,
+ 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e,
+ 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
+ 0x64, 0x72, 0x61, 0x77, 0x5f, 0x61, 0x73, 0x5f,
+ 0x72, 0x61, 0x64, 0x69, 0x6f, 0x22, 0x3e, 0x54,
+ 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x67, 0x72,
+ 0x6f, 0x75, 0x70, 0x22, 0x3e, 0x74, 0x65, 0x78,
+ 0x74, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x5f, 0x68, 0x62, 0x5f, 0x6d, 0x65, 0x6e, 0x75,
+ 0x69, 0x74, 0x65, 0x6d, 0x3c, 0x2f, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c,
+ 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x67,
+ 0x67, 0x6c, 0x65, 0x64, 0x22, 0x20, 0x68, 0x61,
+ 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x70,
+ 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x6d, 0x65, 0x6e,
+ 0x75, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x6f,
+ 0x67, 0x67, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x62,
+ 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65,
+ 0x64, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x2f, 0x3e,
+ 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64,
+ 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x3e, 0x3c, 0x2f, 0x69, 0x6e, 0x74, 0x65,
+ 0x72, 0x66, 0x61, 0x63, 0x65, 0x3e, 0x0a, 0x00,
+ 0x00, 0x28, 0x75, 0x75, 0x61, 0x79, 0x29
+} };
+
+static GStaticResource static_resource = { simple_scan_resource_data.data, sizeof (simple_scan_resource_data.data), NULL, NULL, NULL };
+extern GResource *simple_scan_get_resource (void);
+GResource *simple_scan_get_resource (void)
+{
+ return g_static_resource_get_resource (&static_resource);
+}
+/*
+ If G_HAS_CONSTRUCTORS is true then the compiler support *both* constructors and
+ destructors, in a sane way, including e.g. on library unload. If not you're on
+ your own.
+
+ Some compilers need #pragma to handle this, which does not work with macros,
+ so the way you need to use this is (for constructors):
+
+ #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA
+ #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(my_constructor)
+ #endif
+ G_DEFINE_CONSTRUCTOR(my_constructor)
+ static void my_constructor(void) {
+ ...
+ }
+
+*/
+
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+
+#define G_HAS_CONSTRUCTORS 1
+
+#define G_DEFINE_CONSTRUCTOR(_func) static void __attribute__((constructor)) _func (void);
+#define G_DEFINE_DESTRUCTOR(_func) static void __attribute__((destructor)) _func (void);
+
+#elif defined (_MSC_VER) && (_MSC_VER >= 1500)
+/* Visual studio 2008 and later has _Pragma */
+
+#define G_HAS_CONSTRUCTORS 1
+
+#define G_DEFINE_CONSTRUCTOR(_func) \
+ static void _func(void); \
+ static int _func ## _wrapper(void) { _func(); return 0; } \
+ __pragma(section(".CRT$XCU",read)) \
+ __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _wrapper;
+
+#define G_DEFINE_DESTRUCTOR(_func) \
+ static void _func(void); \
+ static int _func ## _constructor(void) { atexit (_func); return 0; } \
+ __pragma(section(".CRT$XCU",read)) \
+ __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor;
+
+#elif defined (_MSC_VER)
+
+#define G_HAS_CONSTRUCTORS 1
+
+/* Pre Visual studio 2008 must use #pragma section */
+#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1
+#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1
+
+#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \
+ section(".CRT$XCU",read)
+#define G_DEFINE_CONSTRUCTOR(_func) \
+ static void _func(void); \
+ static int _func ## _wrapper(void) { _func(); return 0; } \
+ __declspec(allocate(".CRT$XCU")) static int (*p)(void) = _func ## _wrapper;
+
+#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \
+ section(".CRT$XCU",read)
+#define G_DEFINE_DESTRUCTOR(_func) \
+ static void _func(void); \
+ static int _func ## _constructor(void) { atexit (_func); return 0; } \
+ __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor;
+
+#elif defined(__SUNPRO_C)
+
+/* This is not tested, but i believe it should work, based on:
+ * http://opensource.apple.com/source/OpenSSL098/OpenSSL098-35/src/fips/fips_premain.c
+ */
+
+#define G_HAS_CONSTRUCTORS 1
+
+#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1
+#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1
+
+#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \
+ init(_func)
+#define G_DEFINE_CONSTRUCTOR(_func) \
+ static void _func(void);
+
+#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \
+ fini(_func)
+#define G_DEFINE_DESTRUCTOR(_func) \
+ static void _func(void);
+
+#else
+
+/* constructors not supported for this compiler */
+
+#endif
+
+
+#ifdef G_HAS_CONSTRUCTORS
+
+#ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA
+#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(resource_constructor)
+#endif
+G_DEFINE_CONSTRUCTOR(resource_constructor)
+#ifdef G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA
+#pragma G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(resource_destructor)
+#endif
+G_DEFINE_DESTRUCTOR(resource_destructor)
+
+#else
+#warning "Constructor not supported on this compiler, linking in resources will not work"
+#endif
+
+static void resource_constructor (void)
+{
+ g_static_resource_init (&static_resource);
+}
+
+static void resource_destructor (void)
+{
+ g_static_resource_fini (&static_resource);
+}
diff --git a/src/sane.vapi b/src/sane.vapi
new file mode 100644
index 0000000..aa3d90c
--- /dev/null
+++ b/src/sane.vapi
@@ -0,0 +1,754 @@
+[CCode (cprefix = "SANE_", lower_case_cprefix = "sane_", cheader_filename = "sane/sane.h")]
+namespace Sane {
+ [SimpleType]
+ [BooleanType]
+ public struct Bool
+ {
+ }
+
+ [SimpleType]
+ [IntegerType (rank = 9)]
+ public struct Int
+ {
+ }
+
+ [SimpleType]
+ [IntegerType (rank = 9)]
+ public struct Fixed
+ {
+ }
+
+ [SimpleType]
+ [IntegerType (rank = 9)]
+ public struct Word
+ {
+ }
+
+ [CCode (ref_function = "", unref_function = "")]
+ public class Device
+ {
+ public string name;
+ public string vendor;
+ public string model;
+ public string type;
+ }
+
+ public enum Status
+ {
+ GOOD,
+ UNSUPPORTED,
+ CANCELLED,
+ DEVICE_BUSY,
+ INVAL,
+ EOF,
+ JAMMED,
+ NO_DOCS,
+ COVER_OPEN,
+ IO_ERROR,
+ NO_MEM,
+ ACCESS_DENIED
+ }
+
+ public static string status_to_string (Status status)
+ {
+ switch (status)
+ {
+ case Status.GOOD:
+ return "SANE_STATUS_GOOD";
+ case Status.UNSUPPORTED:
+ return "SANE_STATUS_UNSUPPORTED";
+ case Status.CANCELLED:
+ return "SANE_STATUS_CANCELLED";
+ case Status.DEVICE_BUSY:
+ return "SANE_STATUS_DEVICE_BUSY";
+ case Status.INVAL:
+ return "SANE_STATUS_INVAL";
+ case Status.EOF:
+ return "SANE_STATUS_EOF";
+ case Status.JAMMED:
+ return "SANE_STATUS_JAMMED";
+ case Status.NO_DOCS:
+ return "SANE_STATUS_NO_DOCS";
+ case Status.COVER_OPEN:
+ return "SANE_STATUS_COVER_OPEN";
+ case Status.IO_ERROR:
+ return "SANE_STATUS_IO_ERROR";
+ case Status.NO_MEM:
+ return "SANE_STATUS_NO_MEM";
+ case Status.ACCESS_DENIED:
+ return "SANE_STATUS_ACCESS_DENIED";
+ default:
+ return "SANE_STATUS(%d)".printf (status);
+ }
+ }
+
+ public enum Action
+ {
+ GET_VALUE,
+ SET_VALUE,
+ SET_AUTO
+ }
+
+ public enum Frame
+ {
+ GRAY,
+ RGB,
+ RED,
+ GREEN,
+ BLUE
+ }
+
+ public static string frame_to_string (Frame frame)
+ {
+ switch (frame)
+ {
+ case Frame.GRAY:
+ return "SANE_FRAME_GRAY";
+ case Frame.RGB:
+ return "SANE_FRAME_RGB";
+ case Frame.RED:
+ return "SANE_FRAME_RED";
+ case Frame.GREEN:
+ return "SANE_FRAME_GREEN";
+ case Frame.BLUE:
+ return "SANE_FRAME_BLUE";
+ default:
+ return "SANE_FRAME(%d)".printf (frame);
+ }
+ }
+
+ public struct Parameters
+ {
+ Frame format;
+ bool last_frame;
+ int bytes_per_line;
+ int pixels_per_line;
+ int lines;
+ int depth;
+ }
+
+ [CCode (cname = "SANE_MAX_USERNAME_LEN")]
+ public int MAX_USERNAME_LEN;
+
+ [CCode (cname = "SANE_MAX_USERNAME_LEN")]
+ public int MAX_PASSWORD_LEN;
+
+ [CCode (cname = "SANE_Value_Type", cprefix = "SANE_TYPE_")]
+ public enum ValueType
+ {
+ BOOL,
+ INT,
+ FIXED,
+ STRING,
+ BUTTON,
+ GROUP
+ }
+
+ public enum Unit
+ {
+ NONE,
+ PIXEL,
+ BIT,
+ MM,
+ DPI,
+ PERCENT,
+ MICROSECOND
+ }
+
+ [CCode (cname = "SANE_Constraint_Type", cprefix = "SANE_CONSTRAINT_")]
+ public enum ConstraintType
+ {
+ NONE,
+ RANGE,
+ WORD_LIST,
+ STRING_LIST
+ }
+
+ public class Range
+ {
+ public Word min;
+ public Word max;
+ public Word quant;
+ }
+
+ [CCode (cprefix = "SANE_CAP_")]
+ public enum Capability
+ {
+ SOFT_SELECT,
+ HARD_SELECT,
+ SOFT_DETECT,
+ EMULATED,
+ AUTOMATIC,
+ INACTIVE,
+ ADVANCED
+ }
+
+ [CCode (cname = "SANE_Option_Descriptor", ref_function = "", unref_function = "")]
+ public class OptionDescriptor
+ {
+ public unowned string name;
+ public unowned string title;
+ public unowned string desc;
+ public ValueType type;
+ public Unit unit;
+ public Int size;
+ public Int cap;
+
+ public ConstraintType constraint_type;
+ [CCode (cname = "constraint.string_list", array_length = false, null_terminated = true)]
+ public string[] string_list;
+ [CCode (cname = "constraint.word_list", array_length = false)]
+ public Word[] word_list;
+ [CCode (cname = "constraint.range")]
+ public Range range;
+ }
+
+ [CCode (type = "Int", cprefix = "SANE_INFO_")]
+ public enum Info
+ {
+ INEXACT,
+ RELOAD_OPTIONS,
+ RELOAD_PARAMS
+ }
+
+ [SimpleType]
+ public struct Handle
+ {
+ }
+
+ [CCode (has_target = false)]
+ public delegate void AuthCallback (string resource, [CCode (array_length = false)] char[] username, [CCode (array_length = false)] char[] password);
+
+ [CCode (cname = "SANE_VERSION_MAJOR")]
+ public int VERSION_MAJOR (Int code);
+ [CCode (cname = "SANE_VERSION_MINOR")]
+ public int VERSION_MINOR (Int code);
+ [CCode (cname = "SANE_VERSION_BUILD")]
+ public int VERSION_BUILD (Int code);
+
+ [CCode (cname = "SANE_FIX")]
+ public Fixed FIX (double d);
+ [CCode (cname = "SANE_UNFIX")]
+ public double UNFIX (Fixed w);
+
+ [CCode (cname = "SANE_I18N")]
+ public unowned string I18N (string value);
+
+ public Status init (out Int version_code, AuthCallback callback);
+ public void exit ();
+ public Status get_devices ([CCode (array_length = false, null_terminated = true)] out unowned Device[] device_list, bool local_only);
+ public unowned string strstatus (Status status);
+ public Status open (string devicename, out Handle handle);
+ public void close (Handle handle);
+ public unowned OptionDescriptor? get_option_descriptor (Handle handle, Int option);
+ public Status control_option (Handle handle, Int option, Action action, void *value, out Info? info = null);
+ public Status get_parameters (Handle handle, out Parameters params);
+ public Status start (Handle handle);
+ public Status read (Handle handle, uint8* data, Int max_length, out Int length);
+ public void cancel (Handle handle);
+ public Status set_io_mode (Handle handle, bool non_blocking);
+ public Status get_select_fd (Handle handle, out int fd);
+
+ [CCode (cname = "SANE_NAME_STANDARD", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_STANDARD;
+ [CCode (cname = "SANE_NAME_GEOMETRY", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_GEOMETRY;
+ [CCode (cname = "SANE_NAME_ENHANCEMENT", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_ENHANCEMENT;
+ [CCode (cname = "SANE_NAME_ADVANCED", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_ADVANCED;
+ [CCode (cname = "SANE_NAME_SENSORS", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SENSORS;
+ [CCode (cname = "SANE_NAME_PREVIEW", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_PREVIEW;
+ [CCode (cname = "SANE_NAME_GRAY_PREVIEW", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_GRAY_PREVIEW;
+ [CCode (cname = "SANE_NAME_BIT_DEPTH", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_BIT_DEPTH;
+ [CCode (cname = "SANE_NAME_SCAN_MODE", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN_MODE;
+ [CCode (cname = "SANE_NAME_SCAN_SPEED", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN_SPEED;
+ [CCode (cname = "SANE_NAME_SCAN_SOURCE", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN_SOURCE;
+ [CCode (cname = "SANE_NAME_BACKTRACK", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_BACKTRACK;
+ [CCode (cname = "SANE_NAME_SCAN_TL_X", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN_TL_X;
+ [CCode (cname = "SANE_NAME_SCAN_TL_Y", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN_TL_Y;
+ [CCode (cname = "SANE_NAME_SCAN_BR_X", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN_BR_X;
+ [CCode (cname = "SANE_NAME_SCAN_BR_Y", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN_BR_Y;
+ [CCode (cname = "SANE_NAME_SCAN_RESOLUTION", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN_RESOLUTION;
+ [CCode (cname = "SANE_NAME_SCAN_X_RESOLUTION", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN_X_RESOLUTION;
+ [CCode (cname = "SANE_NAME_SCAN_Y_RESOLUTION", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN_Y_RESOLUTION;
+ [CCode (cname = "SANE_NAME_PAGE_WIDTH", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_PAGE_WIDTH;
+ [CCode (cname = "SANE_NAME_PAGE_HEIGHT", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_PAGE_HEIGHT;
+ [CCode (cname = "SANE_NAME_CUSTOM_GAMMA", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_CUSTOM_GAMMA;
+ [CCode (cname = "SANE_NAME_GAMMA_VECTOR", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_GAMMA_VECTOR;
+ [CCode (cname = "SANE_NAME_GAMMA_VECTOR_R", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_GAMMA_VECTOR_R;
+ [CCode (cname = "SANE_NAME_GAMMA_VECTOR_G", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_GAMMA_VECTOR_G;
+ [CCode (cname = "SANE_NAME_GAMMA_VECTOR_B", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_GAMMA_VECTOR_B;
+ [CCode (cname = "SANE_NAME_BRIGHTNESS", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_BRIGHTNESS;
+ [CCode (cname = "SANE_NAME_CONTRAST", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_CONTRAST;
+ [CCode (cname = "SANE_NAME_GRAIN_SIZE", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_GRAIN_SIZE;
+ [CCode (cname = "SANE_NAME_HALFTONE", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_HALFTONE;
+ [CCode (cname = "SANE_NAME_BLACK_LEVEL", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_BLACK_LEVEL;
+ [CCode (cname = "SANE_NAME_WHITE_LEVEL", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_WHITE_LEVEL;
+ [CCode (cname = "SANE_NAME_WHITE_LEVEL_R", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_WHITE_LEVEL_R;
+ [CCode (cname = "SANE_NAME_WHITE_LEVEL_G", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_WHITE_LEVEL_G;
+ [CCode (cname = "SANE_NAME_WHITE_LEVEL_B", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_WHITE_LEVEL_B;
+ [CCode (cname = "SANE_NAME_SHADOW", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SHADOW;
+ [CCode (cname = "SANE_NAME_SHADOW_R", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SHADOW_R;
+ [CCode (cname = "SANE_NAME_SHADOW_G", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SHADOW_G;
+ [CCode (cname = "SANE_NAME_SHADOW_B", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SHADOW_B;
+ [CCode (cname = "SANE_NAME_HIGHLIGHT", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_HIGHLIGHT;
+ [CCode (cname = "SANE_NAME_HIGHLIGHT_R", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_HIGHLIGHT_R;
+ [CCode (cname = "SANE_NAME_HIGHLIGHT_G", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_HIGHLIGHT_G;
+ [CCode (cname = "SANE_NAME_HIGHLIGHT_B", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_HIGHLIGHT_B;
+ [CCode (cname = "SANE_NAME_HUE", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_HUE;
+ [CCode (cname = "SANE_NAME_SATURATION", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SATURATION;
+ [CCode (cname = "SANE_NAME_FILE", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_FILE;
+ [CCode (cname = "SANE_NAME_HALFTONE_DIMENSION", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_HALFTONE_DIMENSION;
+ [CCode (cname = "SANE_NAME_HALFTONE_PATTERN", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_HALFTONE_PATTERN;
+ [CCode (cname = "SANE_NAME_RESOLUTION_BIND", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_RESOLUTION_BIND;
+ [CCode (cname = "SANE_NAME_NEGATIVE", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_NEGATIVE;
+ [CCode (cname = "SANE_NAME_QUALITY_CAL", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_QUALITY_CAL;
+ [CCode (cname = "SANE_NAME_DOR", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_DOR;
+ [CCode (cname = "SANE_NAME_RGB_BIND", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_RGB_BIND;
+ [CCode (cname = "SANE_NAME_THRESHOLD", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_THRESHOLD;
+ [CCode (cname = "SANE_NAME_ANALOG_GAMMA", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_ANALOG_GAMMA;
+ [CCode (cname = "SANE_NAME_ANALOG_GAMMA_R", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_ANALOG_GAMMA_R;
+ [CCode (cname = "SANE_NAME_ANALOG_GAMMA_G", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_ANALOG_GAMMA_G;
+ [CCode (cname = "SANE_NAME_ANALOG_GAMMA_B", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_ANALOG_GAMMA_B;
+ [CCode (cname = "SANE_NAME_ANALOG_GAMMA_BIND", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_ANALOG_GAMMA_BIND;
+ [CCode (cname = "SANE_NAME_WARMUP", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_WARMUP;
+ [CCode (cname = "SANE_NAME_CAL_EXPOS_TIME", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_CAL_EXPOS_TIME;
+ [CCode (cname = "SANE_NAME_CAL_EXPOS_TIME_R", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_CAL_EXPOS_TIME_R;
+ [CCode (cname = "SANE_NAME_CAL_EXPOS_TIME_G", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_CAL_EXPOS_TIME_G;
+ [CCode (cname = "SANE_NAME_CAL_EXPOS_TIME_B", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_CAL_EXPOS_TIME_B;
+ [CCode (cname = "SANE_NAME_SCAN_EXPOS_TIME", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN_EXPOS_TIME;
+ [CCode (cname = "SANE_NAME_SCAN_EXPOS_TIME_R", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN_EXPOS_TIME_R;
+ [CCode (cname = "SANE_NAME_SCAN_EXPOS_TIME_G", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN_EXPOS_TIME_G;
+ [CCode (cname = "SANE_NAME_SCAN_EXPOS_TIME_B", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN_EXPOS_TIME_B;
+ [CCode (cname = "SANE_NAME_SELECT_EXPOSURE_TIME", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SELECT_EXPOSURE_TIME;
+ [CCode (cname = "SANE_NAME_CAL_LAMP_DEN", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_CAL_LAMP_DEN;
+ [CCode (cname = "SANE_NAME_SCAN_LAMP_DEN", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN_LAMP_DEN;
+ [CCode (cname = "SANE_NAME_SELECT_LAMP_DENSITY", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SELECT_LAMP_DENSITY;
+ [CCode (cname = "SANE_NAME_LAMP_OFF_AT_EXIT", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_LAMP_OFF_AT_EXIT;
+ [CCode (cname = "SANE_NAME_SCAN", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_SCAN;
+ [CCode (cname = "SANE_NAME_EMAIL", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_EMAIL;
+ [CCode (cname = "SANE_NAME_FAX", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_FAX;
+ [CCode (cname = "SANE_NAME_COPY", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_COPY;
+ [CCode (cname = "SANE_NAME_PDF", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_PDF;
+ [CCode (cname = "SANE_NAME_CANCEL", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_CANCEL;
+ [CCode (cname = "SANE_NAME_PAGE_LOADED", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_PAGE_LOADED;
+ [CCode (cname = "SANE_NAME_COVER_OPEN", cheader_filename = "sane/saneopts.h")]
+ public static string NAME_COVER_OPEN;
+ [CCode (cname = "SANE_TITLE_NUM_OPTIONS", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_NUM_OPTIONS;
+ [CCode (cname = "SANE_TITLE_STANDARD", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_STANDARD;
+ [CCode (cname = "SANE_TITLE_GEOMETRY", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_GEOMETRY;
+ [CCode (cname = "SANE_TITLE_ENHANCEMENT", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_ENHANCEMENT;
+ [CCode (cname = "SANE_TITLE_ADVANCED", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_ADVANCED;
+ [CCode (cname = "SANE_TITLE_SENSORS", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SENSORS;
+ [CCode (cname = "SANE_TITLE_PREVIEW", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_PREVIEW;
+ [CCode (cname = "SANE_TITLE_GRAY_PREVIEW", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_GRAY_PREVIEW;
+ [CCode (cname = "SANE_TITLE_BIT_DEPTH", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_BIT_DEPTH;
+ [CCode (cname = "SANE_TITLE_SCAN_MODE", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN_MODE;
+ [CCode (cname = "SANE_TITLE_SCAN_SPEED", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN_SPEED;
+ [CCode (cname = "SANE_TITLE_SCAN_SOURCE", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN_SOURCE;
+ [CCode (cname = "SANE_TITLE_BACKTRACK", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_BACKTRACK;
+ [CCode (cname = "SANE_TITLE_SCAN_TL_X", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN_TL_X;
+ [CCode (cname = "SANE_TITLE_SCAN_TL_Y", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN_TL_Y;
+ [CCode (cname = "SANE_TITLE_SCAN_BR_X", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN_BR_X;
+ [CCode (cname = "SANE_TITLE_SCAN_BR_Y", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN_BR_Y;
+ [CCode (cname = "SANE_TITLE_SCAN_RESOLUTION", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN_RESOLUTION;
+ [CCode (cname = "SANE_TITLE_SCAN_X_RESOLUTION", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN_X_RESOLUTION;
+ [CCode (cname = "SANE_TITLE_SCAN_Y_RESOLUTION", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN_Y_RESOLUTION;
+ [CCode (cname = "SANE_TITLE_PAGE_WIDTH", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_PAGE_WIDTH;
+ [CCode (cname = "SANE_TITLE_PAGE_HEIGHT", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_PAGE_HEIGHT;
+ [CCode (cname = "SANE_TITLE_CUSTOM_GAMMA", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_CUSTOM_GAMMA;
+ [CCode (cname = "SANE_TITLE_GAMMA_VECTOR", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_GAMMA_VECTOR;
+ [CCode (cname = "SANE_TITLE_GAMMA_VECTOR_R", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_GAMMA_VECTOR_R;
+ [CCode (cname = "SANE_TITLE_GAMMA_VECTOR_G", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_GAMMA_VECTOR_G;
+ [CCode (cname = "SANE_TITLE_GAMMA_VECTOR_B", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_GAMMA_VECTOR_B;
+ [CCode (cname = "SANE_TITLE_BRIGHTNESS", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_BRIGHTNESS;
+ [CCode (cname = "SANE_TITLE_CONTRAST", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_CONTRAST;
+ [CCode (cname = "SANE_TITLE_GRAIN_SIZE", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_GRAIN_SIZE;
+ [CCode (cname = "SANE_TITLE_HALFTONE", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_HALFTONE;
+ [CCode (cname = "SANE_TITLE_BLACK_LEVEL", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_BLACK_LEVEL;
+ [CCode (cname = "SANE_TITLE_WHITE_LEVEL", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_WHITE_LEVEL;
+ [CCode (cname = "SANE_TITLE_WHITE_LEVEL_R", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_WHITE_LEVEL_R;
+ [CCode (cname = "SANE_TITLE_WHITE_LEVEL_G", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_WHITE_LEVEL_G;
+ [CCode (cname = "SANE_TITLE_WHITE_LEVEL_B", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_WHITE_LEVEL_B;
+ [CCode (cname = "SANE_TITLE_SHADOW", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SHADOW;
+ [CCode (cname = "SANE_TITLE_SHADOW_R", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SHADOW_R;
+ [CCode (cname = "SANE_TITLE_SHADOW_G", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SHADOW_G;
+ [CCode (cname = "SANE_TITLE_SHADOW_B", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SHADOW_B;
+ [CCode (cname = "SANE_TITLE_HIGHLIGHT", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_HIGHLIGHT;
+ [CCode (cname = "SANE_TITLE_HIGHLIGHT_R", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_HIGHLIGHT_R;
+ [CCode (cname = "SANE_TITLE_HIGHLIGHT_G", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_HIGHLIGHT_G;
+ [CCode (cname = "SANE_TITLE_HIGHLIGHT_B", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_HIGHLIGHT_B;
+ [CCode (cname = "SANE_TITLE_HUE", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_HUE;
+ [CCode (cname = "SANE_TITLE_SATURATION", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SATURATION;
+ [CCode (cname = "SANE_TITLE_FILE", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_FILE;
+ [CCode (cname = "SANE_TITLE_HALFTONE_DIMENSION", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_HALFTONE_DIMENSION;
+ [CCode (cname = "SANE_TITLE_HALFTONE_PATTERN", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_HALFTONE_PATTERN;
+ [CCode (cname = "SANE_TITLE_RESOLUTION_BIND", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_RESOLUTION_BIND;
+ [CCode (cname = "SANE_TITLE_NEGATIVE", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_NEGATIVE;
+ [CCode (cname = "SANE_TITLE_QUALITY_CAL", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_QUALITY_CAL;
+ [CCode (cname = "SANE_TITLE_DOR", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_DOR;
+ [CCode (cname = "SANE_TITLE_RGB_BIND", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_RGB_BIND;
+ [CCode (cname = "SANE_TITLE_THRESHOLD", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_THRESHOLD;
+ [CCode (cname = "SANE_TITLE_ANALOG_GAMMA", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_ANALOG_GAMMA;
+ [CCode (cname = "SANE_TITLE_ANALOG_GAMMA_R", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_ANALOG_GAMMA_R;
+ [CCode (cname = "SANE_TITLE_ANALOG_GAMMA_G", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_ANALOG_GAMMA_G;
+ [CCode (cname = "SANE_TITLE_ANALOG_GAMMA_B", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_ANALOG_GAMMA_B;
+ [CCode (cname = "SANE_TITLE_ANALOG_GAMMA_BIND", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_ANALOG_GAMMA_BIND;
+ [CCode (cname = "SANE_TITLE_WARMUP", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_WARMUP;
+ [CCode (cname = "SANE_TITLE_CAL_EXPOS_TIME", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_CAL_EXPOS_TIME;
+ [CCode (cname = "SANE_TITLE_CAL_EXPOS_TIME_R", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_CAL_EXPOS_TIME_R;
+ [CCode (cname = "SANE_TITLE_CAL_EXPOS_TIME_G", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_CAL_EXPOS_TIME_G;
+ [CCode (cname = "SANE_TITLE_CAL_EXPOS_TIME_B", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_CAL_EXPOS_TIME_B;
+ [CCode (cname = "SANE_TITLE_SCAN_EXPOS_TIME", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN_EXPOS_TIME;
+ [CCode (cname = "SANE_TITLE_SCAN_EXPOS_TIME_R", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN_EXPOS_TIME_R;
+ [CCode (cname = "SANE_TITLE_SCAN_EXPOS_TIME_G", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN_EXPOS_TIME_G;
+ [CCode (cname = "SANE_TITLE_SCAN_EXPOS_TIME_B", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN_EXPOS_TIME_B;
+ [CCode (cname = "SANE_TITLE_SELECT_EXPOSURE_TIME", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SELECT_EXPOSURE_TIME;
+ [CCode (cname = "SANE_TITLE_CAL_LAMP_DEN", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_CAL_LAMP_DEN;
+ [CCode (cname = "SANE_TITLE_SCAN_LAMP_DEN", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN_LAMP_DEN;
+ [CCode (cname = "SANE_TITLE_SELECT_LAMP_DENSITY", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SELECT_LAMP_DENSITY;
+ [CCode (cname = "SANE_TITLE_LAMP_OFF_AT_EXIT", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_LAMP_OFF_AT_EXIT;
+ [CCode (cname = "SANE_TITLE_SCAN", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_SCAN;
+ [CCode (cname = "SANE_TITLE_EMAIL", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_EMAIL;
+ [CCode (cname = "SANE_TITLE_FAX", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_FAX;
+ [CCode (cname = "SANE_TITLE_COPY", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_COPY;
+ [CCode (cname = "SANE_TITLE_PDF", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_PDF;
+ [CCode (cname = "SANE_TITLE_CANCEL", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_CANCEL;
+ [CCode (cname = "SANE_TITLE_PAGE_LOADED", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_PAGE_LOADED;
+ [CCode (cname = "SANE_TITLE_COVER_OPEN", cheader_filename = "sane/saneopts.h")]
+ public static string TITLE_COVER_OPEN;
+ [CCode (cname = "SANE_DESC_NUM_OPTIONS", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_NUM_OPTIONS;
+ [CCode (cname = "SANE_DESC_STANDARD", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_STANDARD;
+ [CCode (cname = "SANE_DESC_GEOMETRY", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_GEOMETRY;
+ [CCode (cname = "SANE_DESC_ENHANCEMENT", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_ENHANCEMENT;
+ [CCode (cname = "SANE_DESC_ADVANCED", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_ADVANCED;
+ [CCode (cname = "SANE_DESC_SENSORS", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SENSORS;
+ [CCode (cname = "SANE_DESC_PREVIEW", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_PREVIEW;
+ [CCode (cname = "SANE_DESC_GRAY_PREVIEW", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_GRAY_PREVIEW;
+ [CCode (cname = "SANE_DESC_BIT_DEPTH", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_BIT_DEPTH;
+ [CCode (cname = "SANE_DESC_SCAN_MODE", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN_MODE;
+ [CCode (cname = "SANE_DESC_SCAN_SPEED", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN_SPEED;
+ [CCode (cname = "SANE_DESC_SCAN_SOURCE", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN_SOURCE;
+ [CCode (cname = "SANE_DESC_BACKTRACK", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_BACKTRACK;
+ [CCode (cname = "SANE_DESC_SCAN_TL_X", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN_TL_X;
+ [CCode (cname = "SANE_DESC_SCAN_TL_Y", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN_TL_Y;
+ [CCode (cname = "SANE_DESC_SCAN_BR_X", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN_BR_X;
+ [CCode (cname = "SANE_DESC_SCAN_BR_Y", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN_BR_Y;
+ [CCode (cname = "SANE_DESC_SCAN_RESOLUTION", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN_RESOLUTION;
+ [CCode (cname = "SANE_DESC_SCAN_X_RESOLUTION", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN_X_RESOLUTION;
+ [CCode (cname = "SANE_DESC_SCAN_Y_RESOLUTION", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN_Y_RESOLUTION;
+ [CCode (cname = "SANE_DESC_PAGE_WIDTH", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_PAGE_WIDTH;
+ [CCode (cname = "SANE_DESC_PAGE_HEIGHT", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_PAGE_HEIGHT;
+ [CCode (cname = "SANE_DESC_CUSTOM_GAMMA", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_CUSTOM_GAMMA;
+ [CCode (cname = "SANE_DESC_GAMMA_VECTOR", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_GAMMA_VECTOR;
+ [CCode (cname = "SANE_DESC_GAMMA_VECTOR_R", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_GAMMA_VECTOR_R;
+ [CCode (cname = "SANE_DESC_GAMMA_VECTOR_G", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_GAMMA_VECTOR_G;
+ [CCode (cname = "SANE_DESC_GAMMA_VECTOR_B", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_GAMMA_VECTOR_B;
+ [CCode (cname = "SANE_DESC_BRIGHTNESS", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_BRIGHTNESS;
+ [CCode (cname = "SANE_DESC_CONTRAST", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_CONTRAST;
+ [CCode (cname = "SANE_DESC_GRAIN_SIZE", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_GRAIN_SIZE;
+ [CCode (cname = "SANE_DESC_HALFTONE", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_HALFTONE;
+ [CCode (cname = "SANE_DESC_BLACK_LEVEL", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_BLACK_LEVEL;
+ [CCode (cname = "SANE_DESC_WHITE_LEVEL", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_WHITE_LEVEL;
+ [CCode (cname = "SANE_DESC_WHITE_LEVEL_R", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_WHITE_LEVEL_R;
+ [CCode (cname = "SANE_DESC_WHITE_LEVEL_G", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_WHITE_LEVEL_G;
+ [CCode (cname = "SANE_DESC_WHITE_LEVEL_B", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_WHITE_LEVEL_B;
+ [CCode (cname = "SANE_DESC_SHADOW", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SHADOW;
+ [CCode (cname = "SANE_DESC_SHADOW_R", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SHADOW_R;
+ [CCode (cname = "SANE_DESC_SHADOW_G", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SHADOW_G;
+ [CCode (cname = "SANE_DESC_SHADOW_B", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SHADOW_B;
+ [CCode (cname = "SANE_DESC_HIGHLIGHT", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_HIGHLIGHT;
+ [CCode (cname = "SANE_DESC_HIGHLIGHT_R", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_HIGHLIGHT_R;
+ [CCode (cname = "SANE_DESC_HIGHLIGHT_G", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_HIGHLIGHT_G;
+ [CCode (cname = "SANE_DESC_HIGHLIGHT_B", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_HIGHLIGHT_B;
+ [CCode (cname = "SANE_DESC_HUE", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_HUE;
+ [CCode (cname = "SANE_DESC_SATURATION", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SATURATION;
+ [CCode (cname = "SANE_DESC_FILE", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_FILE;
+ [CCode (cname = "SANE_DESC_HALFTONE_DIMENSION", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_HALFTONE_DIMENSION;
+ [CCode (cname = "SANE_DESC_HALFTONE_PATTERN", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_HALFTONE_PATTERN;
+ [CCode (cname = "SANE_DESC_RESOLUTION_BIND", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_RESOLUTION_BIND;
+ [CCode (cname = "SANE_DESC_NEGATIVE", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_NEGATIVE;
+ [CCode (cname = "SANE_DESC_QUALITY_CAL", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_QUALITY_CAL;
+ [CCode (cname = "SANE_DESC_DOR", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_DOR;
+ [CCode (cname = "SANE_DESC_RGB_BIND", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_RGB_BIND;
+ [CCode (cname = "SANE_DESC_THRESHOLD", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_THRESHOLD;
+ [CCode (cname = "SANE_DESC_ANALOG_GAMMA", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_ANALOG_GAMMA;
+ [CCode (cname = "SANE_DESC_ANALOG_GAMMA_R", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_ANALOG_GAMMA_R;
+ [CCode (cname = "SANE_DESC_ANALOG_GAMMA_G", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_ANALOG_GAMMA_G;
+ [CCode (cname = "SANE_DESC_ANALOG_GAMMA_B", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_ANALOG_GAMMA_B;
+ [CCode (cname = "SANE_DESC_ANALOG_GAMMA_BIND", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_ANALOG_GAMMA_BIND;
+ [CCode (cname = "SANE_DESC_WARMUP", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_WARMUP;
+ [CCode (cname = "SANE_DESC_CAL_EXPOS_TIME", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_CAL_EXPOS_TIME;
+ [CCode (cname = "SANE_DESC_CAL_EXPOS_TIME_R", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_CAL_EXPOS_TIME_R;
+ [CCode (cname = "SANE_DESC_CAL_EXPOS_TIME_G", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_CAL_EXPOS_TIME_G;
+ [CCode (cname = "SANE_DESC_CAL_EXPOS_TIME_B", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_CAL_EXPOS_TIME_B;
+ [CCode (cname = "SANE_DESC_SCAN_EXPOS_TIME", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN_EXPOS_TIME;
+ [CCode (cname = "SANE_DESC_SCAN_EXPOS_TIME_R", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN_EXPOS_TIME_R;
+ [CCode (cname = "SANE_DESC_SCAN_EXPOS_TIME_G", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN_EXPOS_TIME_G;
+ [CCode (cname = "SANE_DESC_SCAN_EXPOS_TIME_B", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN_EXPOS_TIME_B;
+ [CCode (cname = "SANE_DESC_SELECT_EXPOSURE_TIME", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SELECT_EXPOSURE_TIME;
+ [CCode (cname = "SANE_DESC_CAL_LAMP_DEN", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_CAL_LAMP_DEN;
+ [CCode (cname = "SANE_DESC_SCAN_LAMP_DEN", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN_LAMP_DEN;
+ [CCode (cname = "SANE_DESC_SELECT_LAMP_DENSITY", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SELECT_LAMP_DENSITY;
+ [CCode (cname = "SANE_DESC_LAMP_OFF_AT_EXIT", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_LAMP_OFF_AT_EXIT;
+ [CCode (cname = "SANE_DESC_SCAN", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_SCAN;
+ [CCode (cname = "SANE_DESC_EMAIL", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_EMAIL;
+ [CCode (cname = "SANE_DESC_FAX", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_FAX;
+ [CCode (cname = "SANE_DESC_COPY", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_COPY;
+ [CCode (cname = "SANE_DESC_PDF", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_PDF;
+ [CCode (cname = "SANE_DESC_CANCEL", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_CANCEL;
+ [CCode (cname = "SANE_DESC_PAGE_LOADED", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_PAGE_LOADED;
+ [CCode (cname = "SANE_DESC_COVER_OPEN", cheader_filename = "sane/saneopts.h")]
+ public static string DESC_COVER_OPEN;
+ [CCode (cname = "SANE_VALUE_SCAN_MODE_COLOR", cheader_filename = "sane/saneopts.h")]
+ public static string VALUE_SCAN_MODE_COLOR;
+ [CCode (cname = "SANE_VALUE_SCAN_MODE_COLOR_LINEART", cheader_filename = "sane/saneopts.h")]
+ public static string VALUE_SCAN_MODE_COLOR_LINEART;
+ [CCode (cname = "SANE_VALUE_SCAN_MODE_COLOR_HALFTONE", cheader_filename = "sane/saneopts.h")]
+ public static string VALUE_SCAN_MODE_COLOR_HALFTONE;
+ [CCode (cname = "SANE_VALUE_SCAN_MODE_GRAY", cheader_filename = "sane/saneopts.h")]
+ public static string VALUE_SCAN_MODE_GRAY;
+ [CCode (cname = "SANE_VALUE_SCAN_MODE_HALFTONE", cheader_filename = "sane/saneopts.h")]
+ public static string VALUE_SCAN_MODE_HALFTONE;
+ [CCode (cname = "SANE_VALUE_SCAN_MODE_LINEART", cheader_filename = "sane/saneopts.h")]
+ public static string VALUE_SCAN_MODE_LINEART;
+}
diff --git a/src/scanner.c b/src/scanner.c
new file mode 100644
index 0000000..57323b2
--- /dev/null
+++ b/src/scanner.c
@@ -0,0 +1,13352 @@
+/* scanner.c generated by valac 0.24.0, the Vala compiler
+ * generated from scanner.vala, do not modify */
+
+/*
+ * Copyright (C) 2009-2011 Canonical Ltd.
+ * Author: Robert Ancell <robert.ancell@canonical.com>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+/* TODO: Could indicate the start of the next page immediately after the last page is received (i.e. before the sane_cancel()) */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <float.h>
+#include <math.h>
+#include "sane/sane.h"
+#include <glib/gi18n-lib.h>
+#include "sane/saneopts.h"
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_SCAN_DEVICE (scan_device_get_type ())
+#define SCAN_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCAN_DEVICE, ScanDevice))
+#define SCAN_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCAN_DEVICE, ScanDeviceClass))
+#define IS_SCAN_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCAN_DEVICE))
+#define IS_SCAN_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCAN_DEVICE))
+#define SCAN_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCAN_DEVICE, ScanDeviceClass))
+
+typedef struct _ScanDevice ScanDevice;
+typedef struct _ScanDeviceClass ScanDeviceClass;
+typedef struct _ScanDevicePrivate ScanDevicePrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _ParamSpecScanDevice ParamSpecScanDevice;
+
+#define TYPE_SCAN_PAGE_INFO (scan_page_info_get_type ())
+#define SCAN_PAGE_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCAN_PAGE_INFO, ScanPageInfo))
+#define SCAN_PAGE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCAN_PAGE_INFO, ScanPageInfoClass))
+#define IS_SCAN_PAGE_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCAN_PAGE_INFO))
+#define IS_SCAN_PAGE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCAN_PAGE_INFO))
+#define SCAN_PAGE_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCAN_PAGE_INFO, ScanPageInfoClass))
+
+typedef struct _ScanPageInfo ScanPageInfo;
+typedef struct _ScanPageInfoClass ScanPageInfoClass;
+typedef struct _ScanPageInfoPrivate ScanPageInfoPrivate;
+typedef struct _ParamSpecScanPageInfo ParamSpecScanPageInfo;
+
+#define TYPE_SCAN_LINE (scan_line_get_type ())
+#define SCAN_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCAN_LINE, ScanLine))
+#define SCAN_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCAN_LINE, ScanLineClass))
+#define IS_SCAN_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCAN_LINE))
+#define IS_SCAN_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCAN_LINE))
+#define SCAN_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCAN_LINE, ScanLineClass))
+
+typedef struct _ScanLine ScanLine;
+typedef struct _ScanLineClass ScanLineClass;
+typedef struct _ScanLinePrivate ScanLinePrivate;
+typedef struct _ParamSpecScanLine ParamSpecScanLine;
+
+#define TYPE_SCAN_MODE (scan_mode_get_type ())
+
+#define TYPE_SCAN_TYPE (scan_type_get_type ())
+
+#define TYPE_SCAN_OPTIONS (scan_options_get_type ())
+#define SCAN_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCAN_OPTIONS, ScanOptions))
+#define SCAN_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCAN_OPTIONS, ScanOptionsClass))
+#define IS_SCAN_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCAN_OPTIONS))
+#define IS_SCAN_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCAN_OPTIONS))
+#define SCAN_OPTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCAN_OPTIONS, ScanOptionsClass))
+
+typedef struct _ScanOptions ScanOptions;
+typedef struct _ScanOptionsClass ScanOptionsClass;
+typedef struct _ScanOptionsPrivate ScanOptionsPrivate;
+typedef struct _ParamSpecScanOptions ParamSpecScanOptions;
+
+#define TYPE_SCAN_JOB (scan_job_get_type ())
+#define SCAN_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCAN_JOB, ScanJob))
+#define SCAN_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCAN_JOB, ScanJobClass))
+#define IS_SCAN_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCAN_JOB))
+#define IS_SCAN_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCAN_JOB))
+#define SCAN_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCAN_JOB, ScanJobClass))
+
+typedef struct _ScanJob ScanJob;
+typedef struct _ScanJobClass ScanJobClass;
+typedef struct _ScanJobPrivate ScanJobPrivate;
+typedef struct _ParamSpecScanJob ParamSpecScanJob;
+
+#define TYPE_REQUEST (request_get_type ())
+#define REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REQUEST, Request))
+#define REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REQUEST, RequestClass))
+#define IS_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REQUEST))
+#define IS_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REQUEST))
+#define REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REQUEST, RequestClass))
+
+typedef struct _Request Request;
+typedef struct _RequestClass RequestClass;
+typedef struct _RequestPrivate RequestPrivate;
+typedef struct _ParamSpecRequest ParamSpecRequest;
+
+#define TYPE_REQUEST_REDETECT (request_redetect_get_type ())
+#define REQUEST_REDETECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REQUEST_REDETECT, RequestRedetect))
+#define REQUEST_REDETECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REQUEST_REDETECT, RequestRedetectClass))
+#define IS_REQUEST_REDETECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REQUEST_REDETECT))
+#define IS_REQUEST_REDETECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REQUEST_REDETECT))
+#define REQUEST_REDETECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REQUEST_REDETECT, RequestRedetectClass))
+
+typedef struct _RequestRedetect RequestRedetect;
+typedef struct _RequestRedetectClass RequestRedetectClass;
+typedef struct _RequestRedetectPrivate RequestRedetectPrivate;
+
+#define TYPE_REQUEST_CANCEL (request_cancel_get_type ())
+#define REQUEST_CANCEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REQUEST_CANCEL, RequestCancel))
+#define REQUEST_CANCEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REQUEST_CANCEL, RequestCancelClass))
+#define IS_REQUEST_CANCEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REQUEST_CANCEL))
+#define IS_REQUEST_CANCEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REQUEST_CANCEL))
+#define REQUEST_CANCEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REQUEST_CANCEL, RequestCancelClass))
+
+typedef struct _RequestCancel RequestCancel;
+typedef struct _RequestCancelClass RequestCancelClass;
+typedef struct _RequestCancelPrivate RequestCancelPrivate;
+
+#define TYPE_REQUEST_START_SCAN (request_start_scan_get_type ())
+#define REQUEST_START_SCAN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REQUEST_START_SCAN, RequestStartScan))
+#define REQUEST_START_SCAN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REQUEST_START_SCAN, RequestStartScanClass))
+#define IS_REQUEST_START_SCAN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REQUEST_START_SCAN))
+#define IS_REQUEST_START_SCAN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REQUEST_START_SCAN))
+#define REQUEST_START_SCAN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REQUEST_START_SCAN, RequestStartScanClass))
+
+typedef struct _RequestStartScan RequestStartScan;
+typedef struct _RequestStartScanClass RequestStartScanClass;
+typedef struct _RequestStartScanPrivate RequestStartScanPrivate;
+#define _scan_job_unref0(var) ((var == NULL) ? NULL : (var = (scan_job_unref (var), NULL)))
+
+#define TYPE_REQUEST_QUIT (request_quit_get_type ())
+#define REQUEST_QUIT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REQUEST_QUIT, RequestQuit))
+#define REQUEST_QUIT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REQUEST_QUIT, RequestQuitClass))
+#define IS_REQUEST_QUIT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REQUEST_QUIT))
+#define IS_REQUEST_QUIT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REQUEST_QUIT))
+#define REQUEST_QUIT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REQUEST_QUIT, RequestQuitClass))
+
+typedef struct _RequestQuit RequestQuit;
+typedef struct _RequestQuitClass RequestQuitClass;
+typedef struct _RequestQuitPrivate RequestQuitPrivate;
+
+#define TYPE_CREDENTIALS (credentials_get_type ())
+#define CREDENTIALS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CREDENTIALS, Credentials))
+#define CREDENTIALS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CREDENTIALS, CredentialsClass))
+#define IS_CREDENTIALS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CREDENTIALS))
+#define IS_CREDENTIALS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CREDENTIALS))
+#define CREDENTIALS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CREDENTIALS, CredentialsClass))
+
+typedef struct _Credentials Credentials;
+typedef struct _CredentialsClass CredentialsClass;
+typedef struct _CredentialsPrivate CredentialsPrivate;
+typedef struct _ParamSpecCredentials ParamSpecCredentials;
+
+#define TYPE_SCAN_STATE (scan_state_get_type ())
+
+#define TYPE_NOTIFY (notify_get_type ())
+#define NOTIFY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NOTIFY, Notify))
+#define NOTIFY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NOTIFY, NotifyClass))
+#define IS_NOTIFY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NOTIFY))
+#define IS_NOTIFY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NOTIFY))
+#define NOTIFY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NOTIFY, NotifyClass))
+
+typedef struct _Notify Notify;
+typedef struct _NotifyClass NotifyClass;
+typedef struct _NotifyPrivate NotifyPrivate;
+
+#define TYPE_SCANNER (scanner_get_type ())
+#define SCANNER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCANNER, Scanner))
+#define SCANNER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCANNER, ScannerClass))
+#define IS_SCANNER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCANNER))
+#define IS_SCANNER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCANNER))
+#define SCANNER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCANNER, ScannerClass))
+
+typedef struct _Scanner Scanner;
+typedef struct _ScannerClass ScannerClass;
+typedef struct _ParamSpecNotify ParamSpecNotify;
+
+#define TYPE_NOTIFY_SCANNING_CHANGED (notify_scanning_changed_get_type ())
+#define NOTIFY_SCANNING_CHANGED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NOTIFY_SCANNING_CHANGED, NotifyScanningChanged))
+#define NOTIFY_SCANNING_CHANGED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NOTIFY_SCANNING_CHANGED, NotifyScanningChangedClass))
+#define IS_NOTIFY_SCANNING_CHANGED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NOTIFY_SCANNING_CHANGED))
+#define IS_NOTIFY_SCANNING_CHANGED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NOTIFY_SCANNING_CHANGED))
+#define NOTIFY_SCANNING_CHANGED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NOTIFY_SCANNING_CHANGED, NotifyScanningChangedClass))
+
+typedef struct _NotifyScanningChanged NotifyScanningChanged;
+typedef struct _NotifyScanningChangedClass NotifyScanningChangedClass;
+typedef struct _NotifyScanningChangedPrivate NotifyScanningChangedPrivate;
+
+#define TYPE_NOTIFY_UPDATE_DEVICES (notify_update_devices_get_type ())
+#define NOTIFY_UPDATE_DEVICES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NOTIFY_UPDATE_DEVICES, NotifyUpdateDevices))
+#define NOTIFY_UPDATE_DEVICES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NOTIFY_UPDATE_DEVICES, NotifyUpdateDevicesClass))
+#define IS_NOTIFY_UPDATE_DEVICES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NOTIFY_UPDATE_DEVICES))
+#define IS_NOTIFY_UPDATE_DEVICES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NOTIFY_UPDATE_DEVICES))
+#define NOTIFY_UPDATE_DEVICES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NOTIFY_UPDATE_DEVICES, NotifyUpdateDevicesClass))
+
+typedef struct _NotifyUpdateDevices NotifyUpdateDevices;
+typedef struct _NotifyUpdateDevicesClass NotifyUpdateDevicesClass;
+typedef struct _NotifyUpdateDevicesPrivate NotifyUpdateDevicesPrivate;
+#define __g_list_free__scan_device_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__scan_device_unref0_ (var), NULL)))
+
+#define TYPE_NOTIFY_REQUEST_AUTHORIZATION (notify_request_authorization_get_type ())
+#define NOTIFY_REQUEST_AUTHORIZATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NOTIFY_REQUEST_AUTHORIZATION, NotifyRequestAuthorization))
+#define NOTIFY_REQUEST_AUTHORIZATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NOTIFY_REQUEST_AUTHORIZATION, NotifyRequestAuthorizationClass))
+#define IS_NOTIFY_REQUEST_AUTHORIZATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NOTIFY_REQUEST_AUTHORIZATION))
+#define IS_NOTIFY_REQUEST_AUTHORIZATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NOTIFY_REQUEST_AUTHORIZATION))
+#define NOTIFY_REQUEST_AUTHORIZATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NOTIFY_REQUEST_AUTHORIZATION, NotifyRequestAuthorizationClass))
+
+typedef struct _NotifyRequestAuthorization NotifyRequestAuthorization;
+typedef struct _NotifyRequestAuthorizationClass NotifyRequestAuthorizationClass;
+typedef struct _NotifyRequestAuthorizationPrivate NotifyRequestAuthorizationPrivate;
+
+#define TYPE_NOTIFY_SCAN_FAILED (notify_scan_failed_get_type ())
+#define NOTIFY_SCAN_FAILED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NOTIFY_SCAN_FAILED, NotifyScanFailed))
+#define NOTIFY_SCAN_FAILED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NOTIFY_SCAN_FAILED, NotifyScanFailedClass))
+#define IS_NOTIFY_SCAN_FAILED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NOTIFY_SCAN_FAILED))
+#define IS_NOTIFY_SCAN_FAILED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NOTIFY_SCAN_FAILED))
+#define NOTIFY_SCAN_FAILED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NOTIFY_SCAN_FAILED, NotifyScanFailedClass))
+
+typedef struct _NotifyScanFailed NotifyScanFailed;
+typedef struct _NotifyScanFailedClass NotifyScanFailedClass;
+typedef struct _NotifyScanFailedPrivate NotifyScanFailedPrivate;
+
+#define TYPE_NOTIFY_DOCUMENT_DONE (notify_document_done_get_type ())
+#define NOTIFY_DOCUMENT_DONE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NOTIFY_DOCUMENT_DONE, NotifyDocumentDone))
+#define NOTIFY_DOCUMENT_DONE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NOTIFY_DOCUMENT_DONE, NotifyDocumentDoneClass))
+#define IS_NOTIFY_DOCUMENT_DONE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NOTIFY_DOCUMENT_DONE))
+#define IS_NOTIFY_DOCUMENT_DONE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NOTIFY_DOCUMENT_DONE))
+#define NOTIFY_DOCUMENT_DONE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NOTIFY_DOCUMENT_DONE, NotifyDocumentDoneClass))
+
+typedef struct _NotifyDocumentDone NotifyDocumentDone;
+typedef struct _NotifyDocumentDoneClass NotifyDocumentDoneClass;
+typedef struct _NotifyDocumentDonePrivate NotifyDocumentDonePrivate;
+
+#define TYPE_NOTIFY_EXPECT_PAGE (notify_expect_page_get_type ())
+#define NOTIFY_EXPECT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NOTIFY_EXPECT_PAGE, NotifyExpectPage))
+#define NOTIFY_EXPECT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NOTIFY_EXPECT_PAGE, NotifyExpectPageClass))
+#define IS_NOTIFY_EXPECT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NOTIFY_EXPECT_PAGE))
+#define IS_NOTIFY_EXPECT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NOTIFY_EXPECT_PAGE))
+#define NOTIFY_EXPECT_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NOTIFY_EXPECT_PAGE, NotifyExpectPageClass))
+
+typedef struct _NotifyExpectPage NotifyExpectPage;
+typedef struct _NotifyExpectPageClass NotifyExpectPageClass;
+typedef struct _NotifyExpectPagePrivate NotifyExpectPagePrivate;
+
+#define TYPE_NOTIFY_GOT_PAGE_INFO (notify_got_page_info_get_type ())
+#define NOTIFY_GOT_PAGE_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NOTIFY_GOT_PAGE_INFO, NotifyGotPageInfo))
+#define NOTIFY_GOT_PAGE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NOTIFY_GOT_PAGE_INFO, NotifyGotPageInfoClass))
+#define IS_NOTIFY_GOT_PAGE_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NOTIFY_GOT_PAGE_INFO))
+#define IS_NOTIFY_GOT_PAGE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NOTIFY_GOT_PAGE_INFO))
+#define NOTIFY_GOT_PAGE_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NOTIFY_GOT_PAGE_INFO, NotifyGotPageInfoClass))
+
+typedef struct _NotifyGotPageInfo NotifyGotPageInfo;
+typedef struct _NotifyGotPageInfoClass NotifyGotPageInfoClass;
+typedef struct _NotifyGotPageInfoPrivate NotifyGotPageInfoPrivate;
+#define _scan_page_info_unref0(var) ((var == NULL) ? NULL : (var = (scan_page_info_unref (var), NULL)))
+typedef struct _ScannerPrivate ScannerPrivate;
+
+#define TYPE_NOTIFY_PAGE_DONE (notify_page_done_get_type ())
+#define NOTIFY_PAGE_DONE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NOTIFY_PAGE_DONE, NotifyPageDone))
+#define NOTIFY_PAGE_DONE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NOTIFY_PAGE_DONE, NotifyPageDoneClass))
+#define IS_NOTIFY_PAGE_DONE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NOTIFY_PAGE_DONE))
+#define IS_NOTIFY_PAGE_DONE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NOTIFY_PAGE_DONE))
+#define NOTIFY_PAGE_DONE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NOTIFY_PAGE_DONE, NotifyPageDoneClass))
+
+typedef struct _NotifyPageDone NotifyPageDone;
+typedef struct _NotifyPageDoneClass NotifyPageDoneClass;
+typedef struct _NotifyPageDonePrivate NotifyPageDonePrivate;
+
+#define TYPE_NOTIFY_GOT_LINE (notify_got_line_get_type ())
+#define NOTIFY_GOT_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NOTIFY_GOT_LINE, NotifyGotLine))
+#define NOTIFY_GOT_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NOTIFY_GOT_LINE, NotifyGotLineClass))
+#define IS_NOTIFY_GOT_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NOTIFY_GOT_LINE))
+#define IS_NOTIFY_GOT_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NOTIFY_GOT_LINE))
+#define NOTIFY_GOT_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NOTIFY_GOT_LINE, NotifyGotLineClass))
+
+typedef struct _NotifyGotLine NotifyGotLine;
+typedef struct _NotifyGotLineClass NotifyGotLineClass;
+typedef struct _NotifyGotLinePrivate NotifyGotLinePrivate;
+#define _scan_line_unref0(var) ((var == NULL) ? NULL : (var = (scan_line_unref (var), NULL)))
+#define _g_thread_unref0(var) ((var == NULL) ? NULL : (var = (g_thread_unref (var), NULL)))
+#define _g_async_queue_unref0(var) ((var == NULL) ? NULL : (var = (g_async_queue_unref (var), NULL)))
+#define __g_list_free__scan_job_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__scan_job_unref0_ (var), NULL)))
+#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
+#define _scanner_unref0(var) ((var == NULL) ? NULL : (var = (scanner_unref (var), NULL)))
+#define _notify_unref0(var) ((var == NULL) ? NULL : (var = (notify_unref (var), NULL)))
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _scan_device_unref0(var) ((var == NULL) ? NULL : (var = (scan_device_unref (var), NULL)))
+#define _credentials_unref0(var) ((var == NULL) ? NULL : (var = (credentials_unref (var), NULL)))
+#define _request_unref0(var) ((var == NULL) ? NULL : (var = (request_unref (var), NULL)))
+typedef struct _ParamSpecScanner ParamSpecScanner;
+
+struct _ScanDevice {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ScanDevicePrivate * priv;
+ gchar* name;
+ gchar* label;
+};
+
+struct _ScanDeviceClass {
+ GTypeClass parent_class;
+ void (*finalize) (ScanDevice *self);
+};
+
+struct _ParamSpecScanDevice {
+ GParamSpec parent_instance;
+};
+
+struct _ScanPageInfo {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ScanPageInfoPrivate * priv;
+ gint width;
+ gint height;
+ gint depth;
+ gint n_channels;
+ gdouble dpi;
+ gchar* device;
+};
+
+struct _ScanPageInfoClass {
+ GTypeClass parent_class;
+ void (*finalize) (ScanPageInfo *self);
+};
+
+struct _ParamSpecScanPageInfo {
+ GParamSpec parent_instance;
+};
+
+struct _ScanLine {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ScanLinePrivate * priv;
+ gint number;
+ gint n_lines;
+ gint width;
+ gint depth;
+ gint channel;
+ guchar* data;
+ gint data_length1;
+ gint data_length;
+};
+
+struct _ScanLineClass {
+ GTypeClass parent_class;
+ void (*finalize) (ScanLine *self);
+};
+
+struct _ParamSpecScanLine {
+ GParamSpec parent_instance;
+};
+
+typedef enum {
+ SCAN_MODE_DEFAULT,
+ SCAN_MODE_COLOR,
+ SCAN_MODE_GRAY,
+ SCAN_MODE_LINEART
+} ScanMode;
+
+typedef enum {
+ SCAN_TYPE_SINGLE,
+ SCAN_TYPE_ADF_FRONT,
+ SCAN_TYPE_ADF_BACK,
+ SCAN_TYPE_ADF_BOTH
+} ScanType;
+
+struct _ScanOptions {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ScanOptionsPrivate * priv;
+ gint dpi;
+ ScanMode scan_mode;
+ gint depth;
+ ScanType type;
+ gint paper_width;
+ gint paper_height;
+ gint brightness;
+ gint contrast;
+};
+
+struct _ScanOptionsClass {
+ GTypeClass parent_class;
+ void (*finalize) (ScanOptions *self);
+};
+
+struct _ParamSpecScanOptions {
+ GParamSpec parent_instance;
+};
+
+struct _ScanJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ScanJobPrivate * priv;
+ gint id;
+ gchar* device;
+ gdouble dpi;
+ ScanMode scan_mode;
+ gint depth;
+ ScanType type;
+ gint page_width;
+ gint page_height;
+ gint brightness;
+ gint contrast;
+};
+
+struct _ScanJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (ScanJob *self);
+};
+
+struct _ParamSpecScanJob {
+ GParamSpec parent_instance;
+};
+
+struct _Request {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ RequestPrivate * priv;
+};
+
+struct _RequestClass {
+ GTypeClass parent_class;
+ void (*finalize) (Request *self);
+};
+
+struct _ParamSpecRequest {
+ GParamSpec parent_instance;
+};
+
+struct _RequestRedetect {
+ Request parent_instance;
+ RequestRedetectPrivate * priv;
+};
+
+struct _RequestRedetectClass {
+ RequestClass parent_class;
+};
+
+struct _RequestCancel {
+ Request parent_instance;
+ RequestCancelPrivate * priv;
+};
+
+struct _RequestCancelClass {
+ RequestClass parent_class;
+};
+
+struct _RequestStartScan {
+ Request parent_instance;
+ RequestStartScanPrivate * priv;
+ ScanJob* job;
+};
+
+struct _RequestStartScanClass {
+ RequestClass parent_class;
+};
+
+struct _RequestQuit {
+ Request parent_instance;
+ RequestQuitPrivate * priv;
+};
+
+struct _RequestQuitClass {
+ RequestClass parent_class;
+};
+
+struct _Credentials {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ CredentialsPrivate * priv;
+ gchar* username;
+ gchar* password;
+};
+
+struct _CredentialsClass {
+ GTypeClass parent_class;
+ void (*finalize) (Credentials *self);
+};
+
+struct _ParamSpecCredentials {
+ GParamSpec parent_instance;
+};
+
+typedef enum {
+ SCAN_STATE_IDLE = 0,
+ SCAN_STATE_REDETECT,
+ SCAN_STATE_OPEN,
+ SCAN_STATE_GET_OPTION,
+ SCAN_STATE_START,
+ SCAN_STATE_GET_PARAMETERS,
+ SCAN_STATE_READ
+} ScanState;
+
+struct _Notify {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ NotifyPrivate * priv;
+};
+
+struct _NotifyClass {
+ GTypeClass parent_class;
+ void (*finalize) (Notify *self);
+ void (*run) (Notify* self, Scanner* scanner);
+};
+
+struct _ParamSpecNotify {
+ GParamSpec parent_instance;
+};
+
+struct _NotifyScanningChanged {
+ Notify parent_instance;
+ NotifyScanningChangedPrivate * priv;
+};
+
+struct _NotifyScanningChangedClass {
+ NotifyClass parent_class;
+};
+
+struct _NotifyUpdateDevices {
+ Notify parent_instance;
+ NotifyUpdateDevicesPrivate * priv;
+};
+
+struct _NotifyUpdateDevicesClass {
+ NotifyClass parent_class;
+};
+
+struct _NotifyUpdateDevicesPrivate {
+ GList* devices;
+};
+
+struct _NotifyRequestAuthorization {
+ Notify parent_instance;
+ NotifyRequestAuthorizationPrivate * priv;
+};
+
+struct _NotifyRequestAuthorizationClass {
+ NotifyClass parent_class;
+};
+
+struct _NotifyRequestAuthorizationPrivate {
+ gchar* resource;
+};
+
+struct _NotifyScanFailed {
+ Notify parent_instance;
+ NotifyScanFailedPrivate * priv;
+};
+
+struct _NotifyScanFailedClass {
+ NotifyClass parent_class;
+};
+
+struct _NotifyScanFailedPrivate {
+ gint error_code;
+ gchar* error_string;
+};
+
+struct _NotifyDocumentDone {
+ Notify parent_instance;
+ NotifyDocumentDonePrivate * priv;
+};
+
+struct _NotifyDocumentDoneClass {
+ NotifyClass parent_class;
+};
+
+struct _NotifyExpectPage {
+ Notify parent_instance;
+ NotifyExpectPagePrivate * priv;
+};
+
+struct _NotifyExpectPageClass {
+ NotifyClass parent_class;
+};
+
+struct _NotifyGotPageInfo {
+ Notify parent_instance;
+ NotifyGotPageInfoPrivate * priv;
+};
+
+struct _NotifyGotPageInfoClass {
+ NotifyClass parent_class;
+};
+
+struct _NotifyGotPageInfoPrivate {
+ gint job_id;
+ ScanPageInfo* info;
+};
+
+struct _Scanner {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ScannerPrivate * priv;
+ gint first_job_id;
+ gint job_id;
+};
+
+struct _ScannerClass {
+ GTypeClass parent_class;
+ void (*finalize) (Scanner *self);
+};
+
+struct _NotifyPageDone {
+ Notify parent_instance;
+ NotifyPageDonePrivate * priv;
+};
+
+struct _NotifyPageDoneClass {
+ NotifyClass parent_class;
+};
+
+struct _NotifyPageDonePrivate {
+ gint job_id;
+};
+
+struct _NotifyGotLine {
+ Notify parent_instance;
+ NotifyGotLinePrivate * priv;
+};
+
+struct _NotifyGotLineClass {
+ NotifyClass parent_class;
+};
+
+struct _NotifyGotLinePrivate {
+ gint job_id;
+ ScanLine* line;
+};
+
+struct _ScannerPrivate {
+ GThread* thread;
+ GAsyncQueue* request_queue;
+ GAsyncQueue* notify_queue;
+ GAsyncQueue* authorize_queue;
+ gchar* default_device;
+ ScanState state;
+ gboolean need_redetect;
+ GList* job_queue;
+ SANE_Handle handle;
+ gboolean have_handle;
+ gchar* current_device;
+ SANE_Parameters parameters;
+ SANE_Int option_index;
+ GHashTable* options;
+ guchar* buffer;
+ gint buffer_length1;
+ gint _buffer_size_;
+ gint n_used;
+ gint line_count;
+ gint pass_number;
+ gint page_number;
+ gint notified_page;
+ gboolean scanning;
+};
+
+struct _ParamSpecScanner {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer scan_device_parent_class = NULL;
+static gpointer scan_page_info_parent_class = NULL;
+static gpointer scan_line_parent_class = NULL;
+static gpointer scan_options_parent_class = NULL;
+static gpointer scan_job_parent_class = NULL;
+static gpointer request_parent_class = NULL;
+static gpointer request_redetect_parent_class = NULL;
+static gpointer request_cancel_parent_class = NULL;
+static gpointer request_start_scan_parent_class = NULL;
+static gpointer request_quit_parent_class = NULL;
+static gpointer credentials_parent_class = NULL;
+static gpointer notify_parent_class = NULL;
+static gpointer notify_scanning_changed_parent_class = NULL;
+static gpointer notify_update_devices_parent_class = NULL;
+static gpointer notify_request_authorization_parent_class = NULL;
+static gpointer notify_scan_failed_parent_class = NULL;
+static gpointer notify_document_done_parent_class = NULL;
+static gpointer notify_expect_page_parent_class = NULL;
+static gpointer notify_got_page_info_parent_class = NULL;
+static gpointer notify_page_done_parent_class = NULL;
+static gpointer notify_got_line_parent_class = NULL;
+static gpointer scanner_parent_class = NULL;
+static Scanner* scanner_scanner_object;
+static Scanner* scanner_scanner_object = NULL;
+
+gpointer scan_device_ref (gpointer instance);
+void scan_device_unref (gpointer instance);
+GParamSpec* param_spec_scan_device (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_scan_device (GValue* value, gpointer v_object);
+void value_take_scan_device (GValue* value, gpointer v_object);
+gpointer value_get_scan_device (const GValue* value);
+GType scan_device_get_type (void) G_GNUC_CONST;
+enum {
+ SCAN_DEVICE_DUMMY_PROPERTY
+};
+ScanDevice* scan_device_new (void);
+ScanDevice* scan_device_construct (GType object_type);
+static void scan_device_finalize (ScanDevice* obj);
+gpointer scan_page_info_ref (gpointer instance);
+void scan_page_info_unref (gpointer instance);
+GParamSpec* param_spec_scan_page_info (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_scan_page_info (GValue* value, gpointer v_object);
+void value_take_scan_page_info (GValue* value, gpointer v_object);
+gpointer value_get_scan_page_info (const GValue* value);
+GType scan_page_info_get_type (void) G_GNUC_CONST;
+enum {
+ SCAN_PAGE_INFO_DUMMY_PROPERTY
+};
+ScanPageInfo* scan_page_info_new (void);
+ScanPageInfo* scan_page_info_construct (GType object_type);
+static void scan_page_info_finalize (ScanPageInfo* obj);
+gpointer scan_line_ref (gpointer instance);
+void scan_line_unref (gpointer instance);
+GParamSpec* param_spec_scan_line (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_scan_line (GValue* value, gpointer v_object);
+void value_take_scan_line (GValue* value, gpointer v_object);
+gpointer value_get_scan_line (const GValue* value);
+GType scan_line_get_type (void) G_GNUC_CONST;
+enum {
+ SCAN_LINE_DUMMY_PROPERTY
+};
+ScanLine* scan_line_new (void);
+ScanLine* scan_line_construct (GType object_type);
+static void scan_line_finalize (ScanLine* obj);
+GType scan_mode_get_type (void) G_GNUC_CONST;
+GType scan_type_get_type (void) G_GNUC_CONST;
+gpointer scan_options_ref (gpointer instance);
+void scan_options_unref (gpointer instance);
+GParamSpec* param_spec_scan_options (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_scan_options (GValue* value, gpointer v_object);
+void value_take_scan_options (GValue* value, gpointer v_object);
+gpointer value_get_scan_options (const GValue* value);
+GType scan_options_get_type (void) G_GNUC_CONST;
+enum {
+ SCAN_OPTIONS_DUMMY_PROPERTY
+};
+ScanOptions* scan_options_new (void);
+ScanOptions* scan_options_construct (GType object_type);
+static void scan_options_finalize (ScanOptions* obj);
+gpointer scan_job_ref (gpointer instance);
+void scan_job_unref (gpointer instance);
+GParamSpec* param_spec_scan_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_scan_job (GValue* value, gpointer v_object);
+void value_take_scan_job (GValue* value, gpointer v_object);
+gpointer value_get_scan_job (const GValue* value);
+GType scan_job_get_type (void) G_GNUC_CONST;
+enum {
+ SCAN_JOB_DUMMY_PROPERTY
+};
+ScanJob* scan_job_new (void);
+ScanJob* scan_job_construct (GType object_type);
+static void scan_job_finalize (ScanJob* obj);
+gpointer request_ref (gpointer instance);
+void request_unref (gpointer instance);
+GParamSpec* param_spec_request (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_request (GValue* value, gpointer v_object);
+void value_take_request (GValue* value, gpointer v_object);
+gpointer value_get_request (const GValue* value);
+GType request_get_type (void) G_GNUC_CONST;
+enum {
+ REQUEST_DUMMY_PROPERTY
+};
+Request* request_new (void);
+Request* request_construct (GType object_type);
+static void request_finalize (Request* obj);
+GType request_redetect_get_type (void) G_GNUC_CONST;
+enum {
+ REQUEST_REDETECT_DUMMY_PROPERTY
+};
+RequestRedetect* request_redetect_new (void);
+RequestRedetect* request_redetect_construct (GType object_type);
+GType request_cancel_get_type (void) G_GNUC_CONST;
+enum {
+ REQUEST_CANCEL_DUMMY_PROPERTY
+};
+RequestCancel* request_cancel_new (void);
+RequestCancel* request_cancel_construct (GType object_type);
+GType request_start_scan_get_type (void) G_GNUC_CONST;
+enum {
+ REQUEST_START_SCAN_DUMMY_PROPERTY
+};
+RequestStartScan* request_start_scan_new (void);
+RequestStartScan* request_start_scan_construct (GType object_type);
+static void request_start_scan_finalize (Request* obj);
+GType request_quit_get_type (void) G_GNUC_CONST;
+enum {
+ REQUEST_QUIT_DUMMY_PROPERTY
+};
+RequestQuit* request_quit_new (void);
+RequestQuit* request_quit_construct (GType object_type);
+gpointer credentials_ref (gpointer instance);
+void credentials_unref (gpointer instance);
+GParamSpec* param_spec_credentials (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_credentials (GValue* value, gpointer v_object);
+void value_take_credentials (GValue* value, gpointer v_object);
+gpointer value_get_credentials (const GValue* value);
+GType credentials_get_type (void) G_GNUC_CONST;
+enum {
+ CREDENTIALS_DUMMY_PROPERTY
+};
+Credentials* credentials_new (void);
+Credentials* credentials_construct (GType object_type);
+static void credentials_finalize (Credentials* obj);
+GType scan_state_get_type (void) G_GNUC_CONST;
+gpointer notify_ref (gpointer instance);
+void notify_unref (gpointer instance);
+GParamSpec* param_spec_notify (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_notify (GValue* value, gpointer v_object);
+void value_take_notify (GValue* value, gpointer v_object);
+gpointer value_get_notify (const GValue* value);
+GType notify_get_type (void) G_GNUC_CONST;
+gpointer scanner_ref (gpointer instance);
+void scanner_unref (gpointer instance);
+GParamSpec* param_spec_scanner (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_scanner (GValue* value, gpointer v_object);
+void value_take_scanner (GValue* value, gpointer v_object);
+gpointer value_get_scanner (const GValue* value);
+GType scanner_get_type (void) G_GNUC_CONST;
+enum {
+ NOTIFY_DUMMY_PROPERTY
+};
+void notify_run (Notify* self, Scanner* scanner);
+static void notify_real_run (Notify* self, Scanner* scanner);
+Notify* notify_new (void);
+Notify* notify_construct (GType object_type);
+static void notify_finalize (Notify* obj);
+GType notify_scanning_changed_get_type (void) G_GNUC_CONST;
+enum {
+ NOTIFY_SCANNING_CHANGED_DUMMY_PROPERTY
+};
+static void notify_scanning_changed_real_run (Notify* base, Scanner* scanner);
+NotifyScanningChanged* notify_scanning_changed_new (void);
+NotifyScanningChanged* notify_scanning_changed_construct (GType object_type);
+GType notify_update_devices_get_type (void) G_GNUC_CONST;
+#define NOTIFY_UPDATE_DEVICES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_NOTIFY_UPDATE_DEVICES, NotifyUpdateDevicesPrivate))
+enum {
+ NOTIFY_UPDATE_DEVICES_DUMMY_PROPERTY
+};
+static void _scan_device_unref0_ (gpointer var);
+static void _g_list_free__scan_device_unref0_ (GList* self);
+NotifyUpdateDevices* notify_update_devices_new (GList* devices);
+NotifyUpdateDevices* notify_update_devices_construct (GType object_type, GList* devices);
+static void notify_update_devices_real_run (Notify* base, Scanner* scanner);
+static void notify_update_devices_finalize (Notify* obj);
+GType notify_request_authorization_get_type (void) G_GNUC_CONST;
+#define NOTIFY_REQUEST_AUTHORIZATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_NOTIFY_REQUEST_AUTHORIZATION, NotifyRequestAuthorizationPrivate))
+enum {
+ NOTIFY_REQUEST_AUTHORIZATION_DUMMY_PROPERTY
+};
+NotifyRequestAuthorization* notify_request_authorization_new (const gchar* resource);
+NotifyRequestAuthorization* notify_request_authorization_construct (GType object_type, const gchar* resource);
+static void notify_request_authorization_real_run (Notify* base, Scanner* scanner);
+static void notify_request_authorization_finalize (Notify* obj);
+GType notify_scan_failed_get_type (void) G_GNUC_CONST;
+#define NOTIFY_SCAN_FAILED_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_NOTIFY_SCAN_FAILED, NotifyScanFailedPrivate))
+enum {
+ NOTIFY_SCAN_FAILED_DUMMY_PROPERTY
+};
+NotifyScanFailed* notify_scan_failed_new (gint error_code, const gchar* error_string);
+NotifyScanFailed* notify_scan_failed_construct (GType object_type, gint error_code, const gchar* error_string);
+static void notify_scan_failed_real_run (Notify* base, Scanner* scanner);
+static void notify_scan_failed_finalize (Notify* obj);
+GType notify_document_done_get_type (void) G_GNUC_CONST;
+enum {
+ NOTIFY_DOCUMENT_DONE_DUMMY_PROPERTY
+};
+static void notify_document_done_real_run (Notify* base, Scanner* scanner);
+NotifyDocumentDone* notify_document_done_new (void);
+NotifyDocumentDone* notify_document_done_construct (GType object_type);
+GType notify_expect_page_get_type (void) G_GNUC_CONST;
+enum {
+ NOTIFY_EXPECT_PAGE_DUMMY_PROPERTY
+};
+static void notify_expect_page_real_run (Notify* base, Scanner* scanner);
+NotifyExpectPage* notify_expect_page_new (void);
+NotifyExpectPage* notify_expect_page_construct (GType object_type);
+GType notify_got_page_info_get_type (void) G_GNUC_CONST;
+#define NOTIFY_GOT_PAGE_INFO_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_NOTIFY_GOT_PAGE_INFO, NotifyGotPageInfoPrivate))
+enum {
+ NOTIFY_GOT_PAGE_INFO_DUMMY_PROPERTY
+};
+NotifyGotPageInfo* notify_got_page_info_new (gint job_id, ScanPageInfo* info);
+NotifyGotPageInfo* notify_got_page_info_construct (GType object_type, gint job_id, ScanPageInfo* info);
+static void notify_got_page_info_real_run (Notify* base, Scanner* scanner);
+static void notify_got_page_info_finalize (Notify* obj);
+GType notify_page_done_get_type (void) G_GNUC_CONST;
+#define NOTIFY_PAGE_DONE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_NOTIFY_PAGE_DONE, NotifyPageDonePrivate))
+enum {
+ NOTIFY_PAGE_DONE_DUMMY_PROPERTY
+};
+NotifyPageDone* notify_page_done_new (gint job_id);
+NotifyPageDone* notify_page_done_construct (GType object_type, gint job_id);
+static void notify_page_done_real_run (Notify* base, Scanner* scanner);
+static void notify_page_done_finalize (Notify* obj);
+GType notify_got_line_get_type (void) G_GNUC_CONST;
+#define NOTIFY_GOT_LINE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_NOTIFY_GOT_LINE, NotifyGotLinePrivate))
+enum {
+ NOTIFY_GOT_LINE_DUMMY_PROPERTY
+};
+NotifyGotLine* notify_got_line_new (gint job_id, ScanLine* line);
+NotifyGotLine* notify_got_line_construct (GType object_type, gint job_id, ScanLine* line);
+static void notify_got_line_real_run (Notify* base, Scanner* scanner);
+static void notify_got_line_finalize (Notify* obj);
+#define SCANNER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SCANNER, ScannerPrivate))
+enum {
+ SCANNER_DUMMY_PROPERTY
+};
+static void _scan_job_unref0_ (gpointer var);
+static void _g_list_free__scan_job_unref0_ (GList* self);
+static Scanner* scanner_new (void);
+static Scanner* scanner_construct (GType object_type);
+static void _request_unref0_ (gpointer var);
+static void _notify_unref0_ (gpointer var);
+static void _credentials_unref0_ (gpointer var);
+Scanner* scanner_get_instance (void);
+static gboolean scanner_notify_idle_cb (Scanner* self);
+static void scanner_notify (Scanner* self, Notify* notification);
+static gboolean _scanner_notify_idle_cb_gsource_func (gpointer self);
+static void scanner_set_scanning (Scanner* self, gboolean is_scanning);
+static gint scanner_get_device_weight (const gchar* device);
+static gint scanner_compare_devices (ScanDevice* device1, ScanDevice* device2);
+static void scanner_do_redetect (Scanner* self);
+static gint _scanner_compare_devices_gcompare_func (gconstpointer a, gconstpointer b);
+static gint scanner_scale_int (Scanner* self, gint source_min, gint source_max, SANE_Option_Descriptor* option, gint value);
+static gboolean scanner_set_default_option (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index);
+static void scanner_set_bool_option (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index, gboolean value, gboolean* _result_);
+static void scanner_set_int_option (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index, gint value, gint* _result_);
+static void scanner_set_fixed_option (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index, gdouble value, gdouble* _result_);
+static void scanner_set_fixed_or_int_option (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index, gdouble value, gdouble* _result_);
+static void scanner_set_option_to_max (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index);
+static gboolean scanner_set_string_option (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index, const gchar* value, gchar** _result_);
+static gboolean scanner_set_constrained_string_option (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index, gchar** values, int values_length1, gchar** _result_);
+static void scanner_log_option (Scanner* self, SANE_Int index, SANE_Option_Descriptor* option);
+static void scanner_authorization_cb (const gchar* resource, gchar* username, int username_length1, gchar* password, int password_length1);
+void scanner_authorize (Scanner* self, const gchar* username, const gchar* password);
+static void scanner_close_device (Scanner* self);
+static void scanner_fail_scan (Scanner* self, gint error_code, const gchar* error_string);
+static gboolean scanner_handle_requests (Scanner* self);
+static void scanner_do_open (Scanner* self);
+static void _g_free0_ (gpointer var);
+static void scanner_do_get_option (Scanner* self);
+static SANE_Option_Descriptor* scanner_get_option_by_name (Scanner* self, SANE_Handle handle, const gchar* name, gint* index);
+static gdouble scanner_convert_page_size (Scanner* self, SANE_Option_Descriptor* option, gdouble size, gdouble dpi);
+static void scanner_do_complete_document (Scanner* self);
+static void scanner_do_start (Scanner* self);
+static void scanner_do_get_parameters (Scanner* self);
+static void scanner_do_complete_page (Scanner* self);
+static void scanner_do_read (Scanner* self);
+static void* scanner_scan_thread (Scanner* self);
+static void _scanner_authorization_cb_sane_authcallback (const gchar* resource, gchar* username, gchar* password);
+void scanner_redetect (Scanner* self);
+void scanner_start (Scanner* self);
+static gpointer _scanner_scan_thread_gthread_func (gpointer self);
+gboolean scanner_is_scanning (Scanner* self);
+static gchar* scanner_get_scan_mode_string (Scanner* self, ScanMode mode);
+static gchar* scanner_get_scan_type_string (Scanner* self, ScanType type);
+void scanner_scan (Scanner* self, const gchar* device, ScanOptions* options);
+void scanner_cancel (Scanner* self);
+void scanner_free (Scanner* self);
+static void g_cclosure_user_marshal_VOID__SCAN_PAGE_INFO (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void g_cclosure_user_marshal_VOID__SCAN_LINE (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void g_cclosure_user_marshal_VOID__INT_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void scanner_finalize (Scanner* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+ScanDevice* scan_device_construct (GType object_type) {
+ ScanDevice* self = NULL;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (ScanDevice*) g_type_create_instance (object_type);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 985 "scanner.c"
+}
+
+
+ScanDevice* scan_device_new (void) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return scan_device_construct (TYPE_SCAN_DEVICE);
+#line 992 "scanner.c"
+}
+
+
+static void value_scan_device_init (GValue* value) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 999 "scanner.c"
+}
+
+
+static void value_scan_device_free_value (GValue* value) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (value->data[0].v_pointer) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_device_unref (value->data[0].v_pointer);
+#line 1008 "scanner.c"
+ }
+}
+
+
+static void value_scan_device_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (src_value->data[0].v_pointer) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = scan_device_ref (src_value->data[0].v_pointer);
+#line 1018 "scanner.c"
+ } else {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1022 "scanner.c"
+ }
+}
+
+
+static gpointer value_scan_device_peek_pointer (const GValue* value) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 1030 "scanner.c"
+}
+
+
+static gchar* value_scan_device_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (collect_values[0].v_pointer) {
+#line 1037 "scanner.c"
+ ScanDevice* object;
+ object = collect_values[0].v_pointer;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1044 "scanner.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1048 "scanner.c"
+ }
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = scan_device_ref (object);
+#line 1052 "scanner.c"
+ } else {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 1056 "scanner.c"
+ }
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 1060 "scanner.c"
+}
+
+
+static gchar* value_scan_device_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ ScanDevice** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!object_p) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1071 "scanner.c"
+ }
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!value->data[0].v_pointer) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = NULL;
+#line 1077 "scanner.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1081 "scanner.c"
+ } else {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = scan_device_ref (value->data[0].v_pointer);
+#line 1085 "scanner.c"
+ }
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 1089 "scanner.c"
+}
+
+
+GParamSpec* param_spec_scan_device (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecScanDevice* spec;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SCAN_DEVICE), NULL);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return G_PARAM_SPEC (spec);
+#line 1103 "scanner.c"
+}
+
+
+gpointer value_get_scan_device (const GValue* value) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCAN_DEVICE), NULL);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 1112 "scanner.c"
+}
+
+
+void value_set_scan_device (GValue* value, gpointer v_object) {
+ ScanDevice* old;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCAN_DEVICE));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SCAN_DEVICE));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_device_ref (value->data[0].v_pointer);
+#line 1132 "scanner.c"
+ } else {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 1136 "scanner.c"
+ }
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_device_unref (old);
+#line 1142 "scanner.c"
+ }
+}
+
+
+void value_take_scan_device (GValue* value, gpointer v_object) {
+ ScanDevice* old;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCAN_DEVICE));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SCAN_DEVICE));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 1161 "scanner.c"
+ } else {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 1165 "scanner.c"
+ }
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_device_unref (old);
+#line 1171 "scanner.c"
+ }
+}
+
+
+static void scan_device_class_init (ScanDeviceClass * klass) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_device_parent_class = g_type_class_peek_parent (klass);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ SCAN_DEVICE_CLASS (klass)->finalize = scan_device_finalize;
+#line 1181 "scanner.c"
+}
+
+
+static void scan_device_instance_init (ScanDevice * self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->ref_count = 1;
+#line 1188 "scanner.c"
+}
+
+
+static void scan_device_finalize (ScanDevice* obj) {
+ ScanDevice * self;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SCAN_DEVICE, ScanDevice);
+#line 16 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->name);
+#line 17 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->label);
+#line 1200 "scanner.c"
+}
+
+
+GType scan_device_get_type (void) {
+ static volatile gsize scan_device_type_id__volatile = 0;
+ if (g_once_init_enter (&scan_device_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_scan_device_init, value_scan_device_free_value, value_scan_device_copy_value, value_scan_device_peek_pointer, "p", value_scan_device_collect_value, "p", value_scan_device_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ScanDeviceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) scan_device_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ScanDevice), 0, (GInstanceInitFunc) scan_device_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType scan_device_type_id;
+ scan_device_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ScanDevice", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&scan_device_type_id__volatile, scan_device_type_id);
+ }
+ return scan_device_type_id__volatile;
+}
+
+
+gpointer scan_device_ref (gpointer instance) {
+ ScanDevice* self;
+ self = instance;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return instance;
+#line 1225 "scanner.c"
+}
+
+
+void scan_device_unref (gpointer instance) {
+ ScanDevice* self;
+ self = instance;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ SCAN_DEVICE_GET_CLASS (self)->finalize (self);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1238 "scanner.c"
+ }
+}
+
+
+ScanPageInfo* scan_page_info_construct (GType object_type) {
+ ScanPageInfo* self = NULL;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (ScanPageInfo*) g_type_create_instance (object_type);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 1249 "scanner.c"
+}
+
+
+ScanPageInfo* scan_page_info_new (void) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return scan_page_info_construct (TYPE_SCAN_PAGE_INFO);
+#line 1256 "scanner.c"
+}
+
+
+static void value_scan_page_info_init (GValue* value) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 1263 "scanner.c"
+}
+
+
+static void value_scan_page_info_free_value (GValue* value) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (value->data[0].v_pointer) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_page_info_unref (value->data[0].v_pointer);
+#line 1272 "scanner.c"
+ }
+}
+
+
+static void value_scan_page_info_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (src_value->data[0].v_pointer) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = scan_page_info_ref (src_value->data[0].v_pointer);
+#line 1282 "scanner.c"
+ } else {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1286 "scanner.c"
+ }
+}
+
+
+static gpointer value_scan_page_info_peek_pointer (const GValue* value) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 1294 "scanner.c"
+}
+
+
+static gchar* value_scan_page_info_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (collect_values[0].v_pointer) {
+#line 1301 "scanner.c"
+ ScanPageInfo* object;
+ object = collect_values[0].v_pointer;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1308 "scanner.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1312 "scanner.c"
+ }
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = scan_page_info_ref (object);
+#line 1316 "scanner.c"
+ } else {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 1320 "scanner.c"
+ }
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 1324 "scanner.c"
+}
+
+
+static gchar* value_scan_page_info_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ ScanPageInfo** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!object_p) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1335 "scanner.c"
+ }
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!value->data[0].v_pointer) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = NULL;
+#line 1341 "scanner.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1345 "scanner.c"
+ } else {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = scan_page_info_ref (value->data[0].v_pointer);
+#line 1349 "scanner.c"
+ }
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 1353 "scanner.c"
+}
+
+
+GParamSpec* param_spec_scan_page_info (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecScanPageInfo* spec;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SCAN_PAGE_INFO), NULL);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return G_PARAM_SPEC (spec);
+#line 1367 "scanner.c"
+}
+
+
+gpointer value_get_scan_page_info (const GValue* value) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCAN_PAGE_INFO), NULL);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 1376 "scanner.c"
+}
+
+
+void value_set_scan_page_info (GValue* value, gpointer v_object) {
+ ScanPageInfo* old;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCAN_PAGE_INFO));
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SCAN_PAGE_INFO));
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_page_info_ref (value->data[0].v_pointer);
+#line 1396 "scanner.c"
+ } else {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 1400 "scanner.c"
+ }
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_page_info_unref (old);
+#line 1406 "scanner.c"
+ }
+}
+
+
+void value_take_scan_page_info (GValue* value, gpointer v_object) {
+ ScanPageInfo* old;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCAN_PAGE_INFO));
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SCAN_PAGE_INFO));
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 1425 "scanner.c"
+ } else {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 1429 "scanner.c"
+ }
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_page_info_unref (old);
+#line 1435 "scanner.c"
+ }
+}
+
+
+static void scan_page_info_class_init (ScanPageInfoClass * klass) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_page_info_parent_class = g_type_class_peek_parent (klass);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ SCAN_PAGE_INFO_CLASS (klass)->finalize = scan_page_info_finalize;
+#line 1445 "scanner.c"
+}
+
+
+static void scan_page_info_instance_init (ScanPageInfo * self) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->ref_count = 1;
+#line 1452 "scanner.c"
+}
+
+
+static void scan_page_info_finalize (ScanPageInfo* obj) {
+ ScanPageInfo * self;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SCAN_PAGE_INFO, ScanPageInfo);
+#line 36 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->device);
+#line 1462 "scanner.c"
+}
+
+
+GType scan_page_info_get_type (void) {
+ static volatile gsize scan_page_info_type_id__volatile = 0;
+ if (g_once_init_enter (&scan_page_info_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_scan_page_info_init, value_scan_page_info_free_value, value_scan_page_info_copy_value, value_scan_page_info_peek_pointer, "p", value_scan_page_info_collect_value, "p", value_scan_page_info_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ScanPageInfoClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) scan_page_info_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ScanPageInfo), 0, (GInstanceInitFunc) scan_page_info_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType scan_page_info_type_id;
+ scan_page_info_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ScanPageInfo", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&scan_page_info_type_id__volatile, scan_page_info_type_id);
+ }
+ return scan_page_info_type_id__volatile;
+}
+
+
+gpointer scan_page_info_ref (gpointer instance) {
+ ScanPageInfo* self;
+ self = instance;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return instance;
+#line 1487 "scanner.c"
+}
+
+
+void scan_page_info_unref (gpointer instance) {
+ ScanPageInfo* self;
+ self = instance;
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ SCAN_PAGE_INFO_GET_CLASS (self)->finalize (self);
+#line 20 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1500 "scanner.c"
+ }
+}
+
+
+ScanLine* scan_line_construct (GType object_type) {
+ ScanLine* self = NULL;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (ScanLine*) g_type_create_instance (object_type);
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 1511 "scanner.c"
+}
+
+
+ScanLine* scan_line_new (void) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return scan_line_construct (TYPE_SCAN_LINE);
+#line 1518 "scanner.c"
+}
+
+
+static void value_scan_line_init (GValue* value) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 1525 "scanner.c"
+}
+
+
+static void value_scan_line_free_value (GValue* value) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (value->data[0].v_pointer) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_line_unref (value->data[0].v_pointer);
+#line 1534 "scanner.c"
+ }
+}
+
+
+static void value_scan_line_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (src_value->data[0].v_pointer) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = scan_line_ref (src_value->data[0].v_pointer);
+#line 1544 "scanner.c"
+ } else {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1548 "scanner.c"
+ }
+}
+
+
+static gpointer value_scan_line_peek_pointer (const GValue* value) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 1556 "scanner.c"
+}
+
+
+static gchar* value_scan_line_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (collect_values[0].v_pointer) {
+#line 1563 "scanner.c"
+ ScanLine* object;
+ object = collect_values[0].v_pointer;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1570 "scanner.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1574 "scanner.c"
+ }
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = scan_line_ref (object);
+#line 1578 "scanner.c"
+ } else {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 1582 "scanner.c"
+ }
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 1586 "scanner.c"
+}
+
+
+static gchar* value_scan_line_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ ScanLine** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!object_p) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1597 "scanner.c"
+ }
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!value->data[0].v_pointer) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = NULL;
+#line 1603 "scanner.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1607 "scanner.c"
+ } else {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = scan_line_ref (value->data[0].v_pointer);
+#line 1611 "scanner.c"
+ }
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 1615 "scanner.c"
+}
+
+
+GParamSpec* param_spec_scan_line (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecScanLine* spec;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SCAN_LINE), NULL);
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return G_PARAM_SPEC (spec);
+#line 1629 "scanner.c"
+}
+
+
+gpointer value_get_scan_line (const GValue* value) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCAN_LINE), NULL);
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 1638 "scanner.c"
+}
+
+
+void value_set_scan_line (GValue* value, gpointer v_object) {
+ ScanLine* old;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCAN_LINE));
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SCAN_LINE));
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_line_ref (value->data[0].v_pointer);
+#line 1658 "scanner.c"
+ } else {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 1662 "scanner.c"
+ }
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_line_unref (old);
+#line 1668 "scanner.c"
+ }
+}
+
+
+void value_take_scan_line (GValue* value, gpointer v_object) {
+ ScanLine* old;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCAN_LINE));
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SCAN_LINE));
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 1687 "scanner.c"
+ } else {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 1691 "scanner.c"
+ }
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_line_unref (old);
+#line 1697 "scanner.c"
+ }
+}
+
+
+static void scan_line_class_init (ScanLineClass * klass) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_line_parent_class = g_type_class_peek_parent (klass);
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ SCAN_LINE_CLASS (klass)->finalize = scan_line_finalize;
+#line 1707 "scanner.c"
+}
+
+
+static void scan_line_instance_init (ScanLine * self) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->ref_count = 1;
+#line 1714 "scanner.c"
+}
+
+
+static void scan_line_finalize (ScanLine* obj) {
+ ScanLine * self;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SCAN_LINE, ScanLine);
+#line 55 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->data = (g_free (self->data), NULL);
+#line 1724 "scanner.c"
+}
+
+
+GType scan_line_get_type (void) {
+ static volatile gsize scan_line_type_id__volatile = 0;
+ if (g_once_init_enter (&scan_line_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_scan_line_init, value_scan_line_free_value, value_scan_line_copy_value, value_scan_line_peek_pointer, "p", value_scan_line_collect_value, "p", value_scan_line_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ScanLineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) scan_line_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ScanLine), 0, (GInstanceInitFunc) scan_line_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType scan_line_type_id;
+ scan_line_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ScanLine", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&scan_line_type_id__volatile, scan_line_type_id);
+ }
+ return scan_line_type_id__volatile;
+}
+
+
+gpointer scan_line_ref (gpointer instance) {
+ ScanLine* self;
+ self = instance;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return instance;
+#line 1749 "scanner.c"
+}
+
+
+void scan_line_unref (gpointer instance) {
+ ScanLine* self;
+ self = instance;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ SCAN_LINE_GET_CLASS (self)->finalize (self);
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1762 "scanner.c"
+ }
+}
+
+
+GType scan_mode_get_type (void) {
+ static volatile gsize scan_mode_type_id__volatile = 0;
+ if (g_once_init_enter (&scan_mode_type_id__volatile)) {
+ static const GEnumValue values[] = {{SCAN_MODE_DEFAULT, "SCAN_MODE_DEFAULT", "default"}, {SCAN_MODE_COLOR, "SCAN_MODE_COLOR", "color"}, {SCAN_MODE_GRAY, "SCAN_MODE_GRAY", "gray"}, {SCAN_MODE_LINEART, "SCAN_MODE_LINEART", "lineart"}, {0, NULL, NULL}};
+ GType scan_mode_type_id;
+ scan_mode_type_id = g_enum_register_static ("ScanMode", values);
+ g_once_init_leave (&scan_mode_type_id__volatile, scan_mode_type_id);
+ }
+ return scan_mode_type_id__volatile;
+}
+
+
+GType scan_type_get_type (void) {
+ static volatile gsize scan_type_type_id__volatile = 0;
+ if (g_once_init_enter (&scan_type_type_id__volatile)) {
+ static const GEnumValue values[] = {{SCAN_TYPE_SINGLE, "SCAN_TYPE_SINGLE", "single"}, {SCAN_TYPE_ADF_FRONT, "SCAN_TYPE_ADF_FRONT", "adf-front"}, {SCAN_TYPE_ADF_BACK, "SCAN_TYPE_ADF_BACK", "adf-back"}, {SCAN_TYPE_ADF_BOTH, "SCAN_TYPE_ADF_BOTH", "adf-both"}, {0, NULL, NULL}};
+ GType scan_type_type_id;
+ scan_type_type_id = g_enum_register_static ("ScanType", values);
+ g_once_init_leave (&scan_type_type_id__volatile, scan_type_type_id);
+ }
+ return scan_type_type_id__volatile;
+}
+
+
+ScanOptions* scan_options_construct (GType object_type) {
+ ScanOptions* self = NULL;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (ScanOptions*) g_type_create_instance (object_type);
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 1797 "scanner.c"
+}
+
+
+ScanOptions* scan_options_new (void) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return scan_options_construct (TYPE_SCAN_OPTIONS);
+#line 1804 "scanner.c"
+}
+
+
+static void value_scan_options_init (GValue* value) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 1811 "scanner.c"
+}
+
+
+static void value_scan_options_free_value (GValue* value) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (value->data[0].v_pointer) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_options_unref (value->data[0].v_pointer);
+#line 1820 "scanner.c"
+ }
+}
+
+
+static void value_scan_options_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (src_value->data[0].v_pointer) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = scan_options_ref (src_value->data[0].v_pointer);
+#line 1830 "scanner.c"
+ } else {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1834 "scanner.c"
+ }
+}
+
+
+static gpointer value_scan_options_peek_pointer (const GValue* value) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 1842 "scanner.c"
+}
+
+
+static gchar* value_scan_options_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (collect_values[0].v_pointer) {
+#line 1849 "scanner.c"
+ ScanOptions* object;
+ object = collect_values[0].v_pointer;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1856 "scanner.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1860 "scanner.c"
+ }
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = scan_options_ref (object);
+#line 1864 "scanner.c"
+ } else {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 1868 "scanner.c"
+ }
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 1872 "scanner.c"
+}
+
+
+static gchar* value_scan_options_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ ScanOptions** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!object_p) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1883 "scanner.c"
+ }
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!value->data[0].v_pointer) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = NULL;
+#line 1889 "scanner.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1893 "scanner.c"
+ } else {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = scan_options_ref (value->data[0].v_pointer);
+#line 1897 "scanner.c"
+ }
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 1901 "scanner.c"
+}
+
+
+GParamSpec* param_spec_scan_options (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecScanOptions* spec;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SCAN_OPTIONS), NULL);
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return G_PARAM_SPEC (spec);
+#line 1915 "scanner.c"
+}
+
+
+gpointer value_get_scan_options (const GValue* value) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCAN_OPTIONS), NULL);
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 1924 "scanner.c"
+}
+
+
+void value_set_scan_options (GValue* value, gpointer v_object) {
+ ScanOptions* old;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCAN_OPTIONS));
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SCAN_OPTIONS));
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_options_ref (value->data[0].v_pointer);
+#line 1944 "scanner.c"
+ } else {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 1948 "scanner.c"
+ }
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_options_unref (old);
+#line 1954 "scanner.c"
+ }
+}
+
+
+void value_take_scan_options (GValue* value, gpointer v_object) {
+ ScanOptions* old;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCAN_OPTIONS));
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SCAN_OPTIONS));
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 1973 "scanner.c"
+ } else {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 1977 "scanner.c"
+ }
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_options_unref (old);
+#line 1983 "scanner.c"
+ }
+}
+
+
+static void scan_options_class_init (ScanOptionsClass * klass) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_options_parent_class = g_type_class_peek_parent (klass);
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ SCAN_OPTIONS_CLASS (klass)->finalize = scan_options_finalize;
+#line 1993 "scanner.c"
+}
+
+
+static void scan_options_instance_init (ScanOptions * self) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->ref_count = 1;
+#line 2000 "scanner.c"
+}
+
+
+static void scan_options_finalize (ScanOptions* obj) {
+ ScanOptions * self;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SCAN_OPTIONS, ScanOptions);
+#line 2008 "scanner.c"
+}
+
+
+GType scan_options_get_type (void) {
+ static volatile gsize scan_options_type_id__volatile = 0;
+ if (g_once_init_enter (&scan_options_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_scan_options_init, value_scan_options_free_value, value_scan_options_copy_value, value_scan_options_peek_pointer, "p", value_scan_options_collect_value, "p", value_scan_options_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ScanOptionsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) scan_options_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ScanOptions), 0, (GInstanceInitFunc) scan_options_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType scan_options_type_id;
+ scan_options_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ScanOptions", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&scan_options_type_id__volatile, scan_options_type_id);
+ }
+ return scan_options_type_id__volatile;
+}
+
+
+gpointer scan_options_ref (gpointer instance) {
+ ScanOptions* self;
+ self = instance;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return instance;
+#line 2033 "scanner.c"
+}
+
+
+void scan_options_unref (gpointer instance) {
+ ScanOptions* self;
+ self = instance;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ SCAN_OPTIONS_GET_CLASS (self)->finalize (self);
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2046 "scanner.c"
+ }
+}
+
+
+ScanJob* scan_job_construct (GType object_type) {
+ ScanJob* self = NULL;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (ScanJob*) g_type_create_instance (object_type);
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 2057 "scanner.c"
+}
+
+
+ScanJob* scan_job_new (void) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return scan_job_construct (TYPE_SCAN_JOB);
+#line 2064 "scanner.c"
+}
+
+
+static void value_scan_job_init (GValue* value) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 2071 "scanner.c"
+}
+
+
+static void value_scan_job_free_value (GValue* value) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (value->data[0].v_pointer) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_job_unref (value->data[0].v_pointer);
+#line 2080 "scanner.c"
+ }
+}
+
+
+static void value_scan_job_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (src_value->data[0].v_pointer) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = scan_job_ref (src_value->data[0].v_pointer);
+#line 2090 "scanner.c"
+ } else {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2094 "scanner.c"
+ }
+}
+
+
+static gpointer value_scan_job_peek_pointer (const GValue* value) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 2102 "scanner.c"
+}
+
+
+static gchar* value_scan_job_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (collect_values[0].v_pointer) {
+#line 2109 "scanner.c"
+ ScanJob* object;
+ object = collect_values[0].v_pointer;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2116 "scanner.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2120 "scanner.c"
+ }
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = scan_job_ref (object);
+#line 2124 "scanner.c"
+ } else {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 2128 "scanner.c"
+ }
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 2132 "scanner.c"
+}
+
+
+static gchar* value_scan_job_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ ScanJob** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!object_p) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2143 "scanner.c"
+ }
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!value->data[0].v_pointer) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = NULL;
+#line 2149 "scanner.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2153 "scanner.c"
+ } else {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = scan_job_ref (value->data[0].v_pointer);
+#line 2157 "scanner.c"
+ }
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 2161 "scanner.c"
+}
+
+
+GParamSpec* param_spec_scan_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecScanJob* spec;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SCAN_JOB), NULL);
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return G_PARAM_SPEC (spec);
+#line 2175 "scanner.c"
+}
+
+
+gpointer value_get_scan_job (const GValue* value) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCAN_JOB), NULL);
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 2184 "scanner.c"
+}
+
+
+void value_set_scan_job (GValue* value, gpointer v_object) {
+ ScanJob* old;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCAN_JOB));
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SCAN_JOB));
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_job_ref (value->data[0].v_pointer);
+#line 2204 "scanner.c"
+ } else {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 2208 "scanner.c"
+ }
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_job_unref (old);
+#line 2214 "scanner.c"
+ }
+}
+
+
+void value_take_scan_job (GValue* value, gpointer v_object) {
+ ScanJob* old;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCAN_JOB));
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SCAN_JOB));
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 2233 "scanner.c"
+ } else {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 2237 "scanner.c"
+ }
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_job_unref (old);
+#line 2243 "scanner.c"
+ }
+}
+
+
+static void scan_job_class_init (ScanJobClass * klass) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_job_parent_class = g_type_class_peek_parent (klass);
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ SCAN_JOB_CLASS (klass)->finalize = scan_job_finalize;
+#line 2253 "scanner.c"
+}
+
+
+static void scan_job_instance_init (ScanJob * self) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->ref_count = 1;
+#line 2260 "scanner.c"
+}
+
+
+static void scan_job_finalize (ScanJob* obj) {
+ ScanJob * self;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SCAN_JOB, ScanJob);
+#line 90 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->device);
+#line 2270 "scanner.c"
+}
+
+
+GType scan_job_get_type (void) {
+ static volatile gsize scan_job_type_id__volatile = 0;
+ if (g_once_init_enter (&scan_job_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_scan_job_init, value_scan_job_free_value, value_scan_job_copy_value, value_scan_job_peek_pointer, "p", value_scan_job_collect_value, "p", value_scan_job_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ScanJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) scan_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ScanJob), 0, (GInstanceInitFunc) scan_job_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType scan_job_type_id;
+ scan_job_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ScanJob", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&scan_job_type_id__volatile, scan_job_type_id);
+ }
+ return scan_job_type_id__volatile;
+}
+
+
+gpointer scan_job_ref (gpointer instance) {
+ ScanJob* self;
+ self = instance;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return instance;
+#line 2295 "scanner.c"
+}
+
+
+void scan_job_unref (gpointer instance) {
+ ScanJob* self;
+ self = instance;
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ SCAN_JOB_GET_CLASS (self)->finalize (self);
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2308 "scanner.c"
+ }
+}
+
+
+Request* request_construct (GType object_type) {
+ Request* self = NULL;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (Request*) g_type_create_instance (object_type);
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 2319 "scanner.c"
+}
+
+
+Request* request_new (void) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return request_construct (TYPE_REQUEST);
+#line 2326 "scanner.c"
+}
+
+
+static void value_request_init (GValue* value) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 2333 "scanner.c"
+}
+
+
+static void value_request_free_value (GValue* value) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (value->data[0].v_pointer) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ request_unref (value->data[0].v_pointer);
+#line 2342 "scanner.c"
+ }
+}
+
+
+static void value_request_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (src_value->data[0].v_pointer) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = request_ref (src_value->data[0].v_pointer);
+#line 2352 "scanner.c"
+ } else {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2356 "scanner.c"
+ }
+}
+
+
+static gpointer value_request_peek_pointer (const GValue* value) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 2364 "scanner.c"
+}
+
+
+static gchar* value_request_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (collect_values[0].v_pointer) {
+#line 2371 "scanner.c"
+ Request* object;
+ object = collect_values[0].v_pointer;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2378 "scanner.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2382 "scanner.c"
+ }
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = request_ref (object);
+#line 2386 "scanner.c"
+ } else {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 2390 "scanner.c"
+ }
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 2394 "scanner.c"
+}
+
+
+static gchar* value_request_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ Request** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!object_p) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2405 "scanner.c"
+ }
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!value->data[0].v_pointer) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = NULL;
+#line 2411 "scanner.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2415 "scanner.c"
+ } else {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = request_ref (value->data[0].v_pointer);
+#line 2419 "scanner.c"
+ }
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 2423 "scanner.c"
+}
+
+
+GParamSpec* param_spec_request (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecRequest* spec;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_REQUEST), NULL);
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return G_PARAM_SPEC (spec);
+#line 2437 "scanner.c"
+}
+
+
+gpointer value_get_request (const GValue* value) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_REQUEST), NULL);
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 2446 "scanner.c"
+}
+
+
+void value_set_request (GValue* value, gpointer v_object) {
+ Request* old;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_REQUEST));
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_REQUEST));
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ request_ref (value->data[0].v_pointer);
+#line 2466 "scanner.c"
+ } else {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 2470 "scanner.c"
+ }
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ request_unref (old);
+#line 2476 "scanner.c"
+ }
+}
+
+
+void value_take_request (GValue* value, gpointer v_object) {
+ Request* old;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_REQUEST));
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_REQUEST));
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 2495 "scanner.c"
+ } else {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 2499 "scanner.c"
+ }
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ request_unref (old);
+#line 2505 "scanner.c"
+ }
+}
+
+
+static void request_class_init (RequestClass * klass) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ request_parent_class = g_type_class_peek_parent (klass);
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ REQUEST_CLASS (klass)->finalize = request_finalize;
+#line 2515 "scanner.c"
+}
+
+
+static void request_instance_init (Request * self) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->ref_count = 1;
+#line 2522 "scanner.c"
+}
+
+
+static void request_finalize (Request* obj) {
+ Request * self;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_REQUEST, Request);
+#line 2530 "scanner.c"
+}
+
+
+GType request_get_type (void) {
+ static volatile gsize request_type_id__volatile = 0;
+ if (g_once_init_enter (&request_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_request_init, value_request_free_value, value_request_copy_value, value_request_peek_pointer, "p", value_request_collect_value, "p", value_request_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (RequestClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) request_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Request), 0, (GInstanceInitFunc) request_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType request_type_id;
+ request_type_id = g_type_register_fundamental (g_type_fundamental_next (), "Request", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&request_type_id__volatile, request_type_id);
+ }
+ return request_type_id__volatile;
+}
+
+
+gpointer request_ref (gpointer instance) {
+ Request* self;
+ self = instance;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return instance;
+#line 2555 "scanner.c"
+}
+
+
+void request_unref (gpointer instance) {
+ Request* self;
+ self = instance;
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ REQUEST_GET_CLASS (self)->finalize (self);
+#line 101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2568 "scanner.c"
+ }
+}
+
+
+RequestRedetect* request_redetect_construct (GType object_type) {
+ RequestRedetect* self = NULL;
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (RequestRedetect*) request_construct (object_type);
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 2579 "scanner.c"
+}
+
+
+RequestRedetect* request_redetect_new (void) {
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return request_redetect_construct (TYPE_REQUEST_REDETECT);
+#line 2586 "scanner.c"
+}
+
+
+static void request_redetect_class_init (RequestRedetectClass * klass) {
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ request_redetect_parent_class = g_type_class_peek_parent (klass);
+#line 2593 "scanner.c"
+}
+
+
+static void request_redetect_instance_init (RequestRedetect * self) {
+}
+
+
+GType request_redetect_get_type (void) {
+ static volatile gsize request_redetect_type_id__volatile = 0;
+ if (g_once_init_enter (&request_redetect_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RequestRedetectClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) request_redetect_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RequestRedetect), 0, (GInstanceInitFunc) request_redetect_instance_init, NULL };
+ GType request_redetect_type_id;
+ request_redetect_type_id = g_type_register_static (TYPE_REQUEST, "RequestRedetect", &g_define_type_info, 0);
+ g_once_init_leave (&request_redetect_type_id__volatile, request_redetect_type_id);
+ }
+ return request_redetect_type_id__volatile;
+}
+
+
+RequestCancel* request_cancel_construct (GType object_type) {
+ RequestCancel* self = NULL;
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (RequestCancel*) request_construct (object_type);
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 2619 "scanner.c"
+}
+
+
+RequestCancel* request_cancel_new (void) {
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return request_cancel_construct (TYPE_REQUEST_CANCEL);
+#line 2626 "scanner.c"
+}
+
+
+static void request_cancel_class_init (RequestCancelClass * klass) {
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ request_cancel_parent_class = g_type_class_peek_parent (klass);
+#line 2633 "scanner.c"
+}
+
+
+static void request_cancel_instance_init (RequestCancel * self) {
+}
+
+
+GType request_cancel_get_type (void) {
+ static volatile gsize request_cancel_type_id__volatile = 0;
+ if (g_once_init_enter (&request_cancel_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RequestCancelClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) request_cancel_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RequestCancel), 0, (GInstanceInitFunc) request_cancel_instance_init, NULL };
+ GType request_cancel_type_id;
+ request_cancel_type_id = g_type_register_static (TYPE_REQUEST, "RequestCancel", &g_define_type_info, 0);
+ g_once_init_leave (&request_cancel_type_id__volatile, request_cancel_type_id);
+ }
+ return request_cancel_type_id__volatile;
+}
+
+
+RequestStartScan* request_start_scan_construct (GType object_type) {
+ RequestStartScan* self = NULL;
+#line 107 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (RequestStartScan*) request_construct (object_type);
+#line 107 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 2659 "scanner.c"
+}
+
+
+RequestStartScan* request_start_scan_new (void) {
+#line 107 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return request_start_scan_construct (TYPE_REQUEST_START_SCAN);
+#line 2666 "scanner.c"
+}
+
+
+static void request_start_scan_class_init (RequestStartScanClass * klass) {
+#line 107 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ request_start_scan_parent_class = g_type_class_peek_parent (klass);
+#line 107 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ REQUEST_CLASS (klass)->finalize = request_start_scan_finalize;
+#line 2675 "scanner.c"
+}
+
+
+static void request_start_scan_instance_init (RequestStartScan * self) {
+}
+
+
+static void request_start_scan_finalize (Request* obj) {
+ RequestStartScan * self;
+#line 107 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_REQUEST_START_SCAN, RequestStartScan);
+#line 109 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (self->job);
+#line 107 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ REQUEST_CLASS (request_start_scan_parent_class)->finalize (obj);
+#line 2691 "scanner.c"
+}
+
+
+GType request_start_scan_get_type (void) {
+ static volatile gsize request_start_scan_type_id__volatile = 0;
+ if (g_once_init_enter (&request_start_scan_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RequestStartScanClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) request_start_scan_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RequestStartScan), 0, (GInstanceInitFunc) request_start_scan_instance_init, NULL };
+ GType request_start_scan_type_id;
+ request_start_scan_type_id = g_type_register_static (TYPE_REQUEST, "RequestStartScan", &g_define_type_info, 0);
+ g_once_init_leave (&request_start_scan_type_id__volatile, request_start_scan_type_id);
+ }
+ return request_start_scan_type_id__volatile;
+}
+
+
+RequestQuit* request_quit_construct (GType object_type) {
+ RequestQuit* self = NULL;
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (RequestQuit*) request_construct (object_type);
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 2713 "scanner.c"
+}
+
+
+RequestQuit* request_quit_new (void) {
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return request_quit_construct (TYPE_REQUEST_QUIT);
+#line 2720 "scanner.c"
+}
+
+
+static void request_quit_class_init (RequestQuitClass * klass) {
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ request_quit_parent_class = g_type_class_peek_parent (klass);
+#line 2727 "scanner.c"
+}
+
+
+static void request_quit_instance_init (RequestQuit * self) {
+}
+
+
+GType request_quit_get_type (void) {
+ static volatile gsize request_quit_type_id__volatile = 0;
+ if (g_once_init_enter (&request_quit_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RequestQuitClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) request_quit_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RequestQuit), 0, (GInstanceInitFunc) request_quit_instance_init, NULL };
+ GType request_quit_type_id;
+ request_quit_type_id = g_type_register_static (TYPE_REQUEST, "RequestQuit", &g_define_type_info, 0);
+ g_once_init_leave (&request_quit_type_id__volatile, request_quit_type_id);
+ }
+ return request_quit_type_id__volatile;
+}
+
+
+Credentials* credentials_construct (GType object_type) {
+ Credentials* self = NULL;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (Credentials*) g_type_create_instance (object_type);
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 2753 "scanner.c"
+}
+
+
+Credentials* credentials_new (void) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return credentials_construct (TYPE_CREDENTIALS);
+#line 2760 "scanner.c"
+}
+
+
+static void value_credentials_init (GValue* value) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 2767 "scanner.c"
+}
+
+
+static void value_credentials_free_value (GValue* value) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (value->data[0].v_pointer) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ credentials_unref (value->data[0].v_pointer);
+#line 2776 "scanner.c"
+ }
+}
+
+
+static void value_credentials_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (src_value->data[0].v_pointer) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = credentials_ref (src_value->data[0].v_pointer);
+#line 2786 "scanner.c"
+ } else {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2790 "scanner.c"
+ }
+}
+
+
+static gpointer value_credentials_peek_pointer (const GValue* value) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 2798 "scanner.c"
+}
+
+
+static gchar* value_credentials_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (collect_values[0].v_pointer) {
+#line 2805 "scanner.c"
+ Credentials* object;
+ object = collect_values[0].v_pointer;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2812 "scanner.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2816 "scanner.c"
+ }
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = credentials_ref (object);
+#line 2820 "scanner.c"
+ } else {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 2824 "scanner.c"
+ }
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 2828 "scanner.c"
+}
+
+
+static gchar* value_credentials_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ Credentials** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!object_p) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2839 "scanner.c"
+ }
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!value->data[0].v_pointer) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = NULL;
+#line 2845 "scanner.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2849 "scanner.c"
+ } else {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = credentials_ref (value->data[0].v_pointer);
+#line 2853 "scanner.c"
+ }
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 2857 "scanner.c"
+}
+
+
+GParamSpec* param_spec_credentials (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecCredentials* spec;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_CREDENTIALS), NULL);
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return G_PARAM_SPEC (spec);
+#line 2871 "scanner.c"
+}
+
+
+gpointer value_get_credentials (const GValue* value) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_CREDENTIALS), NULL);
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 2880 "scanner.c"
+}
+
+
+void value_set_credentials (GValue* value, gpointer v_object) {
+ Credentials* old;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_CREDENTIALS));
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_CREDENTIALS));
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ credentials_ref (value->data[0].v_pointer);
+#line 2900 "scanner.c"
+ } else {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 2904 "scanner.c"
+ }
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ credentials_unref (old);
+#line 2910 "scanner.c"
+ }
+}
+
+
+void value_take_credentials (GValue* value, gpointer v_object) {
+ Credentials* old;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_CREDENTIALS));
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_CREDENTIALS));
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 2929 "scanner.c"
+ } else {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 2933 "scanner.c"
+ }
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ credentials_unref (old);
+#line 2939 "scanner.c"
+ }
+}
+
+
+static void credentials_class_init (CredentialsClass * klass) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ credentials_parent_class = g_type_class_peek_parent (klass);
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ CREDENTIALS_CLASS (klass)->finalize = credentials_finalize;
+#line 2949 "scanner.c"
+}
+
+
+static void credentials_instance_init (Credentials * self) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->ref_count = 1;
+#line 2956 "scanner.c"
+}
+
+
+static void credentials_finalize (Credentials* obj) {
+ Credentials * self;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CREDENTIALS, Credentials);
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->username);
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->password);
+#line 2968 "scanner.c"
+}
+
+
+GType credentials_get_type (void) {
+ static volatile gsize credentials_type_id__volatile = 0;
+ if (g_once_init_enter (&credentials_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_credentials_init, value_credentials_free_value, value_credentials_copy_value, value_credentials_peek_pointer, "p", value_credentials_collect_value, "p", value_credentials_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (CredentialsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) credentials_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Credentials), 0, (GInstanceInitFunc) credentials_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType credentials_type_id;
+ credentials_type_id = g_type_register_fundamental (g_type_fundamental_next (), "Credentials", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&credentials_type_id__volatile, credentials_type_id);
+ }
+ return credentials_type_id__volatile;
+}
+
+
+gpointer credentials_ref (gpointer instance) {
+ Credentials* self;
+ self = instance;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return instance;
+#line 2993 "scanner.c"
+}
+
+
+void credentials_unref (gpointer instance) {
+ Credentials* self;
+ self = instance;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ CREDENTIALS_GET_CLASS (self)->finalize (self);
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 3006 "scanner.c"
+ }
+}
+
+
+GType scan_state_get_type (void) {
+ static volatile gsize scan_state_type_id__volatile = 0;
+ if (g_once_init_enter (&scan_state_type_id__volatile)) {
+ static const GEnumValue values[] = {{SCAN_STATE_IDLE, "SCAN_STATE_IDLE", "idle"}, {SCAN_STATE_REDETECT, "SCAN_STATE_REDETECT", "redetect"}, {SCAN_STATE_OPEN, "SCAN_STATE_OPEN", "open"}, {SCAN_STATE_GET_OPTION, "SCAN_STATE_GET_OPTION", "get-option"}, {SCAN_STATE_START, "SCAN_STATE_START", "start"}, {SCAN_STATE_GET_PARAMETERS, "SCAN_STATE_GET_PARAMETERS", "get-parameters"}, {SCAN_STATE_READ, "SCAN_STATE_READ", "read"}, {0, NULL, NULL}};
+ GType scan_state_type_id;
+ scan_state_type_id = g_enum_register_static ("ScanState", values);
+ g_once_init_leave (&scan_state_type_id__volatile, scan_state_type_id);
+ }
+ return scan_state_type_id__volatile;
+}
+
+
+static void notify_real_run (Notify* self, Scanner* scanner) {
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (scanner != NULL);
+#line 3026 "scanner.c"
+}
+
+
+void notify_run (Notify* self, Scanner* scanner) {
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_GET_CLASS (self)->run (self, scanner);
+#line 3035 "scanner.c"
+}
+
+
+Notify* notify_construct (GType object_type) {
+ Notify* self = NULL;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (Notify*) g_type_create_instance (object_type);
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 3045 "scanner.c"
+}
+
+
+Notify* notify_new (void) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return notify_construct (TYPE_NOTIFY);
+#line 3052 "scanner.c"
+}
+
+
+static void value_notify_init (GValue* value) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 3059 "scanner.c"
+}
+
+
+static void value_notify_free_value (GValue* value) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (value->data[0].v_pointer) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notify_unref (value->data[0].v_pointer);
+#line 3068 "scanner.c"
+ }
+}
+
+
+static void value_notify_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (src_value->data[0].v_pointer) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = notify_ref (src_value->data[0].v_pointer);
+#line 3078 "scanner.c"
+ } else {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 3082 "scanner.c"
+ }
+}
+
+
+static gpointer value_notify_peek_pointer (const GValue* value) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 3090 "scanner.c"
+}
+
+
+static gchar* value_notify_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (collect_values[0].v_pointer) {
+#line 3097 "scanner.c"
+ Notify* object;
+ object = collect_values[0].v_pointer;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3104 "scanner.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3108 "scanner.c"
+ }
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = notify_ref (object);
+#line 3112 "scanner.c"
+ } else {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 3116 "scanner.c"
+ }
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 3120 "scanner.c"
+}
+
+
+static gchar* value_notify_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ Notify** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!object_p) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 3131 "scanner.c"
+ }
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!value->data[0].v_pointer) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = NULL;
+#line 3137 "scanner.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = value->data[0].v_pointer;
+#line 3141 "scanner.c"
+ } else {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = notify_ref (value->data[0].v_pointer);
+#line 3145 "scanner.c"
+ }
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 3149 "scanner.c"
+}
+
+
+GParamSpec* param_spec_notify (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecNotify* spec;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_NOTIFY), NULL);
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return G_PARAM_SPEC (spec);
+#line 3163 "scanner.c"
+}
+
+
+gpointer value_get_notify (const GValue* value) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_NOTIFY), NULL);
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 3172 "scanner.c"
+}
+
+
+void value_set_notify (GValue* value, gpointer v_object) {
+ Notify* old;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_NOTIFY));
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_NOTIFY));
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notify_ref (value->data[0].v_pointer);
+#line 3192 "scanner.c"
+ } else {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 3196 "scanner.c"
+ }
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notify_unref (old);
+#line 3202 "scanner.c"
+ }
+}
+
+
+void value_take_notify (GValue* value, gpointer v_object) {
+ Notify* old;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_NOTIFY));
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_NOTIFY));
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 3221 "scanner.c"
+ } else {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 3225 "scanner.c"
+ }
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notify_unref (old);
+#line 3231 "scanner.c"
+ }
+}
+
+
+static void notify_class_init (NotifyClass * klass) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notify_parent_class = g_type_class_peek_parent (klass);
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->finalize = notify_finalize;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->run = notify_real_run;
+#line 3243 "scanner.c"
+}
+
+
+static void notify_instance_init (Notify * self) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->ref_count = 1;
+#line 3250 "scanner.c"
+}
+
+
+static void notify_finalize (Notify* obj) {
+ Notify * self;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_NOTIFY, Notify);
+#line 3258 "scanner.c"
+}
+
+
+GType notify_get_type (void) {
+ static volatile gsize notify_type_id__volatile = 0;
+ if (g_once_init_enter (&notify_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_notify_init, value_notify_free_value, value_notify_copy_value, value_notify_peek_pointer, "p", value_notify_collect_value, "p", value_notify_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (NotifyClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) notify_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Notify), 0, (GInstanceInitFunc) notify_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType notify_type_id;
+ notify_type_id = g_type_register_fundamental (g_type_fundamental_next (), "Notify", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&notify_type_id__volatile, notify_type_id);
+ }
+ return notify_type_id__volatile;
+}
+
+
+gpointer notify_ref (gpointer instance) {
+ Notify* self;
+ self = instance;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return instance;
+#line 3283 "scanner.c"
+}
+
+
+void notify_unref (gpointer instance) {
+ Notify* self;
+ self = instance;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_GET_CLASS (self)->finalize (self);
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 3296 "scanner.c"
+ }
+}
+
+
+static void notify_scanning_changed_real_run (Notify* base, Scanner* scanner) {
+ NotifyScanningChanged * self;
+ Scanner* _tmp0_ = NULL;
+#line 138 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyScanningChanged*) base;
+#line 138 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (scanner != NULL);
+#line 138 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = scanner;
+#line 138 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_emit_by_name (_tmp0_, "scanning-changed");
+#line 3312 "scanner.c"
+}
+
+
+NotifyScanningChanged* notify_scanning_changed_construct (GType object_type) {
+ NotifyScanningChanged* self = NULL;
+#line 136 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyScanningChanged*) notify_construct (object_type);
+#line 136 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 3322 "scanner.c"
+}
+
+
+NotifyScanningChanged* notify_scanning_changed_new (void) {
+#line 136 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return notify_scanning_changed_construct (TYPE_NOTIFY_SCANNING_CHANGED);
+#line 3329 "scanner.c"
+}
+
+
+static void notify_scanning_changed_class_init (NotifyScanningChangedClass * klass) {
+#line 136 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notify_scanning_changed_parent_class = g_type_class_peek_parent (klass);
+#line 136 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->run = notify_scanning_changed_real_run;
+#line 3338 "scanner.c"
+}
+
+
+static void notify_scanning_changed_instance_init (NotifyScanningChanged * self) {
+}
+
+
+GType notify_scanning_changed_get_type (void) {
+ static volatile gsize notify_scanning_changed_type_id__volatile = 0;
+ if (g_once_init_enter (&notify_scanning_changed_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NotifyScanningChangedClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) notify_scanning_changed_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NotifyScanningChanged), 0, (GInstanceInitFunc) notify_scanning_changed_instance_init, NULL };
+ GType notify_scanning_changed_type_id;
+ notify_scanning_changed_type_id = g_type_register_static (TYPE_NOTIFY, "NotifyScanningChanged", &g_define_type_info, 0);
+ g_once_init_leave (&notify_scanning_changed_type_id__volatile, notify_scanning_changed_type_id);
+ }
+ return notify_scanning_changed_type_id__volatile;
+}
+
+
+static void _scan_device_unref0_ (gpointer var) {
+#line 144 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ (var == NULL) ? NULL : (var = (scan_device_unref (var), NULL));
+#line 3361 "scanner.c"
+}
+
+
+static void _g_list_free__scan_device_unref0_ (GList* self) {
+#line 144 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_list_foreach (self, (GFunc) _scan_device_unref0_, NULL);
+#line 144 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_list_free (self);
+#line 3370 "scanner.c"
+}
+
+
+NotifyUpdateDevices* notify_update_devices_construct (GType object_type, GList* devices) {
+ NotifyUpdateDevices* self = NULL;
+ GList* _tmp0_ = NULL;
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyUpdateDevices*) notify_construct (object_type);
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = devices;
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ devices = NULL;
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ __g_list_free__scan_device_unref0_0 (self->priv->devices);
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->devices = _tmp0_;
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ __g_list_free__scan_device_unref0_0 (devices);
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 3391 "scanner.c"
+}
+
+
+NotifyUpdateDevices* notify_update_devices_new (GList* devices) {
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return notify_update_devices_construct (TYPE_NOTIFY_UPDATE_DEVICES, devices);
+#line 3398 "scanner.c"
+}
+
+
+static void notify_update_devices_real_run (Notify* base, Scanner* scanner) {
+ NotifyUpdateDevices * self;
+ Scanner* _tmp0_ = NULL;
+ GList* _tmp1_ = NULL;
+#line 145 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyUpdateDevices*) base;
+#line 145 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (scanner != NULL);
+#line 145 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = scanner;
+#line 145 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = self->priv->devices;
+#line 145 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_emit_by_name (_tmp0_, "update-devices", _tmp1_);
+#line 3416 "scanner.c"
+}
+
+
+static void notify_update_devices_class_init (NotifyUpdateDevicesClass * klass) {
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notify_update_devices_parent_class = g_type_class_peek_parent (klass);
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->finalize = notify_update_devices_finalize;
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_class_add_private (klass, sizeof (NotifyUpdateDevicesPrivate));
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->run = notify_update_devices_real_run;
+#line 3429 "scanner.c"
+}
+
+
+static void notify_update_devices_instance_init (NotifyUpdateDevices * self) {
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv = NOTIFY_UPDATE_DEVICES_GET_PRIVATE (self);
+#line 3436 "scanner.c"
+}
+
+
+static void notify_update_devices_finalize (Notify* obj) {
+ NotifyUpdateDevices * self;
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_NOTIFY_UPDATE_DEVICES, NotifyUpdateDevices);
+#line 144 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ __g_list_free__scan_device_unref0_0 (self->priv->devices);
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (notify_update_devices_parent_class)->finalize (obj);
+#line 3448 "scanner.c"
+}
+
+
+GType notify_update_devices_get_type (void) {
+ static volatile gsize notify_update_devices_type_id__volatile = 0;
+ if (g_once_init_enter (&notify_update_devices_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NotifyUpdateDevicesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) notify_update_devices_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NotifyUpdateDevices), 0, (GInstanceInitFunc) notify_update_devices_instance_init, NULL };
+ GType notify_update_devices_type_id;
+ notify_update_devices_type_id = g_type_register_static (TYPE_NOTIFY, "NotifyUpdateDevices", &g_define_type_info, 0);
+ g_once_init_leave (&notify_update_devices_type_id__volatile, notify_update_devices_type_id);
+ }
+ return notify_update_devices_type_id__volatile;
+}
+
+
+NotifyRequestAuthorization* notify_request_authorization_construct (GType object_type, const gchar* resource) {
+ NotifyRequestAuthorization* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (resource != NULL, NULL);
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyRequestAuthorization*) notify_construct (object_type);
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = resource;
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->priv->resource);
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->resource = _tmp1_;
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 3482 "scanner.c"
+}
+
+
+NotifyRequestAuthorization* notify_request_authorization_new (const gchar* resource) {
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return notify_request_authorization_construct (TYPE_NOTIFY_REQUEST_AUTHORIZATION, resource);
+#line 3489 "scanner.c"
+}
+
+
+static void notify_request_authorization_real_run (Notify* base, Scanner* scanner) {
+ NotifyRequestAuthorization * self;
+ Scanner* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 152 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyRequestAuthorization*) base;
+#line 152 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (scanner != NULL);
+#line 152 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = scanner;
+#line 152 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = self->priv->resource;
+#line 152 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_emit_by_name (_tmp0_, "request-authorization", _tmp1_);
+#line 3507 "scanner.c"
+}
+
+
+static void notify_request_authorization_class_init (NotifyRequestAuthorizationClass * klass) {
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notify_request_authorization_parent_class = g_type_class_peek_parent (klass);
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->finalize = notify_request_authorization_finalize;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_class_add_private (klass, sizeof (NotifyRequestAuthorizationPrivate));
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->run = notify_request_authorization_real_run;
+#line 3520 "scanner.c"
+}
+
+
+static void notify_request_authorization_instance_init (NotifyRequestAuthorization * self) {
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv = NOTIFY_REQUEST_AUTHORIZATION_GET_PRIVATE (self);
+#line 3527 "scanner.c"
+}
+
+
+static void notify_request_authorization_finalize (Notify* obj) {
+ NotifyRequestAuthorization * self;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_NOTIFY_REQUEST_AUTHORIZATION, NotifyRequestAuthorization);
+#line 151 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->priv->resource);
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (notify_request_authorization_parent_class)->finalize (obj);
+#line 3539 "scanner.c"
+}
+
+
+GType notify_request_authorization_get_type (void) {
+ static volatile gsize notify_request_authorization_type_id__volatile = 0;
+ if (g_once_init_enter (&notify_request_authorization_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NotifyRequestAuthorizationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) notify_request_authorization_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NotifyRequestAuthorization), 0, (GInstanceInitFunc) notify_request_authorization_instance_init, NULL };
+ GType notify_request_authorization_type_id;
+ notify_request_authorization_type_id = g_type_register_static (TYPE_NOTIFY, "NotifyRequestAuthorization", &g_define_type_info, 0);
+ g_once_init_leave (&notify_request_authorization_type_id__volatile, notify_request_authorization_type_id);
+ }
+ return notify_request_authorization_type_id__volatile;
+}
+
+
+NotifyScanFailed* notify_scan_failed_construct (GType object_type, gint error_code, const gchar* error_string) {
+ NotifyScanFailed* self = NULL;
+ gint _tmp0_ = 0;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (error_string != NULL, NULL);
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyScanFailed*) notify_construct (object_type);
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = error_code;
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->error_code = _tmp0_;
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = error_string;
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->priv->error_string);
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->error_string = _tmp2_;
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 3578 "scanner.c"
+}
+
+
+NotifyScanFailed* notify_scan_failed_new (gint error_code, const gchar* error_string) {
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return notify_scan_failed_construct (TYPE_NOTIFY_SCAN_FAILED, error_code, error_string);
+#line 3585 "scanner.c"
+}
+
+
+static void notify_scan_failed_real_run (Notify* base, Scanner* scanner) {
+ NotifyScanFailed * self;
+ Scanner* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ const gchar* _tmp2_ = NULL;
+#line 160 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyScanFailed*) base;
+#line 160 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (scanner != NULL);
+#line 160 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = scanner;
+#line 160 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = self->priv->error_code;
+#line 160 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = self->priv->error_string;
+#line 160 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_emit_by_name (_tmp0_, "scan-failed", _tmp1_, _tmp2_);
+#line 3606 "scanner.c"
+}
+
+
+static void notify_scan_failed_class_init (NotifyScanFailedClass * klass) {
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notify_scan_failed_parent_class = g_type_class_peek_parent (klass);
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->finalize = notify_scan_failed_finalize;
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_class_add_private (klass, sizeof (NotifyScanFailedPrivate));
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->run = notify_scan_failed_real_run;
+#line 3619 "scanner.c"
+}
+
+
+static void notify_scan_failed_instance_init (NotifyScanFailed * self) {
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv = NOTIFY_SCAN_FAILED_GET_PRIVATE (self);
+#line 3626 "scanner.c"
+}
+
+
+static void notify_scan_failed_finalize (Notify* obj) {
+ NotifyScanFailed * self;
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_NOTIFY_SCAN_FAILED, NotifyScanFailed);
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->priv->error_string);
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (notify_scan_failed_parent_class)->finalize (obj);
+#line 3638 "scanner.c"
+}
+
+
+GType notify_scan_failed_get_type (void) {
+ static volatile gsize notify_scan_failed_type_id__volatile = 0;
+ if (g_once_init_enter (&notify_scan_failed_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NotifyScanFailedClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) notify_scan_failed_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NotifyScanFailed), 0, (GInstanceInitFunc) notify_scan_failed_instance_init, NULL };
+ GType notify_scan_failed_type_id;
+ notify_scan_failed_type_id = g_type_register_static (TYPE_NOTIFY, "NotifyScanFailed", &g_define_type_info, 0);
+ g_once_init_leave (&notify_scan_failed_type_id__volatile, notify_scan_failed_type_id);
+ }
+ return notify_scan_failed_type_id__volatile;
+}
+
+
+static void notify_document_done_real_run (Notify* base, Scanner* scanner) {
+ NotifyDocumentDone * self;
+ Scanner* _tmp0_ = NULL;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyDocumentDone*) base;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (scanner != NULL);
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = scanner;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_emit_by_name (_tmp0_, "document-done");
+#line 3665 "scanner.c"
+}
+
+
+NotifyDocumentDone* notify_document_done_construct (GType object_type) {
+ NotifyDocumentDone* self = NULL;
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyDocumentDone*) notify_construct (object_type);
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 3675 "scanner.c"
+}
+
+
+NotifyDocumentDone* notify_document_done_new (void) {
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return notify_document_done_construct (TYPE_NOTIFY_DOCUMENT_DONE);
+#line 3682 "scanner.c"
+}
+
+
+static void notify_document_done_class_init (NotifyDocumentDoneClass * klass) {
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notify_document_done_parent_class = g_type_class_peek_parent (klass);
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->run = notify_document_done_real_run;
+#line 3691 "scanner.c"
+}
+
+
+static void notify_document_done_instance_init (NotifyDocumentDone * self) {
+}
+
+
+GType notify_document_done_get_type (void) {
+ static volatile gsize notify_document_done_type_id__volatile = 0;
+ if (g_once_init_enter (&notify_document_done_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NotifyDocumentDoneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) notify_document_done_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NotifyDocumentDone), 0, (GInstanceInitFunc) notify_document_done_instance_init, NULL };
+ GType notify_document_done_type_id;
+ notify_document_done_type_id = g_type_register_static (TYPE_NOTIFY, "NotifyDocumentDone", &g_define_type_info, 0);
+ g_once_init_leave (&notify_document_done_type_id__volatile, notify_document_done_type_id);
+ }
+ return notify_document_done_type_id__volatile;
+}
+
+
+static void notify_expect_page_real_run (Notify* base, Scanner* scanner) {
+ NotifyExpectPage * self;
+ Scanner* _tmp0_ = NULL;
+#line 170 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyExpectPage*) base;
+#line 170 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (scanner != NULL);
+#line 170 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = scanner;
+#line 170 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_emit_by_name (_tmp0_, "expect-page");
+#line 3722 "scanner.c"
+}
+
+
+NotifyExpectPage* notify_expect_page_construct (GType object_type) {
+ NotifyExpectPage* self = NULL;
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyExpectPage*) notify_construct (object_type);
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 3732 "scanner.c"
+}
+
+
+NotifyExpectPage* notify_expect_page_new (void) {
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return notify_expect_page_construct (TYPE_NOTIFY_EXPECT_PAGE);
+#line 3739 "scanner.c"
+}
+
+
+static void notify_expect_page_class_init (NotifyExpectPageClass * klass) {
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notify_expect_page_parent_class = g_type_class_peek_parent (klass);
+#line 168 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->run = notify_expect_page_real_run;
+#line 3748 "scanner.c"
+}
+
+
+static void notify_expect_page_instance_init (NotifyExpectPage * self) {
+}
+
+
+GType notify_expect_page_get_type (void) {
+ static volatile gsize notify_expect_page_type_id__volatile = 0;
+ if (g_once_init_enter (&notify_expect_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NotifyExpectPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) notify_expect_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NotifyExpectPage), 0, (GInstanceInitFunc) notify_expect_page_instance_init, NULL };
+ GType notify_expect_page_type_id;
+ notify_expect_page_type_id = g_type_register_static (TYPE_NOTIFY, "NotifyExpectPage", &g_define_type_info, 0);
+ g_once_init_leave (&notify_expect_page_type_id__volatile, notify_expect_page_type_id);
+ }
+ return notify_expect_page_type_id__volatile;
+}
+
+
+static gpointer _scan_page_info_ref0 (gpointer self) {
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self ? scan_page_info_ref (self) : NULL;
+#line 3771 "scanner.c"
+}
+
+
+NotifyGotPageInfo* notify_got_page_info_construct (GType object_type, gint job_id, ScanPageInfo* info) {
+ NotifyGotPageInfo* self = NULL;
+ gint _tmp0_ = 0;
+ ScanPageInfo* _tmp1_ = NULL;
+ ScanPageInfo* _tmp2_ = NULL;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (info != NULL, NULL);
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyGotPageInfo*) notify_construct (object_type);
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = job_id;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->job_id = _tmp0_;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = info;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = _scan_page_info_ref0 (_tmp1_);
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_page_info_unref0 (self->priv->info);
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->info = _tmp2_;
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 3798 "scanner.c"
+}
+
+
+NotifyGotPageInfo* notify_got_page_info_new (gint job_id, ScanPageInfo* info) {
+#line 175 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return notify_got_page_info_construct (TYPE_NOTIFY_GOT_PAGE_INFO, job_id, info);
+#line 3805 "scanner.c"
+}
+
+
+static void notify_got_page_info_real_run (Notify* base, Scanner* scanner) {
+ NotifyGotPageInfo * self;
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ Scanner* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+#line 178 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyGotPageInfo*) base;
+#line 178 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (scanner != NULL);
+#line 180 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = self->priv->job_id;
+#line 180 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = scanner;
+#line 180 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = _tmp2_->first_job_id;
+#line 180 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp1_ >= _tmp3_) {
+#line 3827 "scanner.c"
+ gint _tmp4_ = 0;
+ Scanner* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 180 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = self->priv->job_id;
+#line 180 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = scanner;
+#line 180 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = _tmp5_->job_id;
+#line 180 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = _tmp4_ < _tmp6_;
+#line 3839 "scanner.c"
+ } else {
+#line 180 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = FALSE;
+#line 3843 "scanner.c"
+ }
+#line 180 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp0_) {
+#line 3847 "scanner.c"
+ Scanner* _tmp7_ = NULL;
+ ScanPageInfo* _tmp8_ = NULL;
+#line 181 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = scanner;
+#line 181 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = self->priv->info;
+#line 181 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_emit_by_name (_tmp7_, "got-page-info", _tmp8_);
+#line 3856 "scanner.c"
+ }
+}
+
+
+static void notify_got_page_info_class_init (NotifyGotPageInfoClass * klass) {
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notify_got_page_info_parent_class = g_type_class_peek_parent (klass);
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->finalize = notify_got_page_info_finalize;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_class_add_private (klass, sizeof (NotifyGotPageInfoPrivate));
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->run = notify_got_page_info_real_run;
+#line 3870 "scanner.c"
+}
+
+
+static void notify_got_page_info_instance_init (NotifyGotPageInfo * self) {
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv = NOTIFY_GOT_PAGE_INFO_GET_PRIVATE (self);
+#line 3877 "scanner.c"
+}
+
+
+static void notify_got_page_info_finalize (Notify* obj) {
+ NotifyGotPageInfo * self;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_NOTIFY_GOT_PAGE_INFO, NotifyGotPageInfo);
+#line 177 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_page_info_unref0 (self->priv->info);
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (notify_got_page_info_parent_class)->finalize (obj);
+#line 3889 "scanner.c"
+}
+
+
+GType notify_got_page_info_get_type (void) {
+ static volatile gsize notify_got_page_info_type_id__volatile = 0;
+ if (g_once_init_enter (&notify_got_page_info_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NotifyGotPageInfoClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) notify_got_page_info_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NotifyGotPageInfo), 0, (GInstanceInitFunc) notify_got_page_info_instance_init, NULL };
+ GType notify_got_page_info_type_id;
+ notify_got_page_info_type_id = g_type_register_static (TYPE_NOTIFY, "NotifyGotPageInfo", &g_define_type_info, 0);
+ g_once_init_leave (&notify_got_page_info_type_id__volatile, notify_got_page_info_type_id);
+ }
+ return notify_got_page_info_type_id__volatile;
+}
+
+
+NotifyPageDone* notify_page_done_construct (GType object_type, gint job_id) {
+ NotifyPageDone* self = NULL;
+ gint _tmp0_ = 0;
+#line 187 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyPageDone*) notify_construct (object_type);
+#line 187 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = job_id;
+#line 187 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->job_id = _tmp0_;
+#line 187 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 3916 "scanner.c"
+}
+
+
+NotifyPageDone* notify_page_done_new (gint job_id) {
+#line 187 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return notify_page_done_construct (TYPE_NOTIFY_PAGE_DONE, job_id);
+#line 3923 "scanner.c"
+}
+
+
+static void notify_page_done_real_run (Notify* base, Scanner* scanner) {
+ NotifyPageDone * self;
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ Scanner* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+#line 189 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyPageDone*) base;
+#line 189 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (scanner != NULL);
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = self->priv->job_id;
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = scanner;
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = _tmp2_->first_job_id;
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp1_ >= _tmp3_) {
+#line 3945 "scanner.c"
+ gint _tmp4_ = 0;
+ Scanner* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = self->priv->job_id;
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = scanner;
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = _tmp5_->job_id;
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = _tmp4_ < _tmp6_;
+#line 3957 "scanner.c"
+ } else {
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = FALSE;
+#line 3961 "scanner.c"
+ }
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp0_) {
+#line 3965 "scanner.c"
+ Scanner* _tmp7_ = NULL;
+#line 192 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = scanner;
+#line 192 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_emit_by_name (_tmp7_, "page-done");
+#line 3971 "scanner.c"
+ }
+}
+
+
+static void notify_page_done_class_init (NotifyPageDoneClass * klass) {
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notify_page_done_parent_class = g_type_class_peek_parent (klass);
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->finalize = notify_page_done_finalize;
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_class_add_private (klass, sizeof (NotifyPageDonePrivate));
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->run = notify_page_done_real_run;
+#line 3985 "scanner.c"
+}
+
+
+static void notify_page_done_instance_init (NotifyPageDone * self) {
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv = NOTIFY_PAGE_DONE_GET_PRIVATE (self);
+#line 3992 "scanner.c"
+}
+
+
+static void notify_page_done_finalize (Notify* obj) {
+ NotifyPageDone * self;
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_NOTIFY_PAGE_DONE, NotifyPageDone);
+#line 185 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (notify_page_done_parent_class)->finalize (obj);
+#line 4002 "scanner.c"
+}
+
+
+GType notify_page_done_get_type (void) {
+ static volatile gsize notify_page_done_type_id__volatile = 0;
+ if (g_once_init_enter (&notify_page_done_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NotifyPageDoneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) notify_page_done_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NotifyPageDone), 0, (GInstanceInitFunc) notify_page_done_instance_init, NULL };
+ GType notify_page_done_type_id;
+ notify_page_done_type_id = g_type_register_static (TYPE_NOTIFY, "NotifyPageDone", &g_define_type_info, 0);
+ g_once_init_leave (&notify_page_done_type_id__volatile, notify_page_done_type_id);
+ }
+ return notify_page_done_type_id__volatile;
+}
+
+
+static gpointer _scan_line_ref0 (gpointer self) {
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self ? scan_line_ref (self) : NULL;
+#line 4021 "scanner.c"
+}
+
+
+NotifyGotLine* notify_got_line_construct (GType object_type, gint job_id, ScanLine* line) {
+ NotifyGotLine* self = NULL;
+ gint _tmp0_ = 0;
+ ScanLine* _tmp1_ = NULL;
+ ScanLine* _tmp2_ = NULL;
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (line != NULL, NULL);
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyGotLine*) notify_construct (object_type);
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = job_id;
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->job_id = _tmp0_;
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = line;
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = _scan_line_ref0 (_tmp1_);
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_line_unref0 (self->priv->line);
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->line = _tmp2_;
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 4048 "scanner.c"
+}
+
+
+NotifyGotLine* notify_got_line_new (gint job_id, ScanLine* line) {
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return notify_got_line_construct (TYPE_NOTIFY_GOT_LINE, job_id, line);
+#line 4055 "scanner.c"
+}
+
+
+static void notify_got_line_real_run (Notify* base, Scanner* scanner) {
+ NotifyGotLine * self;
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ Scanner* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+#line 201 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (NotifyGotLine*) base;
+#line 201 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (scanner != NULL);
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = self->priv->job_id;
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = scanner;
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = _tmp2_->first_job_id;
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp1_ >= _tmp3_) {
+#line 4077 "scanner.c"
+ gint _tmp4_ = 0;
+ Scanner* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = self->priv->job_id;
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = scanner;
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = _tmp5_->job_id;
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = _tmp4_ < _tmp6_;
+#line 4089 "scanner.c"
+ } else {
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = FALSE;
+#line 4093 "scanner.c"
+ }
+#line 203 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp0_) {
+#line 4097 "scanner.c"
+ Scanner* _tmp7_ = NULL;
+ ScanLine* _tmp8_ = NULL;
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = scanner;
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = self->priv->line;
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_emit_by_name (_tmp7_, "got-line", _tmp8_);
+#line 4106 "scanner.c"
+ }
+}
+
+
+static void notify_got_line_class_init (NotifyGotLineClass * klass) {
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notify_got_line_parent_class = g_type_class_peek_parent (klass);
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->finalize = notify_got_line_finalize;
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_class_add_private (klass, sizeof (NotifyGotLinePrivate));
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (klass)->run = notify_got_line_real_run;
+#line 4120 "scanner.c"
+}
+
+
+static void notify_got_line_instance_init (NotifyGotLine * self) {
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv = NOTIFY_GOT_LINE_GET_PRIVATE (self);
+#line 4127 "scanner.c"
+}
+
+
+static void notify_got_line_finalize (Notify* obj) {
+ NotifyGotLine * self;
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_NOTIFY_GOT_LINE, NotifyGotLine);
+#line 200 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_line_unref0 (self->priv->line);
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ NOTIFY_CLASS (notify_got_line_parent_class)->finalize (obj);
+#line 4139 "scanner.c"
+}
+
+
+GType notify_got_line_get_type (void) {
+ static volatile gsize notify_got_line_type_id__volatile = 0;
+ if (g_once_init_enter (&notify_got_line_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NotifyGotLineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) notify_got_line_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NotifyGotLine), 0, (GInstanceInitFunc) notify_got_line_instance_init, NULL };
+ GType notify_got_line_type_id;
+ notify_got_line_type_id = g_type_register_static (TYPE_NOTIFY, "NotifyGotLine", &g_define_type_info, 0);
+ g_once_init_leave (&notify_got_line_type_id__volatile, notify_got_line_type_id);
+ }
+ return notify_got_line_type_id__volatile;
+}
+
+
+static void _scan_job_unref0_ (gpointer var) {
+#line 234 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ (var == NULL) ? NULL : (var = (scan_job_unref (var), NULL));
+#line 4158 "scanner.c"
+}
+
+
+static void _g_list_free__scan_job_unref0_ (GList* self) {
+#line 234 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_list_foreach (self, (GFunc) _scan_job_unref0_, NULL);
+#line 234 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_list_free (self);
+#line 4167 "scanner.c"
+}
+
+
+static void _request_unref0_ (gpointer var) {
+#line 273 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ (var == NULL) ? NULL : (var = (request_unref (var), NULL));
+#line 4174 "scanner.c"
+}
+
+
+static void _notify_unref0_ (gpointer var) {
+#line 274 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ (var == NULL) ? NULL : (var = (notify_unref (var), NULL));
+#line 4181 "scanner.c"
+}
+
+
+static void _credentials_unref0_ (gpointer var) {
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ (var == NULL) ? NULL : (var = (credentials_unref (var), NULL));
+#line 4188 "scanner.c"
+}
+
+
+static Scanner* scanner_construct (GType object_type) {
+ Scanner* self = NULL;
+ GAsyncQueue* _tmp0_ = NULL;
+ GAsyncQueue* _tmp1_ = NULL;
+ GAsyncQueue* _tmp2_ = NULL;
+#line 271 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = (Scanner*) g_type_create_instance (object_type);
+#line 273 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = g_async_queue_new_full (_request_unref0_);
+#line 273 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_async_queue_unref0 (self->priv->request_queue);
+#line 273 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->request_queue = _tmp0_;
+#line 274 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = g_async_queue_new_full (_notify_unref0_);
+#line 274 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_async_queue_unref0 (self->priv->notify_queue);
+#line 274 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->notify_queue = _tmp1_;
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = g_async_queue_new_full (_credentials_unref0_);
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_async_queue_unref0 (self->priv->authorize_queue);
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->authorize_queue = _tmp2_;
+#line 271 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self;
+#line 4219 "scanner.c"
+}
+
+
+static Scanner* scanner_new (void) {
+#line 271 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return scanner_construct (TYPE_SCANNER);
+#line 4226 "scanner.c"
+}
+
+
+static gpointer _scanner_ref0 (gpointer self) {
+#line 282 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self ? scanner_ref (self) : NULL;
+#line 4233 "scanner.c"
+}
+
+
+Scanner* scanner_get_instance (void) {
+ Scanner* result = NULL;
+ Scanner* _tmp0_ = NULL;
+ Scanner* _tmp2_ = NULL;
+ Scanner* _tmp3_ = NULL;
+#line 280 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = scanner_scanner_object;
+#line 280 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp0_ == NULL) {
+#line 4246 "scanner.c"
+ Scanner* _tmp1_ = NULL;
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = scanner_new ();
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scanner_unref0 (scanner_scanner_object);
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_scanner_object = _tmp1_;
+#line 4254 "scanner.c"
+ }
+#line 282 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = scanner_scanner_object;
+#line 282 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = _scanner_ref0 (_tmp2_);
+#line 282 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp3_;
+#line 282 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 4264 "scanner.c"
+}
+
+
+static gboolean scanner_notify_idle_cb (Scanner* self) {
+ gboolean result = FALSE;
+ Notify* notification = NULL;
+ GAsyncQueue* _tmp0_ = NULL;
+ gpointer _tmp1_ = NULL;
+#line 285 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = self->priv->notify_queue;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = g_async_queue_pop (_tmp0_);
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notification = (Notify*) _tmp1_;
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ notify_run (notification, self);
+#line 289 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = FALSE;
+#line 289 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _notify_unref0 (notification);
+#line 289 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 4289 "scanner.c"
+}
+
+
+static gpointer _notify_ref0 (gpointer self) {
+#line 294 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self ? notify_ref (self) : NULL;
+#line 4296 "scanner.c"
+}
+
+
+static gboolean _scanner_notify_idle_cb_gsource_func (gpointer self) {
+ gboolean result;
+ result = scanner_notify_idle_cb ((Scanner*) self);
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 4305 "scanner.c"
+}
+
+
+static void scanner_notify (Scanner* self, Notify* notification) {
+ GAsyncQueue* _tmp0_ = NULL;
+ Notify* _tmp1_ = NULL;
+ Notify* _tmp2_ = NULL;
+#line 292 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 292 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (notification != NULL);
+#line 294 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = self->priv->notify_queue;
+#line 294 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = notification;
+#line 294 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = _notify_ref0 (_tmp1_);
+#line 294 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_async_queue_push (_tmp0_, _tmp2_);
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, _scanner_notify_idle_cb_gsource_func, scanner_ref (self), scanner_unref);
+#line 4327 "scanner.c"
+}
+
+
+static void scanner_set_scanning (Scanner* self, gboolean is_scanning) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 298 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = self->priv->scanning;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp2_) {
+#line 4341 "scanner.c"
+ gboolean _tmp3_ = FALSE;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = is_scanning;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = !_tmp3_;
+#line 4347 "scanner.c"
+ } else {
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = FALSE;
+#line 4351 "scanner.c"
+ }
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp1_) {
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = TRUE;
+#line 4357 "scanner.c"
+ } else {
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = self->priv->scanning;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp5_) {
+#line 4365 "scanner.c"
+ gboolean _tmp6_ = FALSE;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = is_scanning;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = _tmp6_;
+#line 4371 "scanner.c"
+ } else {
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = FALSE;
+#line 4375 "scanner.c"
+ }
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = _tmp4_;
+#line 4379 "scanner.c"
+ }
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp0_) {
+#line 4383 "scanner.c"
+ gboolean _tmp7_ = FALSE;
+ NotifyScanningChanged* _tmp8_ = NULL;
+ NotifyScanningChanged* _tmp9_ = NULL;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = is_scanning;
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->scanning = _tmp7_;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = notify_scanning_changed_new ();
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = _tmp8_;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_notify (self, (Notify*) _tmp9_);
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _notify_unref0 (_tmp9_);
+#line 4399 "scanner.c"
+ }
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1274 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1274 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, FALSE);
+#line 1275 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = needle;
+#line 1275 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+#line 1275 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = _tmp1_ != NULL;
+#line 1275 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 4420 "scanner.c"
+}
+
+
+static gint scanner_get_device_weight (const gchar* device) {
+ gint result = 0;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 307 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (device != NULL, 0);
+#line 312 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = device;
+#line 312 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = g_str_has_prefix (_tmp0_, "vfl:");
+#line 312 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp1_) {
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = 2;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 4442 "scanner.c"
+ }
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = device;
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = string_contains (_tmp2_, "usb");
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp3_) {
+#line 317 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = 0;
+#line 317 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 4454 "scanner.c"
+ }
+#line 319 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = 1;
+#line 319 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 4460 "scanner.c"
+}
+
+
+static gint scanner_compare_devices (ScanDevice* device1, ScanDevice* device2) {
+ gint result = 0;
+ gint weight1 = 0;
+ ScanDevice* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint weight2 = 0;
+ ScanDevice* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ GCompareFunc _tmp10_ = NULL;
+ ScanDevice* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ ScanDevice* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (device1 != NULL, 0);
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (device2 != NULL, 0);
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = device1;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = _tmp0_->name;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = scanner_get_device_weight (_tmp1_);
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ weight1 = _tmp2_;
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = device2;
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = _tmp3_->name;
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = scanner_get_device_weight (_tmp4_);
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ weight2 = _tmp5_;
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = weight1;
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = weight2;
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp6_ != _tmp7_) {
+#line 4508 "scanner.c"
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = weight1;
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = weight2;
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp8_ - _tmp9_;
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 4519 "scanner.c"
+ }
+#line 331 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = g_strcmp0;
+#line 331 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = device1;
+#line 331 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = _tmp11_->label;
+#line 331 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = device2;
+#line 331 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = _tmp13_->label;
+#line 331 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = _tmp10_ (_tmp12_, _tmp14_);
+#line 331 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp15_;
+#line 331 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 4537 "scanner.c"
+}
+
+
+static gchar* sane_status_to_string (SANE_Status status) {
+ gchar* result = NULL;
+ SANE_Status _tmp0_ = 0;
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp0_ = status;
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ switch (_tmp0_) {
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_STATUS_GOOD:
+#line 4550 "scanner.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 57 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp1_ = g_strdup ("SANE_STATUS_GOOD");
+#line 57 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp1_;
+#line 57 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 4559 "scanner.c"
+ }
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_STATUS_UNSUPPORTED:
+#line 4563 "scanner.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp2_ = g_strdup ("SANE_STATUS_UNSUPPORTED");
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp2_;
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 4572 "scanner.c"
+ }
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_STATUS_CANCELLED:
+#line 4576 "scanner.c"
+ {
+ gchar* _tmp3_ = NULL;
+#line 61 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp3_ = g_strdup ("SANE_STATUS_CANCELLED");
+#line 61 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp3_;
+#line 61 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 4585 "scanner.c"
+ }
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_STATUS_DEVICE_BUSY:
+#line 4589 "scanner.c"
+ {
+ gchar* _tmp4_ = NULL;
+#line 63 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp4_ = g_strdup ("SANE_STATUS_DEVICE_BUSY");
+#line 63 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp4_;
+#line 63 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 4598 "scanner.c"
+ }
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_STATUS_INVAL:
+#line 4602 "scanner.c"
+ {
+ gchar* _tmp5_ = NULL;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp5_ = g_strdup ("SANE_STATUS_INVAL");
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp5_;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 4611 "scanner.c"
+ }
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_STATUS_EOF:
+#line 4615 "scanner.c"
+ {
+ gchar* _tmp6_ = NULL;
+#line 67 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp6_ = g_strdup ("SANE_STATUS_EOF");
+#line 67 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp6_;
+#line 67 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 4624 "scanner.c"
+ }
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_STATUS_JAMMED:
+#line 4628 "scanner.c"
+ {
+ gchar* _tmp7_ = NULL;
+#line 69 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp7_ = g_strdup ("SANE_STATUS_JAMMED");
+#line 69 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp7_;
+#line 69 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 4637 "scanner.c"
+ }
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_STATUS_NO_DOCS:
+#line 4641 "scanner.c"
+ {
+ gchar* _tmp8_ = NULL;
+#line 71 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp8_ = g_strdup ("SANE_STATUS_NO_DOCS");
+#line 71 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp8_;
+#line 71 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 4650 "scanner.c"
+ }
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_STATUS_COVER_OPEN:
+#line 4654 "scanner.c"
+ {
+ gchar* _tmp9_ = NULL;
+#line 73 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp9_ = g_strdup ("SANE_STATUS_COVER_OPEN");
+#line 73 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp9_;
+#line 73 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 4663 "scanner.c"
+ }
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_STATUS_IO_ERROR:
+#line 4667 "scanner.c"
+ {
+ gchar* _tmp10_ = NULL;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp10_ = g_strdup ("SANE_STATUS_IO_ERROR");
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp10_;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 4676 "scanner.c"
+ }
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_STATUS_NO_MEM:
+#line 4680 "scanner.c"
+ {
+ gchar* _tmp11_ = NULL;
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp11_ = g_strdup ("SANE_STATUS_NO_MEM");
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp11_;
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 4689 "scanner.c"
+ }
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_STATUS_ACCESS_DENIED:
+#line 4693 "scanner.c"
+ {
+ gchar* _tmp12_ = NULL;
+#line 79 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp12_ = g_strdup ("SANE_STATUS_ACCESS_DENIED");
+#line 79 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp12_;
+#line 79 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 4702 "scanner.c"
+ }
+ default:
+ {
+ SANE_Status _tmp13_ = 0;
+ gchar* _tmp14_ = NULL;
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp13_ = status;
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp14_ = g_strdup_printf ("SANE_STATUS(%d)", (gint) _tmp13_);
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp14_;
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 4716 "scanner.c"
+ }
+ }
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1278 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1278 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (old != NULL, NULL);
+#line 1278 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (replacement != NULL, NULL);
+#line 4731 "scanner.c"
+ {
+ GRegex* regex = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GRegex* _tmp3_ = NULL;
+ GRegex* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GRegex* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 1280 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = old;
+#line 1280 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+#line 1280 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp2_ = _tmp1_;
+#line 1280 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+#line 1280 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp4_ = _tmp3_;
+#line 1280 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp2_);
+#line 1280 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ regex = _tmp4_;
+#line 1280 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_inner_error_ != NULL) {
+#line 1280 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 4762 "scanner.c"
+ goto __catch14_g_regex_error;
+ }
+#line 1280 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1280 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1280 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return NULL;
+#line 4771 "scanner.c"
+ }
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp6_ = regex;
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp7_ = replacement;
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) (-1), 0, _tmp7_, 0, &_inner_error_);
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp5_ = _tmp8_;
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_inner_error_ != NULL) {
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 4787 "scanner.c"
+ goto __catch14_g_regex_error;
+ }
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return NULL;
+#line 4798 "scanner.c"
+ }
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp9_ = _tmp5_;
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp5_ = NULL;
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = _tmp9_;
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp5_);
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1281 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 4812 "scanner.c"
+ }
+ goto __finally14;
+ __catch14_g_regex_error:
+ {
+ GError* e = NULL;
+#line 1279 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ e = _inner_error_;
+#line 1279 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _inner_error_ = NULL;
+#line 1283 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_assert_not_reached ();
+#line 1279 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _g_error_free0 (e);
+#line 4826 "scanner.c"
+ }
+ __finally14:
+#line 1279 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_inner_error_ != NULL) {
+#line 1279 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1279 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1279 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return NULL;
+#line 4837 "scanner.c"
+ }
+}
+
+
+static gpointer _scan_device_ref0 (gpointer self) {
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self ? scan_device_ref (self) : NULL;
+#line 4845 "scanner.c"
+}
+
+
+static gint _scanner_compare_devices_gcompare_func (gconstpointer a, gconstpointer b) {
+ gint result;
+ result = scanner_compare_devices ((ScanDevice*) a, (ScanDevice*) b);
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 4854 "scanner.c"
+}
+
+
+static void scanner_do_redetect (Scanner* self) {
+ SANE_Device** device_list = NULL;
+ gint device_list_length1 = 0;
+ gint _device_list_size_ = 0;
+ SANE_Status status = 0;
+ SANE_Device** _tmp0_ = NULL;
+ SANE_Status _tmp1_ = 0;
+ SANE_Status _tmp2_ = 0;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ SANE_Status _tmp5_ = 0;
+ GList* devices = NULL;
+ GList* _tmp56_ = NULL;
+ GList* _tmp63_ = NULL;
+ NotifyUpdateDevices* _tmp64_ = NULL;
+ NotifyUpdateDevices* _tmp65_ = NULL;
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 336 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ device_list = NULL;
+#line 336 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ device_list_length1 = 0;
+#line 336 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _device_list_size_ = device_list_length1;
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = sane_get_devices (&_tmp0_, FALSE);
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ device_list = _tmp0_;
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ device_list_length1 = -1;
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _device_list_size_ = device_list_length1;
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ status = _tmp1_;
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = status;
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = sane_status_to_string (_tmp2_);
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = _tmp3_;
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:338: sane_get_devices () -> %s", _tmp4_);
+#line 338 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp4_);
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = status;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp5_ != SANE_STATUS_GOOD) {
+#line 4906 "scanner.c"
+ SANE_Status _tmp6_ = 0;
+ const gchar* _tmp7_ = NULL;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = status;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = sane_strstatus (_tmp6_);
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:341: Unable to get SANE devices: %s", _tmp7_);
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->need_redetect = FALSE;
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->state = SCAN_STATE_IDLE;
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 4921 "scanner.c"
+ }
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ devices = NULL;
+#line 4925 "scanner.c"
+ {
+ gint i = 0;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = 0;
+#line 4930 "scanner.c"
+ {
+ gboolean _tmp8_ = FALSE;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = TRUE;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ while (TRUE) {
+#line 4937 "scanner.c"
+ SANE_Device** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ gint _tmp11_ = 0;
+ SANE_Device* _tmp12_ = NULL;
+ SANE_Device** _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+ gint _tmp14_ = 0;
+ SANE_Device* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ SANE_Device** _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+ gint _tmp18_ = 0;
+ SANE_Device* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ SANE_Device** _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ gint _tmp22_ = 0;
+ SANE_Device* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ SANE_Device** _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ gint _tmp26_ = 0;
+ SANE_Device* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ ScanDevice* scan_device = NULL;
+ ScanDevice* _tmp29_ = NULL;
+ ScanDevice* _tmp30_ = NULL;
+ SANE_Device** _tmp31_ = NULL;
+ gint _tmp31__length1 = 0;
+ gint _tmp32_ = 0;
+ SANE_Device* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ gchar* vendor = NULL;
+ SANE_Device** _tmp36_ = NULL;
+ gint _tmp36__length1 = 0;
+ gint _tmp37_ = 0;
+ SANE_Device* _tmp38_ = NULL;
+ const gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ const gchar* _tmp41_ = NULL;
+ ScanDevice* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ SANE_Device** _tmp45_ = NULL;
+ gint _tmp45__length1 = 0;
+ gint _tmp46_ = 0;
+ SANE_Device* _tmp47_ = NULL;
+ const gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ ScanDevice* _tmp50_ = NULL;
+ const gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ ScanDevice* _tmp54_ = NULL;
+ ScanDevice* _tmp55_ = NULL;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp8_) {
+#line 4995 "scanner.c"
+ gint _tmp9_ = 0;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = i;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = _tmp9_ + 1;
+#line 5001 "scanner.c"
+ }
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = FALSE;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = device_list;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10__length1 = device_list_length1;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = i;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = _tmp10_[_tmp11_];
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!(_tmp12_ != NULL)) {
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 5017 "scanner.c"
+ }
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = device_list;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13__length1 = device_list_length1;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = i;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = _tmp13_[_tmp14_];
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_ = _tmp15_->name;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp17_ = device_list;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp17__length1 = device_list_length1;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp18_ = i;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp19_ = _tmp17_[_tmp18_];
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp20_ = _tmp19_->vendor;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21_ = device_list;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21__length1 = device_list_length1;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp22_ = i;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp23_ = _tmp21_[_tmp22_];
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp24_ = _tmp23_->model;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25_ = device_list;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25__length1 = device_list_length1;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp26_ = i;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp27_ = _tmp25_[_tmp26_];
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp28_ = _tmp27_->type;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:350: Device: name=\"%s\" vendor=\"%s\" model=\"%s\" type=" \
+"\"%s\"", _tmp16_, _tmp20_, _tmp24_, _tmp28_);
+#line 353 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_ = scan_device_new ();
+#line 353 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scan_device = _tmp29_;
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_ = scan_device;
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp31_ = device_list;
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp31__length1 = device_list_length1;
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp32_ = i;
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33_ = _tmp31_[_tmp32_];
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp34_ = _tmp33_->name;
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp35_ = g_strdup (_tmp34_);
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp30_->name);
+#line 354 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_->name = _tmp35_;
+#line 357 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp36_ = device_list;
+#line 357 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp36__length1 = device_list_length1;
+#line 357 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_ = i;
+#line 357 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp38_ = _tmp36_[_tmp37_];
+#line 357 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp39_ = _tmp38_->vendor;
+#line 357 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp40_ = g_strdup (_tmp39_);
+#line 357 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ vendor = _tmp40_;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp41_ = vendor;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_strcmp0 (_tmp41_, "Hewlett-Packard") == 0) {
+#line 5101 "scanner.c"
+ gchar* _tmp42_ = NULL;
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp42_ = g_strdup ("HP");
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (vendor);
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ vendor = _tmp42_;
+#line 5109 "scanner.c"
+ }
+#line 361 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp43_ = scan_device;
+#line 361 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp44_ = vendor;
+#line 361 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp45_ = device_list;
+#line 361 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp45__length1 = device_list_length1;
+#line 361 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp46_ = i;
+#line 361 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp47_ = _tmp45_[_tmp46_];
+#line 361 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp48_ = _tmp47_->model;
+#line 361 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp49_ = g_strdup_printf ("%s %s", _tmp44_, _tmp48_);
+#line 361 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp43_->label);
+#line 361 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp43_->label = _tmp49_;
+#line 363 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp50_ = scan_device;
+#line 363 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp51_ = _tmp50_->label;
+#line 363 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp52_ = string_replace (_tmp51_, "_", " ");
+#line 363 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp53_ = _tmp52_;
+#line 363 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp53_);
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp54_ = scan_device;
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp55_ = _scan_device_ref0 (_tmp54_);
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ devices = g_list_append (devices, _tmp55_);
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (vendor);
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_device_unref0 (scan_device);
+#line 5151 "scanner.c"
+ }
+ }
+ }
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ devices = g_list_sort (devices, _scanner_compare_devices_gcompare_func);
+#line 371 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->need_redetect = FALSE;
+#line 372 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->state = SCAN_STATE_IDLE;
+#line 374 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp56_ = devices;
+#line 374 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp56_ != NULL) {
+#line 5165 "scanner.c"
+ ScanDevice* device = NULL;
+ GList* _tmp57_ = NULL;
+ gconstpointer _tmp58_ = NULL;
+ ScanDevice* _tmp59_ = NULL;
+ ScanDevice* _tmp60_ = NULL;
+ const gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+#line 376 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp57_ = devices;
+#line 376 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp58_ = g_list_nth_data (_tmp57_, (guint) 0);
+#line 376 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp59_ = _scan_device_ref0 ((ScanDevice*) _tmp58_);
+#line 376 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ device = _tmp59_;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp60_ = device;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp61_ = _tmp60_->name;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp62_ = g_strdup (_tmp61_);
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->priv->default_device);
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->default_device = _tmp62_;
+#line 374 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_device_unref0 (device);
+#line 5193 "scanner.c"
+ } else {
+#line 380 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->priv->default_device);
+#line 380 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->default_device = NULL;
+#line 5199 "scanner.c"
+ }
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp63_ = devices;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ devices = NULL;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp64_ = notify_update_devices_new (_tmp63_);
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp65_ = _tmp64_;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_notify (self, (Notify*) _tmp65_);
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _notify_unref0 (_tmp65_);
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ __g_list_free__scan_device_unref0_0 (devices);
+#line 5215 "scanner.c"
+}
+
+
+static gint scanner_scale_int (Scanner* self, gint source_min, gint source_max, SANE_Option_Descriptor* option, gint value) {
+ gint result = 0;
+ gint v = 0;
+ gint _tmp0_ = 0;
+ SANE_Option_Descriptor* _tmp1_ = NULL;
+ SANE_Value_Type _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+ SANE_Option_Descriptor* _tmp5_ = NULL;
+ SANE_Constraint_Type _tmp6_ = 0;
+#line 385 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 385 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (option != NULL, 0);
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = value;
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v = _tmp0_;
+#line 389 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = option;
+#line 389 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = _tmp1_->type;
+#line 389 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = value;
+#line 389 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (_tmp2_ == SANE_TYPE_INT, _tmp3_);
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = option;
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = _tmp5_->constraint_type;
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp6_ == SANE_CONSTRAINT_RANGE) {
+#line 5251 "scanner.c"
+ SANE_Option_Descriptor* _tmp7_ = NULL;
+ SANE_Range* _tmp8_ = NULL;
+ SANE_Word _tmp9_ = {0};
+ SANE_Option_Descriptor* _tmp10_ = NULL;
+ SANE_Range* _tmp11_ = NULL;
+ SANE_Word _tmp12_ = {0};
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = option;
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = _tmp7_->constraint.range;
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = _tmp8_->max;
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = option;
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = _tmp10_->constraint.range;
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = _tmp11_->min;
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = _tmp9_ != _tmp12_;
+#line 5272 "scanner.c"
+ } else {
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = FALSE;
+#line 5276 "scanner.c"
+ }
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp4_) {
+#line 5280 "scanner.c"
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ SANE_Option_Descriptor* _tmp16_ = NULL;
+ SANE_Range* _tmp17_ = NULL;
+ SANE_Word _tmp18_ = {0};
+ SANE_Option_Descriptor* _tmp19_ = NULL;
+ SANE_Range* _tmp20_ = NULL;
+ SANE_Word _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ SANE_Option_Descriptor* _tmp26_ = NULL;
+ SANE_Range* _tmp27_ = NULL;
+ SANE_Word _tmp28_ = {0};
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ SANE_Option_Descriptor* _tmp33_ = NULL;
+ SANE_Range* _tmp34_ = NULL;
+ SANE_Word _tmp35_ = {0};
+ SANE_Option_Descriptor* _tmp36_ = NULL;
+ SANE_Range* _tmp37_ = NULL;
+ SANE_Word _tmp38_ = {0};
+#line 393 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = v;
+#line 393 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = source_min;
+#line 393 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v = _tmp13_ - _tmp14_;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = v;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_ = option;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp17_ = _tmp16_->constraint.range;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp18_ = _tmp17_->max;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp19_ = option;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp20_ = _tmp19_->constraint.range;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21_ = _tmp20_->min;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v = _tmp15_ * ((gint) (_tmp18_ - _tmp21_));
+#line 395 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp22_ = v;
+#line 395 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp23_ = source_max;
+#line 395 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp24_ = source_min;
+#line 395 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v = _tmp22_ / (_tmp23_ - _tmp24_);
+#line 396 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25_ = v;
+#line 396 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp26_ = option;
+#line 396 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp27_ = _tmp26_->constraint.range;
+#line 396 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp28_ = _tmp27_->min;
+#line 396 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v = _tmp25_ + ((gint) _tmp28_);
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_ = value;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_ = source_min;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp31_ = source_max;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp32_ = v;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33_ = option;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp34_ = _tmp33_->constraint.range;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp35_ = _tmp34_->min;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp36_ = option;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_ = _tmp36_->constraint.range;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp38_ = _tmp37_->max;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:397: scale_int: scaling %d [min: %d, max: %d] to %d [min:" \
+" %d, max: %d]", _tmp29_, _tmp30_, _tmp31_, _tmp32_, (gint) _tmp35_, (gint) _tmp38_);
+#line 5369 "scanner.c"
+ }
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = v;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 5375 "scanner.c"
+}
+
+
+static gboolean scanner_set_default_option (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index) {
+ gboolean result = FALSE;
+ SANE_Option_Descriptor* _tmp0_ = NULL;
+ SANE_Int _tmp1_ = {0};
+ SANE_Status status = 0;
+ SANE_Handle _tmp2_ = {0};
+ SANE_Int _tmp3_ = {0};
+ SANE_Status _tmp4_ = 0;
+ SANE_Int _tmp5_ = {0};
+ SANE_Status _tmp6_ = 0;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ SANE_Status _tmp9_ = 0;
+ SANE_Status _tmp14_ = 0;
+#line 404 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 404 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (option != NULL, FALSE);
+#line 407 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = option;
+#line 407 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = _tmp0_->cap;
+#line 407 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if ((_tmp1_ & SANE_CAP_AUTOMATIC) == ((SANE_Int) 0)) {
+#line 408 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = FALSE;
+#line 408 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 5407 "scanner.c"
+ }
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = handle;
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = option_index;
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = sane_control_option (_tmp2_, _tmp3_, SANE_ACTION_SET_AUTO, NULL, NULL);
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ status = _tmp4_;
+#line 411 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = option_index;
+#line 411 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = status;
+#line 411 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = sane_status_to_string (_tmp6_);
+#line 411 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = _tmp7_;
+#line 411 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:411: sane_control_option (%d, SANE_ACTION_SET_AUTO) -> %s", (gint) _tmp5_, _tmp8_);
+#line 411 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp8_);
+#line 412 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = status;
+#line 412 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp9_ != SANE_STATUS_GOOD) {
+#line 5433 "scanner.c"
+ SANE_Option_Descriptor* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ SANE_Status _tmp12_ = 0;
+ const gchar* _tmp13_ = NULL;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = option;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = _tmp10_->name;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = status;
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = sane_strstatus (_tmp12_);
+#line 413 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:413: Error setting default option %s: %s", _tmp11_, _tmp13_);
+#line 5448 "scanner.c"
+ }
+#line 415 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = status;
+#line 415 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp14_ == SANE_STATUS_GOOD;
+#line 415 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 5456 "scanner.c"
+}
+
+
+static void scanner_set_bool_option (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index, gboolean value, gboolean* _result_) {
+ gboolean _vala_result = FALSE;
+ SANE_Option_Descriptor* _tmp0_ = NULL;
+ SANE_Value_Type _tmp1_ = 0;
+ SANE_Bool v = {0};
+ gboolean _tmp2_ = FALSE;
+ SANE_Status status = 0;
+ SANE_Handle _tmp3_ = {0};
+ SANE_Int _tmp4_ = {0};
+ SANE_Status _tmp5_ = 0;
+ SANE_Bool _tmp6_ = {0};
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ const gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ SANE_Int _tmp11_ = {0};
+ SANE_Status _tmp12_ = 0;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+#line 418 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 418 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (option != NULL);
+#line 420 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = option;
+#line 420 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = _tmp0_->type;
+#line 420 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (_tmp1_ == SANE_TYPE_BOOL);
+#line 422 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = value;
+#line 422 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v = (SANE_Bool) _tmp2_;
+#line 423 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = handle;
+#line 423 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = option_index;
+#line 423 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = sane_control_option (_tmp3_, _tmp4_, SANE_ACTION_SET_VALUE, &v, NULL);
+#line 423 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ status = _tmp5_;
+#line 424 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = v;
+#line 424 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _vala_result = (gboolean) _tmp6_;
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = value;
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp8_) {
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = "SANE_TRUE";
+#line 5511 "scanner.c"
+ } else {
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = "SANE_FALSE";
+#line 5515 "scanner.c"
+ }
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = _vala_result;
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp10_) {
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = "SANE_TRUE";
+#line 5523 "scanner.c"
+ } else {
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = "SANE_FALSE";
+#line 5527 "scanner.c"
+ }
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = option_index;
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = status;
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = sane_status_to_string (_tmp12_);
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = _tmp13_;
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:425: sane_control_option (%d, SANE_ACTION_SET_VALUE, %s) " \
+"-> (%s, %s)", (gint) _tmp11_, _tmp7_, _tmp14_, _tmp9_);
+#line 425 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp14_);
+#line 418 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_result_) {
+#line 418 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *_result_ = _vala_result;
+#line 5545 "scanner.c"
+ }
+}
+
+
+static void scanner_set_int_option (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index, gint value, gint* _result_) {
+ gint _vala_result = 0;
+ SANE_Option_Descriptor* _tmp0_ = NULL;
+ SANE_Value_Type _tmp1_ = 0;
+ SANE_Int v = {0};
+ gint _tmp2_ = 0;
+ SANE_Option_Descriptor* _tmp3_ = NULL;
+ SANE_Constraint_Type _tmp4_ = 0;
+ SANE_Status status = 0;
+ SANE_Handle _tmp48_ = {0};
+ SANE_Int _tmp49_ = {0};
+ SANE_Status _tmp50_ = 0;
+ SANE_Int _tmp51_ = {0};
+ gint _tmp52_ = 0;
+ gchar* _tmp53_ = NULL;
+ gchar* _tmp54_ = NULL;
+ SANE_Int _tmp55_ = {0};
+ SANE_Int _tmp56_ = {0};
+#line 428 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 428 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (option != NULL);
+#line 430 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = option;
+#line 430 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = _tmp0_->type;
+#line 430 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (_tmp1_ == SANE_TYPE_INT);
+#line 432 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = value;
+#line 432 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v = (SANE_Int) _tmp2_;
+#line 433 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = option;
+#line 433 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = _tmp3_->constraint_type;
+#line 433 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp4_ == SANE_CONSTRAINT_RANGE) {
+#line 5588 "scanner.c"
+ SANE_Option_Descriptor* _tmp5_ = NULL;
+ SANE_Range* _tmp6_ = NULL;
+ SANE_Word _tmp7_ = {0};
+ SANE_Int _tmp12_ = {0};
+ SANE_Option_Descriptor* _tmp13_ = NULL;
+ SANE_Range* _tmp14_ = NULL;
+ SANE_Word _tmp15_ = {0};
+ SANE_Int _tmp19_ = {0};
+ SANE_Option_Descriptor* _tmp20_ = NULL;
+ SANE_Range* _tmp21_ = NULL;
+ SANE_Word _tmp22_ = {0};
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = option;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = _tmp5_->constraint.range;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = _tmp6_->quant;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp7_ != ((SANE_Word) 0)) {
+#line 5608 "scanner.c"
+ SANE_Int _tmp8_ = {0};
+ SANE_Option_Descriptor* _tmp9_ = NULL;
+ SANE_Range* _tmp10_ = NULL;
+ SANE_Word _tmp11_ = {0};
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = v;
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = option;
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = _tmp9_->constraint.range;
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = _tmp10_->quant;
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v = _tmp8_ * _tmp11_;
+#line 5623 "scanner.c"
+ }
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = v;
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = option;
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = _tmp13_->constraint.range;
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = _tmp14_->min;
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp12_ < ((SANE_Int) _tmp15_)) {
+#line 5635 "scanner.c"
+ SANE_Option_Descriptor* _tmp16_ = NULL;
+ SANE_Range* _tmp17_ = NULL;
+ SANE_Word _tmp18_ = {0};
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_ = option;
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp17_ = _tmp16_->constraint.range;
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp18_ = _tmp17_->min;
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v = (SANE_Int) _tmp18_;
+#line 5647 "scanner.c"
+ }
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp19_ = v;
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp20_ = option;
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21_ = _tmp20_->constraint.range;
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp22_ = _tmp21_->max;
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp19_ > ((SANE_Int) _tmp22_)) {
+#line 5659 "scanner.c"
+ SANE_Option_Descriptor* _tmp23_ = NULL;
+ SANE_Range* _tmp24_ = NULL;
+ SANE_Word _tmp25_ = {0};
+#line 440 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp23_ = option;
+#line 440 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp24_ = _tmp23_->constraint.range;
+#line 440 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25_ = _tmp24_->max;
+#line 440 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v = (SANE_Int) _tmp25_;
+#line 5671 "scanner.c"
+ }
+ } else {
+ SANE_Option_Descriptor* _tmp26_ = NULL;
+ SANE_Constraint_Type _tmp27_ = 0;
+#line 442 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp26_ = option;
+#line 442 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp27_ = _tmp26_->constraint_type;
+#line 442 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp27_ == SANE_CONSTRAINT_WORD_LIST) {
+#line 5682 "scanner.c"
+ gint distance = 0;
+ gint _tmp28_ = 0;
+ gint nearest = 0;
+ gint _tmp47_ = 0;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp28_ = G_MAXINT;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ distance = _tmp28_;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ nearest = 0;
+#line 5693 "scanner.c"
+ {
+ gint i = 0;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = 0;
+#line 5698 "scanner.c"
+ {
+ gboolean _tmp29_ = FALSE;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_ = TRUE;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ while (TRUE) {
+#line 5705 "scanner.c"
+ gint _tmp31_ = 0;
+ SANE_Option_Descriptor* _tmp32_ = NULL;
+ SANE_Word* _tmp33_ = NULL;
+ gint _tmp33__length1 = 0;
+ SANE_Word _tmp34_ = {0};
+ gint x = 0;
+ SANE_Option_Descriptor* _tmp35_ = NULL;
+ SANE_Word* _tmp36_ = NULL;
+ gint _tmp36__length1 = 0;
+ gint _tmp37_ = 0;
+ SANE_Word _tmp38_ = {0};
+ gint d = 0;
+ gint _tmp39_ = 0;
+ SANE_Int _tmp40_ = {0};
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ gint _tmp44_ = 0;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp29_) {
+#line 5726 "scanner.c"
+ gint _tmp30_ = 0;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_ = i;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = _tmp30_ + 1;
+#line 5732 "scanner.c"
+ }
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_ = FALSE;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp31_ = i;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp32_ = option;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33_ = _tmp32_->constraint.word_list;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33__length1 = -1;
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp34_ = _tmp33_[0];
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!(((SANE_Word) _tmp31_) < _tmp34_)) {
+#line 447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 5750 "scanner.c"
+ }
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp35_ = option;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp36_ = _tmp35_->constraint.word_list;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp36__length1 = -1;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_ = i;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp38_ = _tmp36_[_tmp37_ + 1];
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ x = (gint) _tmp38_;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp39_ = x;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp40_ = v;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ d = (gint) (_tmp39_ - _tmp40_);
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp41_ = d;
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp42_ = abs (_tmp41_);
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ d = _tmp42_;
+#line 452 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp43_ = d;
+#line 452 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp44_ = distance;
+#line 452 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp43_ < _tmp44_) {
+#line 5782 "scanner.c"
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp45_ = d;
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ distance = _tmp45_;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp46_ = x;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ nearest = _tmp46_;
+#line 5793 "scanner.c"
+ }
+ }
+ }
+ }
+#line 458 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp47_ = nearest;
+#line 458 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v = (SANE_Int) _tmp47_;
+#line 5802 "scanner.c"
+ }
+ }
+#line 461 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp48_ = handle;
+#line 461 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp49_ = option_index;
+#line 461 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp50_ = sane_control_option (_tmp48_, _tmp49_, SANE_ACTION_SET_VALUE, &v, NULL);
+#line 461 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ status = _tmp50_;
+#line 462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp51_ = option_index;
+#line 462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp52_ = value;
+#line 462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp53_ = sane_status_to_string (status);
+#line 462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp54_ = _tmp53_;
+#line 462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp55_ = v;
+#line 462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:462: sane_control_option (%d, SANE_ACTION_SET_VALUE, %d) " \
+"-> (%s, %d)", (gint) _tmp51_, _tmp52_, _tmp54_, (gint) _tmp55_);
+#line 462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp54_);
+#line 463 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp56_ = v;
+#line 463 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _vala_result = (gint) _tmp56_;
+#line 428 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_result_) {
+#line 428 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *_result_ = _vala_result;
+#line 5835 "scanner.c"
+ }
+}
+
+
+static void scanner_set_fixed_option (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index, gdouble value, gdouble* _result_) {
+ gdouble _vala_result = 0.0;
+ gdouble v = 0.0;
+ gdouble _tmp0_ = 0.0;
+ SANE_Fixed v_fixed = {0};
+ SANE_Option_Descriptor* _tmp1_ = NULL;
+ SANE_Value_Type _tmp2_ = 0;
+ SANE_Option_Descriptor* _tmp3_ = NULL;
+ SANE_Constraint_Type _tmp4_ = 0;
+ gdouble _tmp42_ = 0.0;
+ SANE_Fixed _tmp43_ = {0};
+ SANE_Status status = 0;
+ SANE_Handle _tmp44_ = {0};
+ SANE_Int _tmp45_ = {0};
+ SANE_Status _tmp46_ = 0;
+ SANE_Int _tmp47_ = {0};
+ gdouble _tmp48_ = 0.0;
+ gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ gdouble _tmp51_ = 0.0;
+ gdouble _tmp52_ = 0.0;
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (option != NULL);
+#line 468 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = value;
+#line 468 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v = _tmp0_;
+#line 471 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = option;
+#line 471 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = _tmp1_->type;
+#line 471 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (_tmp2_ == SANE_TYPE_FIXED);
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = option;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = _tmp3_->constraint_type;
+#line 473 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp4_ == SANE_CONSTRAINT_RANGE) {
+#line 5881 "scanner.c"
+ gdouble min = 0.0;
+ SANE_Option_Descriptor* _tmp5_ = NULL;
+ SANE_Range* _tmp6_ = NULL;
+ SANE_Word _tmp7_ = {0};
+ gdouble _tmp8_ = 0.0;
+ gdouble max = 0.0;
+ SANE_Option_Descriptor* _tmp9_ = NULL;
+ SANE_Range* _tmp10_ = NULL;
+ SANE_Word _tmp11_ = {0};
+ gdouble _tmp12_ = 0.0;
+ gdouble _tmp13_ = 0.0;
+ gdouble _tmp14_ = 0.0;
+ gdouble _tmp16_ = 0.0;
+ gdouble _tmp17_ = 0.0;
+#line 475 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = option;
+#line 475 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = _tmp5_->constraint.range;
+#line 475 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = _tmp6_->min;
+#line 475 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = SANE_UNFIX ((SANE_Fixed) _tmp7_);
+#line 475 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ min = _tmp8_;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = option;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = _tmp9_->constraint.range;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = _tmp10_->max;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = SANE_UNFIX ((SANE_Fixed) _tmp11_);
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ max = _tmp12_;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = v;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = min;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp13_ < _tmp14_) {
+#line 5922 "scanner.c"
+ gdouble _tmp15_ = 0.0;
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = min;
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v = _tmp15_;
+#line 5928 "scanner.c"
+ }
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_ = v;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp17_ = max;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp16_ > _tmp17_) {
+#line 5936 "scanner.c"
+ gdouble _tmp18_ = 0.0;
+#line 481 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp18_ = max;
+#line 481 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v = _tmp18_;
+#line 5942 "scanner.c"
+ }
+ } else {
+ SANE_Option_Descriptor* _tmp19_ = NULL;
+ SANE_Constraint_Type _tmp20_ = 0;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp19_ = option;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp20_ = _tmp19_->constraint_type;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp20_ == SANE_CONSTRAINT_WORD_LIST) {
+#line 5953 "scanner.c"
+ gdouble distance = 0.0;
+ gdouble _tmp21_ = 0.0;
+ gdouble nearest = 0.0;
+ gdouble _tmp41_ = 0.0;
+#line 485 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21_ = DBL_MAX;
+#line 485 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ distance = _tmp21_;
+#line 485 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ nearest = 0.0;
+#line 5964 "scanner.c"
+ {
+ gint i = 0;
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = 0;
+#line 5969 "scanner.c"
+ {
+ gboolean _tmp22_ = FALSE;
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp22_ = TRUE;
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ while (TRUE) {
+#line 5976 "scanner.c"
+ gint _tmp24_ = 0;
+ SANE_Option_Descriptor* _tmp25_ = NULL;
+ SANE_Word* _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ SANE_Word _tmp27_ = {0};
+ gdouble x = 0.0;
+ SANE_Option_Descriptor* _tmp28_ = NULL;
+ SANE_Word* _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ gint _tmp30_ = 0;
+ SANE_Word _tmp31_ = {0};
+ gdouble _tmp32_ = 0.0;
+ gdouble _tmp33_ = 0.0;
+ gdouble _tmp34_ = 0.0;
+ gdouble _tmp35_ = 0.0;
+ gdouble _tmp36_ = 0.0;
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp22_) {
+#line 5995 "scanner.c"
+ gint _tmp23_ = 0;
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp23_ = i;
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = _tmp23_ + 1;
+#line 6001 "scanner.c"
+ }
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp22_ = FALSE;
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp24_ = i;
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25_ = option;
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp26_ = _tmp25_->constraint.word_list;
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp26__length1 = -1;
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp27_ = _tmp26_[0];
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!(((SANE_Word) _tmp24_) < _tmp27_)) {
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 6019 "scanner.c"
+ }
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp28_ = option;
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_ = _tmp28_->constraint.word_list;
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29__length1 = -1;
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_ = i;
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp31_ = _tmp29_[_tmp30_ + 1];
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp32_ = SANE_UNFIX ((SANE_Fixed) _tmp31_);
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ x = _tmp32_;
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33_ = x;
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp34_ = v;
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp35_ = fabs (_tmp33_ - _tmp34_);
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp36_ = distance;
+#line 491 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp35_ < _tmp36_) {
+#line 6045 "scanner.c"
+ gdouble _tmp37_ = 0.0;
+ gdouble _tmp38_ = 0.0;
+ gdouble _tmp39_ = 0.0;
+ gdouble _tmp40_ = 0.0;
+#line 493 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_ = x;
+#line 493 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp38_ = v;
+#line 493 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp39_ = fabs (_tmp37_ - _tmp38_);
+#line 493 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ distance = _tmp39_;
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp40_ = x;
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ nearest = _tmp40_;
+#line 6062 "scanner.c"
+ }
+ }
+ }
+ }
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp41_ = nearest;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v = _tmp41_;
+#line 6071 "scanner.c"
+ }
+ }
+#line 500 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp42_ = v;
+#line 500 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp43_ = SANE_FIX (_tmp42_);
+#line 500 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ v_fixed = _tmp43_;
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp44_ = handle;
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp45_ = option_index;
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp46_ = sane_control_option (_tmp44_, _tmp45_, SANE_ACTION_SET_VALUE, &v_fixed, NULL);
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ status = _tmp46_;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp47_ = option_index;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp48_ = value;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp49_ = sane_status_to_string (status);
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp50_ = _tmp49_;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp51_ = SANE_UNFIX (v_fixed);
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:502: sane_control_option (%d, SANE_ACTION_SET_VALUE, %f) " \
+"-> (%s, %f)", (gint) _tmp47_, _tmp48_, _tmp50_, _tmp51_);
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp50_);
+#line 504 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp52_ = SANE_UNFIX (v_fixed);
+#line 504 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _vala_result = _tmp52_;
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_result_) {
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *_result_ = _vala_result;
+#line 6110 "scanner.c"
+ }
+}
+
+
+static void scanner_set_fixed_or_int_option (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index, gdouble value, gdouble* _result_) {
+ gdouble _vala_result = 0.0;
+ SANE_Option_Descriptor* _tmp0_ = NULL;
+ SANE_Value_Type _tmp1_ = 0;
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (option != NULL);
+#line 509 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = option;
+#line 509 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = _tmp0_->type;
+#line 509 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp1_ == SANE_TYPE_FIXED) {
+#line 6129 "scanner.c"
+ SANE_Handle _tmp2_ = {0};
+ SANE_Option_Descriptor* _tmp3_ = NULL;
+ SANE_Int _tmp4_ = {0};
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = handle;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = option;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = option_index;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = value;
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_fixed_option (self, _tmp2_, _tmp3_, _tmp4_, _tmp5_, &_tmp6_);
+#line 510 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _vala_result = _tmp6_;
+#line 6147 "scanner.c"
+ } else {
+ SANE_Option_Descriptor* _tmp7_ = NULL;
+ SANE_Value_Type _tmp8_ = 0;
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = option;
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = _tmp7_->type;
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp8_ == SANE_TYPE_INT) {
+#line 6157 "scanner.c"
+ gint r = 0;
+ SANE_Handle _tmp9_ = {0};
+ SANE_Option_Descriptor* _tmp10_ = NULL;
+ SANE_Int _tmp11_ = {0};
+ gdouble _tmp12_ = 0.0;
+ gdouble _tmp13_ = 0.0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = handle;
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = option;
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = option_index;
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = value;
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = round (_tmp12_);
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_int_option (self, _tmp9_, _tmp10_, _tmp11_, (gint) _tmp13_, &_tmp14_);
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ r = _tmp14_;
+#line 515 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = r;
+#line 515 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _vala_result = (gdouble) _tmp15_;
+#line 6184 "scanner.c"
+ } else {
+#line 519 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _vala_result = 0.0;
+#line 520 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:520: Unable to set unsupported option type");
+#line 6190 "scanner.c"
+ }
+ }
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_result_) {
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *_result_ = _vala_result;
+#line 6197 "scanner.c"
+ }
+}
+
+
+static void scanner_set_option_to_max (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index) {
+ SANE_Option_Descriptor* _tmp0_ = NULL;
+ SANE_Constraint_Type _tmp1_ = 0;
+ SANE_Status status = 0;
+ SANE_Handle _tmp2_ = {0};
+ SANE_Int _tmp3_ = {0};
+ SANE_Option_Descriptor* _tmp4_ = NULL;
+ SANE_Range* _tmp5_ = NULL;
+ SANE_Status _tmp6_ = 0;
+ SANE_Int _tmp7_ = {0};
+ SANE_Status _tmp8_ = 0;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 524 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 524 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (option != NULL);
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = option;
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = _tmp0_->constraint_type;
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp1_ != SANE_CONSTRAINT_RANGE) {
+#line 527 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 6227 "scanner.c"
+ }
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = handle;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = option_index;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = option;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = _tmp4_->constraint.range;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = sane_control_option (_tmp2_, _tmp3_, SANE_ACTION_SET_VALUE, &_tmp5_->max, NULL);
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ status = _tmp6_;
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = option_index;
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = status;
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = sane_status_to_string (_tmp8_);
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = _tmp9_;
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:530: sane_control_option (%d, SANE_ACTION_SET_VALUE, opti" \
+"on.range.max) -> (%s)", (gint) _tmp7_, _tmp10_);
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp10_);
+#line 6253 "scanner.c"
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+ gchar result = '\0';
+ glong _tmp0_ = 0L;
+ gchar _tmp1_ = '\0';
+#line 996 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, '\0');
+#line 997 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = index;
+#line 997 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 997 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 997 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 6271 "scanner.c"
+}
+
+
+static gboolean scanner_set_string_option (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index, const gchar* value, gchar** _result_) {
+ gchar* _vala_result = NULL;
+ gboolean result = FALSE;
+ gchar* _tmp0_ = NULL;
+ SANE_Option_Descriptor* _tmp1_ = NULL;
+ SANE_Value_Type _tmp2_ = 0;
+ gchar* s = NULL;
+ SANE_Option_Descriptor* _tmp3_ = NULL;
+ SANE_Int _tmp4_ = {0};
+ gchar* _tmp5_ = NULL;
+ gint s_length1 = 0;
+ gint _s_size_ = 0;
+ gint i = 0;
+ gchar* _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ gint _tmp22_ = 0;
+ gchar _tmp23_ = '\0';
+ SANE_Status status = 0;
+ SANE_Handle _tmp24_ = {0};
+ SANE_Int _tmp25_ = {0};
+ gchar* _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ SANE_Status _tmp27_ = 0;
+ gchar* _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ gchar* _tmp29_ = NULL;
+ SANE_Int _tmp30_ = {0};
+ const gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (option != NULL, FALSE);
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (value != NULL, FALSE);
+#line 535 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = g_strdup ("");
+#line 535 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_vala_result);
+#line 535 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _vala_result = _tmp0_;
+#line 537 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = option;
+#line 537 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = _tmp1_->type;
+#line 537 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (_tmp2_ == SANE_TYPE_STRING, FALSE);
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = option;
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = _tmp3_->size;
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = g_new0 (gchar, _tmp4_);
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp5_;
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s_length1 = _tmp4_;
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _s_size_ = s_length1;
+#line 540 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = 0;
+#line 6338 "scanner.c"
+ {
+ gboolean _tmp6_ = FALSE;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = TRUE;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ while (TRUE) {
+#line 6345 "scanner.c"
+ gboolean _tmp8_ = FALSE;
+ gint _tmp9_ = 0;
+ SANE_Option_Descriptor* _tmp10_ = NULL;
+ SANE_Int _tmp11_ = {0};
+ gchar* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ gint _tmp16_ = 0;
+ const gchar* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gchar _tmp19_ = '\0';
+ gchar _tmp20_ = '\0';
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp6_) {
+#line 6359 "scanner.c"
+ gint _tmp7_ = 0;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = i;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = _tmp7_ + 1;
+#line 6365 "scanner.c"
+ }
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = FALSE;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = i;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = option;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = _tmp10_->size;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (((SANE_Int) _tmp9_) < (_tmp11_ - 1)) {
+#line 6377 "scanner.c"
+ const gchar* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gchar _tmp14_ = '\0';
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = value;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = i;
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = string_get (_tmp12_, (glong) _tmp13_);
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = _tmp14_ != '\0';
+#line 6389 "scanner.c"
+ } else {
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = FALSE;
+#line 6393 "scanner.c"
+ }
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp8_) {
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 6399 "scanner.c"
+ }
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = s;
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15__length1 = s_length1;
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_ = i;
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp17_ = value;
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp18_ = i;
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp19_ = string_get (_tmp17_, (glong) _tmp18_);
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_[_tmp16_] = _tmp19_;
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp20_ = _tmp15_[_tmp16_];
+#line 6417 "scanner.c"
+ }
+ }
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21_ = s;
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21__length1 = s_length1;
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp22_ = i;
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21_[_tmp22_] = '\0';
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp23_ = _tmp21_[_tmp22_];
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp24_ = handle;
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25_ = option_index;
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp26_ = s;
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp26__length1 = s_length1;
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp27_ = sane_control_option (_tmp24_, _tmp25_, SANE_ACTION_SET_VALUE, _tmp26_, NULL);
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ status = _tmp27_;
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp28_ = s;
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp28__length1 = s_length1;
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_ = g_strdup ((const gchar*) _tmp28_);
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_vala_result);
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _vala_result = _tmp29_;
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_ = option_index;
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp31_ = value;
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp32_ = sane_status_to_string (status);
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33_ = _tmp32_;
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp34_ = _vala_result;
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:546: sane_control_option (%d, SANE_ACTION_SET_VALUE, \"%s" \
+"\") -> (%s, \"%s\")", (gint) _tmp30_, _tmp31_, _tmp33_, _tmp34_);
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp33_);
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = status == SANE_STATUS_GOOD;
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = (g_free (s), NULL);
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_result_) {
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *_result_ = _vala_result;
+#line 6474 "scanner.c"
+ } else {
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_vala_result);
+#line 6478 "scanner.c"
+ }
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 6482 "scanner.c"
+}
+
+
+static gboolean scanner_set_constrained_string_option (Scanner* self, SANE_Handle handle, SANE_Option_Descriptor* option, SANE_Int option_index, gchar** values, int values_length1, gchar** _result_) {
+ gchar* _vala_result = NULL;
+ gboolean result = FALSE;
+ SANE_Option_Descriptor* _tmp0_ = NULL;
+ SANE_Value_Type _tmp1_ = 0;
+ SANE_Option_Descriptor* _tmp2_ = NULL;
+ SANE_Constraint_Type _tmp3_ = 0;
+ gchar* _tmp34_ = NULL;
+#line 551 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 551 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (option != NULL, FALSE);
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = option;
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = _tmp0_->type;
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (_tmp1_ == SANE_TYPE_STRING, FALSE);
+#line 554 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = option;
+#line 554 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = _tmp2_->constraint_type;
+#line 554 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (_tmp3_ == SANE_CONSTRAINT_STRING_LIST, FALSE);
+#line 6510 "scanner.c"
+ {
+ gint i = 0;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = 0;
+#line 6515 "scanner.c"
+ {
+ gboolean _tmp4_ = FALSE;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = TRUE;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ while (TRUE) {
+#line 6522 "scanner.c"
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gint _tmp7_ = 0;
+ const gchar* _tmp8_ = NULL;
+ gint j = 0;
+ SANE_Option_Descriptor* _tmp22_ = NULL;
+ gchar** _tmp23_ = NULL;
+ gint _tmp23__length1 = 0;
+ gint _tmp24_ = 0;
+ const gchar* _tmp25_ = NULL;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp4_) {
+#line 6535 "scanner.c"
+ gint _tmp5_ = 0;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = i;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = _tmp5_ + 1;
+#line 6541 "scanner.c"
+ }
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = FALSE;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = values;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6__length1 = values_length1;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = i;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = _tmp6_[_tmp7_];
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!(_tmp8_ != NULL)) {
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 6557 "scanner.c"
+ }
+#line 558 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ j = 0;
+#line 6561 "scanner.c"
+ {
+ gboolean _tmp9_ = FALSE;
+#line 559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = TRUE;
+#line 559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ while (TRUE) {
+#line 6568 "scanner.c"
+ SANE_Option_Descriptor* _tmp11_ = NULL;
+ gchar** _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ gint _tmp13_ = 0;
+ const gchar* _tmp14_ = NULL;
+ gchar** _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ gint _tmp16_ = 0;
+ const gchar* _tmp17_ = NULL;
+ SANE_Option_Descriptor* _tmp18_ = NULL;
+ gchar** _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ gint _tmp20_ = 0;
+ const gchar* _tmp21_ = NULL;
+#line 559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp9_) {
+#line 6585 "scanner.c"
+ gint _tmp10_ = 0;
+#line 559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = j;
+#line 559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ j = _tmp10_ + 1;
+#line 6591 "scanner.c"
+ }
+#line 559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = FALSE;
+#line 559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = option;
+#line 559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = _tmp11_->constraint.string_list;
+#line 559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12__length1 = -1;
+#line 559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = j;
+#line 559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = _tmp12_[_tmp13_];
+#line 559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!(_tmp14_ != NULL)) {
+#line 559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 6609 "scanner.c"
+ }
+#line 561 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = values;
+#line 561 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15__length1 = values_length1;
+#line 561 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_ = i;
+#line 561 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp17_ = _tmp15_[_tmp16_];
+#line 561 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp18_ = option;
+#line 561 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp19_ = _tmp18_->constraint.string_list;
+#line 561 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp19__length1 = -1;
+#line 561 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp20_ = j;
+#line 561 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21_ = _tmp19_[_tmp20_];
+#line 561 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_strcmp0 (_tmp17_, _tmp21_) == 0) {
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 6633 "scanner.c"
+ }
+ }
+ }
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp22_ = option;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp23_ = _tmp22_->constraint.string_list;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp23__length1 = -1;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp24_ = j;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25_ = _tmp23_[_tmp24_];
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp25_ != NULL) {
+#line 6649 "scanner.c"
+ SANE_Handle _tmp26_ = {0};
+ SANE_Option_Descriptor* _tmp27_ = NULL;
+ SANE_Int _tmp28_ = {0};
+ gchar** _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ gint _tmp30_ = 0;
+ const gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp26_ = handle;
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp27_ = option;
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp28_ = option_index;
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_ = values;
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29__length1 = values_length1;
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_ = i;
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp31_ = _tmp29_[_tmp30_];
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33_ = scanner_set_string_option (self, _tmp26_, _tmp27_, _tmp28_, _tmp31_, &_tmp32_);
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_vala_result);
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _vala_result = _tmp32_;
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp33_;
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_result_) {
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *_result_ = _vala_result;
+#line 6685 "scanner.c"
+ } else {
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_vala_result);
+#line 6689 "scanner.c"
+ }
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 6693 "scanner.c"
+ }
+ }
+ }
+ }
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp34_ = g_strdup ("");
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_vala_result);
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _vala_result = _tmp34_;
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = FALSE;
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_result_) {
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *_result_ = _vala_result;
+#line 6710 "scanner.c"
+ } else {
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_vala_result);
+#line 6714 "scanner.c"
+ }
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 6718 "scanner.c"
+}
+
+
+static void scanner_log_option (Scanner* self, SANE_Int index, SANE_Option_Descriptor* option) {
+ gchar* s = NULL;
+ SANE_Int _tmp0_ = {0};
+ gchar* _tmp1_ = NULL;
+ SANE_Option_Descriptor* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ SANE_Option_Descriptor* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ SANE_Option_Descriptor* _tmp18_ = NULL;
+ SANE_Value_Type _tmp19_ = 0;
+ const gchar* _tmp38_ = NULL;
+ SANE_Option_Descriptor* _tmp39_ = NULL;
+ SANE_Int _tmp40_ = {0};
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ SANE_Option_Descriptor* _tmp44_ = NULL;
+ SANE_Unit _tmp45_ = 0;
+ SANE_Option_Descriptor* _tmp64_ = NULL;
+ SANE_Constraint_Type _tmp65_ = 0;
+ SANE_Int cap = {0};
+ SANE_Option_Descriptor* _tmp149_ = NULL;
+ SANE_Int _tmp150_ = {0};
+ SANE_Int _tmp151_ = {0};
+ const gchar* _tmp212_ = NULL;
+ SANE_Option_Descriptor* _tmp213_ = NULL;
+ const gchar* _tmp214_ = NULL;
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (option != NULL);
+#line 575 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = index;
+#line 575 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = g_strdup_printf ("Option %d:", (gint) _tmp0_);
+#line 575 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp1_;
+#line 577 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = option;
+#line 577 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = _tmp2_->name;
+#line 577 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_strcmp0 (_tmp3_, "") != 0) {
+#line 6765 "scanner.c"
+ const gchar* _tmp4_ = NULL;
+ SANE_Option_Descriptor* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = s;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = option;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = _tmp5_->name;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = g_strdup_printf (" name='%s'", _tmp6_);
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = _tmp7_;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = g_strconcat (_tmp4_, _tmp8_, NULL);
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp9_;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp8_);
+#line 6790 "scanner.c"
+ }
+#line 580 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = option;
+#line 580 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = _tmp10_->title;
+#line 580 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_strcmp0 (_tmp11_, "") != 0) {
+#line 6798 "scanner.c"
+ const gchar* _tmp12_ = NULL;
+ SANE_Option_Descriptor* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = s;
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = option;
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = _tmp13_->title;
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = g_strdup_printf (" title='%s'", _tmp14_);
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_ = _tmp15_;
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp17_ = g_strconcat (_tmp12_, _tmp16_, NULL);
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp17_;
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp16_);
+#line 6823 "scanner.c"
+ }
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp18_ = option;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp19_ = _tmp18_->type;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ switch (_tmp19_) {
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_TYPE_BOOL:
+#line 6833 "scanner.c"
+ {
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 586 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp20_ = s;
+#line 586 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21_ = g_strconcat (_tmp20_, " type=bool", NULL);
+#line 586 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 586 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp21_;
+#line 587 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 6847 "scanner.c"
+ }
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_TYPE_INT:
+#line 6851 "scanner.c"
+ {
+ const gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+#line 589 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp22_ = s;
+#line 589 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp23_ = g_strconcat (_tmp22_, " type=int", NULL);
+#line 589 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 589 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp23_;
+#line 590 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 6865 "scanner.c"
+ }
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_TYPE_FIXED:
+#line 6869 "scanner.c"
+ {
+ const gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+#line 592 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp24_ = s;
+#line 592 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25_ = g_strconcat (_tmp24_, " type=fixed", NULL);
+#line 592 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 592 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp25_;
+#line 593 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 6883 "scanner.c"
+ }
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_TYPE_STRING:
+#line 6887 "scanner.c"
+ {
+ const gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+#line 595 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp26_ = s;
+#line 595 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp27_ = g_strconcat (_tmp26_, " type=string", NULL);
+#line 595 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 595 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp27_;
+#line 596 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 6901 "scanner.c"
+ }
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_TYPE_BUTTON:
+#line 6905 "scanner.c"
+ {
+ const gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp28_ = s;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_ = g_strconcat (_tmp28_, " type=button", NULL);
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp29_;
+#line 599 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 6919 "scanner.c"
+ }
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_TYPE_GROUP:
+#line 6923 "scanner.c"
+ {
+ const gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_ = s;
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp31_ = g_strconcat (_tmp30_, " type=group", NULL);
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 601 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp31_;
+#line 602 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 6937 "scanner.c"
+ }
+ default:
+ {
+ const gchar* _tmp32_ = NULL;
+ SANE_Option_Descriptor* _tmp33_ = NULL;
+ SANE_Value_Type _tmp34_ = 0;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp32_ = s;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33_ = option;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp34_ = _tmp33_->type;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp35_ = g_strdup_printf (" type=%d", (gint) _tmp34_);
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp36_ = _tmp35_;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_ = g_strconcat (_tmp32_, _tmp36_, NULL);
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp37_;
+#line 604 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp36_);
+#line 605 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 6967 "scanner.c"
+ }
+ }
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp38_ = s;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp39_ = option;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp40_ = _tmp39_->size;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp41_ = g_strdup_printf (" size=%d", (gint) _tmp40_);
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp42_ = _tmp41_;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp43_ = g_strconcat (_tmp38_, _tmp42_, NULL);
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp43_;
+#line 608 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp42_);
+#line 610 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp44_ = option;
+#line 610 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp45_ = _tmp44_->unit;
+#line 610 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ switch (_tmp45_) {
+#line 610 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_UNIT_NONE:
+#line 6996 "scanner.c"
+ {
+#line 613 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 7000 "scanner.c"
+ }
+#line 610 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_UNIT_PIXEL:
+#line 7004 "scanner.c"
+ {
+ const gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp46_ = s;
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp47_ = g_strconcat (_tmp46_, " unit=pixels", NULL);
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp47_;
+#line 616 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 7018 "scanner.c"
+ }
+#line 610 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_UNIT_BIT:
+#line 7022 "scanner.c"
+ {
+ const gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+#line 618 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp48_ = s;
+#line 618 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp49_ = g_strconcat (_tmp48_, " unit=bits", NULL);
+#line 618 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 618 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp49_;
+#line 619 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 7036 "scanner.c"
+ }
+#line 610 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_UNIT_MM:
+#line 7040 "scanner.c"
+ {
+ const gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp50_ = s;
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp51_ = g_strconcat (_tmp50_, " unit=mm", NULL);
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 621 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp51_;
+#line 622 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 7054 "scanner.c"
+ }
+#line 610 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_UNIT_DPI:
+#line 7058 "scanner.c"
+ {
+ const gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+#line 624 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp52_ = s;
+#line 624 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp53_ = g_strconcat (_tmp52_, " unit=dpi", NULL);
+#line 624 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 624 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp53_;
+#line 625 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 7072 "scanner.c"
+ }
+#line 610 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_UNIT_PERCENT:
+#line 7076 "scanner.c"
+ {
+ const gchar* _tmp54_ = NULL;
+ gchar* _tmp55_ = NULL;
+#line 627 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp54_ = s;
+#line 627 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp55_ = g_strconcat (_tmp54_, " unit=percent", NULL);
+#line 627 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 627 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp55_;
+#line 628 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 7090 "scanner.c"
+ }
+#line 610 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_UNIT_MICROSECOND:
+#line 7094 "scanner.c"
+ {
+ const gchar* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+#line 630 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp56_ = s;
+#line 630 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp57_ = g_strconcat (_tmp56_, " unit=microseconds", NULL);
+#line 630 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 630 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp57_;
+#line 631 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 7108 "scanner.c"
+ }
+ default:
+ {
+ const gchar* _tmp58_ = NULL;
+ SANE_Option_Descriptor* _tmp59_ = NULL;
+ SANE_Unit _tmp60_ = 0;
+ gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp58_ = s;
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp59_ = option;
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp60_ = _tmp59_->unit;
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp61_ = g_strdup_printf (" unit=%d", (gint) _tmp60_);
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp62_ = _tmp61_;
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp63_ = g_strconcat (_tmp58_, _tmp62_, NULL);
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp63_;
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp62_);
+#line 634 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 7138 "scanner.c"
+ }
+ }
+#line 637 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp64_ = option;
+#line 637 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp65_ = _tmp64_->constraint_type;
+#line 637 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ switch (_tmp65_) {
+#line 637 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_CONSTRAINT_RANGE:
+#line 7149 "scanner.c"
+ {
+ SANE_Option_Descriptor* _tmp66_ = NULL;
+ SANE_Value_Type _tmp67_ = 0;
+#line 640 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp66_ = option;
+#line 640 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp67_ = _tmp66_->type;
+#line 640 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp67_ == SANE_TYPE_FIXED) {
+#line 7159 "scanner.c"
+ const gchar* _tmp68_ = NULL;
+ SANE_Option_Descriptor* _tmp69_ = NULL;
+ SANE_Range* _tmp70_ = NULL;
+ SANE_Word _tmp71_ = {0};
+ gdouble _tmp72_ = 0.0;
+ SANE_Option_Descriptor* _tmp73_ = NULL;
+ SANE_Range* _tmp74_ = NULL;
+ SANE_Word _tmp75_ = {0};
+ gdouble _tmp76_ = 0.0;
+ SANE_Option_Descriptor* _tmp77_ = NULL;
+ SANE_Range* _tmp78_ = NULL;
+ SANE_Word _tmp79_ = {0};
+ gchar* _tmp80_ = NULL;
+ gchar* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp68_ = s;
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp69_ = option;
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp70_ = _tmp69_->constraint.range;
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp71_ = _tmp70_->min;
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp72_ = SANE_UNFIX ((SANE_Fixed) _tmp71_);
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp73_ = option;
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp74_ = _tmp73_->constraint.range;
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp75_ = _tmp74_->max;
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp76_ = SANE_UNFIX ((SANE_Fixed) _tmp75_);
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp77_ = option;
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp78_ = _tmp77_->constraint.range;
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp79_ = _tmp78_->quant;
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp80_ = g_strdup_printf (" min=%f, max=%f, quant=%d", _tmp72_, _tmp76_, (gint) _tmp79_);
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp81_ = _tmp80_;
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp82_ = g_strconcat (_tmp68_, _tmp81_, NULL);
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp82_;
+#line 641 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp81_);
+#line 7211 "scanner.c"
+ } else {
+ const gchar* _tmp83_ = NULL;
+ SANE_Option_Descriptor* _tmp84_ = NULL;
+ SANE_Range* _tmp85_ = NULL;
+ SANE_Word _tmp86_ = {0};
+ SANE_Option_Descriptor* _tmp87_ = NULL;
+ SANE_Range* _tmp88_ = NULL;
+ SANE_Word _tmp89_ = {0};
+ SANE_Option_Descriptor* _tmp90_ = NULL;
+ SANE_Range* _tmp91_ = NULL;
+ SANE_Word _tmp92_ = {0};
+ gchar* _tmp93_ = NULL;
+ gchar* _tmp94_ = NULL;
+ gchar* _tmp95_ = NULL;
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp83_ = s;
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp84_ = option;
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp85_ = _tmp84_->constraint.range;
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp86_ = _tmp85_->min;
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp87_ = option;
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp88_ = _tmp87_->constraint.range;
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp89_ = _tmp88_->max;
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp90_ = option;
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp91_ = _tmp90_->constraint.range;
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp92_ = _tmp91_->quant;
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp93_ = g_strdup_printf (" min=%d, max=%d, quant=%d", (gint) _tmp86_, (gint) _tmp89_, (gint) _tmp92_);
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp94_ = _tmp93_;
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp95_ = g_strconcat (_tmp83_, _tmp94_, NULL);
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp95_;
+#line 643 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp94_);
+#line 7258 "scanner.c"
+ }
+#line 644 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 7262 "scanner.c"
+ }
+#line 637 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_CONSTRAINT_WORD_LIST:
+#line 7266 "scanner.c"
+ {
+ const gchar* _tmp96_ = NULL;
+ gchar* _tmp97_ = NULL;
+ const gchar* _tmp126_ = NULL;
+ gchar* _tmp127_ = NULL;
+#line 646 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp96_ = s;
+#line 646 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp97_ = g_strconcat (_tmp96_, " values=[", NULL);
+#line 646 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 646 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp97_;
+#line 7280 "scanner.c"
+ {
+ gint i = 0;
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = 0;
+#line 7285 "scanner.c"
+ {
+ gboolean _tmp98_ = FALSE;
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp98_ = TRUE;
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ while (TRUE) {
+#line 7292 "scanner.c"
+ gint _tmp100_ = 0;
+ SANE_Option_Descriptor* _tmp101_ = NULL;
+ SANE_Word* _tmp102_ = NULL;
+ gint _tmp102__length1 = 0;
+ SANE_Word _tmp103_ = {0};
+ gint _tmp104_ = 0;
+ SANE_Option_Descriptor* _tmp107_ = NULL;
+ SANE_Value_Type _tmp108_ = 0;
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp98_) {
+#line 7303 "scanner.c"
+ gint _tmp99_ = 0;
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp99_ = i;
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = _tmp99_ + 1;
+#line 7309 "scanner.c"
+ }
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp98_ = FALSE;
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp100_ = i;
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp101_ = option;
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp102_ = _tmp101_->constraint.word_list;
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp102__length1 = -1;
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp103_ = _tmp102_[0];
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!(((SANE_Word) _tmp100_) < _tmp103_)) {
+#line 647 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 7327 "scanner.c"
+ }
+#line 649 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp104_ = i;
+#line 649 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp104_ != 0) {
+#line 7333 "scanner.c"
+ const gchar* _tmp105_ = NULL;
+ gchar* _tmp106_ = NULL;
+#line 650 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp105_ = s;
+#line 650 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp106_ = g_strconcat (_tmp105_, ", ", NULL);
+#line 650 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 650 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp106_;
+#line 7344 "scanner.c"
+ }
+#line 651 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp107_ = option;
+#line 651 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp108_ = _tmp107_->type;
+#line 651 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp108_ == SANE_TYPE_INT) {
+#line 7352 "scanner.c"
+ const gchar* _tmp109_ = NULL;
+ SANE_Option_Descriptor* _tmp110_ = NULL;
+ SANE_Word* _tmp111_ = NULL;
+ gint _tmp111__length1 = 0;
+ gint _tmp112_ = 0;
+ SANE_Word _tmp113_ = {0};
+ gchar* _tmp114_ = NULL;
+ gchar* _tmp115_ = NULL;
+ gchar* _tmp116_ = NULL;
+#line 652 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp109_ = s;
+#line 652 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp110_ = option;
+#line 652 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp111_ = _tmp110_->constraint.word_list;
+#line 652 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp111__length1 = -1;
+#line 652 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp112_ = i;
+#line 652 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp113_ = _tmp111_[_tmp112_ + 1];
+#line 652 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp114_ = g_strdup_printf ("%d", (gint) _tmp113_);
+#line 652 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp115_ = _tmp114_;
+#line 652 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp116_ = g_strconcat (_tmp109_, _tmp115_, NULL);
+#line 652 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 652 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp116_;
+#line 652 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp115_);
+#line 7386 "scanner.c"
+ } else {
+ const gchar* _tmp117_ = NULL;
+ SANE_Option_Descriptor* _tmp118_ = NULL;
+ SANE_Word* _tmp119_ = NULL;
+ gint _tmp119__length1 = 0;
+ gint _tmp120_ = 0;
+ SANE_Word _tmp121_ = {0};
+ gdouble _tmp122_ = 0.0;
+ gchar* _tmp123_ = NULL;
+ gchar* _tmp124_ = NULL;
+ gchar* _tmp125_ = NULL;
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp117_ = s;
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp118_ = option;
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp119_ = _tmp118_->constraint.word_list;
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp119__length1 = -1;
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp120_ = i;
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp121_ = _tmp119_[_tmp120_ + 1];
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp122_ = SANE_UNFIX ((SANE_Fixed) _tmp121_);
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp123_ = g_strdup_printf ("%f", _tmp122_);
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp124_ = _tmp123_;
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp125_ = g_strconcat (_tmp117_, _tmp124_, NULL);
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp125_;
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp124_);
+#line 7424 "scanner.c"
+ }
+ }
+ }
+ }
+#line 656 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp126_ = s;
+#line 656 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp127_ = g_strconcat (_tmp126_, "]", NULL);
+#line 656 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 656 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp127_;
+#line 657 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 7439 "scanner.c"
+ }
+#line 637 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_CONSTRAINT_STRING_LIST:
+#line 7443 "scanner.c"
+ {
+ const gchar* _tmp128_ = NULL;
+ gchar* _tmp129_ = NULL;
+ const gchar* _tmp147_ = NULL;
+ gchar* _tmp148_ = NULL;
+#line 659 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp128_ = s;
+#line 659 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp129_ = g_strconcat (_tmp128_, " values=[", NULL);
+#line 659 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 659 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp129_;
+#line 7457 "scanner.c"
+ {
+ gint i = 0;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = 0;
+#line 7462 "scanner.c"
+ {
+ gboolean _tmp130_ = FALSE;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp130_ = TRUE;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ while (TRUE) {
+#line 7469 "scanner.c"
+ SANE_Option_Descriptor* _tmp132_ = NULL;
+ gchar** _tmp133_ = NULL;
+ gint _tmp133__length1 = 0;
+ gint _tmp134_ = 0;
+ const gchar* _tmp135_ = NULL;
+ gint _tmp136_ = 0;
+ const gchar* _tmp139_ = NULL;
+ SANE_Option_Descriptor* _tmp140_ = NULL;
+ gchar** _tmp141_ = NULL;
+ gint _tmp141__length1 = 0;
+ gint _tmp142_ = 0;
+ const gchar* _tmp143_ = NULL;
+ gchar* _tmp144_ = NULL;
+ gchar* _tmp145_ = NULL;
+ gchar* _tmp146_ = NULL;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp130_) {
+#line 7487 "scanner.c"
+ gint _tmp131_ = 0;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp131_ = i;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = _tmp131_ + 1;
+#line 7493 "scanner.c"
+ }
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp130_ = FALSE;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp132_ = option;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp133_ = _tmp132_->constraint.string_list;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp133__length1 = -1;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp134_ = i;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp135_ = _tmp133_[_tmp134_];
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!(_tmp135_ != NULL)) {
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 7511 "scanner.c"
+ }
+#line 662 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp136_ = i;
+#line 662 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp136_ != 0) {
+#line 7517 "scanner.c"
+ const gchar* _tmp137_ = NULL;
+ gchar* _tmp138_ = NULL;
+#line 663 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp137_ = s;
+#line 663 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_ = g_strconcat (_tmp137_, ", ", NULL);
+#line 663 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 663 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp138_;
+#line 7528 "scanner.c"
+ }
+#line 664 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp139_ = s;
+#line 664 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp140_ = option;
+#line 664 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp141_ = _tmp140_->constraint.string_list;
+#line 664 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp141__length1 = -1;
+#line 664 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp142_ = i;
+#line 664 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp143_ = _tmp141_[_tmp142_];
+#line 664 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp144_ = g_strdup_printf ("\"%s\"", _tmp143_);
+#line 664 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp145_ = _tmp144_;
+#line 664 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp146_ = g_strconcat (_tmp139_, _tmp145_, NULL);
+#line 664 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 664 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp146_;
+#line 664 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp145_);
+#line 7554 "scanner.c"
+ }
+ }
+ }
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp147_ = s;
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp148_ = g_strconcat (_tmp147_, "]", NULL);
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 666 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp148_;
+#line 667 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 7568 "scanner.c"
+ }
+ default:
+ {
+#line 669 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 7574 "scanner.c"
+ }
+ }
+#line 672 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp149_ = option;
+#line 672 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp150_ = _tmp149_->cap;
+#line 672 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ cap = _tmp150_;
+#line 673 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp151_ = cap;
+#line 673 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp151_ != ((SANE_Int) 0)) {
+#line 7587 "scanner.c"
+ const gchar* _tmp152_ = NULL;
+ gchar* _tmp153_ = NULL;
+ SANE_Int _tmp154_ = {0};
+ SANE_Int _tmp161_ = {0};
+ SANE_Int _tmp168_ = {0};
+ SANE_Int _tmp175_ = {0};
+ SANE_Int _tmp182_ = {0};
+ SANE_Int _tmp189_ = {0};
+ SANE_Int _tmp196_ = {0};
+ SANE_Int _tmp203_ = {0};
+#line 675 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp152_ = s;
+#line 675 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp153_ = g_strconcat (_tmp152_, " cap=", NULL);
+#line 675 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 675 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp153_;
+#line 676 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp154_ = cap;
+#line 676 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if ((_tmp154_ & SANE_CAP_SOFT_SELECT) != ((SANE_Int) 0)) {
+#line 7610 "scanner.c"
+ const gchar* _tmp155_ = NULL;
+ const gchar* _tmp158_ = NULL;
+ gchar* _tmp159_ = NULL;
+ SANE_Int _tmp160_ = {0};
+#line 678 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp155_ = s;
+#line 678 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_strcmp0 (_tmp155_, "") != 0) {
+#line 7619 "scanner.c"
+ const gchar* _tmp156_ = NULL;
+ gchar* _tmp157_ = NULL;
+#line 679 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp156_ = s;
+#line 679 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp157_ = g_strconcat (_tmp156_, ",", NULL);
+#line 679 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 679 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp157_;
+#line 7630 "scanner.c"
+ }
+#line 680 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp158_ = s;
+#line 680 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp159_ = g_strconcat (_tmp158_, "soft-select", NULL);
+#line 680 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 680 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp159_;
+#line 681 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp160_ = cap;
+#line 681 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ cap = _tmp160_ & (~SANE_CAP_SOFT_SELECT);
+#line 7644 "scanner.c"
+ }
+#line 683 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp161_ = cap;
+#line 683 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if ((_tmp161_ & SANE_CAP_HARD_SELECT) != ((SANE_Int) 0)) {
+#line 7650 "scanner.c"
+ const gchar* _tmp162_ = NULL;
+ const gchar* _tmp165_ = NULL;
+ gchar* _tmp166_ = NULL;
+ SANE_Int _tmp167_ = {0};
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp162_ = s;
+#line 685 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_strcmp0 (_tmp162_, "") != 0) {
+#line 7659 "scanner.c"
+ const gchar* _tmp163_ = NULL;
+ gchar* _tmp164_ = NULL;
+#line 686 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp163_ = s;
+#line 686 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp164_ = g_strconcat (_tmp163_, ",", NULL);
+#line 686 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 686 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp164_;
+#line 7670 "scanner.c"
+ }
+#line 687 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp165_ = s;
+#line 687 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp166_ = g_strconcat (_tmp165_, "hard-select", NULL);
+#line 687 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 687 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp166_;
+#line 688 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp167_ = cap;
+#line 688 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ cap = _tmp167_ & (~SANE_CAP_HARD_SELECT);
+#line 7684 "scanner.c"
+ }
+#line 690 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp168_ = cap;
+#line 690 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if ((_tmp168_ & SANE_CAP_SOFT_DETECT) != ((SANE_Int) 0)) {
+#line 7690 "scanner.c"
+ const gchar* _tmp169_ = NULL;
+ const gchar* _tmp172_ = NULL;
+ gchar* _tmp173_ = NULL;
+ SANE_Int _tmp174_ = {0};
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp169_ = s;
+#line 692 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_strcmp0 (_tmp169_, "") != 0) {
+#line 7699 "scanner.c"
+ const gchar* _tmp170_ = NULL;
+ gchar* _tmp171_ = NULL;
+#line 693 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp170_ = s;
+#line 693 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp171_ = g_strconcat (_tmp170_, ",", NULL);
+#line 693 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 693 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp171_;
+#line 7710 "scanner.c"
+ }
+#line 694 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp172_ = s;
+#line 694 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp173_ = g_strconcat (_tmp172_, "soft-detect", NULL);
+#line 694 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 694 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp173_;
+#line 695 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp174_ = cap;
+#line 695 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ cap = _tmp174_ & (~SANE_CAP_SOFT_DETECT);
+#line 7724 "scanner.c"
+ }
+#line 697 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp175_ = cap;
+#line 697 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if ((_tmp175_ & SANE_CAP_EMULATED) != ((SANE_Int) 0)) {
+#line 7730 "scanner.c"
+ const gchar* _tmp176_ = NULL;
+ const gchar* _tmp179_ = NULL;
+ gchar* _tmp180_ = NULL;
+ SANE_Int _tmp181_ = {0};
+#line 699 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp176_ = s;
+#line 699 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_strcmp0 (_tmp176_, "") != 0) {
+#line 7739 "scanner.c"
+ const gchar* _tmp177_ = NULL;
+ gchar* _tmp178_ = NULL;
+#line 700 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp177_ = s;
+#line 700 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp178_ = g_strconcat (_tmp177_, ",", NULL);
+#line 700 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 700 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp178_;
+#line 7750 "scanner.c"
+ }
+#line 701 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp179_ = s;
+#line 701 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp180_ = g_strconcat (_tmp179_, "emulated", NULL);
+#line 701 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 701 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp180_;
+#line 702 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp181_ = cap;
+#line 702 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ cap = _tmp181_ & (~SANE_CAP_EMULATED);
+#line 7764 "scanner.c"
+ }
+#line 704 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp182_ = cap;
+#line 704 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if ((_tmp182_ & SANE_CAP_AUTOMATIC) != ((SANE_Int) 0)) {
+#line 7770 "scanner.c"
+ const gchar* _tmp183_ = NULL;
+ const gchar* _tmp186_ = NULL;
+ gchar* _tmp187_ = NULL;
+ SANE_Int _tmp188_ = {0};
+#line 706 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp183_ = s;
+#line 706 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_strcmp0 (_tmp183_, "") != 0) {
+#line 7779 "scanner.c"
+ const gchar* _tmp184_ = NULL;
+ gchar* _tmp185_ = NULL;
+#line 707 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp184_ = s;
+#line 707 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp185_ = g_strconcat (_tmp184_, ",", NULL);
+#line 707 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 707 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp185_;
+#line 7790 "scanner.c"
+ }
+#line 708 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp186_ = s;
+#line 708 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp187_ = g_strconcat (_tmp186_, "automatic", NULL);
+#line 708 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 708 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp187_;
+#line 709 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp188_ = cap;
+#line 709 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ cap = _tmp188_ & (~SANE_CAP_AUTOMATIC);
+#line 7804 "scanner.c"
+ }
+#line 711 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp189_ = cap;
+#line 711 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if ((_tmp189_ & SANE_CAP_INACTIVE) != ((SANE_Int) 0)) {
+#line 7810 "scanner.c"
+ const gchar* _tmp190_ = NULL;
+ const gchar* _tmp193_ = NULL;
+ gchar* _tmp194_ = NULL;
+ SANE_Int _tmp195_ = {0};
+#line 713 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp190_ = s;
+#line 713 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_strcmp0 (_tmp190_, "") != 0) {
+#line 7819 "scanner.c"
+ const gchar* _tmp191_ = NULL;
+ gchar* _tmp192_ = NULL;
+#line 714 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp191_ = s;
+#line 714 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp192_ = g_strconcat (_tmp191_, ",", NULL);
+#line 714 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 714 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp192_;
+#line 7830 "scanner.c"
+ }
+#line 715 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp193_ = s;
+#line 715 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp194_ = g_strconcat (_tmp193_, "inactive", NULL);
+#line 715 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 715 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp194_;
+#line 716 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp195_ = cap;
+#line 716 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ cap = _tmp195_ & (~SANE_CAP_INACTIVE);
+#line 7844 "scanner.c"
+ }
+#line 718 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp196_ = cap;
+#line 718 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if ((_tmp196_ & SANE_CAP_ADVANCED) != ((SANE_Int) 0)) {
+#line 7850 "scanner.c"
+ const gchar* _tmp197_ = NULL;
+ const gchar* _tmp200_ = NULL;
+ gchar* _tmp201_ = NULL;
+ SANE_Int _tmp202_ = {0};
+#line 720 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp197_ = s;
+#line 720 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_strcmp0 (_tmp197_, "") != 0) {
+#line 7859 "scanner.c"
+ const gchar* _tmp198_ = NULL;
+ gchar* _tmp199_ = NULL;
+#line 721 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp198_ = s;
+#line 721 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp199_ = g_strconcat (_tmp198_, ",", NULL);
+#line 721 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 721 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp199_;
+#line 7870 "scanner.c"
+ }
+#line 722 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp200_ = s;
+#line 722 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp201_ = g_strconcat (_tmp200_, "advanced", NULL);
+#line 722 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 722 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp201_;
+#line 723 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp202_ = cap;
+#line 723 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ cap = _tmp202_ & (~SANE_CAP_ADVANCED);
+#line 7884 "scanner.c"
+ }
+#line 726 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp203_ = cap;
+#line 726 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp203_ != ((SANE_Int) 0)) {
+#line 7890 "scanner.c"
+ const gchar* _tmp204_ = NULL;
+ const gchar* _tmp207_ = NULL;
+ SANE_Int _tmp208_ = {0};
+ gchar* _tmp209_ = NULL;
+ gchar* _tmp210_ = NULL;
+ gchar* _tmp211_ = NULL;
+#line 728 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp204_ = s;
+#line 728 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_strcmp0 (_tmp204_, "") != 0) {
+#line 7901 "scanner.c"
+ const gchar* _tmp205_ = NULL;
+ gchar* _tmp206_ = NULL;
+#line 729 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp205_ = s;
+#line 729 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp206_ = g_strconcat (_tmp205_, ",", NULL);
+#line 729 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 729 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp206_;
+#line 7912 "scanner.c"
+ }
+#line 730 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp207_ = s;
+#line 730 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp208_ = cap;
+#line 730 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp209_ = g_strdup_printf ("%x", (guint) ((gint) _tmp208_));
+#line 730 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp210_ = _tmp209_;
+#line 730 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp211_ = g_strconcat (_tmp207_, _tmp210_, NULL);
+#line 730 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 730 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ s = _tmp211_;
+#line 730 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp210_);
+#line 7930 "scanner.c"
+ }
+ }
+#line 734 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp212_ = s;
+#line 734 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:734: %s", _tmp212_);
+#line 736 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp213_ = option;
+#line 736 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp214_ = _tmp213_->desc;
+#line 736 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp214_ != NULL) {
+#line 7943 "scanner.c"
+ SANE_Option_Descriptor* _tmp215_ = NULL;
+ const gchar* _tmp216_ = NULL;
+#line 737 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp215_ = option;
+#line 737 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp216_ = _tmp215_->desc;
+#line 737 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:737: Description: %s", _tmp216_);
+#line 7952 "scanner.c"
+ }
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (s);
+#line 7956 "scanner.c"
+}
+
+
+static void scanner_authorization_cb (const gchar* resource, gchar* username, int username_length1, gchar* password, int password_length1) {
+ Scanner* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ NotifyRequestAuthorization* _tmp2_ = NULL;
+ NotifyRequestAuthorization* _tmp3_ = NULL;
+ Credentials* credentials = NULL;
+ Scanner* _tmp4_ = NULL;
+ GAsyncQueue* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+#line 740 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (resource != NULL);
+#line 742 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = scanner_scanner_object;
+#line 742 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = resource;
+#line 742 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = notify_request_authorization_new (_tmp1_);
+#line 742 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = _tmp2_;
+#line 742 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_notify (_tmp0_, (Notify*) _tmp3_);
+#line 742 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _notify_unref0 (_tmp3_);
+#line 744 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = scanner_scanner_object;
+#line 744 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = _tmp4_->priv->authorize_queue;
+#line 744 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = g_async_queue_pop (_tmp5_);
+#line 744 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ credentials = (Credentials*) _tmp6_;
+#line 7991 "scanner.c"
+ {
+ gint i = 0;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = 0;
+#line 7996 "scanner.c"
+ {
+ gboolean _tmp7_ = FALSE;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = TRUE;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ while (TRUE) {
+#line 8003 "scanner.c"
+ gboolean _tmp9_ = FALSE;
+ Credentials* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gchar _tmp13_ = '\0';
+ gchar* _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ gint _tmp17_ = 0;
+ Credentials* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gchar _tmp21_ = '\0';
+ gchar _tmp22_ = '\0';
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp7_) {
+#line 8019 "scanner.c"
+ gint _tmp8_ = 0;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = i;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = _tmp8_ + 1;
+#line 8025 "scanner.c"
+ }
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = FALSE;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = credentials;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = _tmp10_->username;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = i;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = string_get (_tmp11_, (glong) _tmp12_);
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp13_ != '\0') {
+#line 8039 "scanner.c"
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = i;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = SANE_MAX_USERNAME_LEN;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = _tmp14_ < _tmp15_;
+#line 8048 "scanner.c"
+ } else {
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = FALSE;
+#line 8052 "scanner.c"
+ }
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp9_) {
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 8058 "scanner.c"
+ }
+#line 746 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_ = username;
+#line 746 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16__length1 = username_length1;
+#line 746 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp17_ = i;
+#line 746 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp18_ = credentials;
+#line 746 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp19_ = _tmp18_->username;
+#line 746 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp20_ = i;
+#line 746 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21_ = string_get (_tmp19_, (glong) _tmp20_);
+#line 746 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_[_tmp17_] = _tmp21_;
+#line 746 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp22_ = _tmp16_[_tmp17_];
+#line 8078 "scanner.c"
+ }
+ }
+ }
+ {
+ gint i = 0;
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = 0;
+#line 8086 "scanner.c"
+ {
+ gboolean _tmp23_ = FALSE;
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp23_ = TRUE;
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ while (TRUE) {
+#line 8093 "scanner.c"
+ gboolean _tmp25_ = FALSE;
+ Credentials* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gchar _tmp29_ = '\0';
+ gchar* _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ gint _tmp33_ = 0;
+ Credentials* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+ gchar _tmp37_ = '\0';
+ gchar _tmp38_ = '\0';
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp23_) {
+#line 8109 "scanner.c"
+ gint _tmp24_ = 0;
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp24_ = i;
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = _tmp24_ + 1;
+#line 8115 "scanner.c"
+ }
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp23_ = FALSE;
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp26_ = credentials;
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp27_ = _tmp26_->password;
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp28_ = i;
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_ = string_get (_tmp27_, (glong) _tmp28_);
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp29_ != '\0') {
+#line 8129 "scanner.c"
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_ = i;
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp31_ = SANE_MAX_USERNAME_LEN;
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25_ = _tmp30_ < _tmp31_;
+#line 8138 "scanner.c"
+ } else {
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25_ = FALSE;
+#line 8142 "scanner.c"
+ }
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp25_) {
+#line 747 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 8148 "scanner.c"
+ }
+#line 748 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp32_ = password;
+#line 748 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp32__length1 = password_length1;
+#line 748 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33_ = i;
+#line 748 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp34_ = credentials;
+#line 748 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp35_ = _tmp34_->password;
+#line 748 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp36_ = i;
+#line 748 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_ = string_get (_tmp35_, (glong) _tmp36_);
+#line 748 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp32_[_tmp33_] = _tmp37_;
+#line 748 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp38_ = _tmp32_[_tmp33_];
+#line 8168 "scanner.c"
+ }
+ }
+ }
+#line 740 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _credentials_unref0 (credentials);
+#line 8174 "scanner.c"
+}
+
+
+static gpointer _credentials_ref0 (gpointer self) {
+#line 756 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self ? credentials_ref (self) : NULL;
+#line 8181 "scanner.c"
+}
+
+
+void scanner_authorize (Scanner* self, const gchar* username, const gchar* password) {
+ Credentials* credentials = NULL;
+ Credentials* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GAsyncQueue* _tmp5_ = NULL;
+ Credentials* _tmp6_ = NULL;
+#line 751 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 751 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (username != NULL);
+#line 751 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (password != NULL);
+#line 753 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = credentials_new ();
+#line 753 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ credentials = _tmp0_;
+#line 754 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = username;
+#line 754 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 754 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (credentials->username);
+#line 754 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ credentials->username = _tmp2_;
+#line 755 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = password;
+#line 755 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 755 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (credentials->password);
+#line 755 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ credentials->password = _tmp4_;
+#line 756 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = self->priv->authorize_queue;
+#line 756 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = _credentials_ref0 (credentials);
+#line 756 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_async_queue_push (_tmp5_, _tmp6_);
+#line 751 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _credentials_unref0 (credentials);
+#line 8228 "scanner.c"
+}
+
+
+static void scanner_close_device (Scanner* self) {
+ gboolean _tmp0_ = FALSE;
+#line 759 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 761 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = self->priv->have_handle;
+#line 761 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp0_) {
+#line 8240 "scanner.c"
+ SANE_Handle _tmp1_ = {0};
+ SANE_Handle _tmp2_ = {0};
+#line 763 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = self->priv->handle;
+#line 763 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ sane_cancel (_tmp1_);
+#line 764 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:764: sane_cancel ()");
+#line 766 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = self->priv->handle;
+#line 766 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ sane_close (_tmp2_);
+#line 767 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:767: sane_close ()");
+#line 768 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->have_handle = FALSE;
+#line 769 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_hash_table_unref0 (self->priv->options);
+#line 769 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->options = NULL;
+#line 8261 "scanner.c"
+ }
+#line 772 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->buffer = (g_free (self->priv->buffer), NULL);
+#line 772 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->buffer = NULL;
+#line 772 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->buffer_length1 = 0;
+#line 772 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->_buffer_size_ = self->priv->buffer_length1;
+#line 773 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ __g_list_free__scan_job_unref0_0 (self->priv->job_queue);
+#line 773 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->job_queue = NULL;
+#line 775 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_scanning (self, FALSE);
+#line 8277 "scanner.c"
+}
+
+
+static void scanner_fail_scan (Scanner* self, gint error_code, const gchar* error_string) {
+ gint _tmp0_ = 0;
+ const gchar* _tmp1_ = NULL;
+ NotifyScanFailed* _tmp2_ = NULL;
+ NotifyScanFailed* _tmp3_ = NULL;
+#line 778 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 778 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (error_string != NULL);
+#line 780 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_close_device (self);
+#line 781 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->state = SCAN_STATE_IDLE;
+#line 782 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = error_code;
+#line 782 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = error_string;
+#line 782 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = notify_scan_failed_new (_tmp0_, _tmp1_);
+#line 782 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = _tmp2_;
+#line 782 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_notify (self, (Notify*) _tmp3_);
+#line 782 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _notify_unref0 (_tmp3_);
+#line 8306 "scanner.c"
+}
+
+
+static gpointer _request_ref0 (gpointer self) {
+#line 807 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self ? request_ref (self) : NULL;
+#line 8313 "scanner.c"
+}
+
+
+static gpointer _scan_job_ref0 (gpointer self) {
+#line 808 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self ? scan_job_ref (self) : NULL;
+#line 8320 "scanner.c"
+}
+
+
+static gboolean scanner_handle_requests (Scanner* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ ScanState _tmp1_ = 0;
+ gint request_count = 0;
+#line 785 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 788 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = self->priv->state;
+#line 788 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp1_ == SCAN_STATE_IDLE) {
+#line 8335 "scanner.c"
+ gboolean _tmp2_ = FALSE;
+#line 788 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = self->priv->need_redetect;
+#line 788 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = _tmp2_;
+#line 8341 "scanner.c"
+ } else {
+#line 788 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = FALSE;
+#line 8345 "scanner.c"
+ }
+#line 788 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp0_) {
+#line 789 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->state = SCAN_STATE_REDETECT;
+#line 8351 "scanner.c"
+ }
+#line 792 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ request_count = 0;
+#line 793 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ while (TRUE) {
+#line 8357 "scanner.c"
+ Request* request = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ ScanState _tmp5_ = 0;
+ gint _tmp11_ = 0;
+ Request* _tmp12_ = NULL;
+#line 796 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = self->priv->state;
+#line 796 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp5_ == SCAN_STATE_IDLE) {
+#line 8368 "scanner.c"
+ gint _tmp6_ = 0;
+#line 796 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = request_count;
+#line 796 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = _tmp6_ == 0;
+#line 8374 "scanner.c"
+ } else {
+#line 796 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = FALSE;
+#line 8378 "scanner.c"
+ }
+#line 796 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp4_) {
+#line 796 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = TRUE;
+#line 8384 "scanner.c"
+ } else {
+ GAsyncQueue* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+#line 797 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = self->priv->request_queue;
+#line 797 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = g_async_queue_length (_tmp7_);
+#line 797 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = _tmp8_ > 0;
+#line 8394 "scanner.c"
+ }
+#line 796 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp3_) {
+#line 8398 "scanner.c"
+ GAsyncQueue* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+#line 798 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = self->priv->request_queue;
+#line 798 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = g_async_queue_pop (_tmp9_);
+#line 798 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _request_unref0 (request);
+#line 798 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ request = (Request*) _tmp10_;
+#line 8409 "scanner.c"
+ } else {
+#line 800 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = TRUE;
+#line 800 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _request_unref0 (request);
+#line 800 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 8417 "scanner.c"
+ }
+#line 802 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:802: Processing request");
+#line 803 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = request_count;
+#line 803 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ request_count = _tmp11_ + 1;
+#line 805 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = request;
+#line 805 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp12_, TYPE_REQUEST_START_SCAN)) {
+#line 8429 "scanner.c"
+ RequestStartScan* r = NULL;
+ Request* _tmp13_ = NULL;
+ RequestStartScan* _tmp14_ = NULL;
+ RequestStartScan* _tmp15_ = NULL;
+ ScanJob* _tmp16_ = NULL;
+ ScanJob* _tmp17_ = NULL;
+#line 807 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = request;
+#line 807 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = _request_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_REQUEST_START_SCAN, RequestStartScan));
+#line 807 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ r = _tmp14_;
+#line 808 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = r;
+#line 808 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_ = _tmp15_->job;
+#line 808 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp17_ = _scan_job_ref0 (_tmp16_);
+#line 808 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->job_queue = g_list_append (self->priv->job_queue, _tmp17_);
+#line 805 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _request_unref0 (r);
+#line 8452 "scanner.c"
+ } else {
+ Request* _tmp18_ = NULL;
+#line 810 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp18_ = request;
+#line 810 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp18_, TYPE_REQUEST_CANCEL)) {
+#line 812 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_fail_scan (self, (gint) SANE_STATUS_CANCELLED, "Scan cancelled - do not report this error");
+#line 8461 "scanner.c"
+ } else {
+ Request* _tmp19_ = NULL;
+#line 814 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp19_ = request;
+#line 814 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, TYPE_REQUEST_QUIT)) {
+#line 816 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_close_device (self);
+#line 817 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = FALSE;
+#line 817 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _request_unref0 (request);
+#line 817 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 8476 "scanner.c"
+ }
+ }
+ }
+#line 793 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _request_unref0 (request);
+#line 8482 "scanner.c"
+ }
+}
+
+
+static void _g_free0_ (gpointer var) {
+#line 861 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ var = (g_free (var), NULL);
+#line 8490 "scanner.c"
+}
+
+
+static void scanner_do_open (Scanner* self) {
+ ScanJob* job = NULL;
+ GList* _tmp0_ = NULL;
+ gconstpointer _tmp1_ = NULL;
+ ScanJob* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ ScanJob* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ ScanJob* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ GHashFunc _tmp18_ = NULL;
+ GEqualFunc _tmp19_ = NULL;
+ GHashTable* _tmp20_ = NULL;
+ SANE_Status status = 0;
+ ScanJob* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ SANE_Handle _tmp23_ = {0};
+ SANE_Status _tmp24_ = 0;
+ ScanJob* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ SANE_Status _tmp27_ = 0;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ SANE_Status _tmp30_ = 0;
+ ScanJob* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+#line 822 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 824 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = self->priv->job_queue;
+#line 824 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = _tmp0_->data;
+#line 824 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = _scan_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST ((ScanJob*) _tmp1_, TYPE_SCAN_JOB, ScanJob));
+#line 824 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ job = _tmp2_;
+#line 826 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->line_count = 0;
+#line 827 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->pass_number = 0;
+#line 828 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->page_number = 0;
+#line 829 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->notified_page = -1;
+#line 830 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->option_index = (SANE_Int) 0;
+#line 832 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = job;
+#line 832 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = _tmp4_->device;
+#line 832 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp5_ == NULL) {
+#line 8548 "scanner.c"
+ const gchar* _tmp6_ = NULL;
+#line 832 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = self->priv->default_device;
+#line 832 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = _tmp6_ != NULL;
+#line 8554 "scanner.c"
+ } else {
+#line 832 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = FALSE;
+#line 8558 "scanner.c"
+ }
+#line 832 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp3_) {
+#line 8562 "scanner.c"
+ ScanJob* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 833 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = job;
+#line 833 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = self->priv->default_device;
+#line 833 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 833 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp7_->device);
+#line 833 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_->device = _tmp9_;
+#line 8576 "scanner.c"
+ }
+#line 835 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = job;
+#line 835 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = _tmp10_->device;
+#line 835 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp11_ == NULL) {
+#line 8584 "scanner.c"
+ const gchar* _tmp12_ = NULL;
+#line 837 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:837: No scan device available");
+#line 838 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = _ ("No scanners available. Please connect a scanner.");
+#line 838 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_fail_scan (self, 0, _tmp12_);
+#line 841 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 841 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 8596 "scanner.c"
+ }
+#line 845 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = self->priv->have_handle;
+#line 845 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp13_) {
+#line 8602 "scanner.c"
+ const gchar* _tmp14_ = NULL;
+ ScanJob* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ SANE_Handle _tmp17_ = {0};
+#line 847 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = self->priv->current_device;
+#line 847 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = job;
+#line 847 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_ = _tmp15_->device;
+#line 847 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_strcmp0 (_tmp14_, _tmp16_) == 0) {
+#line 849 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->state = SCAN_STATE_GET_OPTION;
+#line 850 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 850 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 8621 "scanner.c"
+ }
+#line 853 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp17_ = self->priv->handle;
+#line 853 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ sane_close (_tmp17_);
+#line 854 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:854: sane_close ()");
+#line 855 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->have_handle = FALSE;
+#line 8631 "scanner.c"
+ }
+#line 858 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->priv->current_device);
+#line 858 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->current_device = NULL;
+#line 860 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->have_handle = FALSE;
+#line 861 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp18_ = g_str_hash;
+#line 861 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp19_ = g_str_equal;
+#line 861 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp20_ = g_hash_table_new_full (_tmp18_, _tmp19_, _g_free0_, NULL);
+#line 861 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_hash_table_unref0 (self->priv->options);
+#line 861 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->options = _tmp20_;
+#line 862 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21_ = job;
+#line 862 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp22_ = _tmp21_->device;
+#line 862 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp24_ = sane_open (_tmp22_, &_tmp23_);
+#line 862 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->handle = _tmp23_;
+#line 862 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ status = _tmp24_;
+#line 863 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25_ = job;
+#line 863 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp26_ = _tmp25_->device;
+#line 863 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp27_ = status;
+#line 863 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp28_ = sane_status_to_string (_tmp27_);
+#line 863 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_ = _tmp28_;
+#line 863 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:863: sane_open (\"%s\") -> %s", _tmp26_, _tmp29_);
+#line 863 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp29_);
+#line 865 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_ = status;
+#line 865 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp30_ != SANE_STATUS_GOOD) {
+#line 8677 "scanner.c"
+ SANE_Status _tmp31_ = 0;
+ const gchar* _tmp32_ = NULL;
+ SANE_Status _tmp33_ = 0;
+ const gchar* _tmp34_ = NULL;
+#line 867 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp31_ = status;
+#line 867 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp32_ = sane_strstatus (_tmp31_);
+#line 867 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:867: Unable to get open device: %s", _tmp32_);
+#line 868 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33_ = status;
+#line 868 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp34_ = _ ("Unable to connect to scanner");
+#line 868 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_fail_scan (self, (gint) _tmp33_, _tmp34_);
+#line 871 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 871 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 8698 "scanner.c"
+ }
+#line 873 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->have_handle = TRUE;
+#line 875 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp35_ = job;
+#line 875 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp36_ = _tmp35_->device;
+#line 875 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_ = g_strdup (_tmp36_);
+#line 875 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->priv->current_device);
+#line 875 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->current_device = _tmp37_;
+#line 876 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->state = SCAN_STATE_GET_OPTION;
+#line 822 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 8716 "scanner.c"
+}
+
+
+static void scanner_do_get_option (Scanner* self) {
+ ScanJob* job = NULL;
+ GList* _tmp0_ = NULL;
+ gconstpointer _tmp1_ = NULL;
+ ScanJob* _tmp2_ = NULL;
+ SANE_Option_Descriptor* option = NULL;
+ SANE_Handle _tmp3_ = {0};
+ SANE_Int _tmp4_ = {0};
+ SANE_Option_Descriptor* _tmp5_ = NULL;
+ SANE_Int _tmp6_ = {0};
+ SANE_Int index = {0};
+ SANE_Int _tmp7_ = {0};
+ SANE_Int _tmp8_ = {0};
+ SANE_Option_Descriptor* _tmp9_ = NULL;
+ SANE_Int _tmp356_ = {0};
+ SANE_Option_Descriptor* _tmp357_ = NULL;
+ SANE_Option_Descriptor* _tmp358_ = NULL;
+ SANE_Value_Type _tmp359_ = 0;
+ SANE_Option_Descriptor* _tmp360_ = NULL;
+ SANE_Int _tmp361_ = {0};
+ SANE_Option_Descriptor* _tmp362_ = NULL;
+ const gchar* _tmp363_ = NULL;
+ GHashTable* _tmp364_ = NULL;
+ SANE_Option_Descriptor* _tmp365_ = NULL;
+ const gchar* _tmp366_ = NULL;
+ gchar* _tmp367_ = NULL;
+ SANE_Int _tmp368_ = {0};
+#line 879 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 881 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = self->priv->job_queue;
+#line 881 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = _tmp0_->data;
+#line 881 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = _scan_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST ((ScanJob*) _tmp1_, TYPE_SCAN_JOB, ScanJob));
+#line 881 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ job = _tmp2_;
+#line 883 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = self->priv->handle;
+#line 883 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = self->priv->option_index;
+#line 883 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = sane_get_option_descriptor (_tmp3_, _tmp4_);
+#line 883 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp5_;
+#line 884 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = self->priv->option_index;
+#line 884 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:884: sane_get_option_descriptor (%d)", (gint) _tmp6_);
+#line 885 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = self->priv->option_index;
+#line 885 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = _tmp7_;
+#line 886 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = self->priv->option_index;
+#line 886 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->option_index = _tmp8_ + 1;
+#line 889 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = option;
+#line 889 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp9_ == NULL) {
+#line 8781 "scanner.c"
+ SANE_Handle _tmp10_ = {0};
+ const gchar* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ SANE_Option_Descriptor* _tmp13_ = NULL;
+ SANE_Option_Descriptor* _tmp14_ = NULL;
+ SANE_Option_Descriptor* _tmp18_ = NULL;
+ SANE_Handle _tmp96_ = {0};
+ const gchar* _tmp97_ = NULL;
+ gint _tmp98_ = 0;
+ SANE_Option_Descriptor* _tmp99_ = NULL;
+ SANE_Option_Descriptor* _tmp100_ = NULL;
+ SANE_Handle _tmp156_ = {0};
+ gint _tmp157_ = 0;
+ SANE_Option_Descriptor* _tmp158_ = NULL;
+ SANE_Option_Descriptor* _tmp159_ = NULL;
+ SANE_Handle _tmp167_ = {0};
+ gint _tmp168_ = 0;
+ SANE_Option_Descriptor* _tmp169_ = NULL;
+ SANE_Option_Descriptor* _tmp170_ = NULL;
+ SANE_Handle _tmp178_ = {0};
+ gint _tmp179_ = 0;
+ SANE_Option_Descriptor* _tmp180_ = NULL;
+ SANE_Option_Descriptor* _tmp181_ = NULL;
+ SANE_Handle _tmp194_ = {0};
+ const gchar* _tmp195_ = NULL;
+ gint _tmp196_ = 0;
+ SANE_Option_Descriptor* _tmp197_ = NULL;
+ SANE_Option_Descriptor* _tmp198_ = NULL;
+ SANE_Handle _tmp218_ = {0};
+ const gchar* _tmp219_ = NULL;
+ gint _tmp220_ = 0;
+ SANE_Option_Descriptor* _tmp221_ = NULL;
+ SANE_Option_Descriptor* _tmp222_ = NULL;
+ SANE_Handle _tmp237_ = {0};
+ const gchar* _tmp238_ = NULL;
+ gint _tmp239_ = 0;
+ SANE_Option_Descriptor* _tmp240_ = NULL;
+ SANE_Option_Descriptor* _tmp241_ = NULL;
+ SANE_Handle _tmp256_ = {0};
+ const gchar* _tmp257_ = NULL;
+ gint _tmp258_ = 0;
+ SANE_Option_Descriptor* _tmp259_ = NULL;
+ gboolean _tmp260_ = FALSE;
+ SANE_Option_Descriptor* _tmp261_ = NULL;
+ SANE_Handle _tmp273_ = {0};
+ const gchar* _tmp274_ = NULL;
+ gint _tmp275_ = 0;
+ SANE_Option_Descriptor* _tmp276_ = NULL;
+ gboolean _tmp277_ = FALSE;
+ SANE_Option_Descriptor* _tmp278_ = NULL;
+ SANE_Handle _tmp290_ = {0};
+ const gchar* _tmp291_ = NULL;
+ gint _tmp292_ = 0;
+ SANE_Option_Descriptor* _tmp293_ = NULL;
+ SANE_Option_Descriptor* _tmp294_ = NULL;
+ SANE_Handle _tmp305_ = {0};
+ const gchar* _tmp306_ = NULL;
+ gint _tmp307_ = 0;
+ SANE_Option_Descriptor* _tmp308_ = NULL;
+ SANE_Option_Descriptor* _tmp309_ = NULL;
+ const gchar* _tmp320_ = NULL;
+#line 892 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = self->priv->handle;
+#line 892 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = SANE_NAME_SCAN_SOURCE;
+#line 892 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = scanner_get_option_by_name (self, _tmp10_, _tmp11_, &_tmp12_);
+#line 892 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp12_;
+#line 892 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp13_;
+#line 893 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = option;
+#line 893 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp14_ == NULL) {
+#line 8857 "scanner.c"
+ SANE_Handle _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ SANE_Option_Descriptor* _tmp17_ = NULL;
+#line 895 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:895: SCAN_SOURCE not available, trying alternative \"doc-" \
+"source\"");
+#line 896 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = self->priv->handle;
+#line 896 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp17_ = scanner_get_option_by_name (self, _tmp15_, "doc-source", &_tmp16_);
+#line 896 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp16_;
+#line 896 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp17_;
+#line 8871 "scanner.c"
+ }
+#line 898 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp18_ = option;
+#line 898 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp18_ != NULL) {
+#line 8877 "scanner.c"
+ gchar** flatbed_sources = NULL;
+ gchar* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar** _tmp29_ = NULL;
+ gint flatbed_sources_length1 = 0;
+ gint _flatbed_sources_size_ = 0;
+ gchar** adf_sources = NULL;
+ gchar* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar** _tmp37_ = NULL;
+ gint adf_sources_length1 = 0;
+ gint _adf_sources_size_ = 0;
+ gchar** adf_front_sources = NULL;
+ gchar* _tmp38_ = NULL;
+ const gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gchar** _tmp41_ = NULL;
+ gint adf_front_sources_length1 = 0;
+ gint _adf_front_sources_size_ = 0;
+ gchar** adf_back_sources = NULL;
+ gchar* _tmp42_ = NULL;
+ const gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar** _tmp45_ = NULL;
+ gint adf_back_sources_length1 = 0;
+ gint _adf_back_sources_size_ = 0;
+ gchar** adf_duplex_sources = NULL;
+ gchar* _tmp46_ = NULL;
+ const gchar* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ gchar** _tmp54_ = NULL;
+ gint adf_duplex_sources_length1 = 0;
+ gint _adf_duplex_sources_size_ = 0;
+ ScanJob* _tmp55_ = NULL;
+ ScanType _tmp56_ = 0;
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp19_ = g_strdup ("Auto");
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp20_ = SANE_I18N ("Auto");
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21_ = g_strdup (_tmp20_);
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp22_ = g_strdup ("Flatbed");
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp23_ = SANE_I18N ("Flatbed");
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp24_ = g_strdup (_tmp23_);
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25_ = g_strdup ("FlatBed");
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp26_ = g_strdup ("Normal");
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp27_ = SANE_I18N ("Normal");
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp28_ = g_strdup (_tmp27_);
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_ = g_new0 (gchar*, 7 + 1);
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_[0] = _tmp19_;
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_[1] = _tmp21_;
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_[2] = _tmp22_;
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_[3] = _tmp24_;
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_[4] = _tmp25_;
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_[5] = _tmp26_;
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_[6] = _tmp28_;
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ flatbed_sources = _tmp29_;
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ flatbed_sources_length1 = 7;
+#line 900 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _flatbed_sources_size_ = flatbed_sources_length1;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_ = g_strdup ("Automatic Document Feeder");
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp31_ = SANE_I18N ("Automatic Document Feeder");
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp32_ = g_strdup (_tmp31_);
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33_ = g_strdup ("ADF");
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp34_ = g_strdup ("Automatic Document Feeder(left aligned)");
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp35_ = g_strdup ("Automatic Document Feeder(centrally aligned)");
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp36_ = g_strdup ("ADF Simplex");
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_ = g_new0 (gchar*, 6 + 1);
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_[0] = _tmp30_;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_[1] = _tmp32_;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_[2] = _tmp33_;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_[3] = _tmp34_;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_[4] = _tmp35_;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_[5] = _tmp36_;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ adf_sources = _tmp37_;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ adf_sources_length1 = 6;
+#line 911 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _adf_sources_size_ = adf_sources_length1;
+#line 921 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp38_ = g_strdup ("ADF Front");
+#line 921 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp39_ = SANE_I18N ("ADF Front");
+#line 921 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp40_ = g_strdup (_tmp39_);
+#line 921 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp41_ = g_new0 (gchar*, 2 + 1);
+#line 921 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp41_[0] = _tmp38_;
+#line 921 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp41_[1] = _tmp40_;
+#line 921 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ adf_front_sources = _tmp41_;
+#line 921 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ adf_front_sources_length1 = 2;
+#line 921 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _adf_front_sources_size_ = adf_front_sources_length1;
+#line 927 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp42_ = g_strdup ("ADF Back");
+#line 927 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp43_ = SANE_I18N ("ADF Back");
+#line 927 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp44_ = g_strdup (_tmp43_);
+#line 927 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp45_ = g_new0 (gchar*, 2 + 1);
+#line 927 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp45_[0] = _tmp42_;
+#line 927 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp45_[1] = _tmp44_;
+#line 927 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ adf_back_sources = _tmp45_;
+#line 927 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ adf_back_sources_length1 = 2;
+#line 927 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _adf_back_sources_size_ = adf_back_sources_length1;
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp46_ = g_strdup ("ADF Duplex");
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp47_ = SANE_I18N ("ADF Duplex");
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp48_ = g_strdup (_tmp47_);
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp49_ = g_strdup ("ADF Duplex - Long-Edge Binding");
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp50_ = g_strdup ("ADF Duplex - Short-Edge Binding");
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp51_ = g_strdup ("Duplex");
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp52_ = g_strdup ("Automatic Document Feeder(centrally aligned,Duplex)");
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp53_ = g_strdup ("Automatic Document Feeder(left aligned,Duplex)");
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp54_ = g_new0 (gchar*, 7 + 1);
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp54_[0] = _tmp46_;
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp54_[1] = _tmp48_;
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp54_[2] = _tmp49_;
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp54_[3] = _tmp50_;
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp54_[4] = _tmp51_;
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp54_[5] = _tmp52_;
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp54_[6] = _tmp53_;
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ adf_duplex_sources = _tmp54_;
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ adf_duplex_sources_length1 = 7;
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _adf_duplex_sources_size_ = adf_duplex_sources_length1;
+#line 944 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp55_ = job;
+#line 944 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp56_ = _tmp55_->type;
+#line 944 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ switch (_tmp56_) {
+#line 944 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_TYPE_SINGLE:
+#line 9089 "scanner.c"
+ {
+ SANE_Handle _tmp57_ = {0};
+ SANE_Option_Descriptor* _tmp58_ = NULL;
+ SANE_Int _tmp59_ = {0};
+ gboolean _tmp60_ = FALSE;
+#line 947 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp57_ = self->priv->handle;
+#line 947 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp58_ = option;
+#line 947 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp59_ = index;
+#line 947 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp60_ = scanner_set_default_option (self, _tmp57_, _tmp58_, _tmp59_);
+#line 947 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp60_) {
+#line 9105 "scanner.c"
+ SANE_Handle _tmp61_ = {0};
+ SANE_Option_Descriptor* _tmp62_ = NULL;
+ SANE_Int _tmp63_ = {0};
+ gchar** _tmp64_ = NULL;
+ gint _tmp64__length1 = 0;
+ gboolean _tmp65_ = FALSE;
+#line 948 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp61_ = self->priv->handle;
+#line 948 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp62_ = option;
+#line 948 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp63_ = index;
+#line 948 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp64_ = flatbed_sources;
+#line 948 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp64__length1 = flatbed_sources_length1;
+#line 948 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp65_ = scanner_set_constrained_string_option (self, _tmp61_, _tmp62_, _tmp63_, _tmp64_, _tmp64__length1, NULL);
+#line 948 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp65_) {
+#line 949 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:949: Unable to set single page source, please file a bug");
+#line 9128 "scanner.c"
+ }
+ }
+#line 950 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 9133 "scanner.c"
+ }
+#line 944 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_TYPE_ADF_FRONT:
+#line 9137 "scanner.c"
+ {
+ SANE_Handle _tmp66_ = {0};
+ SANE_Option_Descriptor* _tmp67_ = NULL;
+ SANE_Int _tmp68_ = {0};
+ gchar** _tmp69_ = NULL;
+ gint _tmp69__length1 = 0;
+ gboolean _tmp70_ = FALSE;
+#line 952 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp66_ = self->priv->handle;
+#line 952 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp67_ = option;
+#line 952 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp68_ = index;
+#line 952 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp69_ = adf_front_sources;
+#line 952 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp69__length1 = adf_front_sources_length1;
+#line 952 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp70_ = scanner_set_constrained_string_option (self, _tmp66_, _tmp67_, _tmp68_, _tmp69_, _tmp69__length1, NULL);
+#line 952 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp70_) {
+#line 9159 "scanner.c"
+ SANE_Handle _tmp71_ = {0};
+ SANE_Option_Descriptor* _tmp72_ = NULL;
+ SANE_Int _tmp73_ = {0};
+ gchar** _tmp74_ = NULL;
+ gint _tmp74__length1 = 0;
+ gboolean _tmp75_ = FALSE;
+#line 953 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp71_ = self->priv->handle;
+#line 953 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp72_ = option;
+#line 953 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp73_ = index;
+#line 953 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp74_ = adf_sources;
+#line 953 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp74__length1 = adf_sources_length1;
+#line 953 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp75_ = scanner_set_constrained_string_option (self, _tmp71_, _tmp72_, _tmp73_, _tmp74_, _tmp74__length1, NULL);
+#line 953 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp75_) {
+#line 954 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:954: Unable to set front ADF source, please file a bug");
+#line 9182 "scanner.c"
+ }
+ }
+#line 955 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 9187 "scanner.c"
+ }
+#line 944 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_TYPE_ADF_BACK:
+#line 9191 "scanner.c"
+ {
+ SANE_Handle _tmp76_ = {0};
+ SANE_Option_Descriptor* _tmp77_ = NULL;
+ SANE_Int _tmp78_ = {0};
+ gchar** _tmp79_ = NULL;
+ gint _tmp79__length1 = 0;
+ gboolean _tmp80_ = FALSE;
+#line 957 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp76_ = self->priv->handle;
+#line 957 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp77_ = option;
+#line 957 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp78_ = index;
+#line 957 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp79_ = adf_back_sources;
+#line 957 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp79__length1 = adf_back_sources_length1;
+#line 957 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp80_ = scanner_set_constrained_string_option (self, _tmp76_, _tmp77_, _tmp78_, _tmp79_, _tmp79__length1, NULL);
+#line 957 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp80_) {
+#line 9213 "scanner.c"
+ SANE_Handle _tmp81_ = {0};
+ SANE_Option_Descriptor* _tmp82_ = NULL;
+ SANE_Int _tmp83_ = {0};
+ gchar** _tmp84_ = NULL;
+ gint _tmp84__length1 = 0;
+ gboolean _tmp85_ = FALSE;
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp81_ = self->priv->handle;
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp82_ = option;
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp83_ = index;
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp84_ = adf_sources;
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp84__length1 = adf_sources_length1;
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp85_ = scanner_set_constrained_string_option (self, _tmp81_, _tmp82_, _tmp83_, _tmp84_, _tmp84__length1, NULL);
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp85_) {
+#line 959 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:959: Unable to set back ADF source, please file a bug");
+#line 9236 "scanner.c"
+ }
+ }
+#line 960 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 9241 "scanner.c"
+ }
+#line 944 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_TYPE_ADF_BOTH:
+#line 9245 "scanner.c"
+ {
+ SANE_Handle _tmp86_ = {0};
+ SANE_Option_Descriptor* _tmp87_ = NULL;
+ SANE_Int _tmp88_ = {0};
+ gchar** _tmp89_ = NULL;
+ gint _tmp89__length1 = 0;
+ gboolean _tmp90_ = FALSE;
+#line 962 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp86_ = self->priv->handle;
+#line 962 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp87_ = option;
+#line 962 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp88_ = index;
+#line 962 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp89_ = adf_duplex_sources;
+#line 962 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp89__length1 = adf_duplex_sources_length1;
+#line 962 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp90_ = scanner_set_constrained_string_option (self, _tmp86_, _tmp87_, _tmp88_, _tmp89_, _tmp89__length1, NULL);
+#line 962 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp90_) {
+#line 9267 "scanner.c"
+ SANE_Handle _tmp91_ = {0};
+ SANE_Option_Descriptor* _tmp92_ = NULL;
+ SANE_Int _tmp93_ = {0};
+ gchar** _tmp94_ = NULL;
+ gint _tmp94__length1 = 0;
+ gboolean _tmp95_ = FALSE;
+#line 963 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp91_ = self->priv->handle;
+#line 963 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp92_ = option;
+#line 963 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp93_ = index;
+#line 963 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp94_ = adf_sources;
+#line 963 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp94__length1 = adf_sources_length1;
+#line 963 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp95_ = scanner_set_constrained_string_option (self, _tmp91_, _tmp92_, _tmp93_, _tmp94_, _tmp94__length1, NULL);
+#line 963 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp95_) {
+#line 964 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:964: Unable to set duplex ADF source, please file a bug");
+#line 9290 "scanner.c"
+ }
+ }
+#line 965 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 9295 "scanner.c"
+ }
+ default:
+#line 944 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 9300 "scanner.c"
+ }
+#line 898 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ adf_duplex_sources = (_vala_array_free (adf_duplex_sources, adf_duplex_sources_length1, (GDestroyNotify) g_free), NULL);
+#line 898 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ adf_back_sources = (_vala_array_free (adf_back_sources, adf_back_sources_length1, (GDestroyNotify) g_free), NULL);
+#line 898 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ adf_front_sources = (_vala_array_free (adf_front_sources, adf_front_sources_length1, (GDestroyNotify) g_free), NULL);
+#line 898 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ adf_sources = (_vala_array_free (adf_sources, adf_sources_length1, (GDestroyNotify) g_free), NULL);
+#line 898 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ flatbed_sources = (_vala_array_free (flatbed_sources, flatbed_sources_length1, (GDestroyNotify) g_free), NULL);
+#line 9312 "scanner.c"
+ }
+#line 970 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp96_ = self->priv->handle;
+#line 970 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp97_ = SANE_NAME_SCAN_MODE;
+#line 970 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp99_ = scanner_get_option_by_name (self, _tmp96_, _tmp97_, &_tmp98_);
+#line 970 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp98_;
+#line 970 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp99_;
+#line 971 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp100_ = option;
+#line 971 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp100_ != NULL) {
+#line 9328 "scanner.c"
+ gchar** color_scan_modes = NULL;
+ const gchar* _tmp101_ = NULL;
+ gchar* _tmp102_ = NULL;
+ gchar* _tmp103_ = NULL;
+ gchar* _tmp104_ = NULL;
+ gchar* _tmp105_ = NULL;
+ gchar** _tmp106_ = NULL;
+ gint color_scan_modes_length1 = 0;
+ gint _color_scan_modes_size_ = 0;
+ gchar** gray_scan_modes = NULL;
+ const gchar* _tmp107_ = NULL;
+ gchar* _tmp108_ = NULL;
+ gchar* _tmp109_ = NULL;
+ gchar* _tmp110_ = NULL;
+ const gchar* _tmp111_ = NULL;
+ gchar* _tmp112_ = NULL;
+ gchar* _tmp113_ = NULL;
+ gchar* _tmp114_ = NULL;
+ gchar** _tmp115_ = NULL;
+ gint gray_scan_modes_length1 = 0;
+ gint _gray_scan_modes_size_ = 0;
+ gchar** lineart_scan_modes = NULL;
+ const gchar* _tmp116_ = NULL;
+ gchar* _tmp117_ = NULL;
+ gchar* _tmp118_ = NULL;
+ gchar* _tmp119_ = NULL;
+ const gchar* _tmp120_ = NULL;
+ gchar* _tmp121_ = NULL;
+ gchar* _tmp122_ = NULL;
+ const gchar* _tmp123_ = NULL;
+ gchar* _tmp124_ = NULL;
+ gchar* _tmp125_ = NULL;
+ const gchar* _tmp126_ = NULL;
+ gchar* _tmp127_ = NULL;
+ gchar* _tmp128_ = NULL;
+ const gchar* _tmp129_ = NULL;
+ gchar* _tmp130_ = NULL;
+ gchar* _tmp131_ = NULL;
+ gchar* _tmp132_ = NULL;
+ const gchar* _tmp133_ = NULL;
+ gchar* _tmp134_ = NULL;
+ gchar* _tmp135_ = NULL;
+ gchar* _tmp136_ = NULL;
+ gchar* _tmp137_ = NULL;
+ gchar** _tmp138_ = NULL;
+ gint lineart_scan_modes_length1 = 0;
+ gint _lineart_scan_modes_size_ = 0;
+ ScanJob* _tmp139_ = NULL;
+ ScanMode _tmp140_ = 0;
+#line 974 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp101_ = SANE_VALUE_SCAN_MODE_COLOR;
+#line 974 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp102_ = g_strdup (_tmp101_);
+#line 974 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp103_ = g_strdup ("Color");
+#line 974 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp104_ = g_strdup ("24bit Color");
+#line 974 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp105_ = g_strdup ("Color - 16 Million Colors");
+#line 974 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp106_ = g_new0 (gchar*, 4 + 1);
+#line 974 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp106_[0] = _tmp102_;
+#line 974 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp106_[1] = _tmp103_;
+#line 974 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp106_[2] = _tmp104_;
+#line 974 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp106_[3] = _tmp105_;
+#line 974 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ color_scan_modes = _tmp106_;
+#line 974 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ color_scan_modes_length1 = 4;
+#line 974 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _color_scan_modes_size_ = color_scan_modes_length1;
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp107_ = SANE_VALUE_SCAN_MODE_GRAY;
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp108_ = g_strdup (_tmp107_);
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp109_ = g_strdup ("Gray");
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp110_ = g_strdup ("Grayscale");
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp111_ = SANE_I18N ("Grayscale");
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp112_ = g_strdup (_tmp111_);
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp113_ = g_strdup ("True Gray");
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp114_ = g_strdup ("Grayscale - 256 Levels");
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp115_ = g_new0 (gchar*, 6 + 1);
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp115_[0] = _tmp108_;
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp115_[1] = _tmp109_;
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp115_[2] = _tmp110_;
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp115_[3] = _tmp112_;
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp115_[4] = _tmp113_;
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp115_[5] = _tmp114_;
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ gray_scan_modes = _tmp115_;
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ gray_scan_modes_length1 = 6;
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _gray_scan_modes_size_ = gray_scan_modes_length1;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp116_ = SANE_VALUE_SCAN_MODE_LINEART;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp117_ = g_strdup (_tmp116_);
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp118_ = g_strdup ("Lineart");
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp119_ = g_strdup ("LineArt");
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp120_ = SANE_I18N ("LineArt");
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp121_ = g_strdup (_tmp120_);
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp122_ = g_strdup ("Black & White");
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp123_ = SANE_I18N ("Black & White");
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp124_ = g_strdup (_tmp123_);
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp125_ = g_strdup ("Binary");
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp126_ = SANE_I18N ("Binary");
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp127_ = g_strdup (_tmp126_);
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp128_ = g_strdup ("Thresholded");
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp129_ = SANE_VALUE_SCAN_MODE_GRAY;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp130_ = g_strdup (_tmp129_);
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp131_ = g_strdup ("Gray");
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp132_ = g_strdup ("Grayscale");
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp133_ = SANE_I18N ("Grayscale");
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp134_ = g_strdup (_tmp133_);
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp135_ = g_strdup ("True Gray");
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp136_ = g_strdup ("Black and White - Line Art");
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp137_ = g_strdup ("Black and White - Halftone");
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_ = g_new0 (gchar*, 16 + 1);
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[0] = _tmp117_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[1] = _tmp118_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[2] = _tmp119_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[3] = _tmp121_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[4] = _tmp122_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[5] = _tmp124_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[6] = _tmp125_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[7] = _tmp127_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[8] = _tmp128_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[9] = _tmp130_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[10] = _tmp131_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[11] = _tmp132_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[12] = _tmp134_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[13] = _tmp135_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[14] = _tmp136_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_[15] = _tmp137_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ lineart_scan_modes = _tmp138_;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ lineart_scan_modes_length1 = 16;
+#line 990 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _lineart_scan_modes_size_ = lineart_scan_modes_length1;
+#line 1010 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp139_ = job;
+#line 1010 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp140_ = _tmp139_->scan_mode;
+#line 1010 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ switch (_tmp140_) {
+#line 1010 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_MODE_COLOR:
+#line 9532 "scanner.c"
+ {
+ SANE_Handle _tmp141_ = {0};
+ SANE_Option_Descriptor* _tmp142_ = NULL;
+ SANE_Int _tmp143_ = {0};
+ gchar** _tmp144_ = NULL;
+ gint _tmp144__length1 = 0;
+ gboolean _tmp145_ = FALSE;
+#line 1013 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp141_ = self->priv->handle;
+#line 1013 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp142_ = option;
+#line 1013 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp143_ = index;
+#line 1013 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp144_ = color_scan_modes;
+#line 1013 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp144__length1 = color_scan_modes_length1;
+#line 1013 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp145_ = scanner_set_constrained_string_option (self, _tmp141_, _tmp142_, _tmp143_, _tmp144_, _tmp144__length1, NULL);
+#line 1013 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp145_) {
+#line 1014 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:1014: Unable to set Color mode, please file a bug");
+#line 9556 "scanner.c"
+ }
+#line 1015 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 9560 "scanner.c"
+ }
+#line 1010 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_MODE_GRAY:
+#line 9564 "scanner.c"
+ {
+ SANE_Handle _tmp146_ = {0};
+ SANE_Option_Descriptor* _tmp147_ = NULL;
+ SANE_Int _tmp148_ = {0};
+ gchar** _tmp149_ = NULL;
+ gint _tmp149__length1 = 0;
+ gboolean _tmp150_ = FALSE;
+#line 1017 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp146_ = self->priv->handle;
+#line 1017 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp147_ = option;
+#line 1017 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp148_ = index;
+#line 1017 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp149_ = gray_scan_modes;
+#line 1017 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp149__length1 = gray_scan_modes_length1;
+#line 1017 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp150_ = scanner_set_constrained_string_option (self, _tmp146_, _tmp147_, _tmp148_, _tmp149_, _tmp149__length1, NULL);
+#line 1017 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp150_) {
+#line 1018 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:1018: Unable to set Gray mode, please file a bug");
+#line 9588 "scanner.c"
+ }
+#line 1019 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 9592 "scanner.c"
+ }
+#line 1010 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_MODE_LINEART:
+#line 9596 "scanner.c"
+ {
+ SANE_Handle _tmp151_ = {0};
+ SANE_Option_Descriptor* _tmp152_ = NULL;
+ SANE_Int _tmp153_ = {0};
+ gchar** _tmp154_ = NULL;
+ gint _tmp154__length1 = 0;
+ gboolean _tmp155_ = FALSE;
+#line 1021 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp151_ = self->priv->handle;
+#line 1021 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp152_ = option;
+#line 1021 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp153_ = index;
+#line 1021 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp154_ = lineart_scan_modes;
+#line 1021 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp154__length1 = lineart_scan_modes_length1;
+#line 1021 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp155_ = scanner_set_constrained_string_option (self, _tmp151_, _tmp152_, _tmp153_, _tmp154_, _tmp154__length1, NULL);
+#line 1021 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp155_) {
+#line 1022 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:1022: Unable to set Lineart mode, please file a bug");
+#line 9620 "scanner.c"
+ }
+#line 1023 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 9624 "scanner.c"
+ }
+ default:
+ {
+#line 1025 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 9630 "scanner.c"
+ }
+ }
+#line 971 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ lineart_scan_modes = (_vala_array_free (lineart_scan_modes, lineart_scan_modes_length1, (GDestroyNotify) g_free), NULL);
+#line 971 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ gray_scan_modes = (_vala_array_free (gray_scan_modes, gray_scan_modes_length1, (GDestroyNotify) g_free), NULL);
+#line 971 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ color_scan_modes = (_vala_array_free (color_scan_modes, color_scan_modes_length1, (GDestroyNotify) g_free), NULL);
+#line 9639 "scanner.c"
+ }
+#line 1030 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp156_ = self->priv->handle;
+#line 1030 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp158_ = scanner_get_option_by_name (self, _tmp156_, "duplex", &_tmp157_);
+#line 1030 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp157_;
+#line 1030 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp158_;
+#line 1031 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp159_ = option;
+#line 1031 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp159_ != NULL) {
+#line 9653 "scanner.c"
+ SANE_Option_Descriptor* _tmp160_ = NULL;
+ SANE_Value_Type _tmp161_ = 0;
+#line 1033 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp160_ = option;
+#line 1033 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp161_ = _tmp160_->type;
+#line 1033 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp161_ == SANE_TYPE_BOOL) {
+#line 9662 "scanner.c"
+ SANE_Handle _tmp162_ = {0};
+ SANE_Option_Descriptor* _tmp163_ = NULL;
+ SANE_Int _tmp164_ = {0};
+ ScanJob* _tmp165_ = NULL;
+ ScanType _tmp166_ = 0;
+#line 1034 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp162_ = self->priv->handle;
+#line 1034 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp163_ = option;
+#line 1034 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp164_ = index;
+#line 1034 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp165_ = job;
+#line 1034 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp166_ = _tmp165_->type;
+#line 1034 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_bool_option (self, _tmp162_, _tmp163_, _tmp164_, _tmp166_ == SCAN_TYPE_ADF_BOTH, NULL);
+#line 9680 "scanner.c"
+ }
+ }
+#line 1038 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp167_ = self->priv->handle;
+#line 1038 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp169_ = scanner_get_option_by_name (self, _tmp167_, "batch-scan", &_tmp168_);
+#line 1038 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp168_;
+#line 1038 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp169_;
+#line 1039 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp170_ = option;
+#line 1039 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp170_ != NULL) {
+#line 9695 "scanner.c"
+ SANE_Option_Descriptor* _tmp171_ = NULL;
+ SANE_Value_Type _tmp172_ = 0;
+#line 1041 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp171_ = option;
+#line 1041 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp172_ = _tmp171_->type;
+#line 1041 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp172_ == SANE_TYPE_BOOL) {
+#line 9704 "scanner.c"
+ SANE_Handle _tmp173_ = {0};
+ SANE_Option_Descriptor* _tmp174_ = NULL;
+ SANE_Int _tmp175_ = {0};
+ ScanJob* _tmp176_ = NULL;
+ ScanType _tmp177_ = 0;
+#line 1042 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp173_ = self->priv->handle;
+#line 1042 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp174_ = option;
+#line 1042 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp175_ = index;
+#line 1042 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp176_ = job;
+#line 1042 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp177_ = _tmp176_->type;
+#line 1042 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_bool_option (self, _tmp173_, _tmp174_, _tmp175_, _tmp177_ != SCAN_TYPE_SINGLE, NULL);
+#line 9722 "scanner.c"
+ }
+ }
+#line 1046 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp178_ = self->priv->handle;
+#line 1046 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp180_ = scanner_get_option_by_name (self, _tmp178_, "compression", &_tmp179_);
+#line 1046 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp179_;
+#line 1046 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp180_;
+#line 1047 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp181_ = option;
+#line 1047 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp181_ != NULL) {
+#line 9737 "scanner.c"
+ gchar** disable_compression_names = NULL;
+ const gchar* _tmp182_ = NULL;
+ gchar* _tmp183_ = NULL;
+ const gchar* _tmp184_ = NULL;
+ gchar* _tmp185_ = NULL;
+ gchar* _tmp186_ = NULL;
+ gchar* _tmp187_ = NULL;
+ gchar** _tmp188_ = NULL;
+ gint disable_compression_names_length1 = 0;
+ gint _disable_compression_names_size_ = 0;
+ SANE_Handle _tmp189_ = {0};
+ SANE_Option_Descriptor* _tmp190_ = NULL;
+ SANE_Int _tmp191_ = {0};
+ gchar** _tmp192_ = NULL;
+ gint _tmp192__length1 = 0;
+ gboolean _tmp193_ = FALSE;
+#line 1049 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp182_ = SANE_I18N ("None");
+#line 1049 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp183_ = g_strdup (_tmp182_);
+#line 1049 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp184_ = SANE_I18N ("none");
+#line 1049 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp185_ = g_strdup (_tmp184_);
+#line 1049 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp186_ = g_strdup ("None");
+#line 1049 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp187_ = g_strdup ("none");
+#line 1049 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp188_ = g_new0 (gchar*, 4 + 1);
+#line 1049 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp188_[0] = _tmp183_;
+#line 1049 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp188_[1] = _tmp185_;
+#line 1049 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp188_[2] = _tmp186_;
+#line 1049 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp188_[3] = _tmp187_;
+#line 1049 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ disable_compression_names = _tmp188_;
+#line 1049 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ disable_compression_names_length1 = 4;
+#line 1049 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _disable_compression_names_size_ = disable_compression_names_length1;
+#line 1057 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp189_ = self->priv->handle;
+#line 1057 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp190_ = option;
+#line 1057 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp191_ = index;
+#line 1057 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp192_ = disable_compression_names;
+#line 1057 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp192__length1 = disable_compression_names_length1;
+#line 1057 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp193_ = scanner_set_constrained_string_option (self, _tmp189_, _tmp190_, _tmp191_, _tmp192_, _tmp192__length1, NULL);
+#line 1057 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp193_) {
+#line 1058 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:1058: Unable to disable compression, please file a bug");
+#line 9798 "scanner.c"
+ }
+#line 1047 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ disable_compression_names = (_vala_array_free (disable_compression_names, disable_compression_names_length1, (GDestroyNotify) g_free), NULL);
+#line 9802 "scanner.c"
+ }
+#line 1062 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp194_ = self->priv->handle;
+#line 1062 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp195_ = SANE_NAME_SCAN_RESOLUTION;
+#line 1062 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp197_ = scanner_get_option_by_name (self, _tmp194_, _tmp195_, &_tmp196_);
+#line 1062 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp196_;
+#line 1062 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp197_;
+#line 1063 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp198_ = option;
+#line 1063 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp198_ != NULL) {
+#line 9818 "scanner.c"
+ SANE_Handle _tmp199_ = {0};
+ SANE_Option_Descriptor* _tmp200_ = NULL;
+ SANE_Int _tmp201_ = {0};
+ ScanJob* _tmp202_ = NULL;
+ gdouble _tmp203_ = 0.0;
+ ScanJob* _tmp204_ = NULL;
+ gdouble _tmp205_ = 0.0;
+ SANE_Handle _tmp206_ = {0};
+ const gchar* _tmp207_ = NULL;
+ gint _tmp208_ = 0;
+ SANE_Option_Descriptor* _tmp209_ = NULL;
+ SANE_Option_Descriptor* _tmp210_ = NULL;
+#line 1065 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp199_ = self->priv->handle;
+#line 1065 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp200_ = option;
+#line 1065 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp201_ = index;
+#line 1065 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp202_ = job;
+#line 1065 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp203_ = _tmp202_->dpi;
+#line 1065 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp204_ = job;
+#line 1065 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_fixed_or_int_option (self, _tmp199_, _tmp200_, _tmp201_, _tmp203_, &_tmp205_);
+#line 1065 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp204_->dpi = _tmp205_;
+#line 1066 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp206_ = self->priv->handle;
+#line 1066 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp207_ = SANE_NAME_BIT_DEPTH;
+#line 1066 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp209_ = scanner_get_option_by_name (self, _tmp206_, _tmp207_, &_tmp208_);
+#line 1066 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp208_;
+#line 1066 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp209_;
+#line 1067 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp210_ = option;
+#line 1067 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp210_ != NULL) {
+#line 9861 "scanner.c"
+ ScanJob* _tmp211_ = NULL;
+ gint _tmp212_ = 0;
+#line 1069 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp211_ = job;
+#line 1069 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp212_ = _tmp211_->depth;
+#line 1069 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp212_ > 0) {
+#line 9870 "scanner.c"
+ SANE_Handle _tmp213_ = {0};
+ SANE_Option_Descriptor* _tmp214_ = NULL;
+ SANE_Int _tmp215_ = {0};
+ ScanJob* _tmp216_ = NULL;
+ gint _tmp217_ = 0;
+#line 1070 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp213_ = self->priv->handle;
+#line 1070 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp214_ = option;
+#line 1070 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp215_ = index;
+#line 1070 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp216_ = job;
+#line 1070 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp217_ = _tmp216_->depth;
+#line 1070 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_int_option (self, _tmp213_, _tmp214_, _tmp215_, _tmp217_, NULL);
+#line 9888 "scanner.c"
+ }
+ }
+ }
+#line 1075 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp218_ = self->priv->handle;
+#line 1075 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp219_ = SANE_NAME_SCAN_BR_X;
+#line 1075 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp221_ = scanner_get_option_by_name (self, _tmp218_, _tmp219_, &_tmp220_);
+#line 1075 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp220_;
+#line 1075 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp221_;
+#line 1076 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp222_ = option;
+#line 1076 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp222_ != NULL) {
+#line 9906 "scanner.c"
+ ScanJob* _tmp223_ = NULL;
+ gint _tmp224_ = 0;
+#line 1078 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp223_ = job;
+#line 1078 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp224_ = _tmp223_->page_width;
+#line 1078 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp224_ > 0) {
+#line 9915 "scanner.c"
+ SANE_Handle _tmp225_ = {0};
+ SANE_Option_Descriptor* _tmp226_ = NULL;
+ SANE_Int _tmp227_ = {0};
+ SANE_Option_Descriptor* _tmp228_ = NULL;
+ ScanJob* _tmp229_ = NULL;
+ gint _tmp230_ = 0;
+ ScanJob* _tmp231_ = NULL;
+ gdouble _tmp232_ = 0.0;
+ gdouble _tmp233_ = 0.0;
+#line 1079 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp225_ = self->priv->handle;
+#line 1079 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp226_ = option;
+#line 1079 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp227_ = index;
+#line 1079 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp228_ = option;
+#line 1079 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp229_ = job;
+#line 1079 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp230_ = _tmp229_->page_width;
+#line 1079 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp231_ = job;
+#line 1079 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp232_ = _tmp231_->dpi;
+#line 1079 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp233_ = scanner_convert_page_size (self, _tmp228_, (gdouble) _tmp230_, _tmp232_);
+#line 1079 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_fixed_or_int_option (self, _tmp225_, _tmp226_, _tmp227_, _tmp233_, NULL);
+#line 9945 "scanner.c"
+ } else {
+ SANE_Handle _tmp234_ = {0};
+ SANE_Option_Descriptor* _tmp235_ = NULL;
+ SANE_Int _tmp236_ = {0};
+#line 1081 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp234_ = self->priv->handle;
+#line 1081 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp235_ = option;
+#line 1081 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp236_ = index;
+#line 1081 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_option_to_max (self, _tmp234_, _tmp235_, _tmp236_);
+#line 9958 "scanner.c"
+ }
+ }
+#line 1083 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp237_ = self->priv->handle;
+#line 1083 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp238_ = SANE_NAME_SCAN_BR_Y;
+#line 1083 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp240_ = scanner_get_option_by_name (self, _tmp237_, _tmp238_, &_tmp239_);
+#line 1083 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp239_;
+#line 1083 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp240_;
+#line 1084 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp241_ = option;
+#line 1084 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp241_ != NULL) {
+#line 9975 "scanner.c"
+ ScanJob* _tmp242_ = NULL;
+ gint _tmp243_ = 0;
+#line 1086 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp242_ = job;
+#line 1086 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp243_ = _tmp242_->page_height;
+#line 1086 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp243_ > 0) {
+#line 9984 "scanner.c"
+ SANE_Handle _tmp244_ = {0};
+ SANE_Option_Descriptor* _tmp245_ = NULL;
+ SANE_Int _tmp246_ = {0};
+ SANE_Option_Descriptor* _tmp247_ = NULL;
+ ScanJob* _tmp248_ = NULL;
+ gint _tmp249_ = 0;
+ ScanJob* _tmp250_ = NULL;
+ gdouble _tmp251_ = 0.0;
+ gdouble _tmp252_ = 0.0;
+#line 1087 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp244_ = self->priv->handle;
+#line 1087 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp245_ = option;
+#line 1087 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp246_ = index;
+#line 1087 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp247_ = option;
+#line 1087 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp248_ = job;
+#line 1087 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp249_ = _tmp248_->page_height;
+#line 1087 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp250_ = job;
+#line 1087 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp251_ = _tmp250_->dpi;
+#line 1087 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp252_ = scanner_convert_page_size (self, _tmp247_, (gdouble) _tmp249_, _tmp251_);
+#line 1087 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_fixed_or_int_option (self, _tmp244_, _tmp245_, _tmp246_, _tmp252_, NULL);
+#line 10014 "scanner.c"
+ } else {
+ SANE_Handle _tmp253_ = {0};
+ SANE_Option_Descriptor* _tmp254_ = NULL;
+ SANE_Int _tmp255_ = {0};
+#line 1089 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp253_ = self->priv->handle;
+#line 1089 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp254_ = option;
+#line 1089 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp255_ = index;
+#line 1089 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_option_to_max (self, _tmp253_, _tmp254_, _tmp255_);
+#line 10027 "scanner.c"
+ }
+ }
+#line 1093 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp256_ = self->priv->handle;
+#line 1093 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp257_ = SANE_NAME_PAGE_WIDTH;
+#line 1093 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp259_ = scanner_get_option_by_name (self, _tmp256_, _tmp257_, &_tmp258_);
+#line 1093 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp258_;
+#line 1093 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp259_;
+#line 1094 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp261_ = option;
+#line 1094 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp261_ != NULL) {
+#line 10044 "scanner.c"
+ ScanJob* _tmp262_ = NULL;
+ gint _tmp263_ = 0;
+#line 1094 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp262_ = job;
+#line 1094 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp263_ = _tmp262_->page_width;
+#line 1094 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp260_ = ((gdouble) _tmp263_) > 0.0;
+#line 10053 "scanner.c"
+ } else {
+#line 1094 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp260_ = FALSE;
+#line 10057 "scanner.c"
+ }
+#line 1094 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp260_) {
+#line 10061 "scanner.c"
+ SANE_Handle _tmp264_ = {0};
+ SANE_Option_Descriptor* _tmp265_ = NULL;
+ SANE_Int _tmp266_ = {0};
+ SANE_Option_Descriptor* _tmp267_ = NULL;
+ ScanJob* _tmp268_ = NULL;
+ gint _tmp269_ = 0;
+ ScanJob* _tmp270_ = NULL;
+ gdouble _tmp271_ = 0.0;
+ gdouble _tmp272_ = 0.0;
+#line 1095 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp264_ = self->priv->handle;
+#line 1095 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp265_ = option;
+#line 1095 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp266_ = index;
+#line 1095 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp267_ = option;
+#line 1095 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp268_ = job;
+#line 1095 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp269_ = _tmp268_->page_width;
+#line 1095 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp270_ = job;
+#line 1095 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp271_ = _tmp270_->dpi;
+#line 1095 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp272_ = scanner_convert_page_size (self, _tmp267_, (gdouble) _tmp269_, _tmp271_);
+#line 1095 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_fixed_or_int_option (self, _tmp264_, _tmp265_, _tmp266_, _tmp272_, NULL);
+#line 10091 "scanner.c"
+ }
+#line 1096 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp273_ = self->priv->handle;
+#line 1096 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp274_ = SANE_NAME_PAGE_HEIGHT;
+#line 1096 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp276_ = scanner_get_option_by_name (self, _tmp273_, _tmp274_, &_tmp275_);
+#line 1096 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp275_;
+#line 1096 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp276_;
+#line 1097 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp278_ = option;
+#line 1097 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp278_ != NULL) {
+#line 10107 "scanner.c"
+ ScanJob* _tmp279_ = NULL;
+ gint _tmp280_ = 0;
+#line 1097 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp279_ = job;
+#line 1097 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp280_ = _tmp279_->page_height;
+#line 1097 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp277_ = ((gdouble) _tmp280_) > 0.0;
+#line 10116 "scanner.c"
+ } else {
+#line 1097 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp277_ = FALSE;
+#line 10120 "scanner.c"
+ }
+#line 1097 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp277_) {
+#line 10124 "scanner.c"
+ SANE_Handle _tmp281_ = {0};
+ SANE_Option_Descriptor* _tmp282_ = NULL;
+ SANE_Int _tmp283_ = {0};
+ SANE_Option_Descriptor* _tmp284_ = NULL;
+ ScanJob* _tmp285_ = NULL;
+ gint _tmp286_ = 0;
+ ScanJob* _tmp287_ = NULL;
+ gdouble _tmp288_ = 0.0;
+ gdouble _tmp289_ = 0.0;
+#line 1098 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp281_ = self->priv->handle;
+#line 1098 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp282_ = option;
+#line 1098 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp283_ = index;
+#line 1098 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp284_ = option;
+#line 1098 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp285_ = job;
+#line 1098 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp286_ = _tmp285_->page_height;
+#line 1098 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp287_ = job;
+#line 1098 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp288_ = _tmp287_->dpi;
+#line 1098 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp289_ = scanner_convert_page_size (self, _tmp284_, (gdouble) _tmp286_, _tmp288_);
+#line 1098 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_fixed_or_int_option (self, _tmp281_, _tmp282_, _tmp283_, _tmp289_, NULL);
+#line 10154 "scanner.c"
+ }
+#line 1100 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp290_ = self->priv->handle;
+#line 1100 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp291_ = SANE_NAME_BRIGHTNESS;
+#line 1100 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp293_ = scanner_get_option_by_name (self, _tmp290_, _tmp291_, &_tmp292_);
+#line 1100 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp292_;
+#line 1100 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp293_;
+#line 1101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp294_ = option;
+#line 1101 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp294_ != NULL) {
+#line 10170 "scanner.c"
+ ScanJob* _tmp295_ = NULL;
+ gint _tmp296_ = 0;
+#line 1103 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp295_ = job;
+#line 1103 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp296_ = _tmp295_->brightness;
+#line 1103 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp296_ != 0) {
+#line 10179 "scanner.c"
+ gint brightness = 0;
+ SANE_Option_Descriptor* _tmp297_ = NULL;
+ ScanJob* _tmp298_ = NULL;
+ gint _tmp299_ = 0;
+ gint _tmp300_ = 0;
+ SANE_Handle _tmp301_ = {0};
+ SANE_Option_Descriptor* _tmp302_ = NULL;
+ SANE_Int _tmp303_ = {0};
+ gint _tmp304_ = 0;
+#line 1105 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp297_ = option;
+#line 1105 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp298_ = job;
+#line 1105 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp299_ = _tmp298_->brightness;
+#line 1105 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp300_ = scanner_scale_int (self, -100, 100, _tmp297_, _tmp299_);
+#line 1105 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ brightness = _tmp300_;
+#line 1106 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp301_ = self->priv->handle;
+#line 1106 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp302_ = option;
+#line 1106 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp303_ = index;
+#line 1106 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp304_ = brightness;
+#line 1106 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_int_option (self, _tmp301_, _tmp302_, _tmp303_, _tmp304_, NULL);
+#line 10209 "scanner.c"
+ }
+ }
+#line 1109 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp305_ = self->priv->handle;
+#line 1109 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp306_ = SANE_NAME_CONTRAST;
+#line 1109 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp308_ = scanner_get_option_by_name (self, _tmp305_, _tmp306_, &_tmp307_);
+#line 1109 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp307_;
+#line 1109 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp308_;
+#line 1110 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp309_ = option;
+#line 1110 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp309_ != NULL) {
+#line 10226 "scanner.c"
+ ScanJob* _tmp310_ = NULL;
+ gint _tmp311_ = 0;
+#line 1112 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp310_ = job;
+#line 1112 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp311_ = _tmp310_->contrast;
+#line 1112 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp311_ != 0) {
+#line 10235 "scanner.c"
+ gint contrast = 0;
+ SANE_Option_Descriptor* _tmp312_ = NULL;
+ ScanJob* _tmp313_ = NULL;
+ gint _tmp314_ = 0;
+ gint _tmp315_ = 0;
+ SANE_Handle _tmp316_ = {0};
+ SANE_Option_Descriptor* _tmp317_ = NULL;
+ SANE_Int _tmp318_ = {0};
+ gint _tmp319_ = 0;
+#line 1114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp312_ = option;
+#line 1114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp313_ = job;
+#line 1114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp314_ = _tmp313_->contrast;
+#line 1114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp315_ = scanner_scale_int (self, -100, 100, _tmp312_, _tmp314_);
+#line 1114 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ contrast = _tmp315_;
+#line 1115 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp316_ = self->priv->handle;
+#line 1115 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp317_ = option;
+#line 1115 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp318_ = index;
+#line 1115 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp319_ = contrast;
+#line 1115 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_int_option (self, _tmp316_, _tmp317_, _tmp318_, _tmp319_, NULL);
+#line 10265 "scanner.c"
+ }
+ }
+#line 1120 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp320_ = self->priv->current_device;
+#line 1120 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_strcmp0 (_tmp320_, "test") == 0) {
+#line 10272 "scanner.c"
+ SANE_Handle _tmp321_ = {0};
+ gint _tmp322_ = 0;
+ SANE_Option_Descriptor* _tmp323_ = NULL;
+ SANE_Option_Descriptor* _tmp324_ = NULL;
+ SANE_Handle _tmp328_ = {0};
+ gint _tmp329_ = 0;
+ SANE_Option_Descriptor* _tmp330_ = NULL;
+ SANE_Option_Descriptor* _tmp331_ = NULL;
+ SANE_Handle _tmp335_ = {0};
+ gint _tmp336_ = 0;
+ SANE_Option_Descriptor* _tmp337_ = NULL;
+ SANE_Option_Descriptor* _tmp338_ = NULL;
+ SANE_Handle _tmp342_ = {0};
+ gint _tmp343_ = 0;
+ SANE_Option_Descriptor* _tmp344_ = NULL;
+ SANE_Option_Descriptor* _tmp345_ = NULL;
+ SANE_Handle _tmp349_ = {0};
+ gint _tmp350_ = 0;
+ SANE_Option_Descriptor* _tmp351_ = NULL;
+ SANE_Option_Descriptor* _tmp352_ = NULL;
+#line 1122 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp321_ = self->priv->handle;
+#line 1122 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp323_ = scanner_get_option_by_name (self, _tmp321_, "hand-scanner", &_tmp322_);
+#line 1122 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp322_;
+#line 1122 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp323_;
+#line 1123 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp324_ = option;
+#line 1123 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp324_ != NULL) {
+#line 10305 "scanner.c"
+ SANE_Handle _tmp325_ = {0};
+ SANE_Option_Descriptor* _tmp326_ = NULL;
+ SANE_Int _tmp327_ = {0};
+#line 1124 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp325_ = self->priv->handle;
+#line 1124 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp326_ = option;
+#line 1124 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp327_ = index;
+#line 1124 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_bool_option (self, _tmp325_, _tmp326_, _tmp327_, FALSE, NULL);
+#line 10317 "scanner.c"
+ }
+#line 1125 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp328_ = self->priv->handle;
+#line 1125 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp330_ = scanner_get_option_by_name (self, _tmp328_, "three-pass", &_tmp329_);
+#line 1125 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp329_;
+#line 1125 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp330_;
+#line 1126 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp331_ = option;
+#line 1126 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp331_ != NULL) {
+#line 10331 "scanner.c"
+ SANE_Handle _tmp332_ = {0};
+ SANE_Option_Descriptor* _tmp333_ = NULL;
+ SANE_Int _tmp334_ = {0};
+#line 1127 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp332_ = self->priv->handle;
+#line 1127 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp333_ = option;
+#line 1127 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp334_ = index;
+#line 1127 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_bool_option (self, _tmp332_, _tmp333_, _tmp334_, FALSE, NULL);
+#line 10343 "scanner.c"
+ }
+#line 1128 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp335_ = self->priv->handle;
+#line 1128 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp337_ = scanner_get_option_by_name (self, _tmp335_, "test-picture", &_tmp336_);
+#line 1128 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp336_;
+#line 1128 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp337_;
+#line 1129 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp338_ = option;
+#line 1129 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp338_ != NULL) {
+#line 10357 "scanner.c"
+ SANE_Handle _tmp339_ = {0};
+ SANE_Option_Descriptor* _tmp340_ = NULL;
+ SANE_Int _tmp341_ = {0};
+#line 1130 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp339_ = self->priv->handle;
+#line 1130 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp340_ = option;
+#line 1130 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp341_ = index;
+#line 1130 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_string_option (self, _tmp339_, _tmp340_, _tmp341_, "Color pattern", NULL);
+#line 10369 "scanner.c"
+ }
+#line 1131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp342_ = self->priv->handle;
+#line 1131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp344_ = scanner_get_option_by_name (self, _tmp342_, "read-delay", &_tmp343_);
+#line 1131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp343_;
+#line 1131 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp344_;
+#line 1132 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp345_ = option;
+#line 1132 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp345_ != NULL) {
+#line 10383 "scanner.c"
+ SANE_Handle _tmp346_ = {0};
+ SANE_Option_Descriptor* _tmp347_ = NULL;
+ SANE_Int _tmp348_ = {0};
+#line 1133 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp346_ = self->priv->handle;
+#line 1133 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp347_ = option;
+#line 1133 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp348_ = index;
+#line 1133 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_bool_option (self, _tmp346_, _tmp347_, _tmp348_, TRUE, NULL);
+#line 10395 "scanner.c"
+ }
+#line 1134 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp349_ = self->priv->handle;
+#line 1134 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp351_ = scanner_get_option_by_name (self, _tmp349_, "read-delay-duration", &_tmp350_);
+#line 1134 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ index = (SANE_Int) _tmp350_;
+#line 1134 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ option = _tmp351_;
+#line 1135 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp352_ = option;
+#line 1135 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp352_ != NULL) {
+#line 10409 "scanner.c"
+ SANE_Handle _tmp353_ = {0};
+ SANE_Option_Descriptor* _tmp354_ = NULL;
+ SANE_Int _tmp355_ = {0};
+#line 1136 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp353_ = self->priv->handle;
+#line 1136 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp354_ = option;
+#line 1136 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp355_ = index;
+#line 1136 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_int_option (self, _tmp353_, _tmp354_, _tmp355_, 200000, NULL);
+#line 10421 "scanner.c"
+ }
+ }
+#line 1139 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->state = SCAN_STATE_START;
+#line 1140 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 1140 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 10430 "scanner.c"
+ }
+#line 1143 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp356_ = index;
+#line 1143 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp357_ = option;
+#line 1143 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_log_option (self, _tmp356_, _tmp357_);
+#line 1146 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp358_ = option;
+#line 1146 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp359_ = _tmp358_->type;
+#line 1146 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp359_ == SANE_TYPE_GROUP) {
+#line 1147 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 1147 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 10448 "scanner.c"
+ }
+#line 1150 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp360_ = option;
+#line 1150 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp361_ = _tmp360_->cap;
+#line 1150 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if ((_tmp361_ & SANE_CAP_INACTIVE) != ((SANE_Int) 0)) {
+#line 1151 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 1151 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 10460 "scanner.c"
+ }
+#line 1154 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp362_ = option;
+#line 1154 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp363_ = _tmp362_->name;
+#line 1154 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp363_ == NULL) {
+#line 1155 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 1155 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 10472 "scanner.c"
+ }
+#line 1157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp364_ = self->priv->options;
+#line 1157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp365_ = option;
+#line 1157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp366_ = _tmp365_->name;
+#line 1157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp367_ = g_strdup (_tmp366_);
+#line 1157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp368_ = index;
+#line 1157 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_hash_table_insert (_tmp364_, _tmp367_, (gpointer) ((gintptr) ((gint) _tmp368_)));
+#line 879 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 10488 "scanner.c"
+}
+
+
+static gdouble scanner_convert_page_size (Scanner* self, SANE_Option_Descriptor* option, gdouble size, gdouble dpi) {
+ gdouble result = 0.0;
+ SANE_Option_Descriptor* _tmp0_ = NULL;
+ SANE_Unit _tmp1_ = 0;
+#line 1160 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (self != NULL, 0.0);
+#line 1160 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (option != NULL, 0.0);
+#line 1162 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = option;
+#line 1162 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = _tmp0_->unit;
+#line 1162 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp1_ == SANE_UNIT_PIXEL) {
+#line 10506 "scanner.c"
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+#line 1163 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = dpi;
+#line 1163 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = size;
+#line 1163 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = (_tmp2_ * _tmp3_) / 254.0;
+#line 1163 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 10517 "scanner.c"
+ } else {
+ SANE_Option_Descriptor* _tmp4_ = NULL;
+ SANE_Unit _tmp5_ = 0;
+#line 1164 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = option;
+#line 1164 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = _tmp4_->unit;
+#line 1164 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp5_ == SANE_UNIT_MM) {
+#line 10527 "scanner.c"
+ gdouble _tmp6_ = 0.0;
+#line 1165 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = size;
+#line 1165 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp6_ / 10.0;
+#line 1165 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 10535 "scanner.c"
+ } else {
+#line 1168 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:1168: Unable to set unsupported unit type");
+#line 1169 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = (gdouble) 0.0f;
+#line 1169 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 10543 "scanner.c"
+ }
+ }
+}
+
+
+static SANE_Option_Descriptor* scanner_get_option_by_name (Scanner* self, SANE_Handle handle, const gchar* name, gint* index) {
+ gint _vala_index = 0;
+ SANE_Option_Descriptor* result = NULL;
+ GHashTable* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gconstpointer _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ SANE_Handle _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ SANE_Option_Descriptor* _tmp6_ = NULL;
+#line 1173 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1173 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 1175 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = self->priv->options;
+#line 1175 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = name;
+#line 1175 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = g_hash_table_lookup (_tmp0_, _tmp1_);
+#line 1175 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _vala_index = (gint) ((gintptr) _tmp2_);
+#line 1176 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = _vala_index;
+#line 1176 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp3_ == 0) {
+#line 1177 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = NULL;
+#line 1177 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (index) {
+#line 1177 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *index = _vala_index;
+#line 10581 "scanner.c"
+ }
+#line 1177 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 10585 "scanner.c"
+ }
+#line 1179 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = handle;
+#line 1179 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = _vala_index;
+#line 1179 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = sane_get_option_descriptor (_tmp4_, (SANE_Int) _tmp5_);
+#line 1179 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp6_;
+#line 1179 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (index) {
+#line 1179 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *index = _vala_index;
+#line 10599 "scanner.c"
+ }
+#line 1179 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 10603 "scanner.c"
+}
+
+
+static void scanner_do_complete_document (Scanner* self) {
+ SANE_Handle _tmp0_ = {0};
+ GList* _tmp1_ = NULL;
+ GList* _tmp2_ = NULL;
+ NotifyDocumentDone* _tmp3_ = NULL;
+ NotifyDocumentDone* _tmp4_ = NULL;
+#line 1182 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 1184 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = self->priv->handle;
+#line 1184 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ sane_cancel (_tmp0_);
+#line 1185 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:1185: sane_cancel ()");
+#line 1187 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = self->priv->job_queue;
+#line 1187 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->job_queue = g_list_remove_link (self->priv->job_queue, _tmp1_);
+#line 1189 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->state = SCAN_STATE_IDLE;
+#line 1192 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = self->priv->job_queue;
+#line 1192 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp2_ != NULL) {
+#line 1194 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->state = SCAN_STATE_OPEN;
+#line 1195 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 10635 "scanner.c"
+ }
+#line 1201 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = notify_document_done_new ();
+#line 1201 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = _tmp3_;
+#line 1201 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_notify (self, (Notify*) _tmp4_);
+#line 1201 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _notify_unref0 (_tmp4_);
+#line 1202 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_scanning (self, FALSE);
+#line 10647 "scanner.c"
+}
+
+
+static void scanner_do_start (Scanner* self) {
+ SANE_Status status = 0;
+ NotifyExpectPage* _tmp0_ = NULL;
+ NotifyExpectPage* _tmp1_ = NULL;
+ SANE_Handle _tmp2_ = {0};
+ SANE_Status _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ SANE_Status _tmp6_ = 0;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ SANE_Status _tmp9_ = 0;
+#line 1205 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 1209 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = notify_expect_page_new ();
+#line 1209 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = _tmp0_;
+#line 1209 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_notify (self, (Notify*) _tmp1_);
+#line 1209 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _notify_unref0 (_tmp1_);
+#line 1211 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = self->priv->handle;
+#line 1211 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = sane_start (_tmp2_);
+#line 1211 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ status = _tmp3_;
+#line 1212 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = self->priv->page_number;
+#line 1212 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = self->priv->pass_number;
+#line 1212 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = status;
+#line 1212 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = sane_status_to_string (_tmp6_);
+#line 1212 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = _tmp7_;
+#line 1212 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:1212: sane_start (page=%d, pass=%d) -> %s", _tmp4_, _tmp5_, _tmp8_);
+#line 1212 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp8_);
+#line 1213 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = status;
+#line 1213 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp9_ == SANE_STATUS_GOOD) {
+#line 1214 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->state = SCAN_STATE_GET_PARAMETERS;
+#line 10699 "scanner.c"
+ } else {
+ SANE_Status _tmp10_ = 0;
+#line 1215 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = status;
+#line 1215 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp10_ == SANE_STATUS_NO_DOCS) {
+#line 1216 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_do_complete_document (self);
+#line 10708 "scanner.c"
+ } else {
+ SANE_Status _tmp11_ = 0;
+ const gchar* _tmp12_ = NULL;
+ SANE_Status _tmp13_ = 0;
+ const gchar* _tmp14_ = NULL;
+#line 1219 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = status;
+#line 1219 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = sane_strstatus (_tmp11_);
+#line 1219 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:1219: Unable to start device: %s", _tmp12_);
+#line 1220 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = status;
+#line 1220 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = _ ("Unable to start scan");
+#line 1220 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_fail_scan (self, (gint) _tmp13_, _tmp14_);
+#line 10726 "scanner.c"
+ }
+ }
+}
+
+
+static gchar* sane_frame_to_string (SANE_Frame frame) {
+ gchar* result = NULL;
+ SANE_Frame _tmp0_ = 0;
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp0_ = frame;
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ switch (_tmp0_) {
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_FRAME_GRAY:
+#line 10741 "scanner.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 106 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp1_ = g_strdup ("SANE_FRAME_GRAY");
+#line 106 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp1_;
+#line 106 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 10750 "scanner.c"
+ }
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_FRAME_RGB:
+#line 10754 "scanner.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp2_ = g_strdup ("SANE_FRAME_RGB");
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp2_;
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 10763 "scanner.c"
+ }
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_FRAME_RED:
+#line 10767 "scanner.c"
+ {
+ gchar* _tmp3_ = NULL;
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp3_ = g_strdup ("SANE_FRAME_RED");
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp3_;
+#line 110 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 10776 "scanner.c"
+ }
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_FRAME_GREEN:
+#line 10780 "scanner.c"
+ {
+ gchar* _tmp4_ = NULL;
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp4_ = g_strdup ("SANE_FRAME_GREEN");
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp4_;
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 10789 "scanner.c"
+ }
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ case SANE_FRAME_BLUE:
+#line 10793 "scanner.c"
+ {
+ gchar* _tmp5_ = NULL;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp5_ = g_strdup ("SANE_FRAME_BLUE");
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp5_;
+#line 114 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 10802 "scanner.c"
+ }
+ default:
+ {
+ SANE_Frame _tmp6_ = 0;
+ gchar* _tmp7_ = NULL;
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp6_ = frame;
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ _tmp7_ = g_strdup_printf ("SANE_FRAME(%d)", (gint) _tmp6_);
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ result = _tmp7_;
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/sane.vapi"
+ return result;
+#line 10816 "scanner.c"
+ }
+ }
+}
+
+
+static void scanner_do_get_parameters (Scanner* self) {
+ SANE_Status status = 0;
+ SANE_Handle _tmp0_ = {0};
+ SANE_Parameters _tmp1_ = {0};
+ SANE_Status _tmp2_ = 0;
+ SANE_Status _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ SANE_Status _tmp6_ = 0;
+ ScanJob* job = NULL;
+ GList* _tmp11_ = NULL;
+ gconstpointer _tmp12_ = NULL;
+ ScanJob* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ SANE_Parameters _tmp15_ = {0};
+ gboolean _tmp16_ = FALSE;
+ SANE_Parameters _tmp17_ = {0};
+ SANE_Frame _tmp18_ = 0;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ SANE_Parameters _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ SANE_Parameters _tmp23_ = {0};
+ gint _tmp24_ = 0;
+ SANE_Parameters _tmp25_ = {0};
+ gint _tmp26_ = 0;
+ SANE_Parameters _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ ScanPageInfo* info = NULL;
+ ScanPageInfo* _tmp29_ = NULL;
+ ScanPageInfo* _tmp30_ = NULL;
+ SANE_Parameters _tmp31_ = {0};
+ gint _tmp32_ = 0;
+ ScanPageInfo* _tmp33_ = NULL;
+ SANE_Parameters _tmp34_ = {0};
+ gint _tmp35_ = 0;
+ ScanPageInfo* _tmp36_ = NULL;
+ SANE_Parameters _tmp37_ = {0};
+ gint _tmp38_ = 0;
+ gboolean _tmp39_ = FALSE;
+ gboolean _tmp40_ = FALSE;
+ gboolean _tmp41_ = FALSE;
+ SANE_Parameters _tmp42_ = {0};
+ gint _tmp43_ = 0;
+ gint _tmp53_ = 0;
+ SANE_Parameters _tmp54_ = {0};
+ SANE_Frame _tmp55_ = 0;
+ ScanPageInfo* _tmp56_ = NULL;
+ ScanPageInfo* _tmp57_ = NULL;
+ ScanJob* _tmp58_ = NULL;
+ gdouble _tmp59_ = 0.0;
+ ScanPageInfo* _tmp60_ = NULL;
+ const gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ gint _tmp63_ = 0;
+ gint _tmp64_ = 0;
+ gint buffer_size = 0;
+ SANE_Parameters _tmp71_ = {0};
+ gint _tmp72_ = 0;
+ gint _tmp73_ = 0;
+ guchar* _tmp74_ = NULL;
+#line 1226 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 1228 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = self->priv->handle;
+#line 1228 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = sane_get_parameters (_tmp0_, &_tmp1_);
+#line 1228 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->parameters = _tmp1_;
+#line 1228 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ status = _tmp2_;
+#line 1229 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = status;
+#line 1229 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = sane_status_to_string (_tmp3_);
+#line 1229 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = _tmp4_;
+#line 1229 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:1229: sane_get_parameters () -> %s", _tmp5_);
+#line 1229 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp5_);
+#line 1230 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = status;
+#line 1230 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp6_ != SANE_STATUS_GOOD) {
+#line 10907 "scanner.c"
+ SANE_Status _tmp7_ = 0;
+ const gchar* _tmp8_ = NULL;
+ SANE_Status _tmp9_ = 0;
+ const gchar* _tmp10_ = NULL;
+#line 1232 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = status;
+#line 1232 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = sane_strstatus (_tmp7_);
+#line 1232 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:1232: Unable to get device parameters: %s", _tmp8_);
+#line 1233 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = status;
+#line 1233 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = _ ("Error communicating with scanner");
+#line 1233 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_fail_scan (self, (gint) _tmp9_, _tmp10_);
+#line 1236 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 10926 "scanner.c"
+ }
+#line 1239 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = self->priv->job_queue;
+#line 1239 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = _tmp11_->data;
+#line 1239 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = _scan_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST ((ScanJob*) _tmp12_, TYPE_SCAN_JOB, ScanJob));
+#line 1239 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ job = _tmp13_;
+#line 1243 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = self->priv->parameters;
+#line 1243 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_ = _tmp15_.last_frame;
+#line 1243 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp16_) {
+#line 1243 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = "SANE_TRUE";
+#line 10944 "scanner.c"
+ } else {
+#line 1243 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = "SANE_FALSE";
+#line 10948 "scanner.c"
+ }
+#line 1241 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp17_ = self->priv->parameters;
+#line 1241 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp18_ = _tmp17_.format;
+#line 1241 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp19_ = sane_frame_to_string (_tmp18_);
+#line 1241 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp20_ = _tmp19_;
+#line 1241 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21_ = self->priv->parameters;
+#line 1241 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp22_ = _tmp21_.bytes_per_line;
+#line 1241 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp23_ = self->priv->parameters;
+#line 1241 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp24_ = _tmp23_.pixels_per_line;
+#line 1241 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25_ = self->priv->parameters;
+#line 1241 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp26_ = _tmp25_.lines;
+#line 1241 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp27_ = self->priv->parameters;
+#line 1241 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp28_ = _tmp27_.depth;
+#line 1241 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:1241: Parameters: format=%s last_frame=%s bytes_per_line=" \
+"%d pixels_per_line=%d lines=%d depth=%d", _tmp20_, _tmp14_, _tmp22_, _tmp24_, _tmp26_, _tmp28_);
+#line 1241 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp20_);
+#line 1249 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_ = scan_page_info_new ();
+#line 1249 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ info = _tmp29_;
+#line 1250 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_ = info;
+#line 1250 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp31_ = self->priv->parameters;
+#line 1250 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp32_ = _tmp31_.pixels_per_line;
+#line 1250 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_->width = _tmp32_;
+#line 1251 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33_ = info;
+#line 1251 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp34_ = self->priv->parameters;
+#line 1251 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp35_ = _tmp34_.lines;
+#line 1251 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33_->height = _tmp35_;
+#line 1252 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp36_ = info;
+#line 1252 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_ = self->priv->parameters;
+#line 1252 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp38_ = _tmp37_.depth;
+#line 1252 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp36_->depth = _tmp38_;
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp42_ = self->priv->parameters;
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp43_ = _tmp42_.depth;
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp43_ == 8) {
+#line 11012 "scanner.c"
+ SANE_Parameters _tmp44_ = {0};
+ SANE_Frame _tmp45_ = 0;
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp44_ = self->priv->parameters;
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp45_ = _tmp44_.format;
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp41_ = _tmp45_ == SANE_FRAME_GRAY;
+#line 11021 "scanner.c"
+ } else {
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp41_ = FALSE;
+#line 11025 "scanner.c"
+ }
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp41_) {
+#line 11029 "scanner.c"
+ ScanJob* _tmp46_ = NULL;
+ gint _tmp47_ = 0;
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp46_ = job;
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp47_ = _tmp46_->depth;
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp40_ = _tmp47_ == 2;
+#line 11038 "scanner.c"
+ } else {
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp40_ = FALSE;
+#line 11042 "scanner.c"
+ }
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp40_) {
+#line 11046 "scanner.c"
+ ScanJob* _tmp48_ = NULL;
+ ScanMode _tmp49_ = 0;
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp48_ = job;
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp49_ = _tmp48_->scan_mode;
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp39_ = _tmp49_ == SCAN_MODE_GRAY;
+#line 11055 "scanner.c"
+ } else {
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp39_ = FALSE;
+#line 11059 "scanner.c"
+ }
+#line 1255 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp39_) {
+#line 11063 "scanner.c"
+ ScanPageInfo* _tmp50_ = NULL;
+ ScanJob* _tmp51_ = NULL;
+ gint _tmp52_ = 0;
+#line 1256 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp50_ = info;
+#line 1256 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp51_ = job;
+#line 1256 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp52_ = _tmp51_->depth;
+#line 1256 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp50_->depth = _tmp52_;
+#line 11075 "scanner.c"
+ }
+#line 1257 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp54_ = self->priv->parameters;
+#line 1257 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp55_ = _tmp54_.format;
+#line 1257 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp55_ == SANE_FRAME_GRAY) {
+#line 1257 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp53_ = 1;
+#line 11085 "scanner.c"
+ } else {
+#line 1257 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp53_ = 3;
+#line 11089 "scanner.c"
+ }
+#line 1257 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp56_ = info;
+#line 1257 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp56_->n_channels = _tmp53_;
+#line 1258 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp57_ = info;
+#line 1258 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp58_ = job;
+#line 1258 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp59_ = _tmp58_->dpi;
+#line 1258 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp57_->dpi = _tmp59_;
+#line 1259 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp60_ = info;
+#line 1259 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp61_ = self->priv->current_device;
+#line 1259 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp62_ = g_strdup (_tmp61_);
+#line 1259 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp60_->device);
+#line 1259 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp60_->device = _tmp62_;
+#line 1261 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp63_ = self->priv->page_number;
+#line 1261 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp64_ = self->priv->notified_page;
+#line 1261 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp63_ != _tmp64_) {
+#line 11119 "scanner.c"
+ ScanJob* _tmp65_ = NULL;
+ gint _tmp66_ = 0;
+ ScanPageInfo* _tmp67_ = NULL;
+ NotifyGotPageInfo* _tmp68_ = NULL;
+ NotifyGotPageInfo* _tmp69_ = NULL;
+ gint _tmp70_ = 0;
+#line 1263 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp65_ = job;
+#line 1263 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp66_ = _tmp65_->id;
+#line 1263 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp67_ = info;
+#line 1263 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp68_ = notify_got_page_info_new (_tmp66_, _tmp67_);
+#line 1263 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp69_ = _tmp68_;
+#line 1263 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_notify (self, (Notify*) _tmp69_);
+#line 1263 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _notify_unref0 (_tmp69_);
+#line 1264 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp70_ = self->priv->page_number;
+#line 1264 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->notified_page = _tmp70_;
+#line 11144 "scanner.c"
+ }
+#line 1268 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp71_ = self->priv->parameters;
+#line 1268 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp72_ = _tmp71_.bytes_per_line;
+#line 1268 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ buffer_size = _tmp72_ + 1;
+#line 1269 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp73_ = buffer_size;
+#line 1269 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp74_ = g_new0 (guchar, _tmp73_);
+#line 1269 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->buffer = (g_free (self->priv->buffer), NULL);
+#line 1269 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->buffer = _tmp74_;
+#line 1269 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->buffer_length1 = _tmp73_;
+#line 1269 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->_buffer_size_ = self->priv->buffer_length1;
+#line 1270 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->n_used = 0;
+#line 1271 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->line_count = 0;
+#line 1272 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->pass_number = 0;
+#line 1273 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->state = SCAN_STATE_READ;
+#line 1226 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_page_info_unref0 (info);
+#line 1226 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 11176 "scanner.c"
+}
+
+
+static void scanner_do_complete_page (Scanner* self) {
+ ScanJob* job = NULL;
+ GList* _tmp0_ = NULL;
+ gconstpointer _tmp1_ = NULL;
+ ScanJob* _tmp2_ = NULL;
+ ScanJob* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ NotifyPageDone* _tmp5_ = NULL;
+ NotifyPageDone* _tmp6_ = NULL;
+ SANE_Parameters _tmp7_ = {0};
+ gboolean _tmp8_ = FALSE;
+ ScanJob* _tmp10_ = NULL;
+ ScanType _tmp11_ = 0;
+#line 1276 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 1278 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = self->priv->job_queue;
+#line 1278 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = _tmp0_->data;
+#line 1278 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = _scan_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST ((ScanJob*) _tmp1_, TYPE_SCAN_JOB, ScanJob));
+#line 1278 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ job = _tmp2_;
+#line 1280 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = job;
+#line 1280 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = _tmp3_->id;
+#line 1280 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = notify_page_done_new (_tmp4_);
+#line 1280 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = _tmp5_;
+#line 1280 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_notify (self, (Notify*) _tmp6_);
+#line 1280 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _notify_unref0 (_tmp6_);
+#line 1283 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = self->priv->parameters;
+#line 1283 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = _tmp7_.last_frame;
+#line 1283 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp8_) {
+#line 11221 "scanner.c"
+ gint _tmp9_ = 0;
+#line 1285 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = self->priv->pass_number;
+#line 1285 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->pass_number = _tmp9_ + 1;
+#line 1286 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->state = SCAN_STATE_START;
+#line 1287 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 1287 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 11233 "scanner.c"
+ }
+#line 1291 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = job;
+#line 1291 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = _tmp10_->type;
+#line 1291 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp11_ != SCAN_TYPE_SINGLE) {
+#line 11241 "scanner.c"
+ gint _tmp12_ = 0;
+ ScanJob* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ NotifyPageDone* _tmp15_ = NULL;
+ NotifyPageDone* _tmp16_ = NULL;
+#line 1293 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = self->priv->page_number;
+#line 1293 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->page_number = _tmp12_ + 1;
+#line 1294 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->pass_number = 0;
+#line 1295 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = job;
+#line 1295 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = _tmp13_->id;
+#line 1295 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = notify_page_done_new (_tmp14_);
+#line 1295 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_ = _tmp15_;
+#line 1295 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_notify (self, (Notify*) _tmp16_);
+#line 1295 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _notify_unref0 (_tmp16_);
+#line 1296 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->state = SCAN_STATE_START;
+#line 1297 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 1297 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 11271 "scanner.c"
+ }
+#line 1300 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_do_complete_document (self);
+#line 1276 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 11277 "scanner.c"
+}
+
+
+static void scanner_do_read (Scanner* self) {
+ ScanJob* job = NULL;
+ GList* _tmp0_ = NULL;
+ gconstpointer _tmp1_ = NULL;
+ ScanJob* _tmp2_ = NULL;
+ gint n_to_read = 0;
+ guchar* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gint _tmp4_ = 0;
+ SANE_Int n_read = {0};
+ guchar* b = NULL;
+ guchar* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ SANE_Status status = 0;
+ SANE_Handle _tmp6_ = {0};
+ guchar* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ SANE_Int _tmp10_ = {0};
+ SANE_Status _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ SANE_Status _tmp13_ = 0;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ SANE_Int _tmp16_ = {0};
+ SANE_Status _tmp17_ = 0;
+ SANE_Status _tmp29_ = 0;
+ gboolean full_read = FALSE;
+ gboolean _tmp34_ = FALSE;
+ gint _tmp35_ = 0;
+ gint _tmp38_ = 0;
+ SANE_Int _tmp39_ = {0};
+ gint _tmp40_ = 0;
+ SANE_Parameters _tmp41_ = {0};
+ gint _tmp42_ = 0;
+#line 1303 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 1305 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = self->priv->job_queue;
+#line 1305 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = _tmp0_->data;
+#line 1305 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = _scan_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST ((ScanJob*) _tmp1_, TYPE_SCAN_JOB, ScanJob));
+#line 1305 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ job = _tmp2_;
+#line 1308 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = self->priv->buffer;
+#line 1308 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3__length1 = self->priv->buffer_length1;
+#line 1308 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = self->priv->n_used;
+#line 1308 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ n_to_read = _tmp3__length1 - _tmp4_;
+#line 1311 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = self->priv->buffer;
+#line 1311 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5__length1 = self->priv->buffer_length1;
+#line 1311 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ b = (guchar*) _tmp5_;
+#line 1312 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = self->priv->handle;
+#line 1312 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = b;
+#line 1312 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = self->priv->n_used;
+#line 1312 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = n_to_read;
+#line 1312 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = sane_read (_tmp6_, (guint8*) (_tmp7_ + _tmp8_), (SANE_Int) _tmp9_, &_tmp10_);
+#line 1312 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ n_read = _tmp10_;
+#line 1312 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ status = _tmp11_;
+#line 1313 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = n_to_read;
+#line 1313 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = status;
+#line 1313 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = sane_status_to_string (_tmp13_);
+#line 1313 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = _tmp14_;
+#line 1313 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_ = n_read;
+#line 1313 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:1313: sane_read (%d) -> (%s, %d)", _tmp12_, _tmp15_, (gint) _tmp16_);
+#line 1313 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp15_);
+#line 1316 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp17_ = status;
+#line 1316 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp17_ == SANE_STATUS_EOF) {
+#line 11372 "scanner.c"
+ gboolean _tmp18_ = FALSE;
+ SANE_Parameters _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ gint _tmp27_ = 0;
+#line 1318 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp19_ = self->priv->parameters;
+#line 1318 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp20_ = _tmp19_.lines;
+#line 1318 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp20_ > 0) {
+#line 11383 "scanner.c"
+ gint _tmp21_ = 0;
+ SANE_Parameters _tmp22_ = {0};
+ gint _tmp23_ = 0;
+#line 1318 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21_ = self->priv->line_count;
+#line 1318 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp22_ = self->priv->parameters;
+#line 1318 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp23_ = _tmp22_.lines;
+#line 1318 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp18_ = _tmp21_ != _tmp23_;
+#line 11395 "scanner.c"
+ } else {
+#line 1318 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp18_ = FALSE;
+#line 11399 "scanner.c"
+ }
+#line 1318 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp18_) {
+#line 11403 "scanner.c"
+ gint _tmp24_ = 0;
+ SANE_Parameters _tmp25_ = {0};
+ gint _tmp26_ = 0;
+#line 1319 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp24_ = self->priv->line_count;
+#line 1319 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25_ = self->priv->parameters;
+#line 1319 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp26_ = _tmp25_.lines;
+#line 1319 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:1319: Scan completed with %d lines, expected %d lines", _tmp24_, _tmp26_);
+#line 11415 "scanner.c"
+ }
+#line 1320 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp27_ = self->priv->n_used;
+#line 1320 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp27_ > 0) {
+#line 11421 "scanner.c"
+ gint _tmp28_ = 0;
+#line 1321 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp28_ = self->priv->n_used;
+#line 1321 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:1321: Scan complete with %d bytes of unused data", _tmp28_);
+#line 11427 "scanner.c"
+ }
+#line 1322 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_do_complete_page (self);
+#line 1323 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 1323 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 11435 "scanner.c"
+ }
+#line 1327 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_ = status;
+#line 1327 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp29_ != SANE_STATUS_GOOD) {
+#line 11441 "scanner.c"
+ SANE_Status _tmp30_ = 0;
+ const gchar* _tmp31_ = NULL;
+ SANE_Status _tmp32_ = 0;
+ const gchar* _tmp33_ = NULL;
+#line 1329 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_ = status;
+#line 1329 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp31_ = sane_strstatus (_tmp30_);
+#line 1329 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:1329: Unable to read frame from device: %s", _tmp31_);
+#line 1330 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp32_ = status;
+#line 1330 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33_ = _ ("Error communicating with scanner");
+#line 1330 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_fail_scan (self, (gint) _tmp32_, _tmp33_);
+#line 1333 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 1333 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 11462 "scanner.c"
+ }
+#line 1336 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ full_read = FALSE;
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp35_ = self->priv->n_used;
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp35_ == 0) {
+#line 11470 "scanner.c"
+ SANE_Int _tmp36_ = {0};
+ guchar* _tmp37_ = NULL;
+ gint _tmp37__length1 = 0;
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp36_ = n_read;
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_ = self->priv->buffer;
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37__length1 = self->priv->buffer_length1;
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp34_ = _tmp36_ == ((SANE_Int) _tmp37__length1);
+#line 11482 "scanner.c"
+ } else {
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp34_ = FALSE;
+#line 11486 "scanner.c"
+ }
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp34_) {
+#line 1338 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ full_read = TRUE;
+#line 11492 "scanner.c"
+ }
+#line 1339 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp38_ = self->priv->n_used;
+#line 1339 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp39_ = n_read;
+#line 1339 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->n_used = _tmp38_ + ((gint) _tmp39_);
+#line 1342 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp40_ = self->priv->n_used;
+#line 1342 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp41_ = self->priv->parameters;
+#line 1342 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp42_ = _tmp41_.bytes_per_line;
+#line 1342 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp40_ >= _tmp42_) {
+#line 11508 "scanner.c"
+ ScanLine* line = NULL;
+ ScanLine* _tmp43_ = NULL;
+ SANE_Parameters _tmp44_ = {0};
+ SANE_Frame _tmp45_ = 0;
+ ScanLine* _tmp51_ = NULL;
+ SANE_Parameters _tmp52_ = {0};
+ gint _tmp53_ = 0;
+ ScanLine* _tmp54_ = NULL;
+ SANE_Parameters _tmp55_ = {0};
+ gint _tmp56_ = 0;
+ ScanLine* _tmp57_ = NULL;
+ guchar* _tmp58_ = NULL;
+ gint _tmp58__length1 = 0;
+ ScanLine* _tmp59_ = NULL;
+ SANE_Parameters _tmp60_ = {0};
+ gint _tmp61_ = 0;
+ ScanLine* _tmp62_ = NULL;
+ gint _tmp63_ = 0;
+ ScanLine* _tmp64_ = NULL;
+ gint _tmp65_ = 0;
+ ScanLine* _tmp66_ = NULL;
+ gint _tmp67_ = 0;
+ gint _tmp68_ = 0;
+ ScanLine* _tmp69_ = NULL;
+ gint _tmp70_ = 0;
+ gint buffer_size = 0;
+ ScanLine* _tmp71_ = NULL;
+ guchar* _tmp72_ = NULL;
+ gint _tmp72__length1 = 0;
+ gboolean _tmp73_ = FALSE;
+ gint _tmp77_ = 0;
+ guchar* _tmp78_ = NULL;
+ gint n_remaining = 0;
+ gint _tmp79_ = 0;
+ ScanLine* _tmp80_ = NULL;
+ gint _tmp81_ = 0;
+ ScanLine* _tmp82_ = NULL;
+ gint _tmp83_ = 0;
+ gboolean _tmp100_ = FALSE;
+ gboolean _tmp101_ = FALSE;
+ gboolean _tmp102_ = FALSE;
+ SANE_Parameters _tmp103_ = {0};
+ gint _tmp104_ = 0;
+ ScanJob* _tmp153_ = NULL;
+ gint _tmp154_ = 0;
+ ScanLine* _tmp155_ = NULL;
+ NotifyGotLine* _tmp156_ = NULL;
+ NotifyGotLine* _tmp157_ = NULL;
+#line 1344 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp43_ = scan_line_new ();
+#line 1344 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ line = _tmp43_;
+#line 1345 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp44_ = self->priv->parameters;
+#line 1345 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp45_ = _tmp44_.format;
+#line 1345 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ switch (_tmp45_) {
+#line 1345 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_FRAME_GRAY:
+#line 11569 "scanner.c"
+ {
+ ScanLine* _tmp46_ = NULL;
+#line 1348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp46_ = line;
+#line 1348 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp46_->channel = 0;
+#line 1349 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 11578 "scanner.c"
+ }
+#line 1345 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_FRAME_RGB:
+#line 11582 "scanner.c"
+ {
+ ScanLine* _tmp47_ = NULL;
+#line 1351 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp47_ = line;
+#line 1351 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp47_->channel = -1;
+#line 1352 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 11591 "scanner.c"
+ }
+#line 1345 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_FRAME_RED:
+#line 11595 "scanner.c"
+ {
+ ScanLine* _tmp48_ = NULL;
+#line 1354 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp48_ = line;
+#line 1354 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp48_->channel = 0;
+#line 1355 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 11604 "scanner.c"
+ }
+#line 1345 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_FRAME_GREEN:
+#line 11608 "scanner.c"
+ {
+ ScanLine* _tmp49_ = NULL;
+#line 1357 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp49_ = line;
+#line 1357 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp49_->channel = 1;
+#line 1358 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 11617 "scanner.c"
+ }
+#line 1345 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SANE_FRAME_BLUE:
+#line 11621 "scanner.c"
+ {
+ ScanLine* _tmp50_ = NULL;
+#line 1360 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp50_ = line;
+#line 1360 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp50_->channel = 2;
+#line 1361 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 11630 "scanner.c"
+ }
+ default:
+#line 1345 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 11635 "scanner.c"
+ }
+#line 1363 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp51_ = line;
+#line 1363 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp52_ = self->priv->parameters;
+#line 1363 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp53_ = _tmp52_.pixels_per_line;
+#line 1363 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp51_->width = _tmp53_;
+#line 1364 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp54_ = line;
+#line 1364 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp55_ = self->priv->parameters;
+#line 1364 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp56_ = _tmp55_.depth;
+#line 1364 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp54_->depth = _tmp56_;
+#line 1365 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp57_ = line;
+#line 1365 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp58_ = self->priv->buffer;
+#line 1365 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp58__length1 = self->priv->buffer_length1;
+#line 1365 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->buffer = NULL;
+#line 1365 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->buffer_length1 = 0;
+#line 1365 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp57_->data = (g_free (_tmp57_->data), NULL);
+#line 1365 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp57_->data = _tmp58_;
+#line 1365 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp57_->data_length1 = _tmp58__length1;
+#line 1366 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp59_ = line;
+#line 1366 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp60_ = self->priv->parameters;
+#line 1366 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp61_ = _tmp60_.bytes_per_line;
+#line 1366 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp59_->data_length = _tmp61_;
+#line 1367 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp62_ = line;
+#line 1367 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp63_ = self->priv->line_count;
+#line 1367 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp62_->number = _tmp63_;
+#line 1368 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp64_ = line;
+#line 1368 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp65_ = self->priv->n_used;
+#line 1368 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp66_ = line;
+#line 1368 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp67_ = _tmp66_->data_length;
+#line 1368 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp64_->n_lines = _tmp65_ / _tmp67_;
+#line 1370 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp68_ = self->priv->line_count;
+#line 1370 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp69_ = line;
+#line 1370 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp70_ = _tmp69_->n_lines;
+#line 1370 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->line_count = _tmp68_ + _tmp70_;
+#line 1373 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp71_ = line;
+#line 1373 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp72_ = _tmp71_->data;
+#line 1373 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp72__length1 = _tmp71_->data_length1;
+#line 1373 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ buffer_size = _tmp72__length1;
+#line 1374 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp73_ = full_read;
+#line 1374 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp73_) {
+#line 11713 "scanner.c"
+ gint _tmp74_ = 0;
+ SANE_Parameters _tmp75_ = {0};
+ gint _tmp76_ = 0;
+#line 1375 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp74_ = buffer_size;
+#line 1375 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp75_ = self->priv->parameters;
+#line 1375 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp76_ = _tmp75_.bytes_per_line;
+#line 1375 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ buffer_size = _tmp74_ + _tmp76_;
+#line 11725 "scanner.c"
+ }
+#line 1377 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp77_ = buffer_size;
+#line 1377 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp78_ = g_new0 (guchar, _tmp77_);
+#line 1377 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->buffer = (g_free (self->priv->buffer), NULL);
+#line 1377 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->buffer = _tmp78_;
+#line 1377 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->buffer_length1 = _tmp77_;
+#line 1377 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->_buffer_size_ = self->priv->buffer_length1;
+#line 1378 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp79_ = self->priv->n_used;
+#line 1378 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp80_ = line;
+#line 1378 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp81_ = _tmp80_->n_lines;
+#line 1378 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp82_ = line;
+#line 1378 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp83_ = _tmp82_->data_length;
+#line 1378 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ n_remaining = _tmp79_ - (_tmp81_ * _tmp83_);
+#line 1379 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->n_used = 0;
+#line 11753 "scanner.c"
+ {
+ gint i = 0;
+#line 1380 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = 0;
+#line 11758 "scanner.c"
+ {
+ gboolean _tmp84_ = FALSE;
+#line 1380 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp84_ = TRUE;
+#line 1380 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ while (TRUE) {
+#line 11765 "scanner.c"
+ gint _tmp86_ = 0;
+ gint _tmp87_ = 0;
+ guchar* _tmp88_ = NULL;
+ gint _tmp88__length1 = 0;
+ gint _tmp89_ = 0;
+ ScanLine* _tmp90_ = NULL;
+ guchar* _tmp91_ = NULL;
+ gint _tmp91__length1 = 0;
+ gint _tmp92_ = 0;
+ ScanLine* _tmp93_ = NULL;
+ gint _tmp94_ = 0;
+ ScanLine* _tmp95_ = NULL;
+ gint _tmp96_ = 0;
+ guchar _tmp97_ = '\0';
+ guchar _tmp98_ = '\0';
+ gint _tmp99_ = 0;
+#line 1380 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp84_) {
+#line 11784 "scanner.c"
+ gint _tmp85_ = 0;
+#line 1380 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp85_ = i;
+#line 1380 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = _tmp85_ + 1;
+#line 11790 "scanner.c"
+ }
+#line 1380 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp84_ = FALSE;
+#line 1380 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp86_ = i;
+#line 1380 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp87_ = n_remaining;
+#line 1380 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!(_tmp86_ < _tmp87_)) {
+#line 1380 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 11802 "scanner.c"
+ }
+#line 1382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp88_ = self->priv->buffer;
+#line 1382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp88__length1 = self->priv->buffer_length1;
+#line 1382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp89_ = i;
+#line 1382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp90_ = line;
+#line 1382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp91_ = _tmp90_->data;
+#line 1382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp91__length1 = _tmp90_->data_length1;
+#line 1382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp92_ = i;
+#line 1382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp93_ = line;
+#line 1382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp94_ = _tmp93_->n_lines;
+#line 1382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp95_ = line;
+#line 1382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp96_ = _tmp95_->data_length;
+#line 1382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp97_ = _tmp91_[_tmp92_ + (_tmp94_ * _tmp96_)];
+#line 1382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp88_[_tmp89_] = _tmp97_;
+#line 1382 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp98_ = _tmp88_[_tmp89_];
+#line 1383 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp99_ = self->priv->n_used;
+#line 1383 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->n_used = _tmp99_ + 1;
+#line 11836 "scanner.c"
+ }
+ }
+ }
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp103_ = self->priv->parameters;
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp104_ = _tmp103_.depth;
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp104_ == 8) {
+#line 11846 "scanner.c"
+ SANE_Parameters _tmp105_ = {0};
+ SANE_Frame _tmp106_ = 0;
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp105_ = self->priv->parameters;
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp106_ = _tmp105_.format;
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp102_ = _tmp106_ == SANE_FRAME_GRAY;
+#line 11855 "scanner.c"
+ } else {
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp102_ = FALSE;
+#line 11859 "scanner.c"
+ }
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp102_) {
+#line 11863 "scanner.c"
+ ScanJob* _tmp107_ = NULL;
+ gint _tmp108_ = 0;
+#line 1389 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp107_ = job;
+#line 1389 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp108_ = _tmp107_->depth;
+#line 1389 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp101_ = _tmp108_ == 2;
+#line 11872 "scanner.c"
+ } else {
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp101_ = FALSE;
+#line 11876 "scanner.c"
+ }
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp101_) {
+#line 11880 "scanner.c"
+ ScanJob* _tmp109_ = NULL;
+ ScanMode _tmp110_ = 0;
+#line 1389 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp109_ = job;
+#line 1389 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp110_ = _tmp109_->scan_mode;
+#line 1389 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp100_ = _tmp110_ == SCAN_MODE_GRAY;
+#line 11889 "scanner.c"
+ } else {
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp100_ = FALSE;
+#line 11893 "scanner.c"
+ }
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp100_) {
+#line 11897 "scanner.c"
+ guchar block = '\0';
+ gint write_offset = 0;
+ gint block_shift = 0;
+ ScanLine* _tmp150_ = NULL;
+ ScanLine* _tmp151_ = NULL;
+ gint _tmp152_ = 0;
+#line 1391 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ block = (guchar) 0;
+#line 1392 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ write_offset = 0;
+#line 1393 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ block_shift = 6;
+#line 11910 "scanner.c"
+ {
+ gint i = 0;
+#line 1394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = 0;
+#line 11915 "scanner.c"
+ {
+ gboolean _tmp111_ = FALSE;
+#line 1394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp111_ = TRUE;
+#line 1394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ while (TRUE) {
+#line 11922 "scanner.c"
+ gint _tmp113_ = 0;
+ ScanLine* _tmp114_ = NULL;
+ gint _tmp115_ = 0;
+ gint offset = 0;
+ gint _tmp116_ = 0;
+ ScanLine* _tmp117_ = NULL;
+ gint _tmp118_ = 0;
+ gint _tmp143_ = 0;
+#line 1394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp111_) {
+#line 11933 "scanner.c"
+ gint _tmp112_ = 0;
+#line 1394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp112_ = i;
+#line 1394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ i = _tmp112_ + 1;
+#line 11939 "scanner.c"
+ }
+#line 1394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp111_ = FALSE;
+#line 1394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp113_ = i;
+#line 1394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp114_ = line;
+#line 1394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp115_ = _tmp114_->n_lines;
+#line 1394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!(_tmp113_ < _tmp115_)) {
+#line 1394 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 11953 "scanner.c"
+ }
+#line 1396 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp116_ = i;
+#line 1396 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp117_ = line;
+#line 1396 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp118_ = _tmp117_->data_length;
+#line 1396 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ offset = _tmp116_ * _tmp118_;
+#line 11963 "scanner.c"
+ {
+ gint x = 0;
+#line 1397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ x = 0;
+#line 11968 "scanner.c"
+ {
+ gboolean _tmp119_ = FALSE;
+#line 1397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp119_ = TRUE;
+#line 1397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ while (TRUE) {
+#line 11975 "scanner.c"
+ gint _tmp121_ = 0;
+ ScanLine* _tmp122_ = NULL;
+ gint _tmp123_ = 0;
+ guchar p = '\0';
+ ScanLine* _tmp124_ = NULL;
+ guchar* _tmp125_ = NULL;
+ gint _tmp125__length1 = 0;
+ gint _tmp126_ = 0;
+ gint _tmp127_ = 0;
+ guchar _tmp128_ = '\0';
+ guchar sample = '\0';
+ guchar _tmp129_ = '\0';
+ guchar _tmp132_ = '\0';
+ guchar _tmp133_ = '\0';
+ gint _tmp134_ = 0;
+ gint _tmp135_ = 0;
+#line 1397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp119_) {
+#line 11994 "scanner.c"
+ gint _tmp120_ = 0;
+#line 1397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp120_ = x;
+#line 1397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ x = _tmp120_ + 1;
+#line 12000 "scanner.c"
+ }
+#line 1397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp119_ = FALSE;
+#line 1397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp121_ = x;
+#line 1397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp122_ = line;
+#line 1397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp123_ = _tmp122_->width;
+#line 1397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!(_tmp121_ < _tmp123_)) {
+#line 1397 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 12014 "scanner.c"
+ }
+#line 1399 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp124_ = line;
+#line 1399 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp125_ = _tmp124_->data;
+#line 1399 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp125__length1 = _tmp124_->data_length1;
+#line 1399 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp126_ = offset;
+#line 1399 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp127_ = x;
+#line 1399 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp128_ = _tmp125_[_tmp126_ + _tmp127_];
+#line 1399 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ p = _tmp128_;
+#line 1402 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp129_ = p;
+#line 1402 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (((gint) _tmp129_) >= 192) {
+#line 1403 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ sample = (guchar) 3;
+#line 12036 "scanner.c"
+ } else {
+ guchar _tmp130_ = '\0';
+#line 1404 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp130_ = p;
+#line 1404 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (((gint) _tmp130_) >= 128) {
+#line 1405 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ sample = (guchar) 2;
+#line 12045 "scanner.c"
+ } else {
+ guchar _tmp131_ = '\0';
+#line 1406 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp131_ = p;
+#line 1406 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (((gint) _tmp131_) >= 64) {
+#line 1407 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ sample = (guchar) 1;
+#line 12054 "scanner.c"
+ } else {
+#line 1409 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ sample = (guchar) 0;
+#line 12058 "scanner.c"
+ }
+ }
+ }
+#line 1411 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp132_ = block;
+#line 1411 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp133_ = sample;
+#line 1411 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp134_ = block_shift;
+#line 1411 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ block = _tmp132_ | (_tmp133_ << _tmp134_);
+#line 1412 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp135_ = block_shift;
+#line 1412 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp135_ == 0) {
+#line 12074 "scanner.c"
+ ScanLine* _tmp136_ = NULL;
+ guchar* _tmp137_ = NULL;
+ gint _tmp137__length1 = 0;
+ gint _tmp138_ = 0;
+ guchar _tmp139_ = '\0';
+ guchar _tmp140_ = '\0';
+ gint _tmp141_ = 0;
+#line 1414 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp136_ = line;
+#line 1414 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp137_ = _tmp136_->data;
+#line 1414 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp137__length1 = _tmp136_->data_length1;
+#line 1414 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp138_ = write_offset;
+#line 1414 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp139_ = block;
+#line 1414 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp137_[_tmp138_] = _tmp139_;
+#line 1414 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp140_ = _tmp137_[_tmp138_];
+#line 1415 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp141_ = write_offset;
+#line 1415 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ write_offset = _tmp141_ + 1;
+#line 1416 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ block = (guchar) 0;
+#line 1417 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ block_shift = 6;
+#line 12104 "scanner.c"
+ } else {
+ gint _tmp142_ = 0;
+#line 1420 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp142_ = block_shift;
+#line 1420 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ block_shift = _tmp142_ - 2;
+#line 12111 "scanner.c"
+ }
+ }
+ }
+ }
+#line 1424 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp143_ = block_shift;
+#line 1424 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp143_ != 6) {
+#line 12120 "scanner.c"
+ ScanLine* _tmp144_ = NULL;
+ guchar* _tmp145_ = NULL;
+ gint _tmp145__length1 = 0;
+ gint _tmp146_ = 0;
+ guchar _tmp147_ = '\0';
+ guchar _tmp148_ = '\0';
+ gint _tmp149_ = 0;
+#line 1426 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp144_ = line;
+#line 1426 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp145_ = _tmp144_->data;
+#line 1426 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp145__length1 = _tmp144_->data_length1;
+#line 1426 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp146_ = write_offset;
+#line 1426 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp147_ = block;
+#line 1426 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp145_[_tmp146_] = _tmp147_;
+#line 1426 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp148_ = _tmp145_[_tmp146_];
+#line 1427 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp149_ = write_offset;
+#line 1427 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ write_offset = _tmp149_ + 1;
+#line 1428 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ block = (guchar) 0;
+#line 1429 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ block_shift = 6;
+#line 12150 "scanner.c"
+ }
+ }
+ }
+ }
+#line 1433 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp150_ = line;
+#line 1433 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp151_ = line;
+#line 1433 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp152_ = _tmp151_->width;
+#line 1433 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp150_->data_length = ((_tmp152_ * 2) + 7) / 8;
+#line 12163 "scanner.c"
+ }
+#line 1436 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp153_ = job;
+#line 1436 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp154_ = _tmp153_->id;
+#line 1436 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp155_ = line;
+#line 1436 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp156_ = notify_got_line_new (_tmp154_, _tmp155_);
+#line 1436 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp157_ = _tmp156_;
+#line 1436 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_notify (self, (Notify*) _tmp157_);
+#line 1436 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _notify_unref0 (_tmp157_);
+#line 1342 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_line_unref0 (line);
+#line 12181 "scanner.c"
+ }
+#line 1303 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (job);
+#line 12185 "scanner.c"
+}
+
+
+static void _scanner_authorization_cb_sane_authcallback (const gchar* resource, gchar* username, gchar* password) {
+#line 1445 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_authorization_cb (resource, username, -1, password, -1);
+#line 12192 "scanner.c"
+}
+
+
+static void* scanner_scan_thread (Scanner* self) {
+ void* result = NULL;
+ SANE_Int version_code = {0};
+ SANE_Status status = 0;
+ SANE_Int _tmp0_ = {0};
+ SANE_Status _tmp1_ = 0;
+ SANE_Status _tmp2_ = 0;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ SANE_Status _tmp5_ = 0;
+ SANE_Int _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ SANE_Int _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ SANE_Int _tmp12_ = {0};
+ gint _tmp13_ = 0;
+#line 1440 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1442 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->state = SCAN_STATE_IDLE;
+#line 1445 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = sane_init (&_tmp0_, _scanner_authorization_cb_sane_authcallback);
+#line 1445 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ version_code = _tmp0_;
+#line 1445 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ status = _tmp1_;
+#line 1446 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = status;
+#line 1446 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = sane_status_to_string (_tmp2_);
+#line 1446 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = _tmp3_;
+#line 1446 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:1446: sane_init () -> %s", _tmp4_);
+#line 1446 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp4_);
+#line 1447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = status;
+#line 1447 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp5_ != SANE_STATUS_GOOD) {
+#line 12236 "scanner.c"
+ SANE_Status _tmp6_ = 0;
+ const gchar* _tmp7_ = NULL;
+#line 1449 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = status;
+#line 1449 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = sane_strstatus (_tmp6_);
+#line 1449 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_warning ("scanner.vala:1449: Unable to initialize SANE backend: %s", _tmp7_);
+#line 1450 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = NULL;
+#line 1450 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 12249 "scanner.c"
+ }
+#line 1452 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = version_code;
+#line 1452 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = SANE_VERSION_MAJOR (_tmp8_);
+#line 1452 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = version_code;
+#line 1452 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = SANE_VERSION_MINOR (_tmp10_);
+#line 1452 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = version_code;
+#line 1452 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = SANE_VERSION_BUILD (_tmp12_);
+#line 1452 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:1452: SANE version %d.%d.%d", _tmp9_, _tmp11_, _tmp13_);
+#line 1458 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_redetect (self);
+#line 1460 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ while (TRUE) {
+#line 12269 "scanner.c"
+ gboolean _tmp14_ = FALSE;
+ ScanState _tmp15_ = 0;
+#line 1460 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = scanner_handle_requests (self);
+#line 1460 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!_tmp14_) {
+#line 1460 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 12278 "scanner.c"
+ }
+#line 1462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = self->priv->state;
+#line 1462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ switch (_tmp15_) {
+#line 1462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_STATE_IDLE:
+#line 12286 "scanner.c"
+ {
+ GList* _tmp16_ = NULL;
+#line 1465 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_ = self->priv->job_queue;
+#line 1465 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp16_ != NULL) {
+#line 1467 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_set_scanning (self, TRUE);
+#line 1468 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->state = SCAN_STATE_OPEN;
+#line 12297 "scanner.c"
+ }
+#line 1470 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 12301 "scanner.c"
+ }
+#line 1462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_STATE_REDETECT:
+#line 12305 "scanner.c"
+ {
+#line 1472 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_do_redetect (self);
+#line 1473 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 12311 "scanner.c"
+ }
+#line 1462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_STATE_OPEN:
+#line 12315 "scanner.c"
+ {
+#line 1475 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_do_open (self);
+#line 1476 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 12321 "scanner.c"
+ }
+#line 1462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_STATE_GET_OPTION:
+#line 12325 "scanner.c"
+ {
+#line 1478 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_do_get_option (self);
+#line 1479 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 12331 "scanner.c"
+ }
+#line 1462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_STATE_START:
+#line 12335 "scanner.c"
+ {
+#line 1481 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_do_start (self);
+#line 1482 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 12341 "scanner.c"
+ }
+#line 1462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_STATE_GET_PARAMETERS:
+#line 12345 "scanner.c"
+ {
+#line 1484 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_do_get_parameters (self);
+#line 1485 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 12351 "scanner.c"
+ }
+#line 1462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_STATE_READ:
+#line 12355 "scanner.c"
+ {
+#line 1487 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_do_read (self);
+#line 1488 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 12361 "scanner.c"
+ }
+ default:
+#line 1462 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ break;
+#line 12366 "scanner.c"
+ }
+ }
+#line 1492 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = NULL;
+#line 1492 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 12373 "scanner.c"
+}
+
+
+static gpointer _scanner_scan_thread_gthread_func (gpointer self) {
+ gpointer result;
+ result = scanner_scan_thread ((Scanner*) self);
+#line 1499 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_unref (self);
+#line 1499 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 12384 "scanner.c"
+}
+
+
+void scanner_start (Scanner* self) {
+ GError * _inner_error_ = NULL;
+#line 1495 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 12392 "scanner.c"
+ {
+ GThread* _tmp0_ = NULL;
+ GThread* _tmp1_ = NULL;
+ GThread* _tmp2_ = NULL;
+#line 1499 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = g_thread_try_new ("scan-thread", _scanner_scan_thread_gthread_func, scanner_ref (self), &_inner_error_);
+#line 1499 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = _tmp1_;
+#line 1499 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_inner_error_ != NULL) {
+#line 12403 "scanner.c"
+ goto __catch15_g_error;
+ }
+#line 1499 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = _tmp0_;
+#line 1499 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = NULL;
+#line 1499 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_thread_unref0 (self->priv->thread);
+#line 1499 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->thread = _tmp2_;
+#line 1497 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_thread_unref0 (_tmp0_);
+#line 12416 "scanner.c"
+ }
+ goto __finally15;
+ __catch15_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 1497 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ e = _inner_error_;
+#line 1497 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _inner_error_ = NULL;
+#line 1503 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = e;
+#line 1503 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = _tmp3_->message;
+#line 1503 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_critical ("scanner.vala:1503: Unable to create thread: %s", _tmp4_);
+#line 1497 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_error_free0 (e);
+#line 12436 "scanner.c"
+ }
+ __finally15:
+#line 1497 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_inner_error_ != NULL) {
+#line 1497 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1497 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_clear_error (&_inner_error_);
+#line 1497 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 12447 "scanner.c"
+ }
+}
+
+
+void scanner_redetect (Scanner* self) {
+ gboolean _tmp0_ = FALSE;
+ GAsyncQueue* _tmp1_ = NULL;
+ RequestRedetect* _tmp2_ = NULL;
+#line 1507 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 1509 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = self->priv->need_redetect;
+#line 1509 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp0_) {
+#line 1510 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return;
+#line 12464 "scanner.c"
+ }
+#line 1511 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->need_redetect = TRUE;
+#line 1513 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:1513: Requesting redetection of scan devices");
+#line 1515 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = self->priv->request_queue;
+#line 1515 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = request_redetect_new ();
+#line 1515 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_async_queue_push (_tmp1_, (Request*) _tmp2_);
+#line 12476 "scanner.c"
+}
+
+
+gboolean scanner_is_scanning (Scanner* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 1518 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1520 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = self->priv->scanning;
+#line 1520 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp0_;
+#line 1520 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 12491 "scanner.c"
+}
+
+
+static gchar* scanner_get_scan_mode_string (Scanner* self, ScanMode mode) {
+ gchar* result = NULL;
+ ScanMode _tmp0_ = 0;
+#line 1523 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1525 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = mode;
+#line 1525 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ switch (_tmp0_) {
+#line 1525 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_MODE_DEFAULT:
+#line 12506 "scanner.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 1528 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = g_strdup ("ScanMode.DEFAULT");
+#line 1528 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp1_;
+#line 1528 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 12515 "scanner.c"
+ }
+#line 1525 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_MODE_COLOR:
+#line 12519 "scanner.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 1530 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = g_strdup ("ScanMode.COLOR");
+#line 1530 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp2_;
+#line 1530 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 12528 "scanner.c"
+ }
+#line 1525 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_MODE_GRAY:
+#line 12532 "scanner.c"
+ {
+ gchar* _tmp3_ = NULL;
+#line 1532 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = g_strdup ("ScanMode.GRAY");
+#line 1532 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp3_;
+#line 1532 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 12541 "scanner.c"
+ }
+#line 1525 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_MODE_LINEART:
+#line 12545 "scanner.c"
+ {
+ gchar* _tmp4_ = NULL;
+#line 1534 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = g_strdup ("ScanMode.LINEART");
+#line 1534 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp4_;
+#line 1534 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 12554 "scanner.c"
+ }
+ default:
+ {
+ ScanMode _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+#line 1536 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = mode;
+#line 1536 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = g_strdup_printf ("%d", (gint) _tmp5_);
+#line 1536 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp6_;
+#line 1536 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 12568 "scanner.c"
+ }
+ }
+}
+
+
+static gchar* scanner_get_scan_type_string (Scanner* self, ScanType type) {
+ gchar* result = NULL;
+ ScanType _tmp0_ = 0;
+#line 1540 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1542 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = type;
+#line 1542 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ switch (_tmp0_) {
+#line 1542 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_TYPE_SINGLE:
+#line 12585 "scanner.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 1545 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = g_strdup ("ScanType.SINGLE");
+#line 1545 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp1_;
+#line 1545 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 12594 "scanner.c"
+ }
+#line 1542 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_TYPE_ADF_FRONT:
+#line 12598 "scanner.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 1547 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = g_strdup ("ScanType.ADF_FRONT");
+#line 1547 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp2_;
+#line 1547 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 12607 "scanner.c"
+ }
+#line 1542 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_TYPE_ADF_BACK:
+#line 12611 "scanner.c"
+ {
+ gchar* _tmp3_ = NULL;
+#line 1549 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = g_strdup ("ScanType.ADF_BACK");
+#line 1549 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp3_;
+#line 1549 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 12620 "scanner.c"
+ }
+#line 1542 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ case SCAN_TYPE_ADF_BOTH:
+#line 12624 "scanner.c"
+ {
+ gchar* _tmp4_ = NULL;
+#line 1551 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = g_strdup ("ScanType.ADF_BOTH");
+#line 1551 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp4_;
+#line 1551 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 12633 "scanner.c"
+ }
+ default:
+ {
+ ScanType _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+#line 1553 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = type;
+#line 1553 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = g_strdup_printf ("%d", (gint) _tmp5_);
+#line 1553 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ result = _tmp6_;
+#line 1553 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return result;
+#line 12647 "scanner.c"
+ }
+ }
+}
+
+
+void scanner_scan (Scanner* self, const gchar* device, ScanOptions* options) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ ScanOptions* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ ScanOptions* _tmp5_ = NULL;
+ ScanMode _tmp6_ = 0;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ ScanOptions* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ ScanOptions* _tmp11_ = NULL;
+ ScanType _tmp12_ = 0;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ ScanOptions* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ ScanOptions* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ ScanOptions* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ ScanOptions* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ RequestStartScan* request = NULL;
+ RequestStartScan* _tmp23_ = NULL;
+ ScanJob* _tmp24_ = NULL;
+ ScanJob* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ ScanJob* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ ScanJob* _tmp30_ = NULL;
+ ScanOptions* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ ScanJob* _tmp33_ = NULL;
+ ScanOptions* _tmp34_ = NULL;
+ ScanMode _tmp35_ = 0;
+ ScanJob* _tmp36_ = NULL;
+ ScanOptions* _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+ ScanJob* _tmp39_ = NULL;
+ ScanOptions* _tmp40_ = NULL;
+ ScanType _tmp41_ = 0;
+ ScanJob* _tmp42_ = NULL;
+ ScanOptions* _tmp43_ = NULL;
+ gint _tmp44_ = 0;
+ ScanJob* _tmp45_ = NULL;
+ ScanOptions* _tmp46_ = NULL;
+ gint _tmp47_ = 0;
+ ScanJob* _tmp48_ = NULL;
+ ScanOptions* _tmp49_ = NULL;
+ gint _tmp50_ = 0;
+ ScanJob* _tmp51_ = NULL;
+ ScanOptions* _tmp52_ = NULL;
+ gint _tmp53_ = 0;
+ GAsyncQueue* _tmp54_ = NULL;
+ Request* _tmp55_ = NULL;
+#line 1557 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 1557 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (options != NULL);
+#line 1560 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = device;
+#line 1560 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp1_ != NULL) {
+#line 12718 "scanner.c"
+ const gchar* _tmp2_ = NULL;
+#line 1560 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = device;
+#line 1560 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = _tmp2_;
+#line 12724 "scanner.c"
+ } else {
+#line 1560 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = "(null)";
+#line 12728 "scanner.c"
+ }
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = options;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = _tmp3_->dpi;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp5_ = options;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp6_ = _tmp5_->scan_mode;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp7_ = scanner_get_scan_mode_string (self, _tmp6_);
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp8_ = _tmp7_;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp9_ = options;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp10_ = _tmp9_->depth;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp11_ = options;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp12_ = _tmp11_->type;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp13_ = scanner_get_scan_type_string (self, _tmp12_);
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp14_ = _tmp13_;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp15_ = options;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp16_ = _tmp15_->paper_width;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp17_ = options;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp18_ = _tmp17_->paper_height;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp19_ = options;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp20_ = _tmp19_->brightness;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp21_ = options;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp22_ = _tmp21_->contrast;
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:1559: Scanner.scan (\"%s\", dpi=%d, scan_mode=%s, depth=%" \
+"d, type=%s, paper_width=%d, paper_height=%d, brightness=%d, contrast=%" \
+"d)", _tmp0_, _tmp4_, _tmp8_, _tmp10_, _tmp14_, _tmp16_, _tmp18_, _tmp20_, _tmp22_);
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp14_);
+#line 1559 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp8_);
+#line 1563 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp23_ = request_start_scan_new ();
+#line 1563 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ request = _tmp23_;
+#line 1564 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp24_ = scan_job_new ();
+#line 1564 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _scan_job_unref0 (request->job);
+#line 1564 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ request->job = _tmp24_;
+#line 1565 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25_ = request->job;
+#line 1565 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp26_ = self->job_id;
+#line 1565 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->job_id = _tmp26_ + 1;
+#line 1565 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp25_->id = _tmp26_;
+#line 1566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp27_ = request->job;
+#line 1566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp28_ = device;
+#line 1566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp29_ = g_strdup (_tmp28_);
+#line 1566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (_tmp27_->device);
+#line 1566 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp27_->device = _tmp29_;
+#line 1567 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_ = request->job;
+#line 1567 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp31_ = options;
+#line 1567 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp32_ = _tmp31_->dpi;
+#line 1567 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp30_->dpi = (gdouble) _tmp32_;
+#line 1568 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33_ = request->job;
+#line 1568 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp34_ = options;
+#line 1568 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp35_ = _tmp34_->scan_mode;
+#line 1568 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp33_->scan_mode = _tmp35_;
+#line 1569 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp36_ = request->job;
+#line 1569 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp37_ = options;
+#line 1569 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp38_ = _tmp37_->depth;
+#line 1569 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp36_->depth = _tmp38_;
+#line 1570 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp39_ = request->job;
+#line 1570 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp40_ = options;
+#line 1570 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp41_ = _tmp40_->type;
+#line 1570 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp39_->type = _tmp41_;
+#line 1571 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp42_ = request->job;
+#line 1571 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp43_ = options;
+#line 1571 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp44_ = _tmp43_->paper_width;
+#line 1571 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp42_->page_width = _tmp44_;
+#line 1572 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp45_ = request->job;
+#line 1572 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp46_ = options;
+#line 1572 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp47_ = _tmp46_->paper_height;
+#line 1572 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp45_->page_height = _tmp47_;
+#line 1573 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp48_ = request->job;
+#line 1573 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp49_ = options;
+#line 1573 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp50_ = _tmp49_->brightness;
+#line 1573 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp48_->brightness = _tmp50_;
+#line 1574 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp51_ = request->job;
+#line 1574 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp52_ = options;
+#line 1574 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp53_ = _tmp52_->contrast;
+#line 1574 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp51_->contrast = _tmp53_;
+#line 1575 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp54_ = self->priv->request_queue;
+#line 1575 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp55_ = _request_ref0 ((Request*) request);
+#line 1575 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_async_queue_push (_tmp54_, _tmp55_);
+#line 1557 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _request_unref0 (request);
+#line 12876 "scanner.c"
+}
+
+
+void scanner_cancel (Scanner* self) {
+ gint _tmp0_ = 0;
+ GAsyncQueue* _tmp1_ = NULL;
+ RequestCancel* _tmp2_ = NULL;
+#line 1578 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 1580 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = self->job_id;
+#line 1580 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->first_job_id = _tmp0_;
+#line 1581 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = self->priv->request_queue;
+#line 1581 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = request_cancel_new ();
+#line 1581 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_async_queue_push (_tmp1_, (Request*) _tmp2_);
+#line 12896 "scanner.c"
+}
+
+
+static gpointer _g_thread_ref0 (gpointer self) {
+#line 1592 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return self ? g_thread_ref (self) : NULL;
+#line 12903 "scanner.c"
+}
+
+
+void scanner_free (Scanner* self) {
+ GAsyncQueue* _tmp0_ = NULL;
+ RequestQuit* _tmp1_ = NULL;
+ GThread* _tmp2_ = NULL;
+#line 1584 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (self != NULL);
+#line 1586 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:1586: Stopping scan thread");
+#line 1588 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp0_ = self->priv->request_queue;
+#line 1588 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp1_ = request_quit_new ();
+#line 1588 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_async_queue_push (_tmp0_, (Request*) _tmp1_);
+#line 1590 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp2_ = self->priv->thread;
+#line 1590 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (_tmp2_ != NULL) {
+#line 12925 "scanner.c"
+ GThread* _tmp3_ = NULL;
+ GThread* _tmp4_ = NULL;
+#line 1592 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp3_ = self->priv->thread;
+#line 1592 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _tmp4_ = _g_thread_ref0 (_tmp3_);
+#line 1592 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_thread_join (_tmp4_);
+#line 1593 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_thread_unref0 (self->priv->thread);
+#line 1593 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->thread = NULL;
+#line 12938 "scanner.c"
+ }
+#line 1596 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ sane_exit ();
+#line 1597 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_debug ("scanner.vala:1597: sane_exit ()");
+#line 12944 "scanner.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__SCAN_PAGE_INFO (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__SCAN_PAGE_INFO) (gpointer data1, gpointer arg_1, gpointer data2);
+ register GMarshalFunc_VOID__SCAN_PAGE_INFO callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (n_param_values == 2);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ data1 = closure->data;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 12963 "scanner.c"
+ } else {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ data2 = closure->data;
+#line 12969 "scanner.c"
+ }
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ callback = (GMarshalFunc_VOID__SCAN_PAGE_INFO) (marshal_data ? marshal_data : cc->callback);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ callback (data1, value_get_scan_page_info (param_values + 1), data2);
+#line 12975 "scanner.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__SCAN_LINE (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__SCAN_LINE) (gpointer data1, gpointer arg_1, gpointer data2);
+ register GMarshalFunc_VOID__SCAN_LINE callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (n_param_values == 2);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ data1 = closure->data;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 12994 "scanner.c"
+ } else {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ data2 = closure->data;
+#line 13000 "scanner.c"
+ }
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ callback = (GMarshalFunc_VOID__SCAN_LINE) (marshal_data ? marshal_data : cc->callback);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ callback (data1, value_get_scan_line (param_values + 1), data2);
+#line 13006 "scanner.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__INT_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__INT_STRING) (gpointer data1, gint arg_1, const char* arg_2, gpointer data2);
+ register GMarshalFunc_VOID__INT_STRING callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ data1 = closure->data;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 13025 "scanner.c"
+ } else {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ data2 = closure->data;
+#line 13031 "scanner.c"
+ }
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ callback = (GMarshalFunc_VOID__INT_STRING) (marshal_data ? marshal_data : cc->callback);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ callback (data1, g_value_get_int (param_values + 1), g_value_get_string (param_values + 2), data2);
+#line 13037 "scanner.c"
+}
+
+
+static void value_scanner_init (GValue* value) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 13044 "scanner.c"
+}
+
+
+static void value_scanner_free_value (GValue* value) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (value->data[0].v_pointer) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_unref (value->data[0].v_pointer);
+#line 13053 "scanner.c"
+ }
+}
+
+
+static void value_scanner_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (src_value->data[0].v_pointer) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = scanner_ref (src_value->data[0].v_pointer);
+#line 13063 "scanner.c"
+ } else {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 13067 "scanner.c"
+ }
+}
+
+
+static gpointer value_scanner_peek_pointer (const GValue* value) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 13075 "scanner.c"
+}
+
+
+static gchar* value_scanner_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (collect_values[0].v_pointer) {
+#line 13082 "scanner.c"
+ Scanner* object;
+ object = collect_values[0].v_pointer;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 13089 "scanner.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 13093 "scanner.c"
+ }
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = scanner_ref (object);
+#line 13097 "scanner.c"
+ } else {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 13101 "scanner.c"
+ }
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 13105 "scanner.c"
+}
+
+
+static gchar* value_scanner_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ Scanner** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!object_p) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 13116 "scanner.c"
+ }
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (!value->data[0].v_pointer) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = NULL;
+#line 13122 "scanner.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = value->data[0].v_pointer;
+#line 13126 "scanner.c"
+ } else {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ *object_p = scanner_ref (value->data[0].v_pointer);
+#line 13130 "scanner.c"
+ }
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return NULL;
+#line 13134 "scanner.c"
+}
+
+
+GParamSpec* param_spec_scanner (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecScanner* spec;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SCANNER), NULL);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return G_PARAM_SPEC (spec);
+#line 13148 "scanner.c"
+}
+
+
+gpointer value_get_scanner (const GValue* value) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCANNER), NULL);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return value->data[0].v_pointer;
+#line 13157 "scanner.c"
+}
+
+
+void value_set_scanner (GValue* value, gpointer v_object) {
+ Scanner* old;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCANNER));
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SCANNER));
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_ref (value->data[0].v_pointer);
+#line 13177 "scanner.c"
+ } else {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 13181 "scanner.c"
+ }
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_unref (old);
+#line 13187 "scanner.c"
+ }
+}
+
+
+void value_take_scanner (GValue* value, gpointer v_object) {
+ Scanner* old;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCANNER));
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ old = value->data[0].v_pointer;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (v_object) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SCANNER));
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = v_object;
+#line 13206 "scanner.c"
+ } else {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ value->data[0].v_pointer = NULL;
+#line 13210 "scanner.c"
+ }
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (old) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_unref (old);
+#line 13216 "scanner.c"
+ }
+}
+
+
+static void scanner_class_init (ScannerClass * klass) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ scanner_parent_class = g_type_class_peek_parent (klass);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ SCANNER_CLASS (klass)->finalize = scanner_finalize;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_class_add_private (klass, sizeof (ScannerPrivate));
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_new ("update_devices", TYPE_SCANNER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_new ("request_authorization", TYPE_SCANNER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_new ("expect_page", TYPE_SCANNER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_new ("got_page_info", TYPE_SCANNER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__SCAN_PAGE_INFO, G_TYPE_NONE, 1, TYPE_SCAN_PAGE_INFO);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_new ("got_line", TYPE_SCANNER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__SCAN_LINE, G_TYPE_NONE, 1, TYPE_SCAN_LINE);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_new ("scan_failed", TYPE_SCANNER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__INT_STRING, G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_STRING);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_new ("page_done", TYPE_SCANNER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_new ("document_done", TYPE_SCANNER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_signal_new ("scanning_changed", TYPE_SCANNER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 13246 "scanner.c"
+}
+
+
+static void scanner_instance_init (Scanner * self) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv = SCANNER_GET_PRIVATE (self);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->ref_count = 1;
+#line 13255 "scanner.c"
+}
+
+
+static void scanner_finalize (Scanner* obj) {
+ Scanner * self;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SCANNER, Scanner);
+#line 214 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_thread_unref0 (self->priv->thread);
+#line 217 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_async_queue_unref0 (self->priv->request_queue);
+#line 220 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_async_queue_unref0 (self->priv->notify_queue);
+#line 223 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_async_queue_unref0 (self->priv->authorize_queue);
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->priv->default_device);
+#line 234 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ __g_list_free__scan_job_unref0_0 (self->priv->job_queue);
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_free0 (self->priv->current_device);
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ _g_hash_table_unref0 (self->priv->options);
+#line 250 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ self->priv->buffer = (g_free (self->priv->buffer), NULL);
+#line 13281 "scanner.c"
+}
+
+
+GType scanner_get_type (void) {
+ static volatile gsize scanner_type_id__volatile = 0;
+ if (g_once_init_enter (&scanner_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_scanner_init, value_scanner_free_value, value_scanner_copy_value, value_scanner_peek_pointer, "p", value_scanner_collect_value, "p", value_scanner_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ScannerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) scanner_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Scanner), 0, (GInstanceInitFunc) scanner_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType scanner_type_id;
+ scanner_type_id = g_type_register_fundamental (g_type_fundamental_next (), "Scanner", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&scanner_type_id__volatile, scanner_type_id);
+ }
+ return scanner_type_id__volatile;
+}
+
+
+gpointer scanner_ref (gpointer instance) {
+ Scanner* self;
+ self = instance;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ return instance;
+#line 13306 "scanner.c"
+}
+
+
+void scanner_unref (gpointer instance) {
+ Scanner* self;
+ self = instance;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ SCANNER_GET_CLASS (self)->finalize (self);
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/scanner.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 13319 "scanner.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/scanner.vala b/src/scanner.vala
new file mode 100644
index 0000000..5fb7f00
--- /dev/null
+++ b/src/scanner.vala
@@ -0,0 +1,1599 @@
+/*
+ * Copyright (C) 2009-2011 Canonical Ltd.
+ * Author: Robert Ancell <robert.ancell@canonical.com>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+/* TODO: Could indicate the start of the next page immediately after the last page is received (i.e. before the sane_cancel()) */
+
+public class ScanDevice
+{
+ public string name;
+ public string label;
+}
+
+public class ScanPageInfo
+{
+ /* Width, height in pixels */
+ public int width;
+ public int height;
+
+ /* Bit depth */
+ public int depth;
+
+ /* Number of colour channels */
+ public int n_channels;
+
+ /* Resolution */
+ public double dpi;
+
+ /* The device this page came from */
+ public string device;
+}
+
+public class ScanLine
+{
+ /* Line number */
+ public int number;
+
+ /* Number of lines in this packet */
+ public int n_lines;
+
+ /* Width in pixels and format */
+ public int width;
+ public int depth;
+
+ /* Channel for this line or -1 for all channels */
+ public int channel;
+
+ /* Raw line data */
+ public uchar[] data;
+ public int data_length;
+}
+
+public enum ScanMode
+{
+ DEFAULT,
+ COLOR,
+ GRAY,
+ LINEART
+}
+
+public enum ScanType
+{
+ SINGLE,
+ ADF_FRONT,
+ ADF_BACK,
+ ADF_BOTH
+}
+
+public class ScanOptions
+{
+ public int dpi;
+ public ScanMode scan_mode;
+ public int depth;
+ public ScanType type;
+ public int paper_width;
+ public int paper_height;
+ public int brightness;
+ public int contrast;
+}
+
+private class ScanJob
+{
+ public int id;
+ public string device;
+ public double dpi;
+ public ScanMode scan_mode;
+ public int depth;
+ public ScanType type;
+ public int page_width;
+ public int page_height;
+ public int brightness;
+ public int contrast;
+}
+
+private class Request {}
+
+private class RequestRedetect : Request {}
+
+private class RequestCancel : Request {}
+
+private class RequestStartScan : Request
+{
+ public ScanJob job;
+}
+
+private class RequestQuit : Request {}
+
+private class Credentials
+{
+ public string username;
+ public string password;
+}
+
+private enum ScanState
+{
+ IDLE = 0,
+ REDETECT,
+ OPEN,
+ GET_OPTION,
+ START,
+ GET_PARAMETERS,
+ READ
+}
+
+private class Notify
+{
+ public virtual void run (Scanner scanner) {}
+}
+
+private class NotifyScanningChanged : Notify
+{
+ public override void run (Scanner scanner) { scanner.scanning_changed (); }
+}
+
+private class NotifyUpdateDevices : Notify
+{
+ public NotifyUpdateDevices (owned List<ScanDevice> devices) { this.devices = (owned) devices; }
+ private List<ScanDevice> devices;
+ public override void run (Scanner scanner) { scanner.update_devices (devices); }
+}
+
+private class NotifyRequestAuthorization : Notify
+{
+ public NotifyRequestAuthorization (string resource) { this.resource = resource; }
+ private string resource;
+ public override void run (Scanner scanner) { scanner.request_authorization (resource); }
+}
+
+private class NotifyScanFailed : Notify
+{
+ public NotifyScanFailed (int error_code, string error_string) { this.error_code = error_code; this.error_string = error_string; }
+ private int error_code;
+ private string error_string;
+ public override void run (Scanner scanner) { scanner.scan_failed (error_code, error_string); }
+}
+
+private class NotifyDocumentDone : Notify
+{
+ public override void run (Scanner scanner) { scanner.document_done (); }
+}
+
+private class NotifyExpectPage : Notify
+{
+ public override void run (Scanner scanner) { scanner.expect_page (); }
+}
+
+private class NotifyGotPageInfo : Notify
+{
+ public NotifyGotPageInfo (int job_id, ScanPageInfo info) { this.job_id = job_id; this.info = info; }
+ private int job_id;
+ private ScanPageInfo info;
+ public override void run (Scanner scanner)
+ {
+ if (job_id >= scanner.first_job_id && job_id < scanner.job_id)
+ scanner.got_page_info (info);
+ }
+}
+
+private class NotifyPageDone : Notify
+{
+ public NotifyPageDone (int job_id) { this.job_id = job_id; }
+ private int job_id;
+ public override void run (Scanner scanner)
+ {
+ if (job_id >= scanner.first_job_id && job_id < scanner.job_id)
+ scanner.page_done ();
+ }
+}
+
+private class NotifyGotLine : Notify
+{
+ public NotifyGotLine (int job_id, ScanLine line) { this.job_id = job_id; this.line = line; }
+ private int job_id;
+ private ScanLine line;
+ public override void run (Scanner scanner)
+ {
+ if (job_id >= scanner.first_job_id && job_id < scanner.job_id)
+ scanner.got_line (line);
+ }
+}
+
+public class Scanner
+{
+ /* Singleton object */
+ private static Scanner scanner_object = null;
+
+ /* Thread communicating with SANE */
+ private Thread<void*> thread;
+
+ /* Queue of requests from main thread */
+ private AsyncQueue<Request> request_queue;
+
+ /* Queue of events to notify in main queue */
+ private AsyncQueue<Notify> notify_queue;
+
+ /* Queue of responses to authorization requests */
+ private AsyncQueue<Credentials> authorize_queue;
+
+ /* ID for the current job */
+ public int first_job_id;
+ public int job_id;
+
+ private string? default_device;
+
+ private ScanState state;
+ private bool need_redetect;
+
+ private List<ScanJob> job_queue;
+
+ /* Handle to SANE device */
+ private Sane.Handle handle;
+ private bool have_handle;
+ private string? current_device;
+
+ private Sane.Parameters parameters;
+
+ /* Last option read */
+ private Sane.Int option_index;
+
+ /* Table of options */
+ private HashTable<string, int> options;
+
+ /* Buffer for received line */
+ private uchar[] buffer;
+ private int n_used;
+
+ //private int bytes_remaining;
+ private int line_count;
+ private int pass_number;
+ private int page_number;
+ private int notified_page;
+
+ private bool scanning;
+
+ public signal void update_devices (List<ScanDevice> devices);
+ public signal void request_authorization (string resource);
+ public signal void expect_page ();
+ public signal void got_page_info (ScanPageInfo info);
+ public signal void got_line (ScanLine line);
+ public signal void scan_failed (int error_code, string error_string);
+ public signal void page_done ();
+ public signal void document_done ();
+ public signal void scanning_changed ();
+
+ private Scanner ()
+ {
+ request_queue = new AsyncQueue<Request> ();
+ notify_queue = new AsyncQueue<Notify> ();
+ authorize_queue = new AsyncQueue<Credentials> ();
+ }
+
+ public static Scanner get_instance ()
+ {
+ if (scanner_object == null)
+ scanner_object = new Scanner ();
+ return scanner_object;
+ }
+
+ private bool notify_idle_cb ()
+ {
+ var notification = notify_queue.pop ();
+ notification.run (this);
+ return false;
+ }
+
+ private void notify (Notify notification)
+ {
+ notify_queue.push (notification);
+ Idle.add (notify_idle_cb);
+ }
+
+ private void set_scanning (bool is_scanning)
+ {
+ if ((scanning && !is_scanning) || (!scanning && is_scanning))
+ {
+ scanning = is_scanning;
+ notify (new NotifyScanningChanged ());
+ }
+ }
+
+ private static int get_device_weight (string device)
+ {
+ /* NOTE: This is using trends in the naming of SANE devices, SANE should be able to provide this information better */
+
+ /* Use webcams as a last resort */
+ if (device.has_prefix ("vfl:"))
+ return 2;
+
+ /* Use locally connected devices first */
+ if (device.contains ("usb"))
+ return 0;
+
+ return 1;
+ }
+
+ private static int compare_devices (ScanDevice device1, ScanDevice device2)
+ {
+ /* TODO: Should do some fuzzy matching on the last selected device and set that to the default */
+
+ var weight1 = get_device_weight (device1.name);
+ var weight2 = get_device_weight (device2.name);
+ if (weight1 != weight2)
+ return weight1 - weight2;
+
+ return strcmp (device1.label, device2.label);
+ }
+
+ private void do_redetect ()
+ {
+ unowned Sane.Device[] device_list = null;
+ var status = Sane.get_devices (out device_list, false);
+ debug ("sane_get_devices () -> %s", Sane.status_to_string (status));
+ if (status != Sane.Status.GOOD)
+ {
+ warning ("Unable to get SANE devices: %s", Sane.strstatus(status));
+ need_redetect = false;
+ state = ScanState.IDLE;
+ return;
+ }
+
+ var devices = new List<ScanDevice> ();
+ for (var i = 0; device_list[i] != null; i++)
+ {
+ debug ("Device: name=\"%s\" vendor=\"%s\" model=\"%s\" type=\"%s\"",
+ device_list[i].name, device_list[i].vendor, device_list[i].model, device_list[i].type);
+
+ var scan_device = new ScanDevice ();
+ scan_device.name = device_list[i].name;
+
+ /* Abbreviate HP as it is a long string and does not match what is on the physical scanner */
+ var vendor = device_list[i].vendor;
+ if (vendor == "Hewlett-Packard")
+ vendor = "HP";
+
+ scan_device.label = "%s %s".printf (vendor, device_list[i].model);
+ /* Replace underscores in name */
+ scan_device.label.replace ("_", " ");
+
+ devices.append (scan_device);
+ }
+
+ /* Sort devices by priority */
+ devices.sort (compare_devices);
+
+ need_redetect = false;
+ state = ScanState.IDLE;
+
+ if (devices != null)
+ {
+ var device = devices.nth_data (0);
+ default_device = device.name;
+ }
+ else
+ default_device = null;
+
+ notify (new NotifyUpdateDevices ((owned) devices));
+ }
+
+ private int scale_int (int source_min, int source_max, Sane.OptionDescriptor option, int value)
+ {
+ var v = value;
+
+ return_val_if_fail (option.type == Sane.ValueType.INT, value);
+
+ if (option.constraint_type == Sane.ConstraintType.RANGE && option.range.max != option.range.min)
+ {
+ v -= source_min;
+ v *= (int) (option.range.max - option.range.min);
+ v /= (source_max - source_min);
+ v += (int) option.range.min;
+ debug ("scale_int: scaling %d [min: %d, max: %d] to %d [min: %d, max: %d]",
+ value, source_min, source_max, v, (int) option.range.min, (int) option.range.max);
+ }
+
+ return v;
+ }
+
+ private bool set_default_option (Sane.Handle handle, Sane.OptionDescriptor option, Sane.Int option_index)
+ {
+ /* Check if supports automatic option */
+ if ((option.cap & Sane.Capability.AUTOMATIC) == 0)
+ return false;
+
+ var status = Sane.control_option (handle, option_index, Sane.Action.SET_AUTO, null, null);
+ debug ("sane_control_option (%d, SANE_ACTION_SET_AUTO) -> %s", (int) option_index, Sane.status_to_string (status));
+ if (status != Sane.Status.GOOD)
+ warning ("Error setting default option %s: %s", option.name, Sane.strstatus(status));
+
+ return status == Sane.Status.GOOD;
+ }
+
+ private void set_bool_option (Sane.Handle handle, Sane.OptionDescriptor option, Sane.Int option_index, bool value, out bool result)
+ {
+ return_if_fail (option.type == Sane.ValueType.BOOL);
+
+ Sane.Bool v = (Sane.Bool) value;
+ var status = Sane.control_option (handle, option_index, Sane.Action.SET_VALUE, &v, null);
+ result = (bool) v;
+ debug ("sane_control_option (%d, SANE_ACTION_SET_VALUE, %s) -> (%s, %s)", (int) option_index, value ? "SANE_TRUE" : "SANE_FALSE", Sane.status_to_string (status), result ? "SANE_TRUE" : "SANE_FALSE");
+ }
+
+ private void set_int_option (Sane.Handle handle, Sane.OptionDescriptor option, Sane.Int option_index, int value, out int result)
+ {
+ return_if_fail (option.type == Sane.ValueType.INT);
+
+ Sane.Int v = (Sane.Int) value;
+ if (option.constraint_type == Sane.ConstraintType.RANGE)
+ {
+ if (option.range.quant != 0)
+ v *= option.range.quant;
+ if (v < option.range.min)
+ v = option.range.min;
+ if (v > option.range.max)
+ v = option.range.max;
+ }
+ else if (option.constraint_type == Sane.ConstraintType.WORD_LIST)
+ {
+ int distance = int.MAX, nearest = 0;
+
+ /* Find nearest value to requested */
+ for (var i = 0; i < option.word_list[0]; i++)
+ {
+ var x = (int) option.word_list[i+1];
+ var d = (int) (x - v);
+ d = d.abs ();
+ if (d < distance)
+ {
+ distance = d;
+ nearest = x;
+ }
+ }
+ v = (Sane.Int) nearest;
+ }
+
+ var status = Sane.control_option (handle, option_index, Sane.Action.SET_VALUE, &v, null);
+ debug ("sane_control_option (%d, SANE_ACTION_SET_VALUE, %d) -> (%s, %d)", (int) option_index, value, Sane.status_to_string (status), (int) v);
+ result = (int) v;
+ }
+
+ private void set_fixed_option (Sane.Handle handle, Sane.OptionDescriptor option, Sane.Int option_index, double value, out double result)
+ {
+ double v = value;
+ Sane.Fixed v_fixed;
+
+ return_if_fail (option.type == Sane.ValueType.FIXED);
+
+ if (option.constraint_type == Sane.ConstraintType.RANGE)
+ {
+ double min = Sane.UNFIX (option.range.min);
+ double max = Sane.UNFIX (option.range.max);
+
+ if (v < min)
+ v = min;
+ if (v > max)
+ v = max;
+ }
+ else if (option.constraint_type == Sane.ConstraintType.WORD_LIST)
+ {
+ double distance = double.MAX, nearest = 0.0;
+
+ /* Find nearest value to requested */
+ for (var i = 0; i < option.word_list[0]; i++)
+ {
+ double x = Sane.UNFIX (option.word_list[i+1]);
+ if (Math.fabs (x - v) < distance)
+ {
+ distance = Math.fabs (x - v);
+ nearest = x;
+ }
+ }
+ v = nearest;
+ }
+
+ v_fixed = Sane.FIX (v);
+ var status = Sane.control_option (handle, option_index, Sane.Action.SET_VALUE, &v_fixed, null);
+ debug ("sane_control_option (%d, SANE_ACTION_SET_VALUE, %f) -> (%s, %f)", (int) option_index, value, Sane.status_to_string (status), Sane.UNFIX (v_fixed));
+
+ result = Sane.UNFIX (v_fixed);
+ }
+
+ private void set_fixed_or_int_option (Sane.Handle handle, Sane.OptionDescriptor option, Sane.Int option_index, double value, out double result)
+ {
+ if (option.type == Sane.ValueType.FIXED)
+ set_fixed_option (handle, option, option_index, value, out result);
+ else if (option.type == Sane.ValueType.INT)
+ {
+ int r;
+ set_int_option (handle, option, option_index, (int) Math.round (value), out r);
+ result = r;
+ }
+ else
+ {
+ result = 0.0;
+ warning ("Unable to set unsupported option type");
+ }
+ }
+
+ private void set_option_to_max (Sane.Handle handle, Sane.OptionDescriptor option, Sane.Int option_index)
+ {
+ if (option.constraint_type != Sane.ConstraintType.RANGE)
+ return;
+
+ var status = Sane.control_option (handle, option_index, Sane.Action.SET_VALUE, &option.range.max, null);
+ debug ("sane_control_option (%d, SANE_ACTION_SET_VALUE, option.range.max) -> (%s)", (int) option_index, Sane.status_to_string (status));
+ }
+
+ private bool set_string_option (Sane.Handle handle, Sane.OptionDescriptor option, Sane.Int option_index, string value, out string result)
+ {
+ result = "";
+
+ return_val_if_fail (option.type == Sane.ValueType.STRING, false);
+
+ var s = new char[option.size];
+ var i = 0;
+ for (; i < (option.size - 1) && value[i] != '\0'; i++)
+ s[i] = value[i];
+ s[i] = '\0';
+ var status = Sane.control_option (handle, option_index, Sane.Action.SET_VALUE, s, null);
+ result = (string) s;
+ debug ("sane_control_option (%d, SANE_ACTION_SET_VALUE, \"%s\") -> (%s, \"%s\")", (int) option_index, value, Sane.status_to_string (status), result);
+
+ return status == Sane.Status.GOOD;
+ }
+
+ private bool set_constrained_string_option (Sane.Handle handle, Sane.OptionDescriptor option, Sane.Int option_index, string[] values, out string result)
+ {
+ return_val_if_fail (option.type == Sane.ValueType.STRING, false);
+ return_val_if_fail (option.constraint_type == Sane.ConstraintType.STRING_LIST, false);
+
+ for (var i = 0; values[i] != null; i++)
+ {
+ var j = 0;
+ for (; option.string_list[j] != null; j++)
+ {
+ if (values[i] == option.string_list[j])
+ break;
+ }
+
+ if (option.string_list[j] != null)
+ return set_string_option (handle, option, option_index, values[i], out result);
+ }
+
+ result = "";
+ return false;
+ }
+
+ private void log_option (Sane.Int index, Sane.OptionDescriptor option)
+ {
+ var s = "Option %d:".printf ((int) index);
+
+ if (option.name != "")
+ s += " name='%s'".printf (option.name);
+
+ if (option.title != "")
+ s += " title='%s'".printf (option.title);
+
+ switch (option.type)
+ {
+ case Sane.ValueType.BOOL:
+ s += " type=bool";
+ break;
+ case Sane.ValueType.INT:
+ s += " type=int";
+ break;
+ case Sane.ValueType.FIXED:
+ s += " type=fixed";
+ break;
+ case Sane.ValueType.STRING:
+ s += " type=string";
+ break;
+ case Sane.ValueType.BUTTON:
+ s += " type=button";
+ break;
+ case Sane.ValueType.GROUP:
+ s += " type=group";
+ break;
+ default:
+ s += " type=%d".printf (option.type);
+ break;
+ }
+
+ s += " size=%d".printf ((int) option.size);
+
+ switch (option.unit)
+ {
+ case Sane.Unit.NONE:
+ break;
+ case Sane.Unit.PIXEL:
+ s += " unit=pixels";
+ break;
+ case Sane.Unit.BIT:
+ s += " unit=bits";
+ break;
+ case Sane.Unit.MM:
+ s += " unit=mm";
+ break;
+ case Sane.Unit.DPI:
+ s += " unit=dpi";
+ break;
+ case Sane.Unit.PERCENT:
+ s += " unit=percent";
+ break;
+ case Sane.Unit.MICROSECOND:
+ s += " unit=microseconds";
+ break;
+ default:
+ s += " unit=%d".printf (option.unit);
+ break;
+ }
+
+ switch (option.constraint_type)
+ {
+ case Sane.ConstraintType.RANGE:
+ if (option.type == Sane.ValueType.FIXED)
+ s += " min=%f, max=%f, quant=%d".printf (Sane.UNFIX (option.range.min), Sane.UNFIX (option.range.max), (int) option.range.quant);
+ else
+ s += " min=%d, max=%d, quant=%d".printf ((int) option.range.min, (int) option.range.max, (int) option.range.quant);
+ break;
+ case Sane.ConstraintType.WORD_LIST:
+ s += " values=[";
+ for (var i = 0; i < option.word_list[0]; i++)
+ {
+ if (i != 0)
+ s += ", ";
+ if (option.type == Sane.ValueType.INT)
+ s += "%d".printf ((int) option.word_list[i+1]);
+ else
+ s += "%f".printf (Sane.UNFIX (option.word_list[i+1]));
+ }
+ s += "]";
+ break;
+ case Sane.ConstraintType.STRING_LIST:
+ s += " values=[";
+ for (var i = 0; option.string_list[i] != null; i++)
+ {
+ if (i != 0)
+ s += ", ";
+ s += "\"%s\"".printf (option.string_list[i]);
+ }
+ s += "]";
+ break;
+ default:
+ break;
+ }
+
+ var cap = option.cap;
+ if (cap != 0)
+ {
+ s += " cap=";
+ if ((cap & Sane.Capability.SOFT_SELECT) != 0)
+ {
+ if (s != "")
+ s += ",";
+ s += "soft-select";
+ cap &= ~Sane.Capability.SOFT_SELECT;
+ }
+ if ((cap & Sane.Capability.HARD_SELECT) != 0)
+ {
+ if (s != "")
+ s += ",";
+ s += "hard-select";
+ cap &= ~Sane.Capability.HARD_SELECT;
+ }
+ if ((cap & Sane.Capability.SOFT_DETECT) != 0)
+ {
+ if (s != "")
+ s += ",";
+ s += "soft-detect";
+ cap &= ~Sane.Capability.SOFT_DETECT;
+ }
+ if ((cap & Sane.Capability.EMULATED) != 0)
+ {
+ if (s != "")
+ s += ",";
+ s += "emulated";
+ cap &= ~Sane.Capability.EMULATED;
+ }
+ if ((cap & Sane.Capability.AUTOMATIC) != 0)
+ {
+ if (s != "")
+ s += ",";
+ s += "automatic";
+ cap &= ~Sane.Capability.AUTOMATIC;
+ }
+ if ((cap & Sane.Capability.INACTIVE) != 0)
+ {
+ if (s != "")
+ s += ",";
+ s += "inactive";
+ cap &= ~Sane.Capability.INACTIVE;
+ }
+ if ((cap & Sane.Capability.ADVANCED) != 0)
+ {
+ if (s != "")
+ s += ",";
+ s += "advanced";
+ cap &= ~Sane.Capability.ADVANCED;
+ }
+ /* Unknown capabilities */
+ if (cap != 0)
+ {
+ if (s != "")
+ s += ",";
+ s += "%x".printf ((int) cap);
+ }
+ }
+
+ debug ("%s", s);
+
+ if (option.desc != null)
+ debug (" Description: %s", option.desc);
+ }
+
+ private static void authorization_cb (string resource, char[] username, char[] password)
+ {
+ scanner_object.notify (new NotifyRequestAuthorization (resource));
+
+ var credentials = scanner_object.authorize_queue.pop ();
+ for (var i = 0; credentials.username[i] != '\0' && i < Sane.MAX_USERNAME_LEN; i++)
+ username[i] = credentials.username[i];
+ for (var i = 0; credentials.password[i] != '\0' && i < Sane.MAX_PASSWORD_LEN; i++)
+ password[i] = credentials.password[i];
+ }
+
+ public void authorize (string username, string password)
+ {
+ var credentials = new Credentials ();
+ credentials.username = username;
+ credentials.password = password;
+ authorize_queue.push (credentials);
+ }
+
+ private void close_device ()
+ {
+ if (have_handle)
+ {
+ Sane.cancel (handle);
+ debug ("sane_cancel ()");
+
+ Sane.close (handle);
+ debug ("sane_close ()");
+ have_handle = false;
+ options = null;
+ }
+
+ buffer = null;
+ job_queue = null;
+
+ set_scanning (false);
+ }
+
+ private void fail_scan (int error_code, string error_string)
+ {
+ close_device ();
+ state = ScanState.IDLE;
+ notify (new NotifyScanFailed (error_code, error_string));
+ }
+
+ private bool handle_requests ()
+ {
+ /* Redetect when idle */
+ if (state == ScanState.IDLE && need_redetect)
+ state = ScanState.REDETECT;
+
+ /* Process all requests */
+ int request_count = 0;
+ while (true)
+ {
+ Request request;
+ if ((state == ScanState.IDLE && request_count == 0) ||
+ request_queue.length () > 0)
+ request = request_queue.pop ();
+ else
+ return true;
+
+ debug ("Processing request");
+ request_count++;
+
+ if (request is RequestStartScan)
+ {
+ var r = (RequestStartScan) request;
+ job_queue.append (r.job);
+ }
+ else if (request is RequestCancel)
+ {
+ fail_scan (Sane.Status.CANCELLED, "Scan cancelled - do not report this error");
+ }
+ else if (request is RequestQuit)
+ {
+ close_device ();
+ return false;
+ }
+ }
+ }
+
+ private void do_open ()
+ {
+ var job = (ScanJob) job_queue.data;
+
+ line_count = 0;
+ pass_number = 0;
+ page_number = 0;
+ notified_page = -1;
+ option_index = 0;
+
+ if (job.device == null && default_device != null)
+ job.device = default_device;
+
+ if (job.device == null)
+ {
+ warning ("No scan device available");
+ fail_scan (0,
+ /* Error displayed when no scanners to scan with */
+ _("No scanners available. Please connect a scanner."));
+ return;
+ }
+
+ /* See if we can use the already open device */
+ if (have_handle)
+ {
+ if (current_device == job.device)
+ {
+ state = ScanState.GET_OPTION;
+ return;
+ }
+
+ Sane.close (handle);
+ debug ("sane_close ()");
+ have_handle = false;
+ }
+
+ current_device = null;
+
+ have_handle = false;
+ options = new HashTable <string, int> (str_hash, str_equal);
+ var status = Sane.open (job.device, out handle);
+ debug ("sane_open (\"%s\") -> %s", job.device, Sane.status_to_string (status));
+
+ if (status != Sane.Status.GOOD)
+ {
+ warning ("Unable to get open device: %s", Sane.strstatus (status));
+ fail_scan (status,
+ /* Error displayed when cannot connect to scanner */
+ _("Unable to connect to scanner"));
+ return;
+ }
+ have_handle = true;
+
+ current_device = job.device;
+ state = ScanState.GET_OPTION;
+ }
+
+ private void do_get_option ()
+ {
+ var job = (ScanJob) job_queue.data;
+
+ var option = Sane.get_option_descriptor (handle, option_index);
+ debug ("sane_get_option_descriptor (%d)", (int) option_index);
+ var index = option_index;
+ option_index++;
+
+ /* Options complete, apply settings */
+ if (option == null)
+ {
+ /* Pick source */
+ option = get_option_by_name (handle, Sane.NAME_SCAN_SOURCE, out index);
+ if (option == null)
+ {
+ debug ("SCAN_SOURCE not available, trying alternative \"doc-source\"");
+ option = get_option_by_name (handle, "doc-source", out index); /* Samsung unified driver. LP: #892915 */
+ }
+ if (option != null)
+ {
+ string[] flatbed_sources =
+ {
+ "Auto",
+ Sane.I18N ("Auto"),
+ "Flatbed",
+ Sane.I18N ("Flatbed"),
+ "FlatBed",
+ "Normal",
+ Sane.I18N ("Normal")
+ };
+
+ string[] adf_sources =
+ {
+ "Automatic Document Feeder",
+ Sane.I18N ("Automatic Document Feeder"),
+ "ADF",
+ "Automatic Document Feeder(left aligned)", /* Seen in the proprietary brother3 driver */
+ "Automatic Document Feeder(centrally aligned)", /* Seen in the proprietary brother3 driver */
+ "ADF Simplex" /* Samsung unified driver. LP: # 892915 */
+ };
+
+ string[] adf_front_sources =
+ {
+ "ADF Front",
+ Sane.I18N ("ADF Front")
+ };
+
+ string[] adf_back_sources =
+ {
+ "ADF Back",
+ Sane.I18N ("ADF Back")
+ };
+
+ string[] adf_duplex_sources =
+ {
+ "ADF Duplex",
+ Sane.I18N ("ADF Duplex"),
+ "ADF Duplex - Long-Edge Binding", /* Samsung unified driver. LP: # 892915 */
+ "ADF Duplex - Short-Edge Binding",
+ "Duplex", /* HP duplex scan support. LP: #1353599 */
+ "Automatic Document Feeder(centrally aligned,Duplex)", /* Brother duplex scan support. LP: #1343773 */
+ "Automatic Document Feeder(left aligned,Duplex)"
+ };
+
+ switch (job.type)
+ {
+ case ScanType.SINGLE:
+ if (!set_default_option (handle, option, index))
+ if (!set_constrained_string_option (handle, option, index, flatbed_sources, null))
+ warning ("Unable to set single page source, please file a bug");
+ break;
+ case ScanType.ADF_FRONT:
+ if (!set_constrained_string_option (handle, option, index, adf_front_sources, null))
+ if (!set_constrained_string_option (handle, option, index, adf_sources, null))
+ warning ("Unable to set front ADF source, please file a bug");
+ break;
+ case ScanType.ADF_BACK:
+ if (!set_constrained_string_option (handle, option, index, adf_back_sources, null))
+ if (!set_constrained_string_option (handle, option, index, adf_sources, null))
+ warning ("Unable to set back ADF source, please file a bug");
+ break;
+ case ScanType.ADF_BOTH:
+ if (!set_constrained_string_option (handle, option, index, adf_duplex_sources, null))
+ if (!set_constrained_string_option (handle, option, index, adf_sources, null))
+ warning ("Unable to set duplex ADF source, please file a bug");
+ break;
+ }
+ }
+
+ /* Scan mode (before resolution as it tends to affect that */
+ option = get_option_by_name (handle, Sane.NAME_SCAN_MODE, out index);
+ if (option != null)
+ {
+ /* The names of scan modes often used in drivers, as taken from the sane-backends source */
+ string[] color_scan_modes =
+ {
+ Sane.VALUE_SCAN_MODE_COLOR,
+ "Color",
+ "24bit Color", /* Seen in the proprietary brother3 driver */
+ "Color - 16 Million Colors" /* Samsung unified driver. LP: 892915 */
+ };
+ string[] gray_scan_modes =
+ {
+ Sane.VALUE_SCAN_MODE_GRAY,
+ "Gray",
+ "Grayscale",
+ Sane.I18N ("Grayscale"),
+ "True Gray", /* Seen in the proprietary brother3 driver */
+ "Grayscale - 256 Levels" /* Samsung unified driver. LP: 892915 */
+ };
+ string[] lineart_scan_modes =
+ {
+ Sane.VALUE_SCAN_MODE_LINEART,
+ "Lineart",
+ "LineArt",
+ Sane.I18N ("LineArt"),
+ "Black & White",
+ Sane.I18N ("Black & White"),
+ "Binary",
+ Sane.I18N ("Binary"),
+ "Thresholded",
+ Sane.VALUE_SCAN_MODE_GRAY,
+ "Gray",
+ "Grayscale",
+ Sane.I18N ("Grayscale"),
+ "True Gray", /* Seen in the proprietary brother3 driver */
+ "Black and White - Line Art", /* Samsung unified driver. LP: 892915 */
+ "Black and White - Halftone"
+ };
+
+ switch (job.scan_mode)
+ {
+ case ScanMode.COLOR:
+ if (!set_constrained_string_option (handle, option, index, color_scan_modes, null))
+ warning ("Unable to set Color mode, please file a bug");
+ break;
+ case ScanMode.GRAY:
+ if (!set_constrained_string_option (handle, option, index, gray_scan_modes, null))
+ warning ("Unable to set Gray mode, please file a bug");
+ break;
+ case ScanMode.LINEART:
+ if (!set_constrained_string_option (handle, option, index, lineart_scan_modes, null))
+ warning ("Unable to set Lineart mode, please file a bug");
+ break;
+ default:
+ break;
+ }
+ }
+
+ /* Duplex */
+ option = get_option_by_name (handle, "duplex", out index);
+ if (option != null)
+ {
+ if (option.type == Sane.ValueType.BOOL)
+ set_bool_option (handle, option, index, job.type == ScanType.ADF_BOTH, null);
+ }
+
+ /* Multi-page options */
+ option = get_option_by_name (handle, "batch-scan", out index);
+ if (option != null)
+ {
+ if (option.type == Sane.ValueType.BOOL)
+ set_bool_option (handle, option, index, job.type != ScanType.SINGLE, null);
+ }
+
+ /* Disable compression, we will compress after scanning */
+ option = get_option_by_name (handle, "compression", out index);
+ if (option != null)
+ {
+ string[] disable_compression_names =
+ {
+ Sane.I18N ("None"),
+ Sane.I18N ("none"),
+ "None",
+ "none"
+ };
+
+ if (!set_constrained_string_option (handle, option, index, disable_compression_names, null))
+ warning ("Unable to disable compression, please file a bug");
+ }
+
+ /* Set resolution and bit depth */
+ option = get_option_by_name (handle, Sane.NAME_SCAN_RESOLUTION, out index);
+ if (option != null)
+ {
+ set_fixed_or_int_option (handle, option, index, job.dpi, out job.dpi);
+ option = get_option_by_name (handle, Sane.NAME_BIT_DEPTH, out index);
+ if (option != null)
+ {
+ if (job.depth > 0)
+ set_int_option (handle, option, index, job.depth, null);
+ }
+ }
+
+ /* Set scan area */
+ option = get_option_by_name (handle, Sane.NAME_SCAN_BR_X, out index);
+ if (option != null)
+ {
+ if (job.page_width > 0)
+ set_fixed_or_int_option (handle, option, index, convert_page_size (option, job.page_width, job.dpi), null);
+ else
+ set_option_to_max (handle, option, index);
+ }
+ option = get_option_by_name (handle, Sane.NAME_SCAN_BR_Y, out index);
+ if (option != null)
+ {
+ if (job.page_height > 0)
+ set_fixed_or_int_option (handle, option, index, convert_page_size (option, job.page_height, job.dpi), null);
+ else
+ set_option_to_max (handle, option, index);
+ }
+
+ /* Set page size */
+ option = get_option_by_name (handle, Sane.NAME_PAGE_WIDTH, out index);
+ if (option != null && job.page_width > 0.0)
+ set_fixed_or_int_option (handle, option, index, convert_page_size (option, job.page_width, job.dpi), null);
+ option = get_option_by_name (handle, Sane.NAME_PAGE_HEIGHT, out index);
+ if (option != null && job.page_height > 0.0)
+ set_fixed_or_int_option (handle, option, index, convert_page_size (option, job.page_height, job.dpi), null);
+
+ option = get_option_by_name (handle, Sane.NAME_BRIGHTNESS, out index);
+ if (option != null)
+ {
+ if (job.brightness != 0)
+ {
+ var brightness = scale_int (-100, 100, option, job.brightness);
+ set_int_option (handle, option, index, brightness, null);
+ }
+ }
+ option = get_option_by_name (handle, Sane.NAME_CONTRAST, out index);
+ if (option != null)
+ {
+ if (job.contrast != 0)
+ {
+ var contrast = scale_int (-100, 100, option, job.contrast);
+ set_int_option (handle, option, index, contrast, null);
+ }
+ }
+
+ /* Test scanner options (hoping will not effect other scanners...) */
+ if (current_device == "test")
+ {
+ option = get_option_by_name (handle, "hand-scanner", out index);
+ if (option != null)
+ set_bool_option (handle, option, index, false, null);
+ option = get_option_by_name (handle, "three-pass", out index);
+ if (option != null)
+ set_bool_option (handle, option, index, false, null);
+ option = get_option_by_name (handle, "test-picture", out index);
+ if (option != null)
+ set_string_option (handle, option, index, "Color pattern", null);
+ option = get_option_by_name (handle, "read-delay", out index);
+ if (option != null)
+ set_bool_option (handle, option, index, true, null);
+ option = get_option_by_name (handle, "read-delay-duration", out index);
+ if (option != null)
+ set_int_option (handle, option, index, 200000, null);
+ }
+
+ state = ScanState.START;
+ return;
+ }
+
+ log_option (index, option);
+
+ /* Ignore groups */
+ if (option.type == Sane.ValueType.GROUP)
+ return;
+
+ /* Option disabled */
+ if ((option.cap & Sane.Capability.INACTIVE) != 0)
+ return;
+
+ /* Some options are unnammed (e.g. Option 0) */
+ if (option.name == null)
+ return;
+
+ options.insert (option.name, (int) index);
+ }
+
+ private double convert_page_size (Sane.OptionDescriptor option, double size, double dpi)
+ {
+ if (option.unit == Sane.Unit.PIXEL)
+ return dpi * size / 254.0;
+ else if (option.unit == Sane.Unit.MM)
+ return size / 10.0;
+ else
+ {
+ warning ("Unable to set unsupported unit type");
+ return 0.0f;
+ }
+ }
+
+ private Sane.OptionDescriptor? get_option_by_name (Sane.Handle handle, string name, out int index)
+ {
+ index = options.lookup (name);
+ if (index == 0)
+ return null;
+
+ return Sane.get_option_descriptor (handle, index);
+ }
+
+ private void do_complete_document ()
+ {
+ Sane.cancel (handle);
+ debug ("sane_cancel ()");
+
+ job_queue.remove_link (job_queue);
+
+ state = ScanState.IDLE;
+
+ /* Continue onto the next job */
+ if (job_queue != null)
+ {
+ state = ScanState.OPEN;
+ return;
+ }
+
+ /* Trigger timeout to close */
+ // TODO
+
+ notify (new NotifyDocumentDone ());
+ set_scanning (false);
+ }
+
+ private void do_start ()
+ {
+ Sane.Status status;
+
+ notify (new NotifyExpectPage ());
+
+ status = Sane.start (handle);
+ debug ("sane_start (page=%d, pass=%d) -> %s", page_number, pass_number, Sane.status_to_string (status));
+ if (status == Sane.Status.GOOD)
+ state = ScanState.GET_PARAMETERS;
+ else if (status == Sane.Status.NO_DOCS)
+ do_complete_document ();
+ else
+ {
+ warning ("Unable to start device: %s", Sane.strstatus (status));
+ fail_scan (status,
+ /* Error display when unable to start scan */
+ _("Unable to start scan"));
+ }
+ }
+
+ private void do_get_parameters ()
+ {
+ var status = Sane.get_parameters (handle, out parameters);
+ debug ("sane_get_parameters () -> %s", Sane.status_to_string (status));
+ if (status != Sane.Status.GOOD)
+ {
+ warning ("Unable to get device parameters: %s", Sane.strstatus (status));
+ fail_scan (status,
+ /* Error displayed when communication with scanner broken */
+ _("Error communicating with scanner"));
+ return;
+ }
+
+ var job = (ScanJob) job_queue.data;
+
+ debug ("Parameters: format=%s last_frame=%s bytes_per_line=%d pixels_per_line=%d lines=%d depth=%d",
+ Sane.frame_to_string (parameters.format),
+ parameters.last_frame ? "SANE_TRUE" : "SANE_FALSE",
+ parameters.bytes_per_line,
+ parameters.pixels_per_line,
+ parameters.lines,
+ parameters.depth);
+
+ var info = new ScanPageInfo ();
+ info.width = parameters.pixels_per_line;
+ info.height = parameters.lines;
+ info.depth = parameters.depth;
+ /* Reduce bit depth if requested lower than received */
+ // FIXME: This a hack and only works on 8 bit gray to 2 bit gray
+ if (parameters.depth == 8 && parameters.format == Sane.Frame.GRAY && job.depth == 2 && job.scan_mode == ScanMode.GRAY)
+ info.depth = job.depth;
+ info.n_channels = parameters.format == Sane.Frame.GRAY ? 1 : 3;
+ info.dpi = job.dpi; // FIXME: This is the requested DPI, not the actual DPI
+ info.device = current_device;
+
+ if (page_number != notified_page)
+ {
+ notify (new NotifyGotPageInfo (job.id, info));
+ notified_page = page_number;
+ }
+
+ /* Prepare for read */
+ var buffer_size = parameters.bytes_per_line + 1; /* Use +1 so buffer is not resized if driver returns one line per read */
+ buffer = new uchar[buffer_size];
+ n_used = 0;
+ line_count = 0;
+ pass_number = 0;
+ state = ScanState.READ;
+ }
+
+ private void do_complete_page ()
+ {
+ var job = (ScanJob) job_queue.data;
+
+ notify (new NotifyPageDone (job.id));
+
+ /* If multi-pass then scan another page */
+ if (!parameters.last_frame)
+ {
+ pass_number++;
+ state = ScanState.START;
+ return;
+ }
+
+ /* Go back for another page */
+ if (job.type != ScanType.SINGLE)
+ {
+ page_number++;
+ pass_number = 0;
+ notify (new NotifyPageDone (job.id));
+ state = ScanState.START;
+ return;
+ }
+
+ do_complete_document ();
+ }
+
+ private void do_read ()
+ {
+ var job = (ScanJob) job_queue.data;
+
+ /* Read as many bytes as we expect */
+ var n_to_read = buffer.length - n_used;
+
+ Sane.Int n_read;
+ var b = (uchar *) buffer;
+ var status = Sane.read (handle, (uint8[]) (b + n_used), (Sane.Int) n_to_read, out n_read);
+ debug ("sane_read (%d) -> (%s, %d)", n_to_read, Sane.status_to_string (status), (int) n_read);
+
+ /* Completed read */
+ if (status == Sane.Status.EOF)
+ {
+ if (parameters.lines > 0 && line_count != parameters.lines)
+ warning ("Scan completed with %d lines, expected %d lines", line_count, parameters.lines);
+ if (n_used > 0)
+ warning ("Scan complete with %d bytes of unused data", n_used);
+ do_complete_page ();
+ return;
+ }
+
+ /* Communication error */
+ if (status != Sane.Status.GOOD)
+ {
+ warning ("Unable to read frame from device: %s", Sane.strstatus (status));
+ fail_scan (status,
+ /* Error displayed when communication with scanner broken */
+ _("Error communicating with scanner"));
+ return;
+ }
+
+ bool full_read = false;
+ if (n_used == 0 && n_read == buffer.length)
+ full_read = true;
+ n_used += (int) n_read;
+
+ /* Feed out lines */
+ if (n_used >= parameters.bytes_per_line)
+ {
+ var line = new ScanLine ();
+ switch (parameters.format)
+ {
+ case Sane.Frame.GRAY:
+ line.channel = 0;
+ break;
+ case Sane.Frame.RGB:
+ line.channel = -1;
+ break;
+ case Sane.Frame.RED:
+ line.channel = 0;
+ break;
+ case Sane.Frame.GREEN:
+ line.channel = 1;
+ break;
+ case Sane.Frame.BLUE:
+ line.channel = 2;
+ break;
+ }
+ line.width = parameters.pixels_per_line;
+ line.depth = parameters.depth;
+ line.data = (owned) buffer;
+ line.data_length = parameters.bytes_per_line;
+ line.number = line_count;
+ line.n_lines = n_used / line.data_length;
+
+ line_count += line.n_lines;
+
+ /* Increase buffer size if did full read */
+ var buffer_size = line.data.length;
+ if (full_read)
+ buffer_size += parameters.bytes_per_line;
+
+ buffer = new uchar[buffer_size];
+ var n_remaining = n_used - (line.n_lines * line.data_length);
+ n_used = 0;
+ for (var i = 0; i < n_remaining; i++)
+ {
+ buffer[i] = line.data[i + (line.n_lines * line.data_length)];
+ n_used++;
+ }
+
+ /* Reduce bit depth if requested lower than received */
+ // FIXME: This a hack and only works on 8 bit gray to 2 bit gray
+ if (parameters.depth == 8 && parameters.format == Sane.Frame.GRAY &&
+ job.depth == 2 && job.scan_mode == ScanMode.GRAY)
+ {
+ uchar block = 0;
+ var write_offset = 0;
+ var block_shift = 6;
+ for (var i = 0; i < line.n_lines; i++)
+ {
+ var offset = i * line.data_length;
+ for (var x = 0; x < line.width; x++)
+ {
+ var p = line.data[offset + x];
+
+ uchar sample;
+ if (p >= 192)
+ sample = 3;
+ else if (p >= 128)
+ sample = 2;
+ else if (p >= 64)
+ sample = 1;
+ else
+ sample = 0;
+
+ block |= sample << block_shift;
+ if (block_shift == 0)
+ {
+ line.data[write_offset] = block;
+ write_offset++;
+ block = 0;
+ block_shift = 6;
+ }
+ else
+ block_shift -= 2;
+ }
+
+ /* Finish each line on a byte boundary */
+ if (block_shift != 6)
+ {
+ line.data[write_offset] = block;
+ write_offset++;
+ block = 0;
+ block_shift = 6;
+ }
+ }
+
+ line.data_length = (line.width * 2 + 7) / 8;
+ }
+
+ notify (new NotifyGotLine (job.id, line));
+ }
+ }
+
+ private void* scan_thread ()
+ {
+ state = ScanState.IDLE;
+
+ Sane.Int version_code;
+ var status = Sane.init (out version_code, authorization_cb);
+ debug ("sane_init () -> %s", Sane.status_to_string (status));
+ if (status != Sane.Status.GOOD)
+ {
+ warning ("Unable to initialize SANE backend: %s", Sane.strstatus(status));
+ return null;
+ }
+ debug ("SANE version %d.%d.%d",
+ Sane.VERSION_MAJOR(version_code),
+ Sane.VERSION_MINOR(version_code),
+ Sane.VERSION_BUILD(version_code));
+
+ /* Scan for devices on first start */
+ redetect ();
+
+ while (handle_requests ())
+ {
+ switch (state)
+ {
+ case ScanState.IDLE:
+ if (job_queue != null)
+ {
+ set_scanning (true);
+ state = ScanState.OPEN;
+ }
+ break;
+ case ScanState.REDETECT:
+ do_redetect ();
+ break;
+ case ScanState.OPEN:
+ do_open ();
+ break;
+ case ScanState.GET_OPTION:
+ do_get_option ();
+ break;
+ case ScanState.START:
+ do_start ();
+ break;
+ case ScanState.GET_PARAMETERS:
+ do_get_parameters ();
+ break;
+ case ScanState.READ:
+ do_read ();
+ break;
+ }
+ }
+
+ return null;
+ }
+
+ public void start ()
+ {
+ try
+ {
+ thread = new Thread<void*>.try ("scan-thread", scan_thread);
+ }
+ catch (Error e)
+ {
+ critical ("Unable to create thread: %s", e.message);
+ }
+ }
+
+ public void redetect ()
+ {
+ if (need_redetect)
+ return;
+ need_redetect = true;
+
+ debug ("Requesting redetection of scan devices");
+
+ request_queue.push (new RequestRedetect ());
+ }
+
+ public bool is_scanning ()
+ {
+ return scanning;
+ }
+
+ private string get_scan_mode_string (ScanMode mode)
+ {
+ switch (mode)
+ {
+ case ScanMode.DEFAULT:
+ return "ScanMode.DEFAULT";
+ case ScanMode.COLOR:
+ return "ScanMode.COLOR";
+ case ScanMode.GRAY:
+ return "ScanMode.GRAY";
+ case ScanMode.LINEART:
+ return "ScanMode.LINEART";
+ default:
+ return "%d".printf (mode);
+ }
+ }
+
+ private string get_scan_type_string (ScanType type)
+ {
+ switch (type)
+ {
+ case ScanType.SINGLE:
+ return "ScanType.SINGLE";
+ case ScanType.ADF_FRONT:
+ return "ScanType.ADF_FRONT";
+ case ScanType.ADF_BACK:
+ return "ScanType.ADF_BACK";
+ case ScanType.ADF_BOTH:
+ return "ScanType.ADF_BOTH";
+ default:
+ return "%d".printf (type);
+ }
+ }
+
+ public void scan (string? device, ScanOptions options)
+ {
+ debug ("Scanner.scan (\"%s\", dpi=%d, scan_mode=%s, depth=%d, type=%s, paper_width=%d, paper_height=%d, brightness=%d, contrast=%d)",
+ device != null ? device : "(null)", options.dpi, get_scan_mode_string (options.scan_mode), options.depth,
+ get_scan_type_string (options.type), options.paper_width, options.paper_height,
+ options.brightness, options.contrast);
+ var request = new RequestStartScan ();
+ request.job = new ScanJob ();
+ request.job.id = job_id++;
+ request.job.device = device;
+ request.job.dpi = options.dpi;
+ request.job.scan_mode = options.scan_mode;
+ request.job.depth = options.depth;
+ request.job.type = options.type;
+ request.job.page_width = options.paper_width;
+ request.job.page_height = options.paper_height;
+ request.job.brightness = options.brightness;
+ request.job.contrast = options.contrast;
+ request_queue.push (request);
+ }
+
+ public void cancel ()
+ {
+ first_job_id = job_id;
+ request_queue.push (new RequestCancel ());
+ }
+
+ public void free ()
+ {
+ debug ("Stopping scan thread");
+
+ request_queue.push (new RequestQuit ());
+
+ if (thread != null)
+ {
+ thread.join ();
+ thread = null;
+ }
+
+ Sane.exit ();
+ debug ("sane_exit ()");
+ }
+}
diff --git a/src/simple-scan.c b/src/simple-scan.c
new file mode 100644
index 0000000..144a78d
--- /dev/null
+++ b/src/simple-scan.c
@@ -0,0 +1,3965 @@
+/* simple-scan.c generated by valac 0.24.0, the Vala compiler
+ * generated from simple-scan.vala, do not modify */
+
+/*
+ * Copyright (C) 2009-2011 Canonical Ltd.
+ * Author: Robert Ancell <robert.ancell@canonical.com>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <gudev/gudev.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <gio/gio.h>
+#include "colord.h"
+#include <float.h>
+#include <math.h>
+#include "sane/sane.h"
+#include <glib/gi18n-lib.h>
+#include <glib/gstdio.h>
+#include <unistd.h>
+#include <locale.h>
+
+
+#define TYPE_SIMPLE_SCAN (simple_scan_get_type ())
+#define SIMPLE_SCAN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SIMPLE_SCAN, SimpleScan))
+#define SIMPLE_SCAN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SIMPLE_SCAN, SimpleScanClass))
+#define IS_SIMPLE_SCAN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SIMPLE_SCAN))
+#define IS_SIMPLE_SCAN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SIMPLE_SCAN))
+#define SIMPLE_SCAN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SIMPLE_SCAN, SimpleScanClass))
+
+typedef struct _SimpleScan SimpleScan;
+typedef struct _SimpleScanClass SimpleScanClass;
+typedef struct _SimpleScanPrivate SimpleScanPrivate;
+
+#define TYPE_SCAN_DEVICE (scan_device_get_type ())
+#define SCAN_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCAN_DEVICE, ScanDevice))
+#define SCAN_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCAN_DEVICE, ScanDeviceClass))
+#define IS_SCAN_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCAN_DEVICE))
+#define IS_SCAN_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCAN_DEVICE))
+#define SCAN_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCAN_DEVICE, ScanDeviceClass))
+
+typedef struct _ScanDevice ScanDevice;
+typedef struct _ScanDeviceClass ScanDeviceClass;
+
+#define TYPE_USER_INTERFACE (user_interface_get_type ())
+#define USER_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_USER_INTERFACE, UserInterface))
+#define USER_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_USER_INTERFACE, UserInterfaceClass))
+#define IS_USER_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_USER_INTERFACE))
+#define IS_USER_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_USER_INTERFACE))
+#define USER_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_USER_INTERFACE, UserInterfaceClass))
+
+typedef struct _UserInterface UserInterface;
+typedef struct _UserInterfaceClass UserInterfaceClass;
+
+#define TYPE_SCANNER (scanner_get_type ())
+#define SCANNER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCANNER, Scanner))
+#define SCANNER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCANNER, ScannerClass))
+#define IS_SCANNER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCANNER))
+#define IS_SCANNER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCANNER))
+#define SCANNER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCANNER, ScannerClass))
+
+typedef struct _Scanner Scanner;
+typedef struct _ScannerClass ScannerClass;
+
+#define TYPE_BOOK (book_get_type ())
+#define BOOK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BOOK, Book))
+#define BOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BOOK, BookClass))
+#define IS_BOOK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BOOK))
+#define IS_BOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BOOK))
+#define BOOK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BOOK, BookClass))
+
+typedef struct _Book Book;
+typedef struct _BookClass BookClass;
+#define _scan_device_unref0(var) ((var == NULL) ? NULL : (var = (scan_device_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _scanner_unref0(var) ((var == NULL) ? NULL : (var = (scanner_unref (var), NULL)))
+#define _book_unref0(var) ((var == NULL) ? NULL : (var = (book_unref (var), NULL)))
+
+#define TYPE_SCAN_OPTIONS (scan_options_get_type ())
+#define SCAN_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCAN_OPTIONS, ScanOptions))
+#define SCAN_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCAN_OPTIONS, ScanOptionsClass))
+#define IS_SCAN_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCAN_OPTIONS))
+#define IS_SCAN_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCAN_OPTIONS))
+#define SCAN_OPTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCAN_OPTIONS, ScanOptionsClass))
+
+typedef struct _ScanOptions ScanOptions;
+typedef struct _ScanOptionsClass ScanOptionsClass;
+
+#define TYPE_SCAN_PAGE_INFO (scan_page_info_get_type ())
+#define SCAN_PAGE_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCAN_PAGE_INFO, ScanPageInfo))
+#define SCAN_PAGE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCAN_PAGE_INFO, ScanPageInfoClass))
+#define IS_SCAN_PAGE_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCAN_PAGE_INFO))
+#define IS_SCAN_PAGE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCAN_PAGE_INFO))
+#define SCAN_PAGE_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCAN_PAGE_INFO, ScanPageInfoClass))
+
+typedef struct _ScanPageInfo ScanPageInfo;
+typedef struct _ScanPageInfoClass ScanPageInfoClass;
+
+#define TYPE_SCAN_LINE (scan_line_get_type ())
+#define SCAN_LINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCAN_LINE, ScanLine))
+#define SCAN_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCAN_LINE, ScanLineClass))
+#define IS_SCAN_LINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCAN_LINE))
+#define IS_SCAN_LINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCAN_LINE))
+#define SCAN_LINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCAN_LINE, ScanLineClass))
+
+typedef struct _ScanLine ScanLine;
+typedef struct _ScanLineClass ScanLineClass;
+typedef struct _ScanDevicePrivate ScanDevicePrivate;
+#define __g_list_free__scan_device_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__scan_device_unref0_ (var), NULL)))
+#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define TYPE_SCAN_DIRECTION (scan_direction_get_type ())
+#define _page_unref0(var) ((var == NULL) ? NULL : (var = (page_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+typedef struct _ScanPageInfoPrivate ScanPageInfoPrivate;
+typedef struct _ScanOptionsPrivate ScanOptionsPrivate;
+
+#define TYPE_SCAN_MODE (scan_mode_get_type ())
+
+#define TYPE_SCAN_TYPE (scan_type_get_type ())
+#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
+#define _fclose0(var) ((var == NULL) ? NULL : (var = (fclose (var), NULL)))
+#define _g_option_context_free0(var) ((var == NULL) ? NULL : (var = (g_option_context_free (var), NULL)))
+#define _g_timer_destroy0(var) ((var == NULL) ? NULL : (var = (g_timer_destroy (var), NULL)))
+
+struct _SimpleScan {
+ GtkApplication parent_instance;
+ SimpleScanPrivate * priv;
+};
+
+struct _SimpleScanClass {
+ GtkApplicationClass parent_class;
+};
+
+struct _SimpleScanPrivate {
+ ScanDevice* default_device;
+ gboolean have_devices;
+ GUdevClient* udev_client;
+ UserInterface* ui;
+ Scanner* scanner;
+ Book* book;
+};
+
+struct _ScanDevice {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ScanDevicePrivate * priv;
+ gchar* name;
+ gchar* label;
+};
+
+struct _ScanDeviceClass {
+ GTypeClass parent_class;
+ void (*finalize) (ScanDevice *self);
+};
+
+typedef enum {
+ SCAN_DIRECTION_TOP_TO_BOTTOM,
+ SCAN_DIRECTION_LEFT_TO_RIGHT,
+ SCAN_DIRECTION_BOTTOM_TO_TOP,
+ SCAN_DIRECTION_RIGHT_TO_LEFT
+} ScanDirection;
+
+struct _ScanPageInfo {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ScanPageInfoPrivate * priv;
+ gint width;
+ gint height;
+ gint depth;
+ gint n_channels;
+ gdouble dpi;
+ gchar* device;
+};
+
+struct _ScanPageInfoClass {
+ GTypeClass parent_class;
+ void (*finalize) (ScanPageInfo *self);
+};
+
+typedef enum {
+ SCAN_MODE_DEFAULT,
+ SCAN_MODE_COLOR,
+ SCAN_MODE_GRAY,
+ SCAN_MODE_LINEART
+} ScanMode;
+
+typedef enum {
+ SCAN_TYPE_SINGLE,
+ SCAN_TYPE_ADF_FRONT,
+ SCAN_TYPE_ADF_BACK,
+ SCAN_TYPE_ADF_BOTH
+} ScanType;
+
+struct _ScanOptions {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ScanOptionsPrivate * priv;
+ gint dpi;
+ ScanMode scan_mode;
+ gint depth;
+ ScanType type;
+ gint paper_width;
+ gint paper_height;
+ gint brightness;
+ gint contrast;
+};
+
+struct _ScanOptionsClass {
+ GTypeClass parent_class;
+ void (*finalize) (ScanOptions *self);
+};
+
+
+static gpointer simple_scan_parent_class = NULL;
+static gboolean simple_scan_show_version;
+static gboolean simple_scan_show_version = FALSE;
+static gboolean simple_scan_debug_enabled;
+static gboolean simple_scan_debug_enabled = FALSE;
+static gchar* simple_scan_fix_pdf_filename;
+static gchar* simple_scan_fix_pdf_filename = NULL;
+static GTimer* simple_scan_log_timer;
+static GTimer* simple_scan_log_timer = NULL;
+static FILE* simple_scan_log_file;
+static FILE* simple_scan_log_file = NULL;
+
+GType simple_scan_get_type (void) G_GNUC_CONST;
+gpointer scan_device_ref (gpointer instance);
+void scan_device_unref (gpointer instance);
+GParamSpec* param_spec_scan_device (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_scan_device (GValue* value, gpointer v_object);
+void value_take_scan_device (GValue* value, gpointer v_object);
+gpointer value_get_scan_device (const GValue* value);
+GType scan_device_get_type (void) G_GNUC_CONST;
+GType user_interface_get_type (void) G_GNUC_CONST;
+gpointer scanner_ref (gpointer instance);
+void scanner_unref (gpointer instance);
+GParamSpec* param_spec_scanner (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_scanner (GValue* value, gpointer v_object);
+void value_take_scanner (GValue* value, gpointer v_object);
+gpointer value_get_scanner (const GValue* value);
+GType scanner_get_type (void) G_GNUC_CONST;
+gpointer book_ref (gpointer instance);
+void book_unref (gpointer instance);
+GParamSpec* param_spec_book (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_book (GValue* value, gpointer v_object);
+void value_take_book (GValue* value, gpointer v_object);
+gpointer value_get_book (const GValue* value);
+GType book_get_type (void) G_GNUC_CONST;
+#define SIMPLE_SCAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SIMPLE_SCAN, SimpleScanPrivate))
+enum {
+ SIMPLE_SCAN_DUMMY_PROPERTY
+};
+SimpleScan* simple_scan_new (ScanDevice* device);
+SimpleScan* simple_scan_construct (GType object_type, ScanDevice* device);
+static void simple_scan_real_startup (GApplication* base);
+UserInterface* user_interface_new (void);
+UserInterface* user_interface_construct (GType object_type);
+Book* user_interface_get_book (UserInterface* self);
+gpointer scan_options_ref (gpointer instance);
+void scan_options_unref (gpointer instance);
+GParamSpec* param_spec_scan_options (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_scan_options (GValue* value, gpointer v_object);
+void value_take_scan_options (GValue* value, gpointer v_object);
+gpointer value_get_scan_options (const GValue* value);
+GType scan_options_get_type (void) G_GNUC_CONST;
+static void simple_scan_scan_cb (SimpleScan* self, UserInterface* ui, const gchar* device, ScanOptions* options);
+static void _simple_scan_scan_cb_user_interface_start_scan (UserInterface* _sender, const gchar* device, ScanOptions* options, gpointer self);
+static void simple_scan_cancel_cb (SimpleScan* self, UserInterface* ui);
+static void _simple_scan_cancel_cb_user_interface_stop_scan (UserInterface* _sender, gpointer self);
+static void simple_scan_email_cb (SimpleScan* self, UserInterface* ui, const gchar* profile, gint quality);
+static void _simple_scan_email_cb_user_interface_email (UserInterface* _sender, const gchar* profile, gint quality, gpointer self);
+Scanner* scanner_get_instance (void);
+static void simple_scan_update_scan_devices_cb (SimpleScan* self, Scanner* scanner, GList* devices);
+static void _simple_scan_update_scan_devices_cb_scanner_update_devices (Scanner* _sender, GList* devices, gpointer self);
+static void simple_scan_authorize_cb (SimpleScan* self, Scanner* scanner, const gchar* resource);
+static void _simple_scan_authorize_cb_scanner_request_authorization (Scanner* _sender, const gchar* resource, gpointer self);
+static void simple_scan_scanner_new_page_cb (SimpleScan* self, Scanner* scanner);
+static void _simple_scan_scanner_new_page_cb_scanner_expect_page (Scanner* _sender, gpointer self);
+gpointer scan_page_info_ref (gpointer instance);
+void scan_page_info_unref (gpointer instance);
+GParamSpec* param_spec_scan_page_info (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_scan_page_info (GValue* value, gpointer v_object);
+void value_take_scan_page_info (GValue* value, gpointer v_object);
+gpointer value_get_scan_page_info (const GValue* value);
+GType scan_page_info_get_type (void) G_GNUC_CONST;
+static void simple_scan_scanner_page_info_cb (SimpleScan* self, Scanner* scanner, ScanPageInfo* info);
+static void _simple_scan_scanner_page_info_cb_scanner_got_page_info (Scanner* _sender, ScanPageInfo* info, gpointer self);
+gpointer scan_line_ref (gpointer instance);
+void scan_line_unref (gpointer instance);
+GParamSpec* param_spec_scan_line (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_scan_line (GValue* value, gpointer v_object);
+void value_take_scan_line (GValue* value, gpointer v_object);
+gpointer value_get_scan_line (const GValue* value);
+GType scan_line_get_type (void) G_GNUC_CONST;
+static void simple_scan_scanner_line_cb (SimpleScan* self, Scanner* scanner, ScanLine* line);
+static void _simple_scan_scanner_line_cb_scanner_got_line (Scanner* _sender, ScanLine* line, gpointer self);
+static void simple_scan_scanner_page_done_cb (SimpleScan* self, Scanner* scanner);
+static void _simple_scan_scanner_page_done_cb_scanner_page_done (Scanner* _sender, gpointer self);
+static void simple_scan_scanner_document_done_cb (SimpleScan* self, Scanner* scanner);
+static void _simple_scan_scanner_document_done_cb_scanner_document_done (Scanner* _sender, gpointer self);
+static void simple_scan_scanner_failed_cb (SimpleScan* self, Scanner* scanner, gint error_code, const gchar* error_string);
+static void _simple_scan_scanner_failed_cb_scanner_scan_failed (Scanner* _sender, gint error_code, const gchar* error_string, gpointer self);
+static void simple_scan_scanner_scanning_changed_cb (SimpleScan* self, Scanner* scanner);
+static void _simple_scan_scanner_scanning_changed_cb_scanner_scanning_changed (Scanner* _sender, gpointer self);
+static void simple_scan_on_uevent (SimpleScan* self, GUdevClient* client, const gchar* action, GUdevDevice* device);
+static void _simple_scan_on_uevent_g_udev_client_uevent (GUdevClient* _sender, const gchar* action, GUdevDevice* device, gpointer self);
+void user_interface_set_scan_devices (UserInterface* self, GList* devices);
+void user_interface_set_selected_device (UserInterface* self, const gchar* value);
+static void _scan_device_unref0_ (gpointer var);
+static void _g_list_free__scan_device_unref0_ (GList* self);
+static void simple_scan_real_activate (GApplication* base);
+void user_interface_start (UserInterface* self);
+void scanner_start (Scanner* self);
+static void simple_scan_real_shutdown (GApplication* base);
+void scanner_free (Scanner* self);
+void user_interface_authorize (UserInterface* self, const gchar* resource, gchar** username, gchar** password);
+void scanner_authorize (Scanner* self, const gchar* username, const gchar* password);
+gpointer page_ref (gpointer instance);
+void page_unref (gpointer instance);
+GParamSpec* param_spec_page (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_page (GValue* value, gpointer v_object);
+void value_take_page (GValue* value, gpointer v_object);
+gpointer value_get_page (const GValue* value);
+GType page_get_type (void) G_GNUC_CONST;
+static Page* simple_scan_append_page (SimpleScan* self);
+Page* book_get_page (Book* self, gint page_number);
+gboolean page_get_has_data (Page* self);
+void user_interface_set_selected_page (UserInterface* self, Page* value);
+void page_start (Page* self);
+GType scan_direction_get_type (void) G_GNUC_CONST;
+ScanDirection page_get_scan_direction (Page* self);
+gint page_get_width (Page* self);
+gint page_get_height (Page* self);
+gint page_get_dpi (Page* self);
+gboolean page_get_has_crop (Page* self);
+const gchar* page_get_crop_name (Page* self);
+gint page_get_crop_x (Page* self);
+gint page_get_crop_y (Page* self);
+gint page_get_crop_width (Page* self);
+gint page_get_crop_height (Page* self);
+Page* page_new (gint width, gint height, gint dpi, ScanDirection scan_direction);
+Page* page_construct (GType object_type, gint width, gint height, gint dpi, ScanDirection scan_direction);
+void book_append_page (Book* self, Page* page);
+void page_set_named_crop (Page* self, const gchar* name);
+void page_set_custom_crop (Page* self, gint width, gint height);
+void page_move_crop (Page* self, gint x, gint y);
+static gchar* simple_scan_get_profile_for_device (SimpleScan* self, const gchar* device_name);
+void page_set_page_info (Page* self, ScanPageInfo* info);
+void page_set_color_profile (Page* self, const gchar* value);
+guint book_get_n_pages (Book* self);
+void page_parse_scan_line (Page* self, ScanLine* line);
+void page_finish (Page* self);
+static void simple_scan_remove_empty_page (SimpleScan* self);
+void book_delete_page (Book* self, Page* page);
+void user_interface_show_error (UserInterface* self, const gchar* error_title, const gchar* error_text, gboolean change_scanner_hint);
+gboolean scanner_is_scanning (Scanner* self);
+void user_interface_set_scanning (UserInterface* self, gboolean value);
+GType scan_mode_get_type (void) G_GNUC_CONST;
+GType scan_type_get_type (void) G_GNUC_CONST;
+void user_interface_set_default_file_name (UserInterface* self, const gchar* value);
+void scanner_scan (Scanner* self, const gchar* device, ScanOptions* options);
+void scanner_cancel (Scanner* self);
+static gchar* simple_scan_get_temporary_filename (SimpleScan* self, const gchar* prefix, const gchar* extension);
+void user_interface_show_progress_dialog (UserInterface* self);
+void book_save (Book* self, const gchar* type, gint quality, GFile* file, GError** error);
+void user_interface_hide_progress_dialog (UserInterface* self);
+void page_save (Page* self, const gchar* type, gint quality, GFile* file, GError** error);
+static void simple_scan_log_cb (const gchar* log_domain, GLogLevelFlags log_level, const gchar* message);
+void scanner_redetect (Scanner* self);
+static void simple_scan_fix_pdf (const gchar* filename, GError** error);
+gint simple_scan_main (gchar** args, int args_length1);
+ScanDevice* scan_device_new (void);
+ScanDevice* scan_device_construct (GType object_type);
+static void _simple_scan_log_cb_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self);
+static void simple_scan_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+const GOptionEntry SIMPLE_SCAN_options[4] = {{"version", 'v', 0, G_OPTION_ARG_NONE, &simple_scan_show_version, "Show release version", NULL}, {"debug", 'd', 0, G_OPTION_ARG_NONE, &simple_scan_debug_enabled, "Print debugging messages", NULL}, {"fix-pdf", (gchar) 0, 0, G_OPTION_ARG_STRING, &simple_scan_fix_pdf_filename, "Fix PDF files generated with older versions of Simple Scan", "FILENAME..."}, {NULL}};
+
+static gpointer _scan_device_ref0 (gpointer self) {
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return self ? scan_device_ref (self) : NULL;
+#line 406 "simple-scan.c"
+}
+
+
+SimpleScan* simple_scan_construct (GType object_type, ScanDevice* device) {
+ SimpleScan * self = NULL;
+ ScanDevice* _tmp0_ = NULL;
+ ScanDevice* _tmp1_ = NULL;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self = (SimpleScan*) g_object_new (object_type, NULL);
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = device;
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = _scan_device_ref0 (_tmp0_);
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _scan_device_unref0 (self->priv->default_device);
+#line 41 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self->priv->default_device = _tmp1_;
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return self;
+#line 426 "simple-scan.c"
+}
+
+
+SimpleScan* simple_scan_new (ScanDevice* device) {
+#line 39 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return simple_scan_construct (TYPE_SIMPLE_SCAN, device);
+#line 433 "simple-scan.c"
+}
+
+
+static gpointer _book_ref0 (gpointer self) {
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return self ? book_ref (self) : NULL;
+#line 440 "simple-scan.c"
+}
+
+
+static void _simple_scan_scan_cb_user_interface_start_scan (UserInterface* _sender, const gchar* device, ScanOptions* options, gpointer self) {
+#line 50 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_scan_cb ((SimpleScan*) self, _sender, device, options);
+#line 447 "simple-scan.c"
+}
+
+
+static void _simple_scan_cancel_cb_user_interface_stop_scan (UserInterface* _sender, gpointer self) {
+#line 51 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_cancel_cb ((SimpleScan*) self, _sender);
+#line 454 "simple-scan.c"
+}
+
+
+static void _simple_scan_email_cb_user_interface_email (UserInterface* _sender, const gchar* profile, gint quality, gpointer self) {
+#line 52 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_email_cb ((SimpleScan*) self, _sender, profile, quality);
+#line 461 "simple-scan.c"
+}
+
+
+static void _simple_scan_update_scan_devices_cb_scanner_update_devices (Scanner* _sender, GList* devices, gpointer self) {
+#line 55 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_update_scan_devices_cb ((SimpleScan*) self, _sender, devices);
+#line 468 "simple-scan.c"
+}
+
+
+static void _simple_scan_authorize_cb_scanner_request_authorization (Scanner* _sender, const gchar* resource, gpointer self) {
+#line 56 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_authorize_cb ((SimpleScan*) self, _sender, resource);
+#line 475 "simple-scan.c"
+}
+
+
+static void _simple_scan_scanner_new_page_cb_scanner_expect_page (Scanner* _sender, gpointer self) {
+#line 57 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_scanner_new_page_cb ((SimpleScan*) self, _sender);
+#line 482 "simple-scan.c"
+}
+
+
+static void _simple_scan_scanner_page_info_cb_scanner_got_page_info (Scanner* _sender, ScanPageInfo* info, gpointer self) {
+#line 58 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_scanner_page_info_cb ((SimpleScan*) self, _sender, info);
+#line 489 "simple-scan.c"
+}
+
+
+static void _simple_scan_scanner_line_cb_scanner_got_line (Scanner* _sender, ScanLine* line, gpointer self) {
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_scanner_line_cb ((SimpleScan*) self, _sender, line);
+#line 496 "simple-scan.c"
+}
+
+
+static void _simple_scan_scanner_page_done_cb_scanner_page_done (Scanner* _sender, gpointer self) {
+#line 60 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_scanner_page_done_cb ((SimpleScan*) self, _sender);
+#line 503 "simple-scan.c"
+}
+
+
+static void _simple_scan_scanner_document_done_cb_scanner_document_done (Scanner* _sender, gpointer self) {
+#line 61 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_scanner_document_done_cb ((SimpleScan*) self, _sender);
+#line 510 "simple-scan.c"
+}
+
+
+static void _simple_scan_scanner_failed_cb_scanner_scan_failed (Scanner* _sender, gint error_code, const gchar* error_string, gpointer self) {
+#line 62 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_scanner_failed_cb ((SimpleScan*) self, _sender, error_code, error_string);
+#line 517 "simple-scan.c"
+}
+
+
+static void _simple_scan_scanner_scanning_changed_cb_scanner_scanning_changed (Scanner* _sender, gpointer self) {
+#line 63 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_scanner_scanning_changed_cb ((SimpleScan*) self, _sender);
+#line 524 "simple-scan.c"
+}
+
+
+static void _simple_scan_on_uevent_g_udev_client_uevent (GUdevClient* _sender, const gchar* action, GUdevDevice* device, gpointer self) {
+#line 67 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_on_uevent ((SimpleScan*) self, _sender, action, device);
+#line 531 "simple-scan.c"
+}
+
+
+static void _scan_device_unref0_ (gpointer var) {
+#line 69 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ (var == NULL) ? NULL : (var = (scan_device_unref (var), NULL));
+#line 538 "simple-scan.c"
+}
+
+
+static void _g_list_free__scan_device_unref0_ (GList* self) {
+#line 69 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_list_foreach (self, (GFunc) _scan_device_unref0_, NULL);
+#line 69 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_list_free (self);
+#line 547 "simple-scan.c"
+}
+
+
+static void simple_scan_real_startup (GApplication* base) {
+ SimpleScan * self;
+ UserInterface* _tmp0_ = NULL;
+ UserInterface* _tmp1_ = NULL;
+ Book* _tmp2_ = NULL;
+ Book* _tmp3_ = NULL;
+ Book* _tmp4_ = NULL;
+ UserInterface* _tmp5_ = NULL;
+ UserInterface* _tmp6_ = NULL;
+ UserInterface* _tmp7_ = NULL;
+ Scanner* _tmp8_ = NULL;
+ Scanner* _tmp9_ = NULL;
+ Scanner* _tmp10_ = NULL;
+ Scanner* _tmp11_ = NULL;
+ Scanner* _tmp12_ = NULL;
+ Scanner* _tmp13_ = NULL;
+ Scanner* _tmp14_ = NULL;
+ Scanner* _tmp15_ = NULL;
+ Scanner* _tmp16_ = NULL;
+ Scanner* _tmp17_ = NULL;
+ gchar** subsystems = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar** _tmp19_ = NULL;
+ gint subsystems_length1 = 0;
+ gint _subsystems_size_ = 0;
+ gchar** _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ GUdevClient* _tmp21_ = NULL;
+ GUdevClient* _tmp22_ = NULL;
+ ScanDevice* _tmp23_ = NULL;
+#line 44 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self = (SimpleScan*) base;
+#line 46 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ G_APPLICATION_CLASS (simple_scan_parent_class)->startup ((GApplication*) G_TYPE_CHECK_INSTANCE_CAST (self, GTK_TYPE_APPLICATION, GtkApplication));
+#line 48 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = user_interface_new ();
+#line 48 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_object_ref_sink (_tmp0_);
+#line 48 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (self->priv->ui);
+#line 48 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self->priv->ui = _tmp0_;
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = self->priv->ui;
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = user_interface_get_book (_tmp1_);
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp3_ = _tmp2_;
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp4_ = _book_ref0 (_tmp3_);
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _book_unref0 (self->priv->book);
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self->priv->book = _tmp4_;
+#line 50 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp5_ = self->priv->ui;
+#line 50 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_signal_connect_object (_tmp5_, "start-scan", (GCallback) _simple_scan_scan_cb_user_interface_start_scan, self, 0);
+#line 51 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp6_ = self->priv->ui;
+#line 51 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_signal_connect_object (_tmp6_, "stop-scan", (GCallback) _simple_scan_cancel_cb_user_interface_stop_scan, self, 0);
+#line 52 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp7_ = self->priv->ui;
+#line 52 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_signal_connect_object (_tmp7_, "email", (GCallback) _simple_scan_email_cb_user_interface_email, self, 0);
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp8_ = scanner_get_instance ();
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _scanner_unref0 (self->priv->scanner);
+#line 54 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self->priv->scanner = _tmp8_;
+#line 55 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp9_ = self->priv->scanner;
+#line 55 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_signal_connect_object (_tmp9_, "update-devices", (GCallback) _simple_scan_update_scan_devices_cb_scanner_update_devices, self, 0);
+#line 56 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp10_ = self->priv->scanner;
+#line 56 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_signal_connect_object (_tmp10_, "request-authorization", (GCallback) _simple_scan_authorize_cb_scanner_request_authorization, self, 0);
+#line 57 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp11_ = self->priv->scanner;
+#line 57 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_signal_connect_object (_tmp11_, "expect-page", (GCallback) _simple_scan_scanner_new_page_cb_scanner_expect_page, self, 0);
+#line 58 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp12_ = self->priv->scanner;
+#line 58 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_signal_connect_object (_tmp12_, "got-page-info", (GCallback) _simple_scan_scanner_page_info_cb_scanner_got_page_info, self, 0);
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp13_ = self->priv->scanner;
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_signal_connect_object (_tmp13_, "got-line", (GCallback) _simple_scan_scanner_line_cb_scanner_got_line, self, 0);
+#line 60 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp14_ = self->priv->scanner;
+#line 60 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_signal_connect_object (_tmp14_, "page-done", (GCallback) _simple_scan_scanner_page_done_cb_scanner_page_done, self, 0);
+#line 61 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp15_ = self->priv->scanner;
+#line 61 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_signal_connect_object (_tmp15_, "document-done", (GCallback) _simple_scan_scanner_document_done_cb_scanner_document_done, self, 0);
+#line 62 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp16_ = self->priv->scanner;
+#line 62 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_signal_connect_object (_tmp16_, "scan-failed", (GCallback) _simple_scan_scanner_failed_cb_scanner_scan_failed, self, 0);
+#line 63 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp17_ = self->priv->scanner;
+#line 63 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_signal_connect_object (_tmp17_, "scanning-changed", (GCallback) _simple_scan_scanner_scanning_changed_cb_scanner_scanning_changed, self, 0);
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp18_ = g_strdup ("usb");
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp19_ = g_new0 (gchar*, 2 + 1);
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp19_[0] = _tmp18_;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp19_[1] = NULL;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ subsystems = _tmp19_;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ subsystems_length1 = 2;
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _subsystems_size_ = subsystems_length1;
+#line 66 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp20_ = subsystems;
+#line 66 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp20__length1 = subsystems_length1;
+#line 66 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp21_ = g_udev_client_new (_tmp20_);
+#line 66 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (self->priv->udev_client);
+#line 66 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self->priv->udev_client = _tmp21_;
+#line 67 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp22_ = self->priv->udev_client;
+#line 67 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_signal_connect_object (_tmp22_, "uevent", (GCallback) _simple_scan_on_uevent_g_udev_client_uevent, self, 0);
+#line 69 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp23_ = self->priv->default_device;
+#line 69 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp23_ != NULL) {
+#line 691 "simple-scan.c"
+ GList* device_list = NULL;
+ ScanDevice* _tmp24_ = NULL;
+ ScanDevice* _tmp25_ = NULL;
+ UserInterface* _tmp26_ = NULL;
+ GList* _tmp27_ = NULL;
+ UserInterface* _tmp28_ = NULL;
+ ScanDevice* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+#line 71 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ device_list = NULL;
+#line 73 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp24_ = self->priv->default_device;
+#line 73 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp25_ = _scan_device_ref0 (_tmp24_);
+#line 73 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ device_list = g_list_append (device_list, _tmp25_);
+#line 74 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp26_ = self->priv->ui;
+#line 74 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp27_ = device_list;
+#line 74 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ user_interface_set_scan_devices (_tmp26_, _tmp27_);
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp28_ = self->priv->ui;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp29_ = self->priv->default_device;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp30_ = _tmp29_->name;
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ user_interface_set_selected_device (_tmp28_, _tmp30_);
+#line 69 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ __g_list_free__scan_device_unref0_0 (device_list);
+#line 724 "simple-scan.c"
+ }
+#line 44 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ subsystems = (_vala_array_free (subsystems, subsystems_length1, (GDestroyNotify) g_free), NULL);
+#line 728 "simple-scan.c"
+}
+
+
+static void simple_scan_real_activate (GApplication* base) {
+ SimpleScan * self;
+ UserInterface* _tmp0_ = NULL;
+ Scanner* _tmp1_ = NULL;
+#line 79 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self = (SimpleScan*) base;
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ G_APPLICATION_CLASS (simple_scan_parent_class)->activate ((GApplication*) G_TYPE_CHECK_INSTANCE_CAST (self, GTK_TYPE_APPLICATION, GtkApplication));
+#line 82 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = self->priv->ui;
+#line 82 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ user_interface_start (_tmp0_);
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = self->priv->scanner;
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ scanner_start (_tmp1_);
+#line 748 "simple-scan.c"
+}
+
+
+static void simple_scan_real_shutdown (GApplication* base) {
+ SimpleScan * self;
+ Scanner* _tmp0_ = NULL;
+#line 86 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self = (SimpleScan*) base;
+#line 88 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ G_APPLICATION_CLASS (simple_scan_parent_class)->shutdown ((GApplication*) G_TYPE_CHECK_INSTANCE_CAST (self, GTK_TYPE_APPLICATION, GtkApplication));
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _book_unref0 (self->priv->book);
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self->priv->book = NULL;
+#line 90 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (self->priv->ui);
+#line 90 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self->priv->ui = NULL;
+#line 91 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (self->priv->udev_client);
+#line 91 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self->priv->udev_client = NULL;
+#line 92 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = self->priv->scanner;
+#line 92 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ scanner_free (_tmp0_);
+#line 775 "simple-scan.c"
+}
+
+
+static void simple_scan_update_scan_devices_cb (SimpleScan* self, Scanner* scanner, GList* devices) {
+ GList* devices_copy = NULL;
+ GList* _tmp0_ = NULL;
+ GList* _tmp1_ = NULL;
+ ScanDevice* _tmp2_ = NULL;
+ GList* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+ UserInterface* _tmp12_ = NULL;
+ GList* _tmp13_ = NULL;
+#line 95 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (self != NULL);
+#line 95 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (scanner != NULL);
+#line 97 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = devices;
+#line 97 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = g_list_copy (_tmp0_);
+#line 97 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ devices_copy = _tmp1_;
+#line 100 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = self->priv->default_device;
+#line 100 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp2_ != NULL) {
+#line 802 "simple-scan.c"
+ gboolean default_in_list = FALSE;
+ GList* _tmp3_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 102 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ default_in_list = FALSE;
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp3_ = devices_copy;
+#line 810 "simple-scan.c"
+ {
+ GList* device_collection = NULL;
+ GList* device_it = NULL;
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ device_collection = _tmp3_;
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ for (device_it = device_collection; device_it != NULL; device_it = device_it->next) {
+#line 818 "simple-scan.c"
+ ScanDevice* device = NULL;
+#line 103 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ device = (ScanDevice*) device_it->data;
+#line 822 "simple-scan.c"
+ {
+ ScanDevice* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ ScanDevice* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp4_ = device;
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp5_ = _tmp4_->name;
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp6_ = self->priv->default_device;
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp7_ = _tmp6_->name;
+#line 105 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (g_strcmp0 (_tmp5_, _tmp7_) == 0) {
+#line 107 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ default_in_list = TRUE;
+#line 108 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 842 "simple-scan.c"
+ }
+ }
+ }
+ }
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp8_ = default_in_list;
+#line 112 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (!_tmp8_) {
+#line 851 "simple-scan.c"
+ ScanDevice* _tmp9_ = NULL;
+#line 113 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp9_ = self->priv->default_device;
+#line 113 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ devices_copy = g_list_prepend (devices_copy, _tmp9_);
+#line 857 "simple-scan.c"
+ }
+ }
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp10_ = devices_copy;
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp11_ = g_list_length (_tmp10_);
+#line 116 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self->priv->have_devices = _tmp11_ > ((guint) 0);
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp12_ = self->priv->ui;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp13_ = devices_copy;
+#line 117 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ user_interface_set_scan_devices (_tmp12_, _tmp13_);
+#line 95 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_list_free0 (devices_copy);
+#line 874 "simple-scan.c"
+}
+
+
+static void simple_scan_authorize_cb (SimpleScan* self, Scanner* scanner, const gchar* resource) {
+ gchar* username = NULL;
+ gchar* password = NULL;
+ UserInterface* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ Scanner* _tmp4_ = NULL;
+#line 120 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (self != NULL);
+#line 120 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (scanner != NULL);
+#line 120 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (resource != NULL);
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = self->priv->ui;
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = resource;
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ user_interface_authorize (_tmp0_, _tmp1_, &_tmp2_, &_tmp3_);
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (username);
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ username = _tmp2_;
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (password);
+#line 123 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ password = _tmp3_;
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp4_ = scanner;
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ scanner_authorize (_tmp4_, username, password);
+#line 120 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (password);
+#line 120 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (username);
+#line 914 "simple-scan.c"
+}
+
+
+static Page* simple_scan_append_page (SimpleScan* self) {
+ Page* result = NULL;
+ Page* page = NULL;
+ Book* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ Page* _tmp3_ = NULL;
+ ScanDirection scan_direction = 0;
+ gboolean do_crop = FALSE;
+ gchar* named_crop = NULL;
+ gint width = 0;
+ gint height = 0;
+ gint dpi = 0;
+ gint cx = 0;
+ gint cy = 0;
+ gint cw = 0;
+ gint ch = 0;
+ Page* _tmp10_ = NULL;
+ gint _tmp43_ = 0;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+ ScanDirection _tmp46_ = 0;
+ Page* _tmp47_ = NULL;
+ Book* _tmp48_ = NULL;
+ Page* _tmp49_ = NULL;
+ gboolean _tmp50_ = FALSE;
+ UserInterface* _tmp60_ = NULL;
+ Page* _tmp61_ = NULL;
+ Page* _tmp62_ = NULL;
+#line 127 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 130 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = self->priv->book;
+#line 130 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = book_get_page (_tmp0_, -1);
+#line 130 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page = _tmp1_;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp3_ = page;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp3_ != NULL) {
+#line 959 "simple-scan.c"
+ Page* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp4_ = page;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp5_ = page_get_has_data (_tmp4_);
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp6_ = _tmp5_;
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = !_tmp6_;
+#line 971 "simple-scan.c"
+ } else {
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = FALSE;
+#line 975 "simple-scan.c"
+ }
+#line 131 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp2_) {
+#line 979 "simple-scan.c"
+ UserInterface* _tmp7_ = NULL;
+ Page* _tmp8_ = NULL;
+ Page* _tmp9_ = NULL;
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp7_ = self->priv->ui;
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp8_ = page;
+#line 133 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ user_interface_set_selected_page (_tmp7_, _tmp8_);
+#line 134 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp9_ = page;
+#line 134 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page_start (_tmp9_);
+#line 135 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = page;
+#line 135 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 997 "simple-scan.c"
+ }
+#line 139 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ scan_direction = SCAN_DIRECTION_TOP_TO_BOTTOM;
+#line 140 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ do_crop = FALSE;
+#line 141 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ named_crop = NULL;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ width = 100;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ height = 100;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ dpi = 100;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ cx = 0;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ cy = 0;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ cw = 0;
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ ch = 0;
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp10_ = page;
+#line 143 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp10_ != NULL) {
+#line 1023 "simple-scan.c"
+ Page* _tmp11_ = NULL;
+ ScanDirection _tmp12_ = 0;
+ ScanDirection _tmp13_ = 0;
+ Page* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ Page* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ Page* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ Page* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+ gboolean _tmp26_ = FALSE;
+#line 145 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp11_ = page;
+#line 145 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp12_ = page_get_scan_direction (_tmp11_);
+#line 145 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp13_ = _tmp12_;
+#line 145 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ scan_direction = _tmp13_;
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp14_ = page;
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp15_ = page_get_width (_tmp14_);
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp16_ = _tmp15_;
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ width = _tmp16_;
+#line 147 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp17_ = page;
+#line 147 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp18_ = page_get_height (_tmp17_);
+#line 147 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp19_ = _tmp18_;
+#line 147 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ height = _tmp19_;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp20_ = page;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp21_ = page_get_dpi (_tmp20_);
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp22_ = _tmp21_;
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ dpi = _tmp22_;
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp23_ = page;
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp24_ = page_get_has_crop (_tmp23_);
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp25_ = _tmp24_;
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ do_crop = _tmp25_;
+#line 151 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp26_ = do_crop;
+#line 151 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp26_) {
+#line 1084 "simple-scan.c"
+ Page* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ Page* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+ Page* _tmp34_ = NULL;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ Page* _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ Page* _tmp40_ = NULL;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp27_ = page;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp28_ = page_get_crop_name (_tmp27_);
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp29_ = _tmp28_;
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp30_ = g_strdup (_tmp29_);
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (named_crop);
+#line 153 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ named_crop = _tmp30_;
+#line 154 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp31_ = page;
+#line 154 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp32_ = page_get_crop_x (_tmp31_);
+#line 154 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp33_ = _tmp32_;
+#line 154 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ cx = _tmp33_;
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp34_ = page;
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp35_ = page_get_crop_y (_tmp34_);
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp36_ = _tmp35_;
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ cy = _tmp36_;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp37_ = page;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp38_ = page_get_crop_width (_tmp37_);
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp39_ = _tmp38_;
+#line 156 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ cw = _tmp39_;
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp40_ = page;
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp41_ = page_get_crop_height (_tmp40_);
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp42_ = _tmp41_;
+#line 157 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ ch = _tmp42_;
+#line 1145 "simple-scan.c"
+ }
+ }
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp43_ = width;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp44_ = height;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp45_ = dpi;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp46_ = scan_direction;
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp47_ = page_new (_tmp43_, _tmp44_, _tmp45_, _tmp46_);
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _page_unref0 (page);
+#line 161 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page = _tmp47_;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp48_ = self->priv->book;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp49_ = page;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ book_append_page (_tmp48_, _tmp49_);
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp50_ = do_crop;
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp50_) {
+#line 1172 "simple-scan.c"
+ const gchar* _tmp51_ = NULL;
+ Page* _tmp57_ = NULL;
+ gint _tmp58_ = 0;
+ gint _tmp59_ = 0;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp51_ = named_crop;
+#line 165 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp51_ != NULL) {
+#line 1181 "simple-scan.c"
+ Page* _tmp52_ = NULL;
+ const gchar* _tmp53_ = NULL;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp52_ = page;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp53_ = named_crop;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page_set_named_crop (_tmp52_, _tmp53_);
+#line 1190 "simple-scan.c"
+ } else {
+ Page* _tmp54_ = NULL;
+ gint _tmp55_ = 0;
+ gint _tmp56_ = 0;
+#line 170 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp54_ = page;
+#line 170 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp55_ = cw;
+#line 170 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp56_ = ch;
+#line 170 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page_set_custom_crop (_tmp54_, _tmp55_, _tmp56_);
+#line 1203 "simple-scan.c"
+ }
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp57_ = page;
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp58_ = cx;
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp59_ = cy;
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page_move_crop (_tmp57_, _tmp58_, _tmp59_);
+#line 1213 "simple-scan.c"
+ }
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp60_ = self->priv->ui;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp61_ = page;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ user_interface_set_selected_page (_tmp60_, _tmp61_);
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp62_ = page;
+#line 174 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page_start (_tmp62_);
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = page;
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (named_crop);
+#line 176 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 1231 "simple-scan.c"
+}
+
+
+static void simple_scan_scanner_new_page_cb (SimpleScan* self, Scanner* scanner) {
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+#line 179 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (self != NULL);
+#line 179 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (scanner != NULL);
+#line 181 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = simple_scan_append_page (self);
+#line 181 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = _tmp0_;
+#line 181 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _page_unref0 (_tmp1_);
+#line 1248 "simple-scan.c"
+}
+
+
+static gchar* simple_scan_get_profile_for_device (SimpleScan* self, const gchar* device_name) {
+ gchar* result = NULL;
+ gchar* device_id = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ CdClient* client = NULL;
+ CdClient* _tmp3_ = NULL;
+ CdDevice* device = NULL;
+ CdProfile* profile = NULL;
+ CdDevice* _tmp19_ = NULL;
+ CdProfile* _tmp20_ = NULL;
+ CdProfile* _tmp21_ = NULL;
+ CdProfile* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ CdProfile* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ CdProfile* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 184 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 184 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_val_if_fail (device_name != NULL, NULL);
+#line 187 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = device_name;
+#line 187 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = g_strdup_printf ("sane:%s", _tmp0_);
+#line 187 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ device_id = _tmp1_;
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = device_name;
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_debug ("simple-scan.vala:188: Getting color profile for device %s", _tmp2_);
+#line 190 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp3_ = cd_client_new ();
+#line 190 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ client = _tmp3_;
+#line 1295 "simple-scan.c"
+ {
+ CdClient* _tmp4_ = NULL;
+#line 193 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp4_ = client;
+#line 193 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ cd_client_connect_sync (_tmp4_, NULL, &_inner_error_);
+#line 193 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 1304 "simple-scan.c"
+ goto __catch4_g_error;
+ }
+ }
+ goto __finally4;
+ __catch4_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ e = _inner_error_;
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _inner_error_ = NULL;
+#line 197 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp5_ = e;
+#line 197 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp6_ = _tmp5_->message;
+#line 197 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_debug ("simple-scan.vala:197: Failed to connect to colord: %s", _tmp6_);
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = NULL;
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_error_free0 (e);
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (client);
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (device_id);
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 1334 "simple-scan.c"
+ }
+ __finally4:
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (client);
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (device_id);
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_clear_error (&_inner_error_);
+#line 191 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return NULL;
+#line 1349 "simple-scan.c"
+ }
+ {
+ CdDevice* _tmp7_ = NULL;
+ CdClient* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ CdDevice* _tmp10_ = NULL;
+ CdDevice* _tmp11_ = NULL;
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp8_ = client;
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp9_ = device_id;
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp10_ = cd_client_find_device_by_property_sync (_tmp8_, CD_DEVICE_PROPERTY_SERIAL, _tmp9_, NULL, &_inner_error_);
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp7_ = _tmp10_;
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 1367 "simple-scan.c"
+ goto __catch5_g_error;
+ }
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp11_ = _tmp7_;
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp7_ = NULL;
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (device);
+#line 204 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ device = _tmp11_;
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (_tmp7_);
+#line 1380 "simple-scan.c"
+ }
+ goto __finally5;
+ __catch5_g_error:
+ {
+ GError* e = NULL;
+ const gchar* _tmp12_ = NULL;
+ GError* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ e = _inner_error_;
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _inner_error_ = NULL;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp12_ = device_name;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp13_ = e;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp14_ = _tmp13_->message;
+#line 208 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_debug ("simple-scan.vala:208: Unable to find colord device %s: %s", _tmp12_, _tmp14_);
+#line 209 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = NULL;
+#line 209 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_error_free0 (e);
+#line 209 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (device);
+#line 209 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (client);
+#line 209 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (device_id);
+#line 209 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 1413 "simple-scan.c"
+ }
+ __finally5:
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (device);
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (client);
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (device_id);
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_clear_error (&_inner_error_);
+#line 202 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return NULL;
+#line 1430 "simple-scan.c"
+ }
+ {
+ CdDevice* _tmp15_ = NULL;
+#line 214 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp15_ = device;
+#line 214 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ cd_device_connect_sync (_tmp15_, NULL, &_inner_error_);
+#line 214 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 1440 "simple-scan.c"
+ goto __catch6_g_error;
+ }
+ }
+ goto __finally6;
+ __catch6_g_error:
+ {
+ GError* e = NULL;
+ const gchar* _tmp16_ = NULL;
+ GError* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ e = _inner_error_;
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _inner_error_ = NULL;
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp16_ = device_name;
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp17_ = e;
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp18_ = _tmp17_->message;
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_debug ("simple-scan.vala:218: Failed to get properties from the device %s: %s", _tmp16_, _tmp18_);
+#line 219 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = NULL;
+#line 219 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_error_free0 (e);
+#line 219 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (device);
+#line 219 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (client);
+#line 219 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (device_id);
+#line 219 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 1475 "simple-scan.c"
+ }
+ __finally6:
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (device);
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (client);
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (device_id);
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_clear_error (&_inner_error_);
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return NULL;
+#line 1492 "simple-scan.c"
+ }
+#line 222 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp19_ = device;
+#line 222 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp20_ = cd_device_get_default_profile (_tmp19_);
+#line 222 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ profile = _tmp20_;
+#line 223 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp21_ = profile;
+#line 223 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp21_ == NULL) {
+#line 1504 "simple-scan.c"
+ const gchar* _tmp22_ = NULL;
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp22_ = device_name;
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_debug ("simple-scan.vala:225: No default color profile for device: %s", _tmp22_);
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = NULL;
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (profile);
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (device);
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (client);
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (device_id);
+#line 226 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 1522 "simple-scan.c"
+ }
+ {
+ CdProfile* _tmp23_ = NULL;
+#line 231 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp23_ = profile;
+#line 231 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ cd_profile_connect_sync (_tmp23_, NULL, &_inner_error_);
+#line 231 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 1532 "simple-scan.c"
+ goto __catch7_g_error;
+ }
+ }
+ goto __finally7;
+ __catch7_g_error:
+ {
+ GError* e = NULL;
+ const gchar* _tmp24_ = NULL;
+ GError* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ e = _inner_error_;
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _inner_error_ = NULL;
+#line 235 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp24_ = device_name;
+#line 235 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp25_ = e;
+#line 235 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp26_ = _tmp25_->message;
+#line 235 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_debug ("simple-scan.vala:235: Failed to get properties from the profile %s: %s", _tmp24_, _tmp26_);
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = NULL;
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_error_free0 (e);
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (profile);
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (device);
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (client);
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (device_id);
+#line 236 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 1569 "simple-scan.c"
+ }
+ __finally7:
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (profile);
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (device);
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (client);
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (device_id);
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_clear_error (&_inner_error_);
+#line 229 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return NULL;
+#line 1588 "simple-scan.c"
+ }
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp27_ = profile;
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp28_ = cd_profile_get_filename (_tmp27_);
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp29_ = _tmp28_;
+#line 239 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp29_ == NULL) {
+#line 1598 "simple-scan.c"
+ const gchar* _tmp30_ = NULL;
+#line 241 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp30_ = device_name;
+#line 241 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_debug ("simple-scan.vala:241: No icc color profile for the device %s", _tmp30_);
+#line 242 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = NULL;
+#line 242 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (profile);
+#line 242 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (device);
+#line 242 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (client);
+#line 242 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (device_id);
+#line 242 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 1616 "simple-scan.c"
+ }
+#line 245 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp31_ = profile;
+#line 245 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp32_ = cd_profile_get_filename (_tmp31_);
+#line 245 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp33_ = _tmp32_;
+#line 245 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp34_ = device_name;
+#line 245 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_debug ("simple-scan.vala:245: Using color profile %s for device %s", _tmp33_, _tmp34_);
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp35_ = profile;
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp36_ = cd_profile_get_filename (_tmp35_);
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp37_ = _tmp36_;
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp38_ = g_strdup (_tmp37_);
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = _tmp38_;
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (profile);
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (device);
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (client);
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (device_id);
+#line 246 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 1648 "simple-scan.c"
+}
+
+
+static void simple_scan_scanner_page_info_cb (SimpleScan* self, Scanner* scanner, ScanPageInfo* info) {
+ ScanPageInfo* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ ScanPageInfo* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ ScanPageInfo* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ Page* page = NULL;
+ Page* _tmp6_ = NULL;
+ ScanPageInfo* _tmp7_ = NULL;
+ ScanPageInfo* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 252 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (self != NULL);
+#line 252 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (scanner != NULL);
+#line 252 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (info != NULL);
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = info;
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = _tmp0_->width;
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = info;
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp3_ = _tmp2_->height;
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp4_ = info;
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp5_ = _tmp4_->depth;
+#line 254 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_debug ("simple-scan.vala:254: Page is %d pixels wide, %d pixels high, %d bits " \
+"per pixel", _tmp1_, _tmp3_, _tmp5_);
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp6_ = simple_scan_append_page (self);
+#line 258 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page = _tmp6_;
+#line 259 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp7_ = info;
+#line 259 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page_set_page_info (page, _tmp7_);
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp8_ = info;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp9_ = _tmp8_->device;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp10_ = simple_scan_get_profile_for_device (self, _tmp9_);
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp11_ = _tmp10_;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page_set_color_profile (page, _tmp11_);
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (_tmp11_);
+#line 252 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _page_unref0 (page);
+#line 1708 "simple-scan.c"
+}
+
+
+static void simple_scan_scanner_line_cb (SimpleScan* self, Scanner* scanner, ScanLine* line) {
+ Page* page = NULL;
+ Book* _tmp0_ = NULL;
+ Book* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ guint _tmp3_ = 0U;
+ Page* _tmp4_ = NULL;
+ ScanLine* _tmp5_ = NULL;
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (self != NULL);
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (scanner != NULL);
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (line != NULL);
+#line 269 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = self->priv->book;
+#line 269 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = self->priv->book;
+#line 269 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = book_get_n_pages (_tmp1_);
+#line 269 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp3_ = _tmp2_;
+#line 269 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp4_ = book_get_page (_tmp0_, ((gint) _tmp3_) - 1);
+#line 269 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page = _tmp4_;
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp5_ = line;
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page_parse_scan_line (page, _tmp5_);
+#line 267 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _page_unref0 (page);
+#line 1744 "simple-scan.c"
+}
+
+
+static void simple_scan_scanner_page_done_cb (SimpleScan* self, Scanner* scanner) {
+ Page* page = NULL;
+ Book* _tmp0_ = NULL;
+ Book* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ guint _tmp3_ = 0U;
+ Page* _tmp4_ = NULL;
+#line 273 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (self != NULL);
+#line 273 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (scanner != NULL);
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = self->priv->book;
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = self->priv->book;
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = book_get_n_pages (_tmp1_);
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp3_ = _tmp2_;
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp4_ = book_get_page (_tmp0_, ((gint) _tmp3_) - 1);
+#line 275 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page = _tmp4_;
+#line 276 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page_finish (page);
+#line 273 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _page_unref0 (page);
+#line 1775 "simple-scan.c"
+}
+
+
+static void simple_scan_remove_empty_page (SimpleScan* self) {
+ Page* page = NULL;
+ Book* _tmp0_ = NULL;
+ Book* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ guint _tmp3_ = 0U;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (self != NULL);
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = self->priv->book;
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = self->priv->book;
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = book_get_n_pages (_tmp1_);
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp3_ = _tmp2_;
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp4_ = book_get_page (_tmp0_, ((gint) _tmp3_) - 1);
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page = _tmp4_;
+#line 282 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp5_ = page;
+#line 282 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp6_ = page_get_has_data (_tmp5_);
+#line 282 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp7_ = _tmp6_;
+#line 282 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (!_tmp7_) {
+#line 1811 "simple-scan.c"
+ Book* _tmp8_ = NULL;
+ Page* _tmp9_ = NULL;
+#line 283 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp8_ = self->priv->book;
+#line 283 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp9_ = page;
+#line 283 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ book_delete_page (_tmp8_, _tmp9_);
+#line 1820 "simple-scan.c"
+ }
+#line 279 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _page_unref0 (page);
+#line 1824 "simple-scan.c"
+}
+
+
+static void simple_scan_scanner_document_done_cb (SimpleScan* self, Scanner* scanner) {
+#line 286 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (self != NULL);
+#line 286 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (scanner != NULL);
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_remove_empty_page (self);
+#line 1835 "simple-scan.c"
+}
+
+
+static void simple_scan_scanner_failed_cb (SimpleScan* self, Scanner* scanner, gint error_code, const gchar* error_string) {
+ gint _tmp0_ = 0;
+#line 291 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (self != NULL);
+#line 291 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (scanner != NULL);
+#line 291 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (error_string != NULL);
+#line 293 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_remove_empty_page (self);
+#line 294 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = error_code;
+#line 294 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp0_ != ((gint) SANE_STATUS_CANCELLED)) {
+#line 1853 "simple-scan.c"
+ UserInterface* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = self->priv->ui;
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = _ ("Failed to scan");
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp3_ = error_string;
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp4_ = self->priv->have_devices;
+#line 296 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ user_interface_show_error (_tmp1_, _tmp2_, _tmp3_, _tmp4_);
+#line 1868 "simple-scan.c"
+ }
+}
+
+
+static void simple_scan_scanner_scanning_changed_cb (SimpleScan* self, Scanner* scanner) {
+ UserInterface* _tmp0_ = NULL;
+ Scanner* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (self != NULL);
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (scanner != NULL);
+#line 305 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = self->priv->ui;
+#line 305 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = scanner;
+#line 305 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = scanner_is_scanning (_tmp1_);
+#line 305 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ user_interface_set_scanning (_tmp0_, _tmp2_);
+#line 1889 "simple-scan.c"
+}
+
+
+static void simple_scan_scan_cb (SimpleScan* self, UserInterface* ui, const gchar* device, ScanOptions* options) {
+ ScanOptions* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ const gchar* _tmp2_ = NULL;
+ Scanner* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gchar* filename_prefix = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* extension = NULL;
+ ScanOptions* _tmp9_ = NULL;
+ ScanMode _tmp10_ = 0;
+ gchar* filename = NULL;
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ UserInterface* _tmp16_ = NULL;
+ Scanner* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ ScanOptions* _tmp19_ = NULL;
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (self != NULL);
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (ui != NULL);
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (options != NULL);
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = options;
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = _tmp0_->dpi;
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = device;
+#line 310 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_debug ("simple-scan.vala:310: Requesting scan at %d dpi from device '%s'", _tmp1_, _tmp2_);
+#line 312 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp3_ = self->priv->scanner;
+#line 312 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp4_ = scanner_is_scanning (_tmp3_);
+#line 312 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (!_tmp4_) {
+#line 1933 "simple-scan.c"
+ Page* _tmp5_ = NULL;
+ Page* _tmp6_ = NULL;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp5_ = simple_scan_append_page (self);
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp6_ = _tmp5_;
+#line 313 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _page_unref0 (_tmp6_);
+#line 1942 "simple-scan.c"
+ }
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp7_ = _ ("Scanned Document");
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp8_ = g_strdup (_tmp7_);
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ filename_prefix = _tmp8_;
+#line 318 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp9_ = options;
+#line 318 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp10_ = _tmp9_->scan_mode;
+#line 318 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp10_ == SCAN_MODE_COLOR) {
+#line 1956 "simple-scan.c"
+ gchar* _tmp11_ = NULL;
+#line 319 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp11_ = g_strdup ("jpg");
+#line 319 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (extension);
+#line 319 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ extension = _tmp11_;
+#line 1964 "simple-scan.c"
+ } else {
+ gchar* _tmp12_ = NULL;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp12_ = g_strdup ("pdf");
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (extension);
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ extension = _tmp12_;
+#line 1973 "simple-scan.c"
+ }
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp13_ = filename_prefix;
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp14_ = extension;
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp15_ = g_strdup_printf ("%s.%s", _tmp13_, _tmp14_);
+#line 322 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ filename = _tmp15_;
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp16_ = ui;
+#line 323 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ user_interface_set_default_file_name (_tmp16_, filename);
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp17_ = self->priv->scanner;
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp18_ = device;
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp19_ = options;
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ scanner_scan (_tmp17_, _tmp18_, _tmp19_);
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (filename);
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (extension);
+#line 308 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (filename_prefix);
+#line 2001 "simple-scan.c"
+}
+
+
+static void simple_scan_cancel_cb (SimpleScan* self, UserInterface* ui) {
+ Scanner* _tmp0_ = NULL;
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (self != NULL);
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (ui != NULL);
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = self->priv->scanner;
+#line 329 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ scanner_cancel (_tmp0_);
+#line 2015 "simple-scan.c"
+}
+
+
+static gchar* simple_scan_get_temporary_filename (SimpleScan* self, const gchar* prefix, const gchar* extension) {
+ gchar* result = NULL;
+ gchar* filename = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* path = NULL;
+ GError * _inner_error_ = NULL;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_val_if_fail (prefix != NULL, NULL);
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_val_if_fail (extension != NULL, NULL);
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = prefix;
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = extension;
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = g_strdup_printf ("%sXXXXXX.%s", _tmp0_, _tmp1_);
+#line 337 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ filename = _tmp2_;
+#line 2041 "simple-scan.c"
+ {
+ gint fd = 0;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp3_ = filename;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp5_ = g_file_open_tmp (_tmp3_, &_tmp4_, &_inner_error_);
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (path);
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ path = _tmp4_;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fd = _tmp5_;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 2060 "simple-scan.c"
+ goto __catch8_g_error;
+ }
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp6_ = fd;
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ close (_tmp6_);
+#line 2067 "simple-scan.c"
+ }
+ goto __finally8;
+ __catch8_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ e = _inner_error_;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _inner_error_ = NULL;
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp7_ = e;
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp8_ = _tmp7_->message;
+#line 346 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_warning ("simple-scan.vala:346: Error saving email attachment: %s", _tmp8_);
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = NULL;
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_error_free0 (e);
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (path);
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (filename);
+#line 347 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 2095 "simple-scan.c"
+ }
+ __finally8:
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (path);
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (filename);
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_clear_error (&_inner_error_);
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return NULL;
+#line 2110 "simple-scan.c"
+ }
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = path;
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (filename);
+#line 350 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 2118 "simple-scan.c"
+}
+
+
+static void simple_scan_email_cb (SimpleScan* self, UserInterface* ui, const gchar* profile, gint quality) {
+ gboolean saved = FALSE;
+ gchar* command_line = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp42_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 353 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (self != NULL);
+#line 353 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (ui != NULL);
+#line 353 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (profile != NULL);
+#line 355 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ saved = FALSE;
+#line 356 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = g_strdup ("xdg-email");
+#line 356 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ command_line = _tmp0_;
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = profile;
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (g_strcmp0 (_tmp1_, "text") == 0) {
+#line 2145 "simple-scan.c"
+ gchar* path = NULL;
+ gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 362 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = simple_scan_get_temporary_filename (self, "scan", "pdf");
+#line 362 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ path = _tmp2_;
+#line 363 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp3_ = path;
+#line 363 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp3_ != NULL) {
+#line 2157 "simple-scan.c"
+ GFile* file = NULL;
+ const gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ UserInterface* _tmp6_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp4_ = path;
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp5_ = g_file_new_for_path (_tmp4_);
+#line 365 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ file = _tmp5_;
+#line 366 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp6_ = ui;
+#line 366 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ user_interface_show_progress_dialog (_tmp6_);
+#line 2177 "simple-scan.c"
+ {
+ Book* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ GFile* _tmp9_ = NULL;
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp7_ = self->priv->book;
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp8_ = quality;
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp9_ = file;
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ book_save (_tmp7_, "pdf", _tmp8_, _tmp9_, &_inner_error_);
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 2192 "simple-scan.c"
+ goto __catch9_g_error;
+ }
+ }
+ goto __finally9;
+ __catch9_g_error:
+ {
+ GError* e = NULL;
+ UserInterface* _tmp10_ = NULL;
+ GError* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ e = _inner_error_;
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _inner_error_ = NULL;
+#line 373 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp10_ = ui;
+#line 373 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ user_interface_hide_progress_dialog (_tmp10_);
+#line 374 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp11_ = e;
+#line 374 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp12_ = _tmp11_->message;
+#line 374 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_warning ("simple-scan.vala:374: Unable to save email file: %s", _tmp12_);
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_error_free0 (e);
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (file);
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (path);
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (command_line);
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return;
+#line 2227 "simple-scan.c"
+ }
+ __finally9:
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (file);
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (path);
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (command_line);
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_clear_error (&_inner_error_);
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return;
+#line 2244 "simple-scan.c"
+ }
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp13_ = command_line;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp14_ = path;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp15_ = g_strdup_printf (" --attach %s", _tmp14_);
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp16_ = _tmp15_;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp17_ = g_strconcat (_tmp13_, _tmp16_, NULL);
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (command_line);
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ command_line = _tmp17_;
+#line 377 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (_tmp16_);
+#line 363 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (file);
+#line 2264 "simple-scan.c"
+ }
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (path);
+#line 2268 "simple-scan.c"
+ } else {
+ {
+ gint i = 0;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ i = 0;
+#line 2274 "simple-scan.c"
+ {
+ gboolean _tmp18_ = FALSE;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp18_ = TRUE;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ while (TRUE) {
+#line 2281 "simple-scan.c"
+ gint _tmp20_ = 0;
+ Book* _tmp21_ = NULL;
+ guint _tmp22_ = 0U;
+ guint _tmp23_ = 0U;
+ gchar* path = NULL;
+ gchar* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ GFile* file = NULL;
+ const gchar* _tmp26_ = NULL;
+ GFile* _tmp27_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gboolean _tmp41_ = FALSE;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (!_tmp18_) {
+#line 2300 "simple-scan.c"
+ gint _tmp19_ = 0;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp19_ = i;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ i = _tmp19_ + 1;
+#line 2306 "simple-scan.c"
+ }
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp18_ = FALSE;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp20_ = i;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp21_ = self->priv->book;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp22_ = book_get_n_pages (_tmp21_);
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp23_ = _tmp22_;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (!(((guint) _tmp20_) < _tmp23_)) {
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 2322 "simple-scan.c"
+ }
+#line 384 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp24_ = simple_scan_get_temporary_filename (self, "scan", "jpg");
+#line 384 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ path = _tmp24_;
+#line 385 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp25_ = path;
+#line 385 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp25_ == NULL) {
+#line 387 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ saved = FALSE;
+#line 388 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (path);
+#line 388 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 2338 "simple-scan.c"
+ }
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp26_ = path;
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp27_ = g_file_new_for_path (_tmp26_);
+#line 391 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ file = _tmp27_;
+#line 2346 "simple-scan.c"
+ {
+ Book* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ Page* _tmp30_ = NULL;
+ Page* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ GFile* _tmp33_ = NULL;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp28_ = self->priv->book;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp29_ = i;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp30_ = book_get_page (_tmp28_, _tmp29_);
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp31_ = _tmp30_;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp32_ = quality;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp33_ = file;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ page_save (_tmp31_, "jpeg", _tmp32_, _tmp33_, &_inner_error_);
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _page_unref0 (_tmp31_);
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 2372 "simple-scan.c"
+ goto __catch10_g_error;
+ }
+ }
+ goto __finally10;
+ __catch10_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ e = _inner_error_;
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _inner_error_ = NULL;
+#line 398 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp34_ = e;
+#line 398 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp35_ = _tmp34_->message;
+#line 398 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_warning ("simple-scan.vala:398: Unable to save email file: %s", _tmp35_);
+#line 399 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_error_free0 (e);
+#line 399 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (file);
+#line 399 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (path);
+#line 399 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (command_line);
+#line 399 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return;
+#line 2402 "simple-scan.c"
+ }
+ __finally10:
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (file);
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (path);
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (command_line);
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_clear_error (&_inner_error_);
+#line 392 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return;
+#line 2419 "simple-scan.c"
+ }
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp36_ = command_line;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp37_ = path;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp38_ = g_strdup_printf (" --attach %s", _tmp37_);
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp39_ = _tmp38_;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp40_ = g_strconcat (_tmp36_, _tmp39_, NULL);
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (command_line);
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ command_line = _tmp40_;
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (_tmp39_);
+#line 403 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp41_ = saved;
+#line 403 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (!_tmp41_) {
+#line 404 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (file);
+#line 404 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (path);
+#line 404 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 2447 "simple-scan.c"
+ }
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (file);
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (path);
+#line 2453 "simple-scan.c"
+ }
+ }
+ }
+ }
+#line 408 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp42_ = command_line;
+#line 408 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_debug ("simple-scan.vala:408: Launching email client: %s", _tmp42_);
+#line 2462 "simple-scan.c"
+ {
+ const gchar* _tmp43_ = NULL;
+#line 411 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp43_ = command_line;
+#line 411 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_spawn_command_line_async (_tmp43_, &_inner_error_);
+#line 411 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 2471 "simple-scan.c"
+ goto __catch11_g_error;
+ }
+ }
+ goto __finally11;
+ __catch11_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ e = _inner_error_;
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _inner_error_ = NULL;
+#line 415 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp44_ = e;
+#line 415 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp45_ = _tmp44_->message;
+#line 415 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_warning ("simple-scan.vala:415: Unable to start email: %s", _tmp45_);
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_error_free0 (e);
+#line 2493 "simple-scan.c"
+ }
+ __finally11:
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (command_line);
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_clear_error (&_inner_error_);
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return;
+#line 2506 "simple-scan.c"
+ }
+#line 353 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (command_line);
+#line 2510 "simple-scan.c"
+}
+
+
+static void simple_scan_log_cb (const gchar* log_domain, GLogLevelFlags log_level, const gchar* message) {
+ gchar* prefix = NULL;
+ GLogLevelFlags _tmp0_ = 0;
+ FILE* _tmp8_ = NULL;
+ GTimer* _tmp9_ = NULL;
+ gdouble _tmp10_ = 0.0;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 419 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (message != NULL);
+#line 423 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = log_level;
+#line 423 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ switch (_tmp0_ & G_LOG_LEVEL_MASK) {
+#line 423 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ case G_LOG_LEVEL_ERROR:
+#line 2531 "simple-scan.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 426 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = g_strdup ("ERROR:");
+#line 426 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (prefix);
+#line 426 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ prefix = _tmp1_;
+#line 427 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 2542 "simple-scan.c"
+ }
+#line 423 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ case G_LOG_LEVEL_CRITICAL:
+#line 2546 "simple-scan.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 429 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = g_strdup ("CRITICAL:");
+#line 429 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (prefix);
+#line 429 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ prefix = _tmp2_;
+#line 430 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 2557 "simple-scan.c"
+ }
+#line 423 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ case G_LOG_LEVEL_WARNING:
+#line 2561 "simple-scan.c"
+ {
+ gchar* _tmp3_ = NULL;
+#line 432 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp3_ = g_strdup ("WARNING:");
+#line 432 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (prefix);
+#line 432 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ prefix = _tmp3_;
+#line 433 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 2572 "simple-scan.c"
+ }
+#line 423 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ case G_LOG_LEVEL_MESSAGE:
+#line 2576 "simple-scan.c"
+ {
+ gchar* _tmp4_ = NULL;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp4_ = g_strdup ("MESSAGE:");
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (prefix);
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ prefix = _tmp4_;
+#line 436 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 2587 "simple-scan.c"
+ }
+#line 423 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ case G_LOG_LEVEL_INFO:
+#line 2591 "simple-scan.c"
+ {
+ gchar* _tmp5_ = NULL;
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp5_ = g_strdup ("INFO:");
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (prefix);
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ prefix = _tmp5_;
+#line 439 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 2602 "simple-scan.c"
+ }
+#line 423 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ case G_LOG_LEVEL_DEBUG:
+#line 2606 "simple-scan.c"
+ {
+ gchar* _tmp6_ = NULL;
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp6_ = g_strdup ("DEBUG:");
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (prefix);
+#line 441 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ prefix = _tmp6_;
+#line 442 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 2617 "simple-scan.c"
+ }
+ default:
+ {
+ gchar* _tmp7_ = NULL;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp7_ = g_strdup ("LOG:");
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (prefix);
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ prefix = _tmp7_;
+#line 445 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 2630 "simple-scan.c"
+ }
+ }
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp8_ = simple_scan_log_file;
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp9_ = simple_scan_log_timer;
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp10_ = g_timer_elapsed (_tmp9_, NULL);
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp11_ = prefix;
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp12_ = message;
+#line 448 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fprintf (_tmp8_, "[%+.2fs] %s %s\n", _tmp10_, _tmp11_, _tmp12_);
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp13_ = simple_scan_debug_enabled;
+#line 449 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp13_) {
+#line 2649 "simple-scan.c"
+ FILE* _tmp14_ = NULL;
+ GTimer* _tmp15_ = NULL;
+ gdouble _tmp16_ = 0.0;
+ const gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp14_ = stderr;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp15_ = simple_scan_log_timer;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp16_ = g_timer_elapsed (_tmp15_, NULL);
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp17_ = prefix;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp18_ = message;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fprintf (_tmp14_, "[%+.2fs] %s %s\n", _tmp16_, _tmp17_, _tmp18_);
+#line 2667 "simple-scan.c"
+ }
+#line 419 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (prefix);
+#line 2671 "simple-scan.c"
+}
+
+
+static void simple_scan_on_uevent (SimpleScan* self, GUdevClient* client, const gchar* action, GUdevDevice* device) {
+ Scanner* _tmp0_ = NULL;
+#line 453 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (self != NULL);
+#line 453 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (client != NULL);
+#line 453 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (action != NULL);
+#line 453 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (device != NULL);
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = self->priv->scanner;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ scanner_redetect (_tmp0_);
+#line 2689 "simple-scan.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1193 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1193 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1193 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1193 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1194 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1194 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 2712 "simple-scan.c"
+ glong _tmp4_ = 0L;
+#line 1195 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1195 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1195 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 2720 "simple-scan.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1197 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1197 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1197 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1197 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 2732 "simple-scan.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1204 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1206 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1206 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 2756 "simple-scan.c"
+ glong _tmp2_ = 0L;
+#line 1206 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1206 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 2762 "simple-scan.c"
+ } else {
+#line 1206 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 2766 "simple-scan.c"
+ }
+#line 1206 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 2770 "simple-scan.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1208 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1208 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1208 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1208 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 2782 "simple-scan.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1210 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1210 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1210 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 2792 "simple-scan.c"
+ }
+#line 1213 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1213 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 2798 "simple-scan.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1214 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1214 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1214 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1215 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1215 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 2812 "simple-scan.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1217 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1217 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1217 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 2822 "simple-scan.c"
+ }
+#line 1219 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1219 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 2828 "simple-scan.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1220 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1220 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1220 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 2837 "simple-scan.c"
+ }
+#line 1222 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1222 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1222 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1222 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1223 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1223 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1223 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1223 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1223 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 2857 "simple-scan.c"
+}
+
+
+static void simple_scan_fix_pdf (const gchar* filename, GError** error) {
+ guint8* data = NULL;
+ gint data_length1 = 0;
+ gint _data_size_ = 0;
+ const gchar* _tmp0_ = NULL;
+ guint8* _tmp1_ = NULL;
+ size_t _tmp2_;
+ FILE* fixed_file = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ FILE* _tmp6_ = NULL;
+ FILE* _tmp7_ = NULL;
+ gint offset = 0;
+ gint line_number = 0;
+ gint xref_offset = 0;
+ gint xref_line = 0;
+ gint startxref_line = 0;
+ gint fixed_size = 0;
+ GString* line = NULL;
+ GString* _tmp8_ = NULL;
+ const gchar* _tmp102_ = NULL;
+ const gchar* _tmp103_ = NULL;
+ gchar* _tmp104_ = NULL;
+ gchar* _tmp105_ = NULL;
+ gint _tmp106_ = 0;
+ gboolean _tmp107_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 458 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_return_if_fail (filename != NULL);
+#line 461 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = filename;
+#line 461 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_file_get_contents (_tmp0_, (gchar**) (&_tmp1_), &_tmp2_, &_inner_error_);
+#line 461 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ data = (g_free (data), NULL);
+#line 461 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ data = _tmp1_;
+#line 461 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ data_length1 = _tmp2_;
+#line 461 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _data_size_ = data_length1;
+#line 461 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 461 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_propagate_error (error, _inner_error_);
+#line 461 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ data = (g_free (data), NULL);
+#line 461 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return;
+#line 2911 "simple-scan.c"
+ }
+#line 463 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp3_ = filename;
+#line 463 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp4_ = g_strconcat (_tmp3_, ".fixed", NULL);
+#line 463 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp5_ = _tmp4_;
+#line 463 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp6_ = g_fopen (_tmp5_, "w");
+#line 463 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp7_ = _tmp6_;
+#line 463 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (_tmp5_);
+#line 463 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fixed_file = _tmp7_;
+#line 465 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ offset = 0;
+#line 466 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ line_number = 0;
+#line 467 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ xref_offset = 0;
+#line 468 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ xref_line = -1;
+#line 469 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ startxref_line = -1;
+#line 470 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fixed_size = -1;
+#line 471 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp8_ = g_string_new ("");
+#line 471 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ line = _tmp8_;
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ while (TRUE) {
+#line 2945 "simple-scan.c"
+ gint _tmp9_ = 0;
+ gint end_offset = 0;
+ gint _tmp10_ = 0;
+ GString* _tmp11_ = NULL;
+ GString* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ GString* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gboolean _tmp25_ = FALSE;
+ gint _tmp26_ = 0;
+ gint _tmp100_ = 0;
+ gint _tmp101_ = 0;
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp9_ = offset;
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (!(_tmp9_ < data_length1)) {
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 2964 "simple-scan.c"
+ }
+#line 474 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp10_ = offset;
+#line 474 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ end_offset = _tmp10_;
+#line 475 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp11_ = line;
+#line 475 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_string_assign (_tmp11_, "");
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ while (TRUE) {
+#line 2976 "simple-scan.c"
+ gint _tmp12_ = 0;
+ guint8 c = 0U;
+ gint _tmp13_ = 0;
+ guint8 _tmp14_ = 0U;
+ GString* _tmp15_ = NULL;
+ guint8 _tmp16_ = 0U;
+ gint _tmp17_ = 0;
+ guint8 _tmp18_ = 0U;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp12_ = end_offset;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (!(_tmp12_ < data_length1)) {
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 2991 "simple-scan.c"
+ }
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp13_ = end_offset;
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp14_ = data[_tmp13_];
+#line 478 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ c = _tmp14_;
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp15_ = line;
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp16_ = c;
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_string_append_c (_tmp15_, (gchar) _tmp16_);
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp17_ = end_offset;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ end_offset = _tmp17_ + 1;
+#line 481 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp18_ = c;
+#line 481 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp18_ == ((guint8) '\n')) {
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 3015 "simple-scan.c"
+ }
+ }
+#line 485 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp19_ = line;
+#line 485 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp20_ = _tmp19_->str;
+#line 485 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (g_strcmp0 (_tmp20_, "startxref\n") == 0) {
+#line 3024 "simple-scan.c"
+ gint _tmp21_ = 0;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp21_ = line_number;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ startxref_line = _tmp21_;
+#line 3030 "simple-scan.c"
+ }
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp22_ = line;
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp23_ = _tmp22_->str;
+#line 488 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (g_strcmp0 (_tmp23_, "xref\n") == 0) {
+#line 3038 "simple-scan.c"
+ gint _tmp24_ = 0;
+#line 489 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp24_ = line_number;
+#line 489 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ xref_line = _tmp24_;
+#line 3044 "simple-scan.c"
+ }
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp26_ = line_number;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp26_ < 2) {
+#line 3050 "simple-scan.c"
+ GString* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp27_ = line;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp28_ = _tmp27_->str;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp29_ = g_str_has_prefix (_tmp28_, "%%");
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp25_ = _tmp29_;
+#line 3062 "simple-scan.c"
+ } else {
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp25_ = FALSE;
+#line 3066 "simple-scan.c"
+ }
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp25_) {
+#line 3070 "simple-scan.c"
+ gint _tmp30_ = 0;
+ FILE* _tmp31_ = NULL;
+ GString* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp30_ = xref_offset;
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ xref_offset = _tmp30_ - 1;
+#line 495 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp31_ = fixed_file;
+#line 495 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp32_ = line;
+#line 495 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp33_ = _tmp32_->str;
+#line 495 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp34_ = string_substring (_tmp33_, (glong) 1, (glong) (-1));
+#line 495 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp35_ = _tmp34_;
+#line 495 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fprintf (_tmp31_, "%s", _tmp35_);
+#line 495 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (_tmp35_);
+#line 3095 "simple-scan.c"
+ } else {
+ gboolean _tmp36_ = FALSE;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp37_ = line_number;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp38_ = xref_line;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp37_ == (_tmp38_ + 1)) {
+#line 3106 "simple-scan.c"
+ GString* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ gboolean _tmp41_ = FALSE;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp39_ = line;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp40_ = _tmp39_->str;
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp41_ = g_str_has_prefix (_tmp40_, "1 ");
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp36_ = _tmp41_;
+#line 3118 "simple-scan.c"
+ } else {
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp36_ = FALSE;
+#line 3122 "simple-scan.c"
+ }
+#line 499 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp36_) {
+#line 3126 "simple-scan.c"
+ GString* _tmp42_ = NULL;
+ const gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gint _tmp46_ = 0;
+ FILE* _tmp47_ = NULL;
+ gint _tmp48_ = 0;
+ FILE* _tmp49_ = NULL;
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp42_ = line;
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp43_ = _tmp42_->str;
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp44_ = string_substring (_tmp43_, (glong) 2, (glong) (-1));
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp45_ = _tmp44_;
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp46_ = atoi (_tmp45_);
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fixed_size = _tmp46_ + 1;
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (_tmp45_);
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp47_ = fixed_file;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp48_ = fixed_size;
+#line 502 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fprintf (_tmp47_, "0 %d\n", _tmp48_);
+#line 503 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp49_ = fixed_file;
+#line 503 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fprintf (_tmp49_, "0000000000 65535 f \n");
+#line 3159 "simple-scan.c"
+ } else {
+ gboolean _tmp50_ = FALSE;
+ gint _tmp51_ = 0;
+ gint _tmp52_ = 0;
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp51_ = line_number;
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp52_ = xref_line;
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp51_ > _tmp52_) {
+#line 3170 "simple-scan.c"
+ GString* _tmp53_ = NULL;
+ const gchar* _tmp54_ = NULL;
+ gboolean _tmp55_ = FALSE;
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp53_ = line;
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp54_ = _tmp53_->str;
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp55_ = g_str_has_suffix (_tmp54_, " 0000 n\n");
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp50_ = _tmp55_;
+#line 3182 "simple-scan.c"
+ } else {
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp50_ = FALSE;
+#line 3186 "simple-scan.c"
+ }
+#line 507 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp50_) {
+#line 3190 "simple-scan.c"
+ FILE* _tmp56_ = NULL;
+ GString* _tmp57_ = NULL;
+ const gchar* _tmp58_ = NULL;
+ gint _tmp59_ = 0;
+ gint _tmp60_ = 0;
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp56_ = fixed_file;
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp57_ = line;
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp58_ = _tmp57_->str;
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp59_ = atoi (_tmp58_);
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp60_ = xref_offset;
+#line 508 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fprintf (_tmp56_, "%010d 00000 n \n", _tmp59_ + _tmp60_);
+#line 3208 "simple-scan.c"
+ } else {
+ gboolean _tmp61_ = FALSE;
+ gint _tmp62_ = 0;
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp62_ = startxref_line;
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp62_ > 0) {
+#line 3216 "simple-scan.c"
+ gint _tmp63_ = 0;
+ gint _tmp64_ = 0;
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp63_ = line_number;
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp64_ = startxref_line;
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp61_ = _tmp63_ == (_tmp64_ + 1);
+#line 3225 "simple-scan.c"
+ } else {
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp61_ = FALSE;
+#line 3229 "simple-scan.c"
+ }
+#line 511 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp61_) {
+#line 3233 "simple-scan.c"
+ FILE* _tmp65_ = NULL;
+ GString* _tmp66_ = NULL;
+ const gchar* _tmp67_ = NULL;
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+ gchar* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+#line 512 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp65_ = fixed_file;
+#line 512 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp66_ = line;
+#line 512 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp67_ = _tmp66_->str;
+#line 512 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp68_ = atoi (_tmp67_);
+#line 512 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp69_ = xref_offset;
+#line 512 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp70_ = g_strdup_printf ("%d\n", _tmp68_ + _tmp69_);
+#line 512 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp71_ = _tmp70_;
+#line 512 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fprintf (_tmp65_, "%s", _tmp71_);
+#line 512 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (_tmp71_);
+#line 3259 "simple-scan.c"
+ } else {
+ gboolean _tmp72_ = FALSE;
+ gint _tmp73_ = 0;
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp73_ = fixed_size;
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp73_ > 0) {
+#line 3267 "simple-scan.c"
+ GString* _tmp74_ = NULL;
+ const gchar* _tmp75_ = NULL;
+ gboolean _tmp76_ = FALSE;
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp74_ = line;
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp75_ = _tmp74_->str;
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp76_ = g_str_has_prefix (_tmp75_, "/Size ");
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp72_ = _tmp76_;
+#line 3279 "simple-scan.c"
+ } else {
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp72_ = FALSE;
+#line 3283 "simple-scan.c"
+ }
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp72_) {
+#line 3287 "simple-scan.c"
+ FILE* _tmp77_ = NULL;
+ gint _tmp78_ = 0;
+ gchar* _tmp79_ = NULL;
+ gchar* _tmp80_ = NULL;
+#line 515 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp77_ = fixed_file;
+#line 515 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp78_ = fixed_size;
+#line 515 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp79_ = g_strdup_printf ("/Size %d\n", _tmp78_);
+#line 515 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp80_ = _tmp79_;
+#line 515 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fprintf (_tmp77_, "%s", _tmp80_);
+#line 515 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (_tmp80_);
+#line 3304 "simple-scan.c"
+ } else {
+ gboolean _tmp81_ = FALSE;
+ gint _tmp82_ = 0;
+ gint _tmp83_ = 0;
+#line 518 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp82_ = line_number;
+#line 518 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp83_ = startxref_line;
+#line 518 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp82_ == (_tmp83_ + 2)) {
+#line 3315 "simple-scan.c"
+ GString* _tmp84_ = NULL;
+ const gchar* _tmp85_ = NULL;
+ gboolean _tmp86_ = FALSE;
+#line 518 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp84_ = line;
+#line 518 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp85_ = _tmp84_->str;
+#line 518 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp86_ = g_str_has_prefix (_tmp85_, "%%%%");
+#line 518 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp81_ = _tmp86_;
+#line 3327 "simple-scan.c"
+ } else {
+#line 518 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp81_ = FALSE;
+#line 3331 "simple-scan.c"
+ }
+#line 518 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp81_) {
+#line 3335 "simple-scan.c"
+ FILE* _tmp87_ = NULL;
+ GString* _tmp88_ = NULL;
+ const gchar* _tmp89_ = NULL;
+ gchar* _tmp90_ = NULL;
+ gchar* _tmp91_ = NULL;
+#line 519 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp87_ = fixed_file;
+#line 519 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp88_ = line;
+#line 519 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp89_ = _tmp88_->str;
+#line 519 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp90_ = string_substring (_tmp89_, (glong) 2, (glong) (-1));
+#line 519 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp91_ = _tmp90_;
+#line 519 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fprintf (_tmp87_, "%s", _tmp91_);
+#line 519 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (_tmp91_);
+#line 3355 "simple-scan.c"
+ } else {
+ {
+ gint i = 0;
+ gint _tmp92_ = 0;
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp92_ = offset;
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ i = _tmp92_;
+#line 3364 "simple-scan.c"
+ {
+ gboolean _tmp93_ = FALSE;
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp93_ = TRUE;
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ while (TRUE) {
+#line 3371 "simple-scan.c"
+ gint _tmp95_ = 0;
+ gint _tmp96_ = 0;
+ FILE* _tmp97_ = NULL;
+ gint _tmp98_ = 0;
+ guint8 _tmp99_ = 0U;
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (!_tmp93_) {
+#line 3379 "simple-scan.c"
+ gint _tmp94_ = 0;
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp94_ = i;
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ i = _tmp94_ + 1;
+#line 3385 "simple-scan.c"
+ }
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp93_ = FALSE;
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp95_ = i;
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp96_ = end_offset;
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (!(_tmp95_ < _tmp96_)) {
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 3397 "simple-scan.c"
+ }
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp97_ = fixed_file;
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp98_ = i;
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp99_ = data[_tmp98_];
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fputc ((gchar) _tmp99_, _tmp97_);
+#line 3407 "simple-scan.c"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+#line 525 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp100_ = line_number;
+#line 525 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ line_number = _tmp100_ + 1;
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp101_ = end_offset;
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ offset = _tmp101_;
+#line 3425 "simple-scan.c"
+ }
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp102_ = filename;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp103_ = filename;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp104_ = g_strconcat (_tmp103_, "~", NULL);
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp105_ = _tmp104_;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp106_ = g_rename (_tmp102_, _tmp105_);
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp107_ = _tmp106_ >= 0;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (_tmp105_);
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp107_) {
+#line 3443 "simple-scan.c"
+ const gchar* _tmp108_ = NULL;
+ gchar* _tmp109_ = NULL;
+ gchar* _tmp110_ = NULL;
+ const gchar* _tmp111_ = NULL;
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp108_ = filename;
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp109_ = g_strconcat (_tmp108_, ".fixed", NULL);
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp110_ = _tmp109_;
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp111_ = filename;
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_rename (_tmp110_, _tmp111_);
+#line 530 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (_tmp110_);
+#line 3460 "simple-scan.c"
+ }
+#line 458 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_string_free0 (line);
+#line 458 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _fclose0 (fixed_file);
+#line 458 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ data = (g_free (data), NULL);
+#line 3468 "simple-scan.c"
+}
+
+
+static void _simple_scan_log_cb_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self) {
+#line 594 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_log_cb (log_domain, log_levels, message);
+#line 3475 "simple-scan.c"
+}
+
+
+gint simple_scan_main (gchar** args, int args_length1) {
+ gint result = 0;
+ GOptionContext* c = NULL;
+ const gchar* _tmp0_ = NULL;
+ GOptionContext* _tmp1_ = NULL;
+ GOptionContext* _tmp2_ = NULL;
+ GOptionContext* _tmp3_ = NULL;
+ GOptionGroup* _tmp4_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ const gchar* _tmp16_ = NULL;
+ ScanDevice* device = NULL;
+ gchar** _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ GTimer* _tmp38_ = NULL;
+ gchar* path = NULL;
+ const gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ const gchar* _tmp41_ = NULL;
+ const gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ FILE* _tmp45_ = NULL;
+ pid_t _tmp46_ = 0;
+ SimpleScan* app = NULL;
+ ScanDevice* _tmp47_ = NULL;
+ SimpleScan* _tmp48_ = NULL;
+ SimpleScan* _tmp49_ = NULL;
+ gint _tmp50_ = 0;
+ GError * _inner_error_ = NULL;
+#line 535 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ setlocale (LC_ALL, "");
+#line 536 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR);
+#line 537 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+#line 538 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ textdomain (GETTEXT_PACKAGE);
+#line 540 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ gtk_init (&args_length1, &args);
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp0_ = _ ("[DEVICE...] - Scanning utility");
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp1_ = g_option_context_new (_tmp0_);
+#line 542 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ c = _tmp1_;
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp2_ = c;
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_option_context_add_main_entries (_tmp2_, SIMPLE_SCAN_options, GETTEXT_PACKAGE);
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp3_ = c;
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp4_ = gtk_get_option_group (TRUE);
+#line 545 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_option_context_add_group (_tmp3_, _tmp4_);
+#line 3534 "simple-scan.c"
+ {
+ GOptionContext* _tmp5_ = NULL;
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp5_ = c;
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_option_context_parse (_tmp5_, &args_length1, &args, &_inner_error_);
+#line 548 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 3543 "simple-scan.c"
+ goto __catch12_g_error;
+ }
+ }
+ goto __finally12;
+ __catch12_g_error:
+ {
+ GError* e = NULL;
+ FILE* _tmp6_ = NULL;
+ GError* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ FILE* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar** _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ const gchar* _tmp12_ = NULL;
+ FILE* _tmp13_ = NULL;
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ e = _inner_error_;
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _inner_error_ = NULL;
+#line 552 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp6_ = stderr;
+#line 552 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp7_ = e;
+#line 552 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp8_ = _tmp7_->message;
+#line 552 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fprintf (_tmp6_, "%s\n", _tmp8_);
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp9_ = stderr;
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp10_ = _ ("Run '%s --help' to see a full list of available command line options.");
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp11_ = args;
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp11__length1 = args_length1;
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp12_ = _tmp11_[0];
+#line 553 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fprintf (_tmp9_, _tmp10_, _tmp12_);
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp13_ = stderr;
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fprintf (_tmp13_, "\n");
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = EXIT_FAILURE;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_error_free0 (e);
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_option_context_free0 (c);
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 3596 "simple-scan.c"
+ }
+ __finally12:
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_option_context_free0 (c);
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_clear_error (&_inner_error_);
+#line 546 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return 0;
+#line 3609 "simple-scan.c"
+ }
+#line 558 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp14_ = simple_scan_show_version;
+#line 558 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp14_) {
+#line 3615 "simple-scan.c"
+ FILE* _tmp15_ = NULL;
+#line 561 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp15_ = stderr;
+#line 561 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fprintf (_tmp15_, "simple-scan %s\n", VERSION);
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = EXIT_SUCCESS;
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_option_context_free0 (c);
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 3627 "simple-scan.c"
+ }
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp16_ = simple_scan_fix_pdf_filename;
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp16_ != NULL) {
+#line 3633 "simple-scan.c"
+ {
+ const gchar* _tmp17_ = NULL;
+#line 568 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp17_ = simple_scan_fix_pdf_filename;
+#line 568 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_fix_pdf (_tmp17_, &_inner_error_);
+#line 568 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 3642 "simple-scan.c"
+ goto __catch13_g_error;
+ }
+ {
+ gint i = 0;
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ i = 1;
+#line 3649 "simple-scan.c"
+ {
+ gboolean _tmp18_ = FALSE;
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp18_ = TRUE;
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ while (TRUE) {
+#line 3656 "simple-scan.c"
+ gint _tmp20_ = 0;
+ gchar** _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ gchar** _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ gint _tmp23_ = 0;
+ const gchar* _tmp24_ = NULL;
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (!_tmp18_) {
+#line 3666 "simple-scan.c"
+ gint _tmp19_ = 0;
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp19_ = i;
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ i = _tmp19_ + 1;
+#line 3672 "simple-scan.c"
+ }
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp18_ = FALSE;
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp20_ = i;
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp21_ = args;
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp21__length1 = args_length1;
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (!(_tmp20_ < _tmp21__length1)) {
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ break;
+#line 3686 "simple-scan.c"
+ }
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp22_ = args;
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp22__length1 = args_length1;
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp23_ = i;
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp24_ = _tmp22_[_tmp23_];
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_fix_pdf (_tmp24_, &_inner_error_);
+#line 570 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 3700 "simple-scan.c"
+ goto __catch13_g_error;
+ }
+ }
+ }
+ }
+ }
+ goto __finally13;
+ __catch13_g_error:
+ {
+ GError* e = NULL;
+ FILE* _tmp25_ = NULL;
+ GError* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ e = _inner_error_;
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _inner_error_ = NULL;
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp25_ = stderr;
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp26_ = e;
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp27_ = _tmp26_->message;
+#line 574 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ fprintf (_tmp25_, "Error fixing PDF file: %s", _tmp27_);
+#line 575 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = EXIT_FAILURE;
+#line 575 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_error_free0 (e);
+#line 575 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_option_context_free0 (c);
+#line 575 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 3734 "simple-scan.c"
+ }
+ __finally13:
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_inner_error_ != NULL) {
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_option_context_free0 (c);
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_clear_error (&_inner_error_);
+#line 566 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return 0;
+#line 3747 "simple-scan.c"
+ }
+#line 577 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = EXIT_SUCCESS;
+#line 577 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_option_context_free0 (c);
+#line 577 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 3755 "simple-scan.c"
+ }
+#line 580 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ device = NULL;
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp28_ = args;
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp28__length1 = args_length1;
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ if (_tmp28__length1 > 1) {
+#line 3765 "simple-scan.c"
+ ScanDevice* _tmp29_ = NULL;
+ ScanDevice* _tmp30_ = NULL;
+ gchar** _tmp31_ = NULL;
+ gint _tmp31__length1 = 0;
+ const gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ ScanDevice* _tmp34_ = NULL;
+ gchar** _tmp35_ = NULL;
+ gint _tmp35__length1 = 0;
+ const gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp29_ = scan_device_new ();
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _scan_device_unref0 (device);
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ device = _tmp29_;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp30_ = device;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp31_ = args;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp31__length1 = args_length1;
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp32_ = _tmp31_[1];
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp33_ = g_strdup (_tmp32_);
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (_tmp30_->name);
+#line 584 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp30_->name = _tmp33_;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp34_ = device;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp35_ = args;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp35__length1 = args_length1;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp36_ = _tmp35_[1];
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp37_ = g_strdup (_tmp36_);
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (_tmp34_->label);
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp34_->label = _tmp37_;
+#line 3811 "simple-scan.c"
+ }
+#line 589 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp38_ = g_timer_new ();
+#line 589 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_timer_destroy0 (simple_scan_log_timer);
+#line 589 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_log_timer = _tmp38_;
+#line 590 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp39_ = g_get_user_cache_dir ();
+#line 590 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp40_ = g_build_filename (_tmp39_, "simple-scan", NULL, NULL);
+#line 590 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ path = _tmp40_;
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp41_ = path;
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_mkdir_with_parents (_tmp41_, 0700);
+#line 592 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp42_ = g_get_user_cache_dir ();
+#line 592 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp43_ = g_build_filename (_tmp42_, "simple-scan", "simple-scan.log", NULL, NULL);
+#line 592 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (path);
+#line 592 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ path = _tmp43_;
+#line 593 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp44_ = path;
+#line 593 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp45_ = g_fopen (_tmp44_, "w");
+#line 593 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _fclose0 (simple_scan_log_file);
+#line 593 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_log_file = _tmp45_;
+#line 594 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_log_set_default_handler (_simple_scan_log_cb_glog_func, NULL);
+#line 596 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp46_ = getpid ();
+#line 596 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_debug ("simple-scan.vala:596: Starting Simple Scan %s, PID=%i", VERSION, (gint) _tmp46_);
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp47_ = device;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp48_ = simple_scan_new (_tmp47_);
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ app = _tmp48_;
+#line 599 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp49_ = app;
+#line 599 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _tmp50_ = g_application_run ((GApplication*) _tmp49_, 0, NULL);
+#line 599 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ result = _tmp50_;
+#line 599 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (app);
+#line 599 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_free0 (path);
+#line 599 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _scan_device_unref0 (device);
+#line 599 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_option_context_free0 (c);
+#line 599 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return result;
+#line 3873 "simple-scan.c"
+}
+
+
+int main (int argc, char ** argv) {
+#if !GLIB_CHECK_VERSION (2,35,0)
+ g_type_init ();
+#endif
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ return simple_scan_main (argv, argc);
+#line 3883 "simple-scan.c"
+}
+
+
+static void simple_scan_class_init (SimpleScanClass * klass) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ simple_scan_parent_class = g_type_class_peek_parent (klass);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ g_type_class_add_private (klass, sizeof (SimpleScanPrivate));
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ G_APPLICATION_CLASS (klass)->startup = simple_scan_real_startup;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ G_APPLICATION_CLASS (klass)->activate = simple_scan_real_activate;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ G_APPLICATION_CLASS (klass)->shutdown = simple_scan_real_shutdown;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ G_OBJECT_CLASS (klass)->finalize = simple_scan_finalize;
+#line 3900 "simple-scan.c"
+}
+
+
+static void simple_scan_instance_init (SimpleScan * self) {
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self->priv = SIMPLE_SCAN_GET_PRIVATE (self);
+#line 32 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self->priv->default_device = NULL;
+#line 33 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self->priv->have_devices = FALSE;
+#line 3911 "simple-scan.c"
+}
+
+
+static void simple_scan_finalize (GObject* obj) {
+ SimpleScan * self;
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SIMPLE_SCAN, SimpleScan);
+#line 32 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _scan_device_unref0 (self->priv->default_device);
+#line 34 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (self->priv->udev_client);
+#line 35 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _g_object_unref0 (self->priv->ui);
+#line 36 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _scanner_unref0 (self->priv->scanner);
+#line 37 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ _book_unref0 (self->priv->book);
+#line 12 "/home/bob/bzr/simple-scan/trunk/src/simple-scan.vala"
+ G_OBJECT_CLASS (simple_scan_parent_class)->finalize (obj);
+#line 3931 "simple-scan.c"
+}
+
+
+GType simple_scan_get_type (void) {
+ static volatile gsize simple_scan_type_id__volatile = 0;
+ if (g_once_init_enter (&simple_scan_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SimpleScanClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) simple_scan_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SimpleScan), 0, (GInstanceInitFunc) simple_scan_instance_init, NULL };
+ GType simple_scan_type_id;
+ simple_scan_type_id = g_type_register_static (GTK_TYPE_APPLICATION, "SimpleScan", &g_define_type_info, 0);
+ g_once_init_leave (&simple_scan_type_id__volatile, simple_scan_type_id);
+ }
+ return simple_scan_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/simple-scan.vala b/src/simple-scan.vala
new file mode 100644
index 0000000..813f29b
--- /dev/null
+++ b/src/simple-scan.vala
@@ -0,0 +1,601 @@
+/*
+ * Copyright (C) 2009-2011 Canonical Ltd.
+ * Author: Robert Ancell <robert.ancell@canonical.com>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+public class SimpleScan : Gtk.Application
+{
+ static bool show_version;
+ static bool debug_enabled;
+ static string? fix_pdf_filename = null;
+ public static const OptionEntry[] options =
+ {
+ { "version", 'v', 0, OptionArg.NONE, ref show_version,
+ /* Help string for command line --version flag */
+ N_("Show release version"), null},
+ { "debug", 'd', 0, OptionArg.NONE, ref debug_enabled,
+ /* Help string for command line --debug flag */
+ N_("Print debugging messages"), null},
+ { "fix-pdf", 0, 0, OptionArg.STRING, ref fix_pdf_filename,
+ N_("Fix PDF files generated with older versions of Simple Scan"), "FILENAME..."},
+ { null }
+ };
+ private static Timer log_timer;
+ private static FileStream? log_file;
+
+ private ScanDevice? default_device = null;
+ private bool have_devices = false;
+ private GUdev.Client udev_client;
+ private UserInterface ui;
+ private Scanner scanner;
+ private Book book;
+
+ public SimpleScan (ScanDevice? device = null)
+ {
+ default_device = device;
+ }
+
+ public override void startup ()
+ {
+ base.startup ();
+
+ ui = new UserInterface ();
+ book = ui.book;
+ ui.start_scan.connect (scan_cb);
+ ui.stop_scan.connect (cancel_cb);
+ ui.email.connect (email_cb);
+
+ scanner = Scanner.get_instance ();
+ scanner.update_devices.connect (update_scan_devices_cb);
+ scanner.request_authorization.connect (authorize_cb);
+ scanner.expect_page.connect (scanner_new_page_cb);
+ scanner.got_page_info.connect (scanner_page_info_cb);
+ scanner.got_line.connect (scanner_line_cb);
+ scanner.page_done.connect (scanner_page_done_cb);
+ scanner.document_done.connect (scanner_document_done_cb);
+ scanner.scan_failed.connect (scanner_failed_cb);
+ scanner.scanning_changed.connect (scanner_scanning_changed_cb);
+
+ string[]? subsystems = { "usb", null };
+ udev_client = new GUdev.Client (subsystems);
+ udev_client.uevent.connect (on_uevent);
+
+ if (default_device != null)
+ {
+ List<ScanDevice> device_list = null;
+
+ device_list.append (default_device);
+ ui.set_scan_devices (device_list);
+ ui.selected_device = default_device.name;
+ }
+ }
+
+ public override void activate ()
+ {
+ base.activate ();
+ ui.start ();
+ scanner.start ();
+ }
+
+ public override void shutdown ()
+ {
+ base.shutdown ();
+ book = null;
+ ui = null;
+ udev_client = null;
+ scanner.free ();
+ }
+
+ private void update_scan_devices_cb (Scanner scanner, List<ScanDevice> devices)
+ {
+ var devices_copy = devices.copy ();
+
+ /* If the default device is not detected add it to the list */
+ if (default_device != null)
+ {
+ var default_in_list = false;
+ foreach (var device in devices_copy)
+ {
+ if (device.name == default_device.name)
+ {
+ default_in_list = true;
+ break;
+ }
+ }
+
+ if (!default_in_list)
+ devices_copy.prepend (default_device);
+ }
+
+ have_devices = devices_copy.length () > 0;
+ ui.set_scan_devices (devices_copy);
+ }
+
+ private void authorize_cb (Scanner scanner, string resource)
+ {
+ string username, password;
+ ui.authorize (resource, out username, out password);
+ scanner.authorize (username, password);
+ }
+
+ private Page append_page ()
+ {
+ /* Use current page if not used */
+ var page = book.get_page (-1);
+ if (page != null && !page.has_data)
+ {
+ ui.selected_page = page;
+ page.start ();
+ return page;
+ }
+
+ /* Copy info from previous page */
+ var scan_direction = ScanDirection.TOP_TO_BOTTOM;
+ bool do_crop = false;
+ string named_crop = null;
+ var width = 100, height = 100, dpi = 100, cx = 0, cy = 0, cw = 0, ch = 0;
+ if (page != null)
+ {
+ scan_direction = page.scan_direction;
+ width = page.width;
+ height = page.height;
+ dpi = page.dpi;
+
+ do_crop = page.has_crop;
+ if (do_crop)
+ {
+ named_crop = page.crop_name;
+ cx = page.crop_x;
+ cy = page.crop_y;
+ cw = page.crop_width;
+ ch = page.crop_height;
+ }
+ }
+
+ page = new Page (width, height, dpi, scan_direction);
+ book.append_page (page);
+ if (do_crop)
+ {
+ if (named_crop != null)
+ {
+ page.set_named_crop (named_crop);
+ }
+ else
+ page.set_custom_crop (cw, ch);
+ page.move_crop (cx, cy);
+ }
+ ui.selected_page = page;
+ page.start ();
+
+ return page;
+ }
+
+ private void scanner_new_page_cb (Scanner scanner)
+ {
+ append_page ();
+ }
+
+ private string? get_profile_for_device (string device_name)
+ {
+#if HAVE_COLORD
+ var device_id = "sane:%s".printf (device_name);
+ debug ("Getting color profile for device %s", device_name);
+
+ var client = new Colord.Client ();
+ try
+ {
+ client.connect_sync ();
+ }
+ catch (Error e)
+ {
+ debug ("Failed to connect to colord: %s", e.message);
+ return null;
+ }
+
+ Colord.Device device;
+ try
+ {
+ device = client.find_device_by_property_sync (Colord.DEVICE_PROPERTY_SERIAL, device_id);
+ }
+ catch (Error e)
+ {
+ debug ("Unable to find colord device %s: %s", device_name, e.message);
+ return null;
+ }
+
+ try
+ {
+ device.connect_sync ();
+ }
+ catch (Error e)
+ {
+ debug ("Failed to get properties from the device %s: %s", device_name, e.message);
+ return null;
+ }
+
+ var profile = device.get_default_profile ();
+ if (profile == null)
+ {
+ debug ("No default color profile for device: %s", device_name);
+ return null;
+ }
+
+ try
+ {
+ profile.connect_sync ();
+ }
+ catch (Error e)
+ {
+ debug ("Failed to get properties from the profile %s: %s", device_name, e.message);
+ return null;
+ }
+
+ if (profile.filename == null)
+ {
+ debug ("No icc color profile for the device %s", device_name);
+ return null;
+ }
+
+ debug ("Using color profile %s for device %s", profile.filename, device_name);
+ return profile.filename;
+#else
+ return null;
+#endif
+ }
+
+ private void scanner_page_info_cb (Scanner scanner, ScanPageInfo info)
+ {
+ debug ("Page is %d pixels wide, %d pixels high, %d bits per pixel",
+ info.width, info.height, info.depth);
+
+ /* Add a new page */
+ var page = append_page ();
+ page.set_page_info (info);
+
+ /* Get ICC color profile */
+ /* FIXME: The ICC profile could change */
+ /* FIXME: Don't do a D-bus call for each page, cache color profiles */
+ page.color_profile = get_profile_for_device (info.device);
+ }
+
+ private void scanner_line_cb (Scanner scanner, ScanLine line)
+ {
+ var page = book.get_page ((int) book.n_pages - 1);
+ page.parse_scan_line (line);
+ }
+
+ private void scanner_page_done_cb (Scanner scanner)
+ {
+ var page = book.get_page ((int) book.n_pages - 1);
+ page.finish ();
+ }
+
+ private void remove_empty_page ()
+ {
+ var page = book.get_page ((int) book.n_pages - 1);
+ if (!page.has_data)
+ book.delete_page (page);
+ }
+
+ private void scanner_document_done_cb (Scanner scanner)
+ {
+ remove_empty_page ();
+ }
+
+ private void scanner_failed_cb (Scanner scanner, int error_code, string error_string)
+ {
+ remove_empty_page ();
+ if (error_code != Sane.Status.CANCELLED)
+ {
+ ui.show_error (/* Title of error dialog when scan failed */
+ _("Failed to scan"),
+ error_string,
+ have_devices);
+ }
+ }
+
+ private void scanner_scanning_changed_cb (Scanner scanner)
+ {
+ ui.scanning = scanner.is_scanning ();
+ }
+
+ private void scan_cb (UserInterface ui, string? device, ScanOptions options)
+ {
+ debug ("Requesting scan at %d dpi from device '%s'", options.dpi, device);
+
+ if (!scanner.is_scanning ())
+ append_page ();
+
+ /* Default filename to use when saving document (and extension will be added, e.g. .jpg) */
+ string filename_prefix = _("Scanned Document");
+ string extension;
+ if (options.scan_mode == ScanMode.COLOR)
+ extension = "jpg";
+ else
+ extension = "pdf";
+ var filename = "%s.%s".printf (filename_prefix, extension);
+ ui.default_file_name = filename;
+ scanner.scan (device, options);
+ }
+
+ private void cancel_cb (UserInterface ui)
+ {
+ scanner.cancel ();
+ }
+
+ private string? get_temporary_filename (string prefix, string extension)
+ {
+ /* NOTE: I'm not sure if this is a 100% safe strategy to use g_file_open_tmp(), close and
+ * use the filename but it appears to work in practise */
+
+ var filename = "%sXXXXXX.%s".printf (prefix, extension);
+ string path;
+ try
+ {
+ var fd = FileUtils.open_tmp (filename, out path);
+ Posix.close (fd);
+ }
+ catch (Error e)
+ {
+ warning ("Error saving email attachment: %s", e.message);
+ return null;
+ }
+
+ return path;
+ }
+
+ private void email_cb (UserInterface ui, string profile, int quality)
+ {
+ var saved = false;
+ var command_line = "xdg-email";
+
+ /* Save text files as PDFs */
+ if (profile == "text")
+ {
+ /* Open a temporary file */
+ var path = get_temporary_filename ("scan", "pdf");
+ if (path != null)
+ {
+ var file = File.new_for_path (path);
+ ui.show_progress_dialog ();
+ try
+ {
+ book.save ("pdf", quality, file);
+ }
+ catch (Error e)
+ {
+ ui.hide_progress_dialog ();
+ warning ("Unable to save email file: %s", e.message);
+ return;
+ }
+ command_line += " --attach %s".printf (path);
+ }
+ }
+ else
+ {
+ for (var i = 0; i < book.n_pages; i++)
+ {
+ var path = get_temporary_filename ("scan", "jpg");
+ if (path == null)
+ {
+ saved = false;
+ break;
+ }
+
+ var file = File.new_for_path (path);
+ try
+ {
+ book.get_page (i).save ("jpeg", quality, file);
+ }
+ catch (Error e)
+ {
+ warning ("Unable to save email file: %s", e.message);
+ return;
+ }
+ command_line += " --attach %s".printf (path);
+
+ if (!saved)
+ break;
+ }
+ }
+
+ debug ("Launching email client: %s", command_line);
+ try
+ {
+ Process.spawn_command_line_async (command_line);
+ }
+ catch (Error e)
+ {
+ warning ("Unable to start email: %s", e.message);
+ }
+ }
+
+ private static void log_cb (string? log_domain, LogLevelFlags log_level, string message)
+ {
+ string prefix;
+
+ switch (log_level & LogLevelFlags.LEVEL_MASK)
+ {
+ case LogLevelFlags.LEVEL_ERROR:
+ prefix = "ERROR:";
+ break;
+ case LogLevelFlags.LEVEL_CRITICAL:
+ prefix = "CRITICAL:";
+ break;
+ case LogLevelFlags.LEVEL_WARNING:
+ prefix = "WARNING:";
+ break;
+ case LogLevelFlags.LEVEL_MESSAGE:
+ prefix = "MESSAGE:";
+ break;
+ case LogLevelFlags.LEVEL_INFO:
+ prefix = "INFO:";
+ break;
+ case LogLevelFlags.LEVEL_DEBUG:
+ prefix = "DEBUG:";
+ break;
+ default:
+ prefix = "LOG:";
+ break;
+ }
+
+ log_file.printf ("[%+.2fs] %s %s\n", log_timer.elapsed (), prefix, message);
+ if (debug_enabled)
+ stderr.printf ("[%+.2fs] %s %s\n", log_timer.elapsed (), prefix, message);
+ }
+
+ private void on_uevent (GUdev.Client client, string action, GUdev.Device device)
+ {
+ scanner.redetect ();
+ }
+
+ private static void fix_pdf (string filename) throws Error
+ {
+ uint8[] data;
+ FileUtils.get_data (filename, out data);
+
+ var fixed_file = FileStream.open (filename + ".fixed", "w");
+
+ var offset = 0;
+ var line_number = 0;
+ var xref_offset = 0;
+ var xref_line = -1;
+ var startxref_line = -1;
+ var fixed_size = -1;
+ var line = new StringBuilder ();
+ while (offset < data.length)
+ {
+ var end_offset = offset;
+ line.assign ("");
+ while (end_offset < data.length)
+ {
+ var c = data[end_offset];
+ line.append_c ((char) c);
+ end_offset++;
+ if (c == '\n')
+ break;
+ }
+
+ if (line.str == "startxref\n")
+ startxref_line = line_number;
+
+ if (line.str == "xref\n")
+ xref_line = line_number;
+
+ /* Fix PDF header and binary comment */
+ if (line_number < 2 && line.str.has_prefix ("%%"))
+ {
+ xref_offset--;
+ fixed_file.printf ("%s", line.str.substring (1));
+ }
+
+ /* Fix xref subsection count */
+ else if (line_number == xref_line + 1 && line.str.has_prefix ("1 "))
+ {
+ fixed_size = int.parse (line.str.substring (2)) + 1;
+ fixed_file.printf ("0 %d\n", fixed_size);
+ fixed_file.printf ("0000000000 65535 f \n");
+ }
+
+ /* Fix xref format */
+ else if (line_number > xref_line && line.str.has_suffix (" 0000 n\n"))
+ fixed_file.printf ("%010d 00000 n \n", int.parse (line.str) + xref_offset);
+
+ /* Fix xref offset */
+ else if (startxref_line > 0 && line_number == startxref_line + 1)
+ fixed_file.printf ("%d\n".printf (int.parse (line.str) + xref_offset));
+
+ else if (fixed_size > 0 && line.str.has_prefix ("/Size "))
+ fixed_file.printf ("/Size %d\n".printf (fixed_size));
+
+ /* Fix EOF marker */
+ else if (line_number == startxref_line + 2 && line.str.has_prefix ("%%%%"))
+ fixed_file.printf ("%s", line.str.substring (2));
+
+ else
+ for (var i = offset; i < end_offset; i++)
+ fixed_file.putc ((char) data[i]);
+
+ line_number++;
+ offset = end_offset;
+ }
+
+ if (FileUtils.rename (filename, filename + "~") >= 0)
+ FileUtils.rename (filename + ".fixed", filename);
+ }
+
+ public static int main (string[] args)
+ {
+ Intl.setlocale (LocaleCategory.ALL, "");
+ Intl.bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR);
+ Intl.bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ Intl.textdomain (GETTEXT_PACKAGE);
+
+ Gtk.init (ref args);
+
+ var c = new OptionContext (/* Arguments and description for --help text */
+ _("[DEVICE...] - Scanning utility"));
+ c.add_main_entries (options, GETTEXT_PACKAGE);
+ c.add_group (Gtk.get_option_group (true));
+ try
+ {
+ c.parse (ref args);
+ }
+ catch (Error e)
+ {
+ stderr.printf ("%s\n", e.message);
+ stderr.printf (/* Text printed out when an unknown command-line argument provided */
+ _("Run '%s --help' to see a full list of available command line options."), args[0]);
+ stderr.printf ("\n");
+ return Posix.EXIT_FAILURE;
+ }
+ if (show_version)
+ {
+ /* Note, not translated so can be easily parsed */
+ stderr.printf ("simple-scan %s\n", VERSION);
+ return Posix.EXIT_SUCCESS;
+ }
+ if (fix_pdf_filename != null)
+ {
+ try
+ {
+ fix_pdf (fix_pdf_filename);
+ for (var i = 1; i < args.length; i++)
+ fix_pdf (args[i]);
+ }
+ catch (Error e)
+ {
+ stderr.printf ("Error fixing PDF file: %s", e.message);
+ return Posix.EXIT_FAILURE;
+ }
+ return Posix.EXIT_SUCCESS;
+ }
+
+ ScanDevice? device = null;
+ if (args.length > 1)
+ {
+ device = new ScanDevice ();
+ device.name = args[1];
+ device.label = args[1];
+ }
+
+ /* Log to a file */
+ log_timer = new Timer ();
+ var path = Path.build_filename (Environment.get_user_cache_dir (), "simple-scan", null);
+ DirUtils.create_with_parents (path, 0700);
+ path = Path.build_filename (Environment.get_user_cache_dir (), "simple-scan", "simple-scan.log", null);
+ log_file = FileStream.open (path, "w");
+ Log.set_default_handler (log_cb);
+
+ debug ("Starting Simple Scan %s, PID=%i", VERSION, Posix.getpid ());
+
+ var app = new SimpleScan (device);
+ return app.run ();
+ }
+}
diff --git a/src/simple_scan_vala.stamp b/src/simple_scan_vala.stamp
new file mode 100644
index 0000000..859afb1
--- /dev/null
+++ b/src/simple_scan_vala.stamp
@@ -0,0 +1 @@
+stamp
diff --git a/src/ui.c b/src/ui.c
new file mode 100644
index 0000000..340b940
--- /dev/null
+++ b/src/ui.c
@@ -0,0 +1,11701 @@
+/* ui.c generated by valac 0.24.0, the Vala compiler
+ * generated from ui.vala, do not modify */
+
+/*
+ * Copyright (C) 2009-2011 Canonical Ltd.
+ * Author: Robert Ancell <robert.ancell@canonical.com>,
+ * Eduard Gotwig <g@ox.io>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib/gi18n-lib.h>
+#include <gdk/gdk.h>
+#include <float.h>
+#include <math.h>
+#include <cairo.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <glib/gstdio.h>
+#include <unistd.h>
+
+
+#define TYPE_USER_INTERFACE (user_interface_get_type ())
+#define USER_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_USER_INTERFACE, UserInterface))
+#define USER_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_USER_INTERFACE, UserInterfaceClass))
+#define IS_USER_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_USER_INTERFACE))
+#define IS_USER_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_USER_INTERFACE))
+#define USER_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_USER_INTERFACE, UserInterfaceClass))
+
+typedef struct _UserInterface UserInterface;
+typedef struct _UserInterfaceClass UserInterfaceClass;
+typedef struct _UserInterfacePrivate UserInterfacePrivate;
+
+#define TYPE_PROGRESS_BAR_DIALOG (progress_bar_dialog_get_type ())
+#define PROGRESS_BAR_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROGRESS_BAR_DIALOG, ProgressBarDialog))
+#define PROGRESS_BAR_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROGRESS_BAR_DIALOG, ProgressBarDialogClass))
+#define IS_PROGRESS_BAR_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROGRESS_BAR_DIALOG))
+#define IS_PROGRESS_BAR_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROGRESS_BAR_DIALOG))
+#define PROGRESS_BAR_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROGRESS_BAR_DIALOG, ProgressBarDialogClass))
+
+typedef struct _ProgressBarDialog ProgressBarDialog;
+typedef struct _ProgressBarDialogClass ProgressBarDialogClass;
+
+#define TYPE_BOOK (book_get_type ())
+#define BOOK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BOOK, Book))
+#define BOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BOOK, BookClass))
+#define IS_BOOK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BOOK))
+#define IS_BOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BOOK))
+#define BOOK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BOOK, BookClass))
+
+typedef struct _Book Book;
+typedef struct _BookClass BookClass;
+
+#define TYPE_AUTOSAVE_MANAGER (autosave_manager_get_type ())
+#define AUTOSAVE_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_AUTOSAVE_MANAGER, AutosaveManager))
+#define AUTOSAVE_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_AUTOSAVE_MANAGER, AutosaveManagerClass))
+#define IS_AUTOSAVE_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_AUTOSAVE_MANAGER))
+#define IS_AUTOSAVE_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_AUTOSAVE_MANAGER))
+#define AUTOSAVE_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_AUTOSAVE_MANAGER, AutosaveManagerClass))
+
+typedef struct _AutosaveManager AutosaveManager;
+typedef struct _AutosaveManagerClass AutosaveManagerClass;
+
+#define TYPE_BOOK_VIEW (book_view_get_type ())
+#define BOOK_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BOOK_VIEW, BookView))
+#define BOOK_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BOOK_VIEW, BookViewClass))
+#define IS_BOOK_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BOOK_VIEW))
+#define IS_BOOK_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BOOK_VIEW))
+#define BOOK_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BOOK_VIEW, BookViewClass))
+
+typedef struct _BookView BookView;
+typedef struct _BookViewClass BookViewClass;
+
+#define TYPE_SCAN_DIRECTION (scan_direction_get_type ())
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _book_unref0(var) ((var == NULL) ? NULL : (var = (book_unref (var), NULL)))
+#define _autosave_manager_unref0(var) ((var == NULL) ? NULL : (var = (autosave_manager_unref (var), NULL)))
+#define _page_unref0(var) ((var == NULL) ? NULL : (var = (page_unref (var), NULL)))
+
+#define TYPE_SCAN_DEVICE (scan_device_get_type ())
+#define SCAN_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCAN_DEVICE, ScanDevice))
+#define SCAN_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCAN_DEVICE, ScanDeviceClass))
+#define IS_SCAN_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCAN_DEVICE))
+#define IS_SCAN_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCAN_DEVICE))
+#define SCAN_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCAN_DEVICE, ScanDeviceClass))
+
+typedef struct _ScanDevice ScanDevice;
+typedef struct _ScanDeviceClass ScanDeviceClass;
+typedef struct _ScanDevicePrivate ScanDevicePrivate;
+#define _scan_device_unref0(var) ((var == NULL) ? NULL : (var = (scan_device_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_SCAN_TYPE (scan_type_get_type ())
+
+#define TYPE_SCAN_OPTIONS (scan_options_get_type ())
+#define SCAN_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCAN_OPTIONS, ScanOptions))
+#define SCAN_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCAN_OPTIONS, ScanOptionsClass))
+#define IS_SCAN_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCAN_OPTIONS))
+#define IS_SCAN_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCAN_OPTIONS))
+#define SCAN_OPTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCAN_OPTIONS, ScanOptionsClass))
+
+typedef struct _ScanOptions ScanOptions;
+typedef struct _ScanOptionsClass ScanOptionsClass;
+
+#define TYPE_SCAN_MODE (scan_mode_get_type ())
+typedef struct _ScanOptionsPrivate ScanOptionsPrivate;
+#define _scan_options_unref0(var) ((var == NULL) ? NULL : (var = (scan_options_unref (var), NULL)))
+typedef struct _Block1Data Block1Data;
+
+#define TYPE_PAGE_ICON (page_icon_get_type ())
+#define PAGE_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_ICON, PageIcon))
+#define PAGE_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_ICON, PageIconClass))
+#define IS_PAGE_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_ICON))
+#define IS_PAGE_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_ICON))
+#define PAGE_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_ICON, PageIconClass))
+
+typedef struct _PageIcon PageIcon;
+typedef struct _PageIconClass PageIconClass;
+#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL)))
+#define _g_key_file_unref0(var) ((var == NULL) ? NULL : (var = (g_key_file_unref (var), NULL)))
+typedef struct _ProgressBarDialogPrivate ProgressBarDialogPrivate;
+typedef struct _PageIconPrivate PageIconPrivate;
+
+struct _UserInterface {
+ GtkApplicationWindow parent_instance;
+ UserInterfacePrivate * priv;
+};
+
+struct _UserInterfaceClass {
+ GtkApplicationWindowClass parent_class;
+};
+
+typedef enum {
+ SCAN_DIRECTION_TOP_TO_BOTTOM,
+ SCAN_DIRECTION_LEFT_TO_RIGHT,
+ SCAN_DIRECTION_BOTTOM_TO_TOP,
+ SCAN_DIRECTION_RIGHT_TO_LEFT
+} ScanDirection;
+
+struct _UserInterfacePrivate {
+ GSettings* settings;
+ GtkMenuBar* menubar;
+ GtkToolbar* toolbar;
+ GtkMenu* page_menu;
+ GtkBox* main_vbox;
+ GtkInfoBar* info_bar;
+ GtkImage* info_bar_image;
+ GtkLabel* info_bar_label;
+ GtkButton* info_bar_close_button;
+ GtkButton* info_bar_change_scanner_button;
+ GtkRadioMenuItem* custom_crop_menuitem;
+ GtkRadioMenuItem* a4_menuitem;
+ GtkRadioMenuItem* a5_menuitem;
+ GtkRadioMenuItem* a6_menuitem;
+ GtkRadioMenuItem* letter_menuitem;
+ GtkRadioMenuItem* legal_menuitem;
+ GtkRadioMenuItem* four_by_six_menuitem;
+ GtkRadioMenuItem* no_crop_menuitem;
+ GtkMenuItem* page_move_left_menuitem;
+ GtkMenuItem* page_move_right_menuitem;
+ GtkMenuItem* page_delete_menuitem;
+ GtkMenuItem* crop_rotate_menuitem;
+ GtkMenuItem* save_menuitem;
+ GtkMenuItem* save_as_menuitem;
+ GtkMenuItem* copy_to_clipboard_menuitem;
+ GtkButton* save_button;
+ GtkToolButton* save_toolbutton;
+ GtkMenuItem* stop_scan_menuitem;
+ GtkToolButton* stop_toolbutton;
+ GtkToggleButton* crop_button;
+ GtkToggleToolButton* crop_toolbutton;
+ GtkButton* stop_button;
+ GtkButton* scan_button;
+ GtkRadioMenuItem* text_button_menuitem;
+ GtkRadioMenuItem* text_button_hb_menuitem;
+ GtkRadioMenuItem* text_menuitem;
+ GtkRadioMenuItem* photo_button_menuitem;
+ GtkRadioMenuItem* photo_button_hb_menuitem;
+ GtkRadioMenuItem* photo_menuitem;
+ GtkDialog* authorize_dialog;
+ GtkLabel* authorize_label;
+ GtkEntry* username_entry;
+ GtkEntry* password_entry;
+ GtkDialog* preferences_dialog;
+ GtkComboBox* device_combo;
+ GtkComboBox* text_dpi_combo;
+ GtkComboBox* photo_dpi_combo;
+ GtkComboBox* page_side_combo;
+ GtkComboBox* paper_size_combo;
+ GtkScale* brightness_scale;
+ GtkScale* contrast_scale;
+ GtkScale* quality_scale;
+ GtkListStore* device_model;
+ GtkListStore* text_dpi_model;
+ GtkListStore* photo_dpi_model;
+ GtkListStore* page_side_model;
+ GtkListStore* paper_size_model;
+ GtkAdjustment* brightness_adjustment;
+ GtkAdjustment* contrast_adjustment;
+ GtkAdjustment* quality_adjustment;
+ gboolean setting_devices;
+ gboolean user_selected_device;
+ GtkFileChooserDialog* save_dialog;
+ ProgressBarDialog* progress_dialog;
+ gboolean have_error;
+ gchar* error_title;
+ gchar* error_text;
+ gboolean error_change_scanner_hint;
+ Book* _book;
+ gchar* book_uri;
+ AutosaveManager* autosave_manager;
+ BookView* book_view;
+ gboolean updating_page_menu;
+ gint default_page_width;
+ gint default_page_height;
+ gint default_page_dpi;
+ ScanDirection default_page_scan_direction;
+ gchar* document_hint;
+ gchar* _default_file_name;
+ gboolean scanning_;
+ gint window_width;
+ gint window_height;
+ gboolean window_is_maximized;
+ guint save_state_timeout;
+};
+
+struct _ScanDevice {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ScanDevicePrivate * priv;
+ gchar* name;
+ gchar* label;
+};
+
+struct _ScanDeviceClass {
+ GTypeClass parent_class;
+ void (*finalize) (ScanDevice *self);
+};
+
+typedef enum {
+ SCAN_TYPE_SINGLE,
+ SCAN_TYPE_ADF_FRONT,
+ SCAN_TYPE_ADF_BACK,
+ SCAN_TYPE_ADF_BOTH
+} ScanType;
+
+typedef enum {
+ SCAN_MODE_DEFAULT,
+ SCAN_MODE_COLOR,
+ SCAN_MODE_GRAY,
+ SCAN_MODE_LINEART
+} ScanMode;
+
+struct _ScanOptions {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ScanOptionsPrivate * priv;
+ gint dpi;
+ ScanMode scan_mode;
+ gint depth;
+ ScanType type;
+ gint paper_width;
+ gint paper_height;
+ gint brightness;
+ gint contrast;
+};
+
+struct _ScanOptionsClass {
+ GTypeClass parent_class;
+ void (*finalize) (ScanOptions *self);
+};
+
+struct _Block1Data {
+ int _ref_count_;
+ UserInterface* self;
+ GtkWindow* dialog;
+};
+
+struct _ProgressBarDialog {
+ GtkWindow parent_instance;
+ ProgressBarDialogPrivate * priv;
+};
+
+struct _ProgressBarDialogClass {
+ GtkWindowClass parent_class;
+};
+
+struct _ProgressBarDialogPrivate {
+ GtkProgressBar* bar;
+};
+
+struct _PageIcon {
+ GtkDrawingArea parent_instance;
+ PageIconPrivate * priv;
+};
+
+struct _PageIconClass {
+ GtkDrawingAreaClass parent_class;
+};
+
+struct _PageIconPrivate {
+ gchar* text;
+ gdouble r;
+ gdouble g;
+ gdouble b;
+};
+
+
+static gpointer user_interface_parent_class = NULL;
+static gpointer progress_bar_dialog_parent_class = NULL;
+static gpointer page_icon_parent_class = NULL;
+
+GType user_interface_get_type (void) G_GNUC_CONST;
+GType progress_bar_dialog_get_type (void) G_GNUC_CONST;
+gpointer book_ref (gpointer instance);
+void book_unref (gpointer instance);
+GParamSpec* param_spec_book (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_book (GValue* value, gpointer v_object);
+void value_take_book (GValue* value, gpointer v_object);
+gpointer value_get_book (const GValue* value);
+GType book_get_type (void) G_GNUC_CONST;
+gpointer autosave_manager_ref (gpointer instance);
+void autosave_manager_unref (gpointer instance);
+GParamSpec* param_spec_autosave_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_autosave_manager (GValue* value, gpointer v_object);
+void value_take_autosave_manager (GValue* value, gpointer v_object);
+gpointer value_get_autosave_manager (const GValue* value);
+GType autosave_manager_get_type (void) G_GNUC_CONST;
+GType book_view_get_type (void) G_GNUC_CONST;
+GType scan_direction_get_type (void) G_GNUC_CONST;
+#define USER_INTERFACE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_USER_INTERFACE, UserInterfacePrivate))
+enum {
+ USER_INTERFACE_DUMMY_PROPERTY,
+ USER_INTERFACE_BOOK,
+ USER_INTERFACE_SELECTED_PAGE,
+ USER_INTERFACE_DEFAULT_FILE_NAME,
+ USER_INTERFACE_SCANNING,
+ USER_INTERFACE_BRIGHTNESS,
+ USER_INTERFACE_CONTRAST,
+ USER_INTERFACE_QUALITY,
+ USER_INTERFACE_SELECTED_DEVICE
+};
+Book* user_interface_get_book (UserInterface* self);
+gpointer page_ref (gpointer instance);
+void page_unref (gpointer instance);
+GParamSpec* param_spec_page (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_page (GValue* value, gpointer v_object);
+void value_take_page (GValue* value, gpointer v_object);
+gpointer value_get_page (const GValue* value);
+GType page_get_type (void) G_GNUC_CONST;
+static void user_interface_page_added_cb (UserInterface* self, Book* book, Page* page);
+static void _user_interface_page_added_cb_book_page_added (Book* _sender, Page* page, gpointer self);
+static void user_interface_reordered_cb (UserInterface* self, Book* book);
+static void _user_interface_reordered_cb_book_reordered (Book* _sender, gpointer self);
+static void user_interface_page_removed_cb (UserInterface* self, Book* book, Page* page);
+static void _user_interface_page_removed_cb_book_page_removed (Book* _sender, Page* page, gpointer self);
+#define USER_INTERFACE_DEFAULT_TEXT_DPI 150
+#define USER_INTERFACE_DEFAULT_PHOTO_DPI 300
+void user_interface_new_document_activate_cb (UserInterface* self);
+static void _user_interface_new_document_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
+void user_interface_reorder_document_activate_cb (UserInterface* self);
+static void _user_interface_reorder_document_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
+void user_interface_save_document_activate_cb (UserInterface* self);
+static void _user_interface_save_document_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
+void user_interface_save_as_document_activate_cb (UserInterface* self);
+static void _user_interface_save_as_document_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
+void user_interface_email_document_activate_cb (UserInterface* self);
+static void _user_interface_email_document_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
+void user_interface_print_document_activate_cb (UserInterface* self);
+static void _user_interface_print_document_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
+void user_interface_preferences_activate_cb (UserInterface* self);
+static void _user_interface_preferences_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
+void user_interface_help_contents_activate_cb (UserInterface* self);
+static void _user_interface_help_contents_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
+void user_interface_about_activate_cb (UserInterface* self);
+static void _user_interface_about_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
+void user_interface_quit_activate_cb (UserInterface* self);
+static void _user_interface_quit_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
+UserInterface* user_interface_new (void);
+UserInterface* user_interface_construct (GType object_type);
+Book* book_new (void);
+Book* book_construct (GType object_type);
+static void user_interface_set_book (UserInterface* self, Book* value);
+static void user_interface_load (UserInterface* self);
+AutosaveManager* autosave_manager_new (void);
+AutosaveManager* autosave_manager_construct (GType object_type);
+void autosave_manager_set_book (AutosaveManager* self, Book* value);
+void autosave_manager_load (AutosaveManager* self);
+guint book_get_n_pages (Book* self);
+static void user_interface_add_default_page (UserInterface* self);
+void book_set_needs_saving (Book* self, gboolean value);
+Page* book_get_page (Book* self, gint page_number);
+void book_view_set_selected_page (BookView* self, Page* value);
+static void user_interface_needs_saving_cb (UserInterface* self, Book* book);
+static void _user_interface_needs_saving_cb_book_needs_saving_changed (Book* _sender, gpointer self);
+static gboolean user_interface_find_scan_device (UserInterface* self, const gchar* device, GtkTreeIter* iter);
+static void user_interface_show_error_dialog (UserInterface* self, const gchar* error_title, const gchar* error_text);
+void user_interface_authorize (UserInterface* self, const gchar* resource, gchar** username, gchar** password);
+static void user_interface_device_combo_changed_cb (UserInterface* self, GtkWidget* widget);
+gchar* user_interface_get_selected_device (UserInterface* self);
+static void _user_interface_device_combo_changed_cb_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static void user_interface_update_info_bar (UserInterface* self);
+gpointer scan_device_ref (gpointer instance);
+void scan_device_unref (gpointer instance);
+GParamSpec* param_spec_scan_device (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_scan_device (GValue* value, gpointer v_object);
+void value_take_scan_device (GValue* value, gpointer v_object);
+gpointer value_get_scan_device (const GValue* value);
+GType scan_device_get_type (void) G_GNUC_CONST;
+void user_interface_set_scan_devices (UserInterface* self, GList* devices);
+Page* page_new (gint width, gint height, gint dpi, ScanDirection scan_direction);
+Page* page_construct (GType object_type, gint width, gint height, gint dpi, ScanDirection scan_direction);
+void book_append_page (Book* self, Page* page);
+static void user_interface_on_file_type_changed (UserInterface* self, GtkTreeSelection* selection);
+static gchar* user_interface_get_selected_extension (UserInterface* self, GtkTreeSelection* selection);
+static gchar* user_interface_choose_file_location (UserInterface* self);
+const gchar* user_interface_get_default_file_name (UserInterface* self);
+static void _user_interface_on_file_type_changed_gtk_tree_selection_changed (GtkTreeSelection* _sender, gpointer self);
+static gboolean user_interface_save_document (UserInterface* self, gboolean force_choose_location);
+void user_interface_show_progress_dialog (UserInterface* self);
+void book_save (Book* self, const gchar* type, gint quality, GFile* file, GError** error);
+gint user_interface_get_quality (UserInterface* self);
+void user_interface_hide_progress_dialog (UserInterface* self);
+void user_interface_show_error (UserInterface* self, const gchar* error_title, const gchar* error_text, gboolean change_scanner_hint);
+static gboolean user_interface_prompt_to_save (UserInterface* self, const gchar* title, const gchar* discard_label);
+gboolean book_get_needs_saving (Book* self);
+static void user_interface_clear_document (UserInterface* self);
+void book_clear (Book* self);
+static void user_interface_new_document (UserInterface* self);
+gboolean user_interface_get_scanning (UserInterface* self);
+static void user_interface_new_button_clicked_cb (UserInterface* self, GtkWidget* widget);
+static void _user_interface_new_button_clicked_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void user_interface_set_document_hint (UserInterface* self, const gchar* document_hint, gboolean save);
+static void user_interface_text_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget);
+static void _user_interface_text_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self);
+static void user_interface_photo_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget);
+static void _user_interface_photo_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self);
+GType scan_type_get_type (void) G_GNUC_CONST;
+static void user_interface_set_page_side (UserInterface* self, ScanType page_side);
+static void user_interface_set_paper_size (UserInterface* self, gint width, gint height);
+static gint user_interface_get_text_dpi (UserInterface* self);
+static gint user_interface_get_photo_dpi (UserInterface* self);
+static ScanType user_interface_get_page_side (UserInterface* self);
+static gboolean user_interface_get_paper_size (UserInterface* self, gint* width, gint* height);
+gpointer scan_options_ref (gpointer instance);
+void scan_options_unref (gpointer instance);
+GParamSpec* param_spec_scan_options (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_scan_options (GValue* value, gpointer v_object);
+void value_take_scan_options (GValue* value, gpointer v_object);
+gpointer value_get_scan_options (const GValue* value);
+GType scan_options_get_type (void) G_GNUC_CONST;
+static ScanOptions* user_interface_make_scan_options (UserInterface* self);
+ScanOptions* scan_options_new (void);
+ScanOptions* scan_options_construct (GType object_type);
+GType scan_mode_get_type (void) G_GNUC_CONST;
+gint user_interface_get_brightness (UserInterface* self);
+gint user_interface_get_contrast (UserInterface* self);
+static void user_interface_scan_button_clicked_cb (UserInterface* self, GtkWidget* widget);
+static void _user_interface_scan_button_clicked_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void user_interface_stop_scan_button_clicked_cb (UserInterface* self, GtkWidget* widget);
+static void _user_interface_stop_scan_button_clicked_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void user_interface_continuous_scan_button_clicked_cb (UserInterface* self, GtkWidget* widget);
+static void _user_interface_continuous_scan_button_clicked_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void user_interface_preferences_button_clicked_cb (UserInterface* self, GtkWidget* widget);
+static void _user_interface_preferences_button_clicked_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static gboolean user_interface_preferences_dialog_delete_event_cb (UserInterface* self, GtkWidget* widget, GdkEventAny* event);
+static gboolean _user_interface_preferences_dialog_delete_event_cb_gtk_widget_delete_event (GtkWidget* _sender, GdkEventAny* event, gpointer self);
+static void user_interface_preferences_dialog_response_cb (UserInterface* self, GtkWidget* widget, gint response_id);
+static void _user_interface_preferences_dialog_response_cb_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self);
+static void user_interface_update_page_menu (UserInterface* self);
+Page* book_view_get_selected_page (BookView* self);
+guint book_get_page_index (Book* self, Page* page);
+static void user_interface_page_selected_cb (UserInterface* self, BookView* view, Page* page);
+gboolean page_get_has_crop (Page* self);
+const gchar* page_get_crop_name (Page* self);
+static void user_interface_show_page_cb (UserInterface* self, BookView* view, Page* page);
+gchar* get_temporary_filename (const gchar* prefix, const gchar* extension);
+void page_save (Page* self, const gchar* type, gint quality, GFile* file, GError** error);
+static void user_interface_show_page_menu_cb (UserInterface* self, BookView* view);
+static void user_interface_rotate_left_button_clicked_cb (UserInterface* self, GtkWidget* widget);
+void page_rotate_left (Page* self);
+static void _user_interface_rotate_left_button_clicked_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void user_interface_rotate_right_button_clicked_cb (UserInterface* self, GtkWidget* widget);
+void page_rotate_right (Page* self);
+static void _user_interface_rotate_right_button_clicked_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void user_interface_set_crop (UserInterface* self, const gchar* crop_name);
+void page_set_no_crop (Page* self);
+gint page_get_width (Page* self);
+gint page_get_height (Page* self);
+void page_set_custom_crop (Page* self, gint width, gint height);
+void page_move_crop (Page* self, gint x, gint y);
+void page_set_named_crop (Page* self, const gchar* name);
+static void user_interface_no_crop_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget);
+static void _user_interface_no_crop_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self);
+static void user_interface_custom_crop_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget);
+static void _user_interface_custom_crop_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self);
+static void user_interface_crop_button_toggled_cb (UserInterface* self, GtkToggleButton* widget);
+static void _user_interface_crop_button_toggled_cb_gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self);
+static void user_interface_crop_toolbutton_toggled_cb (UserInterface* self, GtkToggleToolButton* widget);
+static void _user_interface_crop_toolbutton_toggled_cb_gtk_toggle_tool_button_toggled (GtkToggleToolButton* _sender, gpointer self);
+static void user_interface_four_by_six_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget);
+static void _user_interface_four_by_six_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self);
+static void user_interface_legal_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget);
+static void _user_interface_legal_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self);
+static void user_interface_letter_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget);
+static void _user_interface_letter_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self);
+static void user_interface_a6_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget);
+static void _user_interface_a6_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self);
+static void user_interface_a5_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget);
+static void _user_interface_a5_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self);
+static void user_interface_a4_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget);
+static void _user_interface_a4_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self);
+static void user_interface_crop_rotate_menuitem_activate_cb (UserInterface* self, GtkWidget* widget);
+void page_rotate_crop (Page* self);
+static void _user_interface_crop_rotate_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void user_interface_page_move_left_menuitem_activate_cb (UserInterface* self, GtkWidget* widget);
+void book_move_page (Book* self, Page* page, guint location);
+static void _user_interface_page_move_left_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void user_interface_page_move_right_menuitem_activate_cb (UserInterface* self, GtkWidget* widget);
+static void _user_interface_page_move_right_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void user_interface_page_delete_menuitem_activate_cb (UserInterface* self, GtkWidget* widget);
+Book* book_view_get_book (BookView* self);
+void book_delete_page (Book* self, Page* page);
+static void _user_interface_page_delete_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void user_interface_reorder_document (UserInterface* self);
+static Block1Data* block1_data_ref (Block1Data* _data1_);
+static void block1_data_unref (void * _userdata_);
+static gboolean __lambda4_ (Block1Data* _data1_, GdkEventKey* e);
+static gboolean ___lambda4__gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
+static GtkButton* user_interface_make_reorder_button (UserInterface* self, const gchar* text, const gchar* items);
+static void __lambda5_ (Block1Data* _data1_);
+void book_combine_sides (Book* self);
+static void ___lambda5__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void __lambda6_ (Block1Data* _data1_);
+void book_combine_sides_reverse (Book* self);
+static void ___lambda6__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void __lambda7_ (Block1Data* _data1_);
+void book_reverse (Book* self);
+static void ___lambda7__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void __lambda8_ (Block1Data* _data1_);
+static void ___lambda8__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void user_interface_reorder_menuitem_activate_cb (UserInterface* self, GtkWidget* widget);
+static void _user_interface_reorder_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static GtkBox* user_interface_make_reorder_box (UserInterface* self, const gchar* items);
+GType page_icon_get_type (void) G_GNUC_CONST;
+PageIcon* page_icon_new (const gchar* text, gdouble r, gdouble g, gdouble b);
+PageIcon* page_icon_construct (GType object_type, const gchar* text, gdouble r, gdouble g, gdouble b);
+static void user_interface_save_file_button_clicked_cb (UserInterface* self, GtkWidget* widget);
+static void _user_interface_save_file_button_clicked_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void user_interface_copy_to_clipboard_button_clicked_cb (UserInterface* self, GtkWidget* widget);
+void page_copy_to_clipboard (Page* self, GtkWindow* window);
+static void _user_interface_copy_to_clipboard_button_clicked_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void user_interface_save_as_file_button_clicked_cb (UserInterface* self, GtkWidget* widget);
+static void _user_interface_save_as_file_button_clicked_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void user_interface_draw_page (UserInterface* self, GtkPrintOperation* operation, GtkPrintContext* print_context, gint page_number);
+gboolean page_get_is_landscape (Page* self);
+gint page_get_dpi (Page* self);
+GdkPixbuf* page_get_image (Page* self, gboolean apply_crop);
+static void user_interface_email_button_clicked_cb (UserInterface* self, GtkWidget* widget);
+static void _user_interface_email_button_clicked_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void user_interface_print_document (UserInterface* self);
+static void _user_interface_draw_page_gtk_print_operation_draw_page (GtkPrintOperation* _sender, GtkPrintContext* context, gint page_nr, gpointer self);
+static void user_interface_print_button_clicked_cb (UserInterface* self, GtkWidget* widget);
+static void _user_interface_print_button_clicked_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void user_interface_launch_help (UserInterface* self);
+static void user_interface_help_contents_menuitem_activate_cb (UserInterface* self, GtkWidget* widget);
+static void _user_interface_help_contents_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void user_interface_show_about (UserInterface* self);
+static void user_interface_about_menuitem_activate_cb (UserInterface* self, GtkWidget* widget);
+static void _user_interface_about_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static gboolean user_interface_on_quit (UserInterface* self);
+static void user_interface_save_state (UserInterface* self, gboolean force);
+void autosave_manager_cleanup (AutosaveManager* self);
+static void user_interface_quit_menuitem_activate_cb (UserInterface* self, GtkWidget* widget);
+static void _user_interface_quit_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static gboolean user_interface_simple_scan_window_configure_event_cb (UserInterface* self, GtkWidget* widget, GdkEventConfigure* event);
+static gboolean _user_interface_simple_scan_window_configure_event_cb_gtk_widget_configure_event (GtkWidget* _sender, GdkEventConfigure* event, gpointer self);
+static void user_interface_info_bar_response_cb (UserInterface* self, GtkInfoBar* widget, gint response_id);
+static gboolean user_interface_simple_scan_window_window_state_event_cb (UserInterface* self, GtkWidget* widget, GdkEventWindowState* event);
+static gboolean _user_interface_simple_scan_window_window_state_event_cb_gtk_widget_window_state_event (GtkWidget* _sender, GdkEventWindowState* event, gpointer self);
+static gboolean user_interface_window_delete_event_cb (UserInterface* self, GtkWidget* widget, GdkEventAny* event);
+static gboolean _user_interface_window_delete_event_cb_gtk_widget_delete_event (GtkWidget* _sender, GdkEventAny* event, gpointer self);
+static void user_interface_page_size_changed_cb (UserInterface* self, Page* page);
+static void user_interface_page_scan_direction_changed_cb (UserInterface* self, Page* page);
+ScanDirection page_get_scan_direction (Page* self);
+static void _user_interface_page_size_changed_cb_page_size_changed (Page* _sender, gpointer self);
+static void _user_interface_page_scan_direction_changed_cb_page_scan_direction_changed (Page* _sender, gpointer self);
+static void user_interface_set_dpi_combo (UserInterface* self, GtkComboBox* combo, gint default_dpi, gint current_dpi);
+static gboolean user_interface_get_shell_shows_menubar (UserInterface* self);
+static void _user_interface_info_bar_response_cb_gtk_info_bar_response (GtkInfoBar* _sender, gint response_id, gpointer self);
+static void __lambda10_ (UserInterface* self);
+static void ___lambda10__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static void __lambda11_ (UserInterface* self);
+static void ___lambda11__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static void __lambda12_ (UserInterface* self);
+static void ___lambda12__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static void __lambda13_ (UserInterface* self);
+static void ___lambda13__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+void user_interface_set_brightness (UserInterface* self, gint value);
+static void __lambda14_ (UserInterface* self);
+static void ___lambda14__gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self);
+void user_interface_set_contrast (UserInterface* self, gint value);
+static void __lambda15_ (UserInterface* self);
+static void ___lambda15__gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self);
+void user_interface_set_quality (UserInterface* self, gint value);
+static void __lambda16_ (UserInterface* self);
+static void ___lambda16__gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self);
+BookView* book_view_new (Book* book);
+BookView* book_view_construct (GType object_type, Book* book);
+static void _user_interface_page_selected_cb_book_view_page_selected (BookView* _sender, Page* page, gpointer self);
+static void _user_interface_show_page_cb_book_view_show_page (BookView* _sender, Page* page, gpointer self);
+static void _user_interface_show_page_menu_cb_book_view_show_menu (BookView* _sender, gpointer self);
+static void user_interface_load_state (UserInterface* self);
+ProgressBarDialog* progress_bar_dialog_new (GtkApplicationWindow* parent, const gchar* title);
+ProgressBarDialog* progress_bar_dialog_construct (GType object_type, GtkApplicationWindow* parent, const gchar* title);
+static void user_interface_book_saving_cb (UserInterface* self, gint page_number);
+static void _user_interface_book_saving_cb_book_saving (Book* _sender, gint i, gpointer self);
+static gchar* user_interface_get_state_filename (UserInterface* self);
+static gint user_interface_state_get_integer (UserInterface* self, GKeyFile* f, const gchar* group_name, const gchar* key, gint _default_);
+static gboolean user_interface_state_get_boolean (UserInterface* self, GKeyFile* f, const gchar* group_name, const gchar* key, gboolean _default_);
+static gchar* user_interface_state_get_string (UserInterface* self, GKeyFile* f, const gchar* group_name, const gchar* key, const gchar* _default_);
+static gboolean ___lambda9_ (UserInterface* self);
+static gboolean ____lambda9__gsource_func (gpointer self);
+static gboolean ___lambda17_ (UserInterface* self);
+static gboolean ____lambda17__gsource_func (gpointer self);
+void progress_bar_dialog_set_fraction (ProgressBarDialog* self, gdouble value);
+void progress_bar_dialog_set_message (ProgressBarDialog* self, const gchar* value);
+void user_interface_start (UserInterface* self);
+Page* user_interface_get_selected_page (UserInterface* self);
+void user_interface_set_selected_page (UserInterface* self, Page* value);
+void user_interface_set_default_file_name (UserInterface* self, const gchar* value);
+void user_interface_set_scanning (UserInterface* self, gboolean value);
+void user_interface_set_selected_device (UserInterface* self, const gchar* value);
+static void g_cclosure_user_marshal_VOID__STRING_SCAN_OPTIONS (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void g_cclosure_user_marshal_VOID__STRING_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void user_interface_finalize (GObject* obj);
+static void _vala_user_interface_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_user_interface_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+#define PROGRESS_BAR_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PROGRESS_BAR_DIALOG, ProgressBarDialogPrivate))
+enum {
+ PROGRESS_BAR_DIALOG_DUMMY_PROPERTY,
+ PROGRESS_BAR_DIALOG_FRACTION,
+ PROGRESS_BAR_DIALOG_MESSAGE
+};
+gdouble progress_bar_dialog_get_fraction (ProgressBarDialog* self);
+const gchar* progress_bar_dialog_get_message (ProgressBarDialog* self);
+static void progress_bar_dialog_finalize (GObject* obj);
+static void _vala_progress_bar_dialog_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_progress_bar_dialog_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+#define PAGE_ICON_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PAGE_ICON, PageIconPrivate))
+enum {
+ PAGE_ICON_DUMMY_PROPERTY
+};
+#define PAGE_ICON_MINIMUM_WIDTH 20
+static void page_icon_real_get_preferred_width (GtkWidget* base, gint* minimum_width, gint* natural_width);
+static void page_icon_real_get_preferred_height (GtkWidget* base, gint* minimum_height, gint* natural_height);
+static void page_icon_real_get_preferred_height_for_width (GtkWidget* base, gint width, gint* minimum_height, gint* natural_height);
+static void page_icon_real_get_preferred_width_for_height (GtkWidget* base, gint height, gint* minimum_width, gint* natural_width);
+static gboolean page_icon_real_draw (GtkWidget* base, cairo_t* c);
+static void page_icon_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+static const GActionEntry USER_INTERFACE_action_entries[10] = {{"new_document", _user_interface_new_document_activate_cb_gsimple_action_activate_callback}, {"reorder", _user_interface_reorder_document_activate_cb_gsimple_action_activate_callback}, {"save", _user_interface_save_document_activate_cb_gsimple_action_activate_callback}, {"save_as", _user_interface_save_as_document_activate_cb_gsimple_action_activate_callback}, {"email", _user_interface_email_document_activate_cb_gsimple_action_activate_callback}, {"print", _user_interface_print_document_activate_cb_gsimple_action_activate_callback}, {"preferences", _user_interface_preferences_activate_cb_gsimple_action_activate_callback}, {"help", _user_interface_help_contents_activate_cb_gsimple_action_activate_callback}, {"about", _user_interface_about_activate_cb_gsimple_action_activate_callback}, {"quit", _user_interface_quit_activate_cb_gsimple_action_activate_callback}};
+
+static void _user_interface_page_added_cb_book_page_added (Book* _sender, Page* page, gpointer self) {
+#line 286 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_page_added_cb ((UserInterface*) self, _sender, page);
+#line 690 "ui.c"
+}
+
+
+static void _user_interface_reordered_cb_book_reordered (Book* _sender, gpointer self) {
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_reordered_cb ((UserInterface*) self, _sender);
+#line 697 "ui.c"
+}
+
+
+static void _user_interface_page_removed_cb_book_page_removed (Book* _sender, Page* page, gpointer self) {
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_page_removed_cb ((UserInterface*) self, _sender, page);
+#line 704 "ui.c"
+}
+
+
+static void _user_interface_new_document_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
+#line 19 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_new_document_activate_cb ((UserInterface*) self);
+#line 711 "ui.c"
+}
+
+
+static void _user_interface_reorder_document_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
+#line 19 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_reorder_document_activate_cb ((UserInterface*) self);
+#line 718 "ui.c"
+}
+
+
+static void _user_interface_save_document_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
+#line 19 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_save_document_activate_cb ((UserInterface*) self);
+#line 725 "ui.c"
+}
+
+
+static void _user_interface_save_as_document_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
+#line 19 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_save_as_document_activate_cb ((UserInterface*) self);
+#line 732 "ui.c"
+}
+
+
+static void _user_interface_email_document_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
+#line 19 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_email_document_activate_cb ((UserInterface*) self);
+#line 739 "ui.c"
+}
+
+
+static void _user_interface_print_document_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
+#line 19 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_print_document_activate_cb ((UserInterface*) self);
+#line 746 "ui.c"
+}
+
+
+static void _user_interface_preferences_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
+#line 19 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_preferences_activate_cb ((UserInterface*) self);
+#line 753 "ui.c"
+}
+
+
+static void _user_interface_help_contents_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
+#line 19 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_help_contents_activate_cb ((UserInterface*) self);
+#line 760 "ui.c"
+}
+
+
+static void _user_interface_about_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
+#line 19 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_about_activate_cb ((UserInterface*) self);
+#line 767 "ui.c"
+}
+
+
+static void _user_interface_quit_activate_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
+#line 19 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_quit_activate_cb ((UserInterface*) self);
+#line 774 "ui.c"
+}
+
+
+static void _user_interface_needs_saving_cb_book_needs_saving_changed (Book* _sender, gpointer self) {
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_needs_saving_cb ((UserInterface*) self, _sender);
+#line 781 "ui.c"
+}
+
+
+UserInterface* user_interface_construct (GType object_type) {
+ UserInterface * self = NULL;
+ GSettings* _tmp0_ = NULL;
+ Book* _tmp1_ = NULL;
+ Book* _tmp2_ = NULL;
+ Book* _tmp3_ = NULL;
+ Book* _tmp4_ = NULL;
+ Book* _tmp5_ = NULL;
+ AutosaveManager* _tmp6_ = NULL;
+ AutosaveManager* _tmp7_ = NULL;
+ Book* _tmp8_ = NULL;
+ AutosaveManager* _tmp9_ = NULL;
+ Book* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+ guint _tmp12_ = 0U;
+ Book* _tmp18_ = NULL;
+#line 259 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = (UserInterface*) g_object_new (object_type, NULL);
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = g_settings_new ("org.gnome.SimpleScan");
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->settings);
+#line 261 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->settings = _tmp0_;
+#line 263 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = book_new ();
+#line 263 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 263 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_book (self, _tmp2_);
+#line 263 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _book_unref0 (_tmp2_);
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->_book;
+#line 264 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp3_, "page-added", (GCallback) _user_interface_page_added_cb_book_page_added, self, 0);
+#line 265 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = self->priv->_book;
+#line 265 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp4_, "reordered", (GCallback) _user_interface_reordered_cb_book_reordered, self, 0);
+#line 266 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = self->priv->_book;
+#line 266 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp5_, "page-removed", (GCallback) _user_interface_page_removed_cb_book_page_removed, self, 0);
+#line 268 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_load (self);
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = autosave_manager_new ();
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _autosave_manager_unref0 (self->priv->autosave_manager);
+#line 270 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->autosave_manager = _tmp6_;
+#line 271 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = self->priv->autosave_manager;
+#line 271 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = self->priv->_book;
+#line 271 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ autosave_manager_set_book (_tmp7_, _tmp8_);
+#line 272 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = self->priv->autosave_manager;
+#line 272 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ autosave_manager_load (_tmp9_);
+#line 274 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = self->priv->_book;
+#line 274 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = book_get_n_pages (_tmp10_);
+#line 274 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = _tmp11_;
+#line 274 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp12_ == ((guint) 0)) {
+#line 855 "ui.c"
+ Book* _tmp13_ = NULL;
+#line 276 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_add_default_page (self);
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = self->priv->_book;
+#line 277 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ book_set_needs_saving (_tmp13_, FALSE);
+#line 863 "ui.c"
+ } else {
+ BookView* _tmp14_ = NULL;
+ Book* _tmp15_ = NULL;
+ Page* _tmp16_ = NULL;
+ Page* _tmp17_ = NULL;
+#line 280 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = self->priv->book_view;
+#line 280 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = self->priv->_book;
+#line 280 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = book_get_page (_tmp15_, 0);
+#line 280 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = _tmp16_;
+#line 280 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ book_view_set_selected_page (_tmp14_, _tmp17_);
+#line 280 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _page_unref0 (_tmp17_);
+#line 881 "ui.c"
+ }
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = self->priv->_book;
+#line 281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp18_, "needs-saving-changed", (GCallback) _user_interface_needs_saving_cb_book_needs_saving_changed, self, 0);
+#line 259 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return self;
+#line 889 "ui.c"
+}
+
+
+UserInterface* user_interface_new (void) {
+#line 259 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return user_interface_construct (TYPE_USER_INTERFACE);
+#line 896 "ui.c"
+}
+
+
+static gboolean user_interface_find_scan_device (UserInterface* self, const gchar* device, GtkTreeIter* iter) {
+ GtkTreeIter _vala_iter = {0};
+ gboolean result = FALSE;
+ gboolean have_iter = FALSE;
+ GtkListStore* _tmp0_ = NULL;
+ GtkTreeIter _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+#line 291 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 291 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (device != NULL, FALSE);
+#line 293 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ have_iter = FALSE;
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->device_model;
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) _tmp0_, &_tmp1_);
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _vala_iter = _tmp1_;
+#line 295 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 921 "ui.c"
+ {
+ gboolean _tmp3_ = FALSE;
+#line 297 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = TRUE;
+#line 297 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ while (TRUE) {
+#line 928 "ui.c"
+ gchar* d = NULL;
+ GtkListStore* _tmp8_ = NULL;
+ GtkTreeIter _tmp9_ = {0};
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+#line 297 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp3_) {
+#line 936 "ui.c"
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = have_iter;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp5_) {
+#line 943 "ui.c"
+ GtkListStore* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = self->priv->device_model;
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = gtk_tree_model_iter_next ((GtkTreeModel*) _tmp6_, &_vala_iter);
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = _tmp7_;
+#line 952 "ui.c"
+ } else {
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = FALSE;
+#line 956 "ui.c"
+ }
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp4_) {
+#line 303 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 962 "ui.c"
+ }
+ }
+#line 297 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = FALSE;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = self->priv->device_model;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = _vala_iter;
+#line 300 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_model_get ((GtkTreeModel*) _tmp8_, &_tmp9_, 0, &d, -1, -1);
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = d;
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = device;
+#line 301 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (g_strcmp0 (_tmp10_, _tmp11_) == 0) {
+#line 302 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ have_iter = TRUE;
+#line 981 "ui.c"
+ }
+#line 297 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (d);
+#line 985 "ui.c"
+ }
+ }
+ }
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = have_iter;
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (iter) {
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ *iter = _vala_iter;
+#line 995 "ui.c"
+ }
+#line 306 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 999 "ui.c"
+}
+
+
+static void user_interface_show_error_dialog (UserInterface* self, const gchar* error_title, const gchar* error_text) {
+ GtkMessageDialog* dialog = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkMessageDialog* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (error_title != NULL);
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (error_text != NULL);
+#line 311 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = error_title;
+#line 311 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE, "%s", _tmp0_);
+#line 311 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp1_);
+#line 311 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ dialog = _tmp1_;
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _ ("_Close");
+#line 316 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_dialog_add_button ((GtkDialog*) dialog, _tmp2_, 0);
+#line 317 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = error_text;
+#line 317 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_message_dialog_format_secondary_text (dialog, "%s", _tmp3_);
+#line 318 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_destroy ((GtkWidget*) dialog);
+#line 309 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (dialog);
+#line 1035 "ui.c"
+}
+
+
+void user_interface_authorize (UserInterface* self, const gchar* resource, gchar** username, gchar** password) {
+ gchar* _vala_username = NULL;
+ gchar* _vala_password = NULL;
+ gchar* description = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GtkEntry* _tmp3_ = NULL;
+ GtkEntry* _tmp4_ = NULL;
+ GtkLabel* _tmp5_ = NULL;
+ GtkDialog* _tmp6_ = NULL;
+ GtkDialog* _tmp7_ = NULL;
+ GtkDialog* _tmp8_ = NULL;
+ GtkEntry* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ GtkEntry* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (resource != NULL);
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = _ ("Username and password required to access '%s'");
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = resource;
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = g_strdup_printf (_tmp0_, _tmp1_);
+#line 324 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ description = _tmp2_;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->username_entry;
+#line 326 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_entry_set_text (_tmp3_, "");
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = self->priv->password_entry;
+#line 327 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_entry_set_text (_tmp4_, "");
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = self->priv->authorize_label;
+#line 328 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_label_set_text (_tmp5_, description);
+#line 330 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = self->priv->authorize_dialog;
+#line 330 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp6_, TRUE);
+#line 331 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = self->priv->authorize_dialog;
+#line 331 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_dialog_run (_tmp7_);
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = self->priv->authorize_dialog;
+#line 332 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp8_, FALSE);
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = self->priv->username_entry;
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = gtk_entry_get_text (_tmp9_);
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = _tmp10_;
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = g_strdup (_tmp11_);
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_vala_username);
+#line 334 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _vala_username = _tmp12_;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = self->priv->password_entry;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = gtk_entry_get_text (_tmp13_);
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = _tmp14_;
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = g_strdup (_tmp15_);
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_vala_password);
+#line 335 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _vala_password = _tmp16_;
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (description);
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (username) {
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ *username = _vala_username;
+#line 1126 "ui.c"
+ } else {
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_vala_username);
+#line 1130 "ui.c"
+ }
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (password) {
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ *password = _vala_password;
+#line 1136 "ui.c"
+ } else {
+#line 321 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_vala_password);
+#line 1140 "ui.c"
+ }
+}
+
+
+static void user_interface_device_combo_changed_cb (UserInterface* self, GtkWidget* widget) {
+ gboolean _tmp0_ = FALSE;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 339 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->setting_devices;
+#line 341 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp0_) {
+#line 342 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 1161 "ui.c"
+ }
+#line 343 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->user_selected_device = TRUE;
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = user_interface_get_selected_device (self);
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _tmp2_;
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = _tmp3_ != NULL;
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_tmp3_);
+#line 344 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp4_) {
+#line 1177 "ui.c"
+ GSettings* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = self->priv->settings;
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = user_interface_get_selected_device (self);
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = _tmp6_;
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = _tmp7_;
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_settings_set_string (_tmp5_, "selected-device", _tmp8_);
+#line 345 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_tmp8_);
+#line 1194 "ui.c"
+ }
+}
+
+
+static void _user_interface_device_combo_changed_cb_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_device_combo_changed_cb ((UserInterface*) self, _sender);
+#line 1202 "ui.c"
+}
+
+
+static void user_interface_update_info_bar (UserInterface* self) {
+ GtkMessageType type = 0;
+ gchar* title = NULL;
+ gchar* text = NULL;
+ gchar* image_id = NULL;
+ gboolean show_close_button = FALSE;
+ gboolean show_change_scanner_button = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GtkInfoBar* _tmp15_ = NULL;
+ GtkMessageType _tmp16_ = 0;
+ GtkImage* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gchar* message = NULL;
+ const gchar* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ GtkLabel* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ GtkButton* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+ GtkButton* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+ GtkInfoBar* _tmp28_ = NULL;
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 352 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ show_close_button = FALSE;
+#line 353 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ show_change_scanner_button = FALSE;
+#line 355 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->have_error;
+#line 355 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp0_) {
+#line 1239 "ui.c"
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 357 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ type = GTK_MESSAGE_ERROR;
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = g_strdup ("dialog-error");
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (image_id);
+#line 358 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ image_id = _tmp1_;
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = self->priv->error_title;
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (title);
+#line 359 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ title = _tmp3_;
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = self->priv->error_text;
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (text);
+#line 360 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ text = _tmp5_;
+#line 361 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ show_close_button = TRUE;
+#line 362 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = self->priv->error_change_scanner_hint;
+#line 362 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ show_change_scanner_button = _tmp6_;
+#line 1276 "ui.c"
+ } else {
+ GtkListStore* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+#line 364 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = self->priv->device_model;
+#line 364 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = gtk_tree_model_iter_n_children ((GtkTreeModel*) _tmp7_, NULL);
+#line 364 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp8_ == 0) {
+#line 1286 "ui.c"
+ gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 366 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ type = GTK_MESSAGE_WARNING;
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = g_strdup ("dialog-warning");
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (image_id);
+#line 367 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ image_id = _tmp9_;
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = _ ("No scanners detected");
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = g_strdup (_tmp10_);
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (title);
+#line 369 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ title = _tmp11_;
+#line 371 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = _ ("Please check your scanner is connected and powered on");
+#line 371 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = g_strdup (_tmp12_);
+#line 371 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (text);
+#line 371 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ text = _tmp13_;
+#line 1316 "ui.c"
+ } else {
+ GtkInfoBar* _tmp14_ = NULL;
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = self->priv->info_bar;
+#line 375 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp14_, FALSE);
+#line 376 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (image_id);
+#line 376 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (text);
+#line 376 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (title);
+#line 376 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 1331 "ui.c"
+ }
+ }
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = self->priv->info_bar;
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = type;
+#line 379 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_info_bar_set_message_type (_tmp15_, _tmp16_);
+#line 380 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = self->priv->info_bar_image;
+#line 380 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = image_id;
+#line 380 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_image_set_from_icon_name (_tmp17_, _tmp18_, GTK_ICON_SIZE_DIALOG);
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = title;
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp20_ = text;
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp21_ = g_strdup_printf ("<big><b>%s</b></big>\n\n%s", _tmp19_, _tmp20_);
+#line 381 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ message = _tmp21_;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp22_ = self->priv->info_bar_label;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp23_ = message;
+#line 382 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_label_set_markup (_tmp22_, _tmp23_);
+#line 383 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp24_ = self->priv->info_bar_close_button;
+#line 383 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp25_ = show_close_button;
+#line 383 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp24_, _tmp25_);
+#line 384 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp26_ = self->priv->info_bar_change_scanner_button;
+#line 384 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp27_ = show_change_scanner_button;
+#line 384 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp26_, _tmp27_);
+#line 385 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp28_ = self->priv->info_bar;
+#line 385 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp28_, TRUE);
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (message);
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (image_id);
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (text);
+#line 348 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (title);
+#line 1384 "ui.c"
+}
+
+
+static gpointer _scan_device_ref0 (gpointer self) {
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return self ? scan_device_ref (self) : NULL;
+#line 1391 "ui.c"
+}
+
+
+void user_interface_set_scan_devices (UserInterface* self, GList* devices) {
+ gboolean have_selection = FALSE;
+ gint index = 0;
+ GtkTreeIter iter = {0};
+ gboolean _tmp0_ = FALSE;
+ GList* _tmp4_ = NULL;
+ gboolean _tmp51_ = FALSE;
+ gboolean _tmp52_ = FALSE;
+#line 388 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 390 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ have_selection = FALSE;
+#line 394 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->setting_devices = TRUE;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->user_selected_device;
+#line 397 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp0_) {
+#line 1413 "ui.c"
+ GtkComboBox* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 398 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = self->priv->device_combo;
+#line 398 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = gtk_combo_box_get_active (_tmp1_);
+#line 398 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _tmp2_;
+#line 398 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ have_selection = _tmp3_ >= 0;
+#line 1425 "ui.c"
+ }
+#line 401 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ index = 0;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = devices;
+#line 1431 "ui.c"
+ {
+ GList* device_collection = NULL;
+ GList* device_it = NULL;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ device_collection = _tmp4_;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ for (device_it = device_collection; device_it != NULL; device_it = device_it->next) {
+#line 1439 "ui.c"
+ ScanDevice* _tmp5_ = NULL;
+ ScanDevice* device = NULL;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = _scan_device_ref0 ((ScanDevice*) device_it->data);
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ device = _tmp5_;
+#line 1446 "ui.c"
+ {
+ gint n_delete = 0;
+ GtkListStore* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ GtkTreeIter _tmp8_ = {0};
+ gboolean _tmp9_ = FALSE;
+ gint _tmp21_ = 0;
+ gint _tmp44_ = 0;
+#line 404 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ n_delete = -1;
+#line 407 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = self->priv->device_model;
+#line 407 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = index;
+#line 407 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = gtk_tree_model_iter_nth_child ((GtkTreeModel*) _tmp6_, &_tmp8_, NULL, _tmp7_);
+#line 407 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp8_;
+#line 407 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp9_) {
+#line 1467 "ui.c"
+ gint i = 0;
+#line 409 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ i = 0;
+#line 1471 "ui.c"
+ {
+ gboolean _tmp10_ = FALSE;
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = TRUE;
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ while (TRUE) {
+#line 1478 "ui.c"
+ gchar* name = NULL;
+ gboolean matched = FALSE;
+ GtkListStore* _tmp13_ = NULL;
+ GtkTreeIter _tmp14_ = {0};
+ const gchar* _tmp15_ = NULL;
+ ScanDevice* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gint _tmp20_ = 0;
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp10_) {
+#line 1490 "ui.c"
+ GtkListStore* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 424 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = self->priv->device_model;
+#line 424 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = gtk_tree_model_iter_next ((GtkTreeModel*) _tmp11_, &iter);
+#line 424 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp12_) {
+#line 424 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 1501 "ui.c"
+ }
+ }
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = FALSE;
+#line 415 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = self->priv->device_model;
+#line 415 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = iter;
+#line 415 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_model_get ((GtkTreeModel*) _tmp13_, &_tmp14_, 0, &name, -1, -1);
+#line 416 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = name;
+#line 416 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = device;
+#line 416 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = _tmp16_->name;
+#line 416 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ matched = g_strcmp0 (_tmp15_, _tmp17_) == 0;
+#line 418 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = matched;
+#line 418 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp18_) {
+#line 1524 "ui.c"
+ gint _tmp19_ = 0;
+#line 420 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = i;
+#line 420 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ n_delete = _tmp19_;
+#line 421 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (name);
+#line 421 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 1534 "ui.c"
+ }
+#line 423 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp20_ = i;
+#line 423 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ i = _tmp20_ + 1;
+#line 410 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (name);
+#line 1542 "ui.c"
+ }
+ }
+ }
+#line 428 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp21_ = n_delete;
+#line 428 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp21_ >= 0) {
+#line 1550 "ui.c"
+ gint i = 0;
+ GtkListStore* _tmp22_ = NULL;
+ GtkTreeIter _tmp23_ = {0};
+ ScanDevice* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+#line 433 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp22_ = self->priv->device_model;
+#line 433 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp23_ = iter;
+#line 433 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp24_ = device;
+#line 433 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp25_ = _tmp24_->label;
+#line 433 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_set (_tmp22_, &_tmp23_, 1, _tmp25_, -1, -1);
+#line 1566 "ui.c"
+ {
+ gboolean _tmp26_ = FALSE;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ i = 0;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp26_ = TRUE;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ while (TRUE) {
+#line 1575 "ui.c"
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ GtkListStore* _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ GtkTreeIter _tmp32_ = {0};
+ GtkListStore* _tmp33_ = NULL;
+ GtkTreeIter _tmp34_ = {0};
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp26_) {
+#line 1585 "ui.c"
+ gint _tmp27_ = 0;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp27_ = i;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ i = _tmp27_ + 1;
+#line 1591 "ui.c"
+ }
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp26_ = FALSE;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp28_ = i;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp29_ = n_delete;
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!(_tmp28_ < _tmp29_)) {
+#line 435 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 1603 "ui.c"
+ }
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp30_ = self->priv->device_model;
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp31_ = index;
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_model_iter_nth_child ((GtkTreeModel*) _tmp30_, &_tmp32_, NULL, _tmp31_);
+#line 437 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp32_;
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp33_ = self->priv->device_model;
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp34_ = iter;
+#line 438 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_remove (_tmp33_, &_tmp34_);
+#line 1619 "ui.c"
+ }
+ }
+ } else {
+ GtkListStore* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+ GtkTreeIter _tmp37_ = {0};
+ GtkListStore* _tmp38_ = NULL;
+ GtkTreeIter _tmp39_ = {0};
+ ScanDevice* _tmp40_ = NULL;
+ const gchar* _tmp41_ = NULL;
+ ScanDevice* _tmp42_ = NULL;
+ const gchar* _tmp43_ = NULL;
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp35_ = self->priv->device_model;
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp36_ = index;
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_insert (_tmp35_, &_tmp37_, _tmp36_);
+#line 443 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp37_;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp38_ = self->priv->device_model;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp39_ = iter;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp40_ = device;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp41_ = _tmp40_->name;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp42_ = device;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp43_ = _tmp42_->label;
+#line 444 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_set (_tmp38_, &_tmp39_, 0, _tmp41_, 1, _tmp43_, -1, -1);
+#line 1654 "ui.c"
+ }
+#line 446 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp44_ = index;
+#line 446 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ index = _tmp44_ + 1;
+#line 402 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _scan_device_unref0 (device);
+#line 1662 "ui.c"
+ }
+ }
+ }
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ while (TRUE) {
+#line 1668 "ui.c"
+ GtkListStore* _tmp45_ = NULL;
+ gint _tmp46_ = 0;
+ GtkTreeIter _tmp47_ = {0};
+ gboolean _tmp48_ = FALSE;
+ GtkListStore* _tmp49_ = NULL;
+ GtkTreeIter _tmp50_ = {0};
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp45_ = self->priv->device_model;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp46_ = index;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp48_ = gtk_tree_model_iter_nth_child ((GtkTreeModel*) _tmp45_, &_tmp47_, NULL, _tmp46_);
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp47_;
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp48_) {
+#line 450 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 1687 "ui.c"
+ }
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp49_ = self->priv->device_model;
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp50_ = iter;
+#line 451 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_remove (_tmp49_, &_tmp50_);
+#line 1695 "ui.c"
+ }
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp52_ = have_selection;
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp52_) {
+#line 1701 "ui.c"
+ GList* _tmp53_ = NULL;
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp53_ = devices;
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp51_ = _tmp53_ != NULL;
+#line 1707 "ui.c"
+ } else {
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp51_ = FALSE;
+#line 1711 "ui.c"
+ }
+#line 454 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp51_) {
+#line 1715 "ui.c"
+ GtkComboBox* _tmp54_ = NULL;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp54_ = self->priv->device_combo;
+#line 455 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_combo_box_set_active (_tmp54_, 0);
+#line 1721 "ui.c"
+ }
+#line 457 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->setting_devices = FALSE;
+#line 459 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_update_info_bar (self);
+#line 1727 "ui.c"
+}
+
+
+static void user_interface_add_default_page (UserInterface* self) {
+ Page* page = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ ScanDirection _tmp3_ = 0;
+ Page* _tmp4_ = NULL;
+ Book* _tmp5_ = NULL;
+ BookView* _tmp6_ = NULL;
+#line 462 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 464 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->default_page_width;
+#line 464 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = self->priv->default_page_height;
+#line 464 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = self->priv->default_page_dpi;
+#line 464 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->default_page_scan_direction;
+#line 464 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = page_new (_tmp0_, _tmp1_, _tmp2_, _tmp3_);
+#line 464 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page = _tmp4_;
+#line 468 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = self->priv->_book;
+#line 468 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ book_append_page (_tmp5_, page);
+#line 469 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = self->priv->book_view;
+#line 469 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ book_view_set_selected_page (_tmp6_, page);
+#line 462 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _page_unref0 (page);
+#line 1764 "ui.c"
+}
+
+
+static gint string_last_index_of_char (const gchar* self, gunichar c, gint start_index) {
+ gint result = 0;
+ gchar* _result_ = NULL;
+ gint _tmp0_ = 0;
+ gunichar _tmp1_ = 0U;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 930 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, 0);
+#line 931 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = start_index;
+#line 931 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp1_ = c;
+#line 931 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp2_ = g_utf8_strrchr (((gchar*) self) + _tmp0_, (gssize) (-1), _tmp1_);
+#line 931 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _result_ = _tmp2_;
+#line 933 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp3_ = _result_;
+#line 933 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp3_ != NULL) {
+#line 1789 "ui.c"
+ gchar* _tmp4_ = NULL;
+#line 934 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp4_ = _result_;
+#line 934 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = (gint) (_tmp4_ - ((gchar*) self));
+#line 934 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 1797 "ui.c"
+ } else {
+#line 936 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = -1;
+#line 936 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 1803 "ui.c"
+ }
+}
+
+
+static gchar* string_slice (const gchar* self, glong start, glong end) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ glong _tmp2_ = 0L;
+ glong _tmp5_ = 0L;
+ gboolean _tmp8_ = FALSE;
+ glong _tmp9_ = 0L;
+ gboolean _tmp12_ = FALSE;
+ glong _tmp13_ = 0L;
+ glong _tmp16_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ gchar* _tmp21_ = NULL;
+#line 1226 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1227 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = strlen (self);
+#line 1227 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp1_ = _tmp0_;
+#line 1227 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp1_;
+#line 1228 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp2_ = start;
+#line 1228 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp2_ < ((glong) 0)) {
+#line 1837 "ui.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+#line 1229 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp3_ = string_length;
+#line 1229 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp4_ = start;
+#line 1229 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ start = _tmp3_ + _tmp4_;
+#line 1846 "ui.c"
+ }
+#line 1231 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1231 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp5_ < ((glong) 0)) {
+#line 1852 "ui.c"
+ glong _tmp6_ = 0L;
+ glong _tmp7_ = 0L;
+#line 1232 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp6_ = string_length;
+#line 1232 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp7_ = end;
+#line 1232 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ end = _tmp6_ + _tmp7_;
+#line 1861 "ui.c"
+ }
+#line 1234 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp9_ = start;
+#line 1234 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp9_ >= ((glong) 0)) {
+#line 1867 "ui.c"
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1234 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp10_ = start;
+#line 1234 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp11_ = string_length;
+#line 1234 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp8_ = _tmp10_ <= _tmp11_;
+#line 1876 "ui.c"
+ } else {
+#line 1234 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp8_ = FALSE;
+#line 1880 "ui.c"
+ }
+#line 1234 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp8_, NULL);
+#line 1235 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp13_ = end;
+#line 1235 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp13_ >= ((glong) 0)) {
+#line 1888 "ui.c"
+ glong _tmp14_ = 0L;
+ glong _tmp15_ = 0L;
+#line 1235 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp14_ = end;
+#line 1235 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1235 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp12_ = _tmp14_ <= _tmp15_;
+#line 1897 "ui.c"
+ } else {
+#line 1235 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp12_ = FALSE;
+#line 1901 "ui.c"
+ }
+#line 1235 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_, NULL);
+#line 1236 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp16_ = start;
+#line 1236 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp17_ = end;
+#line 1236 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp16_ <= _tmp17_, NULL);
+#line 1237 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp18_ = start;
+#line 1237 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp19_ = end;
+#line 1237 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp20_ = start;
+#line 1237 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp21_ = g_strndup (((gchar*) self) + _tmp18_, (gsize) (_tmp19_ - _tmp20_));
+#line 1237 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = _tmp21_;
+#line 1237 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 1923 "ui.c"
+}
+
+
+static void user_interface_on_file_type_changed (UserInterface* self, GtkTreeSelection* selection) {
+ gchar* extension = NULL;
+ GtkTreeSelection* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* path = NULL;
+ GtkFileChooserDialog* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* filename = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gint extension_index = 0;
+ const gchar* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ const gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ GtkFileChooserDialog* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (selection != NULL);
+#line 474 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = selection;
+#line 474 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = user_interface_get_selected_extension (self, _tmp0_);
+#line 474 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ extension = _tmp1_;
+#line 475 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = self->priv->save_dialog;
+#line 475 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = gtk_file_chooser_get_filename ((GtkFileChooser*) _tmp2_);
+#line 475 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ path = _tmp3_;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = path;
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = g_path_get_basename (_tmp4_);
+#line 476 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ filename = _tmp5_;
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = filename;
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = string_last_index_of_char (_tmp6_, (gunichar) '.', 0);
+#line 479 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ extension_index = _tmp7_;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = extension_index;
+#line 480 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp8_ >= 0) {
+#line 1978 "ui.c"
+ const gchar* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gchar* _tmp11_ = NULL;
+#line 481 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = filename;
+#line 481 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = extension_index;
+#line 481 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = string_slice (_tmp9_, (glong) 0, (glong) _tmp10_);
+#line 481 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (filename);
+#line 481 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ filename = _tmp11_;
+#line 1992 "ui.c"
+ }
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = filename;
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = extension;
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = g_strconcat (_tmp12_, _tmp13_, NULL);
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (filename);
+#line 482 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ filename = _tmp14_;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = self->priv->save_dialog;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = filename;
+#line 483 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_file_chooser_set_current_name ((GtkFileChooser*) _tmp15_, _tmp16_);
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (filename);
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (path);
+#line 472 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (extension);
+#line 2016 "ui.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 2023 "ui.c"
+}
+
+
+static gchar* user_interface_get_selected_extension (UserInterface* self, GtkTreeSelection* selection) {
+ gchar* result = NULL;
+ GtkTreeModel* model = NULL;
+ GtkTreeIter iter = {0};
+ gchar* extension = NULL;
+ gchar* _tmp0_ = NULL;
+ GtkTreeSelection* _tmp1_ = NULL;
+ GtkTreeModel* _tmp2_ = NULL;
+ GtkTreeIter _tmp3_ = {0};
+ gboolean _tmp4_ = FALSE;
+ GtkTreeModel* _tmp5_ = NULL;
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 486 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (selection != NULL, NULL);
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = g_strdup ("");
+#line 490 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ extension = _tmp0_;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = selection;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = gtk_tree_selection_get_selected (_tmp1_, &_tmp2_, &_tmp3_);
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (model);
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = _g_object_ref0 (_tmp2_);
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ model = _tmp5_;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp3_;
+#line 492 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp4_) {
+#line 2060 "ui.c"
+ GtkTreeModel* _tmp6_ = NULL;
+ GtkTreeIter _tmp7_ = {0};
+#line 493 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = model;
+#line 493 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = iter;
+#line 493 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_model_get (_tmp6_, &_tmp7_, 1, &extension, -1, -1);
+#line 2069 "ui.c"
+ }
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = extension;
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (model);
+#line 494 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 2077 "ui.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1193 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1193 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1193 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1193 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1194 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1194 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 2100 "ui.c"
+ glong _tmp4_ = 0L;
+#line 1195 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1195 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1195 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 2108 "ui.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1197 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1197 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1197 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1197 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 2120 "ui.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1204 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1206 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1206 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 2144 "ui.c"
+ glong _tmp2_ = 0L;
+#line 1206 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1206 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 2150 "ui.c"
+ } else {
+#line 1206 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 2154 "ui.c"
+ }
+#line 1206 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 2158 "ui.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1208 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1208 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1208 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1208 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 2170 "ui.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1210 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1210 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1210 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 2180 "ui.c"
+ }
+#line 1213 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1213 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 2186 "ui.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1214 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1214 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1214 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1215 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1215 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 2200 "ui.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1217 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1217 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1217 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 2210 "ui.c"
+ }
+#line 1219 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1219 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 2216 "ui.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1220 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1220 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1220 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 2225 "ui.c"
+ }
+#line 1222 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1222 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1222 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1222 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1223 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1223 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1223 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1223 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1223 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 2245 "ui.c"
+}
+
+
+static void _user_interface_on_file_type_changed_gtk_tree_selection_changed (GtkTreeSelection* _sender, gpointer self) {
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_on_file_type_changed ((UserInterface*) self, _sender);
+#line 2252 "ui.c"
+}
+
+
+static gchar* user_interface_choose_file_location (UserInterface* self) {
+ gchar* result = NULL;
+ gchar* directory = NULL;
+ GSettings* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ GtkFileChooserDialog* _tmp10_ = NULL;
+ GtkFileChooserDialog* _tmp11_ = NULL;
+ GtkFileChooserDialog* _tmp12_ = NULL;
+ GtkFileChooserDialog* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ GtkFileChooserDialog* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ GtkFileFilter* filter = NULL;
+ GtkFileFilter* _tmp17_ = NULL;
+ GtkFileFilter* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ GtkFileFilter* _tmp20_ = NULL;
+ GtkFileFilter* _tmp21_ = NULL;
+ GtkFileChooserDialog* _tmp22_ = NULL;
+ GtkFileFilter* _tmp23_ = NULL;
+ GtkFileFilter* _tmp24_ = NULL;
+ GtkFileFilter* _tmp25_ = NULL;
+ GtkFileFilter* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ GtkFileFilter* _tmp28_ = NULL;
+ GtkFileChooserDialog* _tmp29_ = NULL;
+ GtkFileFilter* _tmp30_ = NULL;
+ GtkFileFilter* _tmp31_ = NULL;
+ GtkExpander* expander = NULL;
+ const gchar* _tmp32_ = NULL;
+ GtkExpander* _tmp33_ = NULL;
+ GtkExpander* _tmp34_ = NULL;
+ GtkFileChooserDialog* _tmp35_ = NULL;
+ GtkExpander* _tmp36_ = NULL;
+ gchar* default_extension = NULL;
+ gchar* _tmp37_ = NULL;
+ gint index = 0;
+ const gchar* _tmp38_ = NULL;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ GtkListStore* file_type_store = NULL;
+ GtkListStore* _tmp44_ = NULL;
+ GtkTreeIter iter = {0};
+ GtkListStore* _tmp45_ = NULL;
+ GtkTreeIter _tmp46_ = {0};
+ GtkListStore* _tmp47_ = NULL;
+ GtkTreeIter _tmp48_ = {0};
+ const gchar* _tmp49_ = NULL;
+ GtkListStore* _tmp50_ = NULL;
+ GtkTreeIter _tmp51_ = {0};
+ GtkListStore* _tmp52_ = NULL;
+ GtkTreeIter _tmp53_ = {0};
+ const gchar* _tmp54_ = NULL;
+ GtkListStore* _tmp55_ = NULL;
+ GtkTreeIter _tmp56_ = {0};
+ GtkListStore* _tmp57_ = NULL;
+ GtkTreeIter _tmp58_ = {0};
+ const gchar* _tmp59_ = NULL;
+ GtkTreeView* file_type_view = NULL;
+ GtkListStore* _tmp60_ = NULL;
+ GtkTreeView* _tmp61_ = NULL;
+ GtkTreeView* _tmp62_ = NULL;
+ GtkTreeView* _tmp63_ = NULL;
+ GtkTreeViewColumn* column = NULL;
+ GtkCellRendererText* _tmp64_ = NULL;
+ GtkCellRendererText* _tmp65_ = NULL;
+ GtkTreeViewColumn* _tmp66_ = NULL;
+ GtkTreeViewColumn* _tmp67_ = NULL;
+ GtkTreeView* _tmp68_ = NULL;
+ GtkTreeViewColumn* _tmp69_ = NULL;
+ GtkExpander* _tmp70_ = NULL;
+ GtkTreeView* _tmp71_ = NULL;
+ GtkListStore* _tmp72_ = NULL;
+ GtkTreeIter _tmp73_ = {0};
+ gboolean _tmp74_ = FALSE;
+ GtkTreeView* _tmp85_ = NULL;
+ GtkTreeSelection* _tmp86_ = NULL;
+ GtkExpander* _tmp87_ = NULL;
+ gint response = 0;
+ GtkFileChooserDialog* _tmp88_ = NULL;
+ gint _tmp89_ = 0;
+ gchar* uri = NULL;
+ gint _tmp90_ = 0;
+ GSettings* _tmp110_ = NULL;
+ GtkFileChooserDialog* _tmp111_ = NULL;
+ gchar* _tmp112_ = NULL;
+ gchar* _tmp113_ = NULL;
+ GtkTreeView* _tmp114_ = NULL;
+ GtkTreeSelection* _tmp115_ = NULL;
+ guint _tmp116_ = 0U;
+ GtkFileChooserDialog* _tmp117_ = NULL;
+#line 497 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 500 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ directory = NULL;
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->settings;
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = g_settings_get_string (_tmp0_, "save-directory");
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (directory);
+#line 501 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ directory = _tmp1_;
+#line 503 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = directory;
+#line 503 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp3_ == NULL) {
+#line 503 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = TRUE;
+#line 2370 "ui.c"
+ } else {
+ const gchar* _tmp4_ = NULL;
+#line 503 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = directory;
+#line 503 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = g_strcmp0 (_tmp4_, "") == 0;
+#line 2377 "ui.c"
+ }
+#line 503 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 2381 "ui.c"
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 504 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS);
+#line 504 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 504 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (directory);
+#line 504 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ directory = _tmp6_;
+#line 2392 "ui.c"
+ }
+#line 506 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = _ ("Save As...");
+#line 506 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = _ ("_Cancel");
+#line 506 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = _ ("_Save");
+#line 506 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = (GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_tmp7_, (GtkWindow*) self, GTK_FILE_CHOOSER_ACTION_SAVE, _tmp8_, GTK_RESPONSE_CANCEL, _tmp9_, GTK_RESPONSE_ACCEPT, NULL, NULL);
+#line 506 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp10_);
+#line 506 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->save_dialog);
+#line 506 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->save_dialog = _tmp10_;
+#line 513 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = self->priv->save_dialog;
+#line 513 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_file_chooser_set_do_overwrite_confirmation ((GtkFileChooser*) _tmp11_, TRUE);
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = self->priv->save_dialog;
+#line 514 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_file_chooser_set_local_only ((GtkFileChooser*) _tmp12_, FALSE);
+#line 515 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = self->priv->save_dialog;
+#line 515 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = directory;
+#line 515 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_file_chooser_set_current_folder ((GtkFileChooser*) _tmp13_, _tmp14_);
+#line 516 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = self->priv->save_dialog;
+#line 516 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = self->priv->_default_file_name;
+#line 516 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_file_chooser_set_current_name ((GtkFileChooser*) _tmp15_, _tmp16_);
+#line 519 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = gtk_file_filter_new ();
+#line 519 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp17_);
+#line 519 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ filter = _tmp17_;
+#line 520 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = filter;
+#line 520 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = _ ("Image Files");
+#line 520 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_file_filter_set_name (_tmp18_, _tmp19_);
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp20_ = filter;
+#line 522 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_file_filter_add_pixbuf_formats (_tmp20_);
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp21_ = filter;
+#line 523 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_file_filter_add_mime_type (_tmp21_, "application/pdf");
+#line 524 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp22_ = self->priv->save_dialog;
+#line 524 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp23_ = filter;
+#line 524 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp24_ = _g_object_ref0 (_tmp23_);
+#line 524 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_file_chooser_add_filter ((GtkFileChooser*) _tmp22_, _tmp24_);
+#line 525 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp25_ = gtk_file_filter_new ();
+#line 525 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp25_);
+#line 525 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (filter);
+#line 525 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ filter = _tmp25_;
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp26_ = filter;
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp27_ = _ ("All Files");
+#line 526 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_file_filter_set_name (_tmp26_, _tmp27_);
+#line 528 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp28_ = filter;
+#line 528 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_file_filter_add_pattern (_tmp28_, "*");
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp29_ = self->priv->save_dialog;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp30_ = filter;
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp31_ = _g_object_ref0 (_tmp30_);
+#line 529 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_file_chooser_add_filter ((GtkFileChooser*) _tmp29_, _tmp31_);
+#line 531 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp32_ = _ ("Select File _Type");
+#line 531 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp33_ = (GtkExpander*) gtk_expander_new_with_mnemonic (_tmp32_);
+#line 531 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp33_);
+#line 531 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ expander = _tmp33_;
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp34_ = expander;
+#line 533 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_expander_set_spacing (_tmp34_, 5);
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp35_ = self->priv->save_dialog;
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp36_ = expander;
+#line 534 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_file_chooser_set_extra_widget ((GtkFileChooser*) _tmp35_, (GtkWidget*) _tmp36_);
+#line 536 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp37_ = g_strdup ("");
+#line 536 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ default_extension = _tmp37_;
+#line 537 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp38_ = self->priv->_default_file_name;
+#line 537 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp39_ = string_last_index_of_char (_tmp38_, (gunichar) '.', 0);
+#line 537 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ index = _tmp39_;
+#line 538 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp40_ = index;
+#line 538 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp40_ >= 0) {
+#line 2514 "ui.c"
+ const gchar* _tmp41_ = NULL;
+ gint _tmp42_ = 0;
+ gchar* _tmp43_ = NULL;
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp41_ = self->priv->_default_file_name;
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp42_ = index;
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp43_ = string_substring (_tmp41_, (glong) _tmp42_, (glong) (-1));
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (default_extension);
+#line 539 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ default_extension = _tmp43_;
+#line 2528 "ui.c"
+ }
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp44_ = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
+#line 541 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ file_type_store = _tmp44_;
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp45_ = file_type_store;
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_append (_tmp45_, &_tmp46_);
+#line 543 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp46_;
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp47_ = file_type_store;
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp48_ = iter;
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp49_ = _ ("PDF (multi-page document)");
+#line 544 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_set (_tmp47_, &_tmp48_, 0, _tmp49_, 1, ".pdf", -1, -1);
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp50_ = file_type_store;
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_append (_tmp50_, &_tmp51_);
+#line 549 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp51_;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp52_ = file_type_store;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp53_ = iter;
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp54_ = _ ("JPEG (compressed)");
+#line 550 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_set (_tmp52_, &_tmp53_, 0, _tmp54_, 1, ".jpg", -1, -1);
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp55_ = file_type_store;
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_append (_tmp55_, &_tmp56_);
+#line 555 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp56_;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp57_ = file_type_store;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp58_ = iter;
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp59_ = _ ("PNG (lossless)");
+#line 556 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_set (_tmp57_, &_tmp58_, 0, _tmp59_, 1, ".png", -1, -1);
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp60_ = file_type_store;
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp61_ = (GtkTreeView*) gtk_tree_view_new_with_model ((GtkTreeModel*) _tmp60_);
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp61_);
+#line 562 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ file_type_view = _tmp61_;
+#line 563 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp62_ = file_type_view;
+#line 563 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_view_set_headers_visible (_tmp62_, FALSE);
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp63_ = file_type_view;
+#line 564 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_view_set_rules_hint (_tmp63_, TRUE);
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp64_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp64_);
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp65_ = _tmp64_;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp66_ = gtk_tree_view_column_new_with_attributes ("", (GtkCellRenderer*) _tmp65_, "text", 0, NULL, NULL);
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp66_);
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp67_ = _tmp66_;
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (_tmp65_);
+#line 565 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ column = _tmp67_;
+#line 568 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp68_ = file_type_view;
+#line 568 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp69_ = column;
+#line 568 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_view_append_column (_tmp68_, _tmp69_);
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp70_ = expander;
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp71_ = file_type_view;
+#line 569 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_container_add ((GtkContainer*) _tmp70_, (GtkWidget*) _tmp71_);
+#line 571 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp72_ = file_type_store;
+#line 571 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp74_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) _tmp72_, &_tmp73_);
+#line 571 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp73_;
+#line 571 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp74_) {
+#line 2628 "ui.c"
+ {
+ gboolean _tmp75_ = FALSE;
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp75_ = TRUE;
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ while (TRUE) {
+#line 2635 "ui.c"
+ gchar* e = NULL;
+ GtkListStore* _tmp78_ = NULL;
+ GtkTreeIter _tmp79_ = {0};
+ const gchar* _tmp80_ = NULL;
+ const gchar* _tmp81_ = NULL;
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp75_) {
+#line 2643 "ui.c"
+ GtkListStore* _tmp76_ = NULL;
+ gboolean _tmp77_ = FALSE;
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp76_ = file_type_store;
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp77_ = gtk_tree_model_iter_next ((GtkTreeModel*) _tmp76_, &iter);
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp77_) {
+#line 579 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 2654 "ui.c"
+ }
+ }
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp75_ = FALSE;
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp78_ = file_type_store;
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp79_ = iter;
+#line 576 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_model_get ((GtkTreeModel*) _tmp78_, &_tmp79_, 1, &e, -1, -1);
+#line 577 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp80_ = default_extension;
+#line 577 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp81_ = e;
+#line 577 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (g_strcmp0 (_tmp80_, _tmp81_) == 0) {
+#line 2671 "ui.c"
+ GtkTreeView* _tmp82_ = NULL;
+ GtkTreeSelection* _tmp83_ = NULL;
+ GtkTreeIter _tmp84_ = {0};
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp82_ = file_type_view;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp83_ = gtk_tree_view_get_selection (_tmp82_);
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp84_ = iter;
+#line 578 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_selection_select_iter (_tmp83_, &_tmp84_);
+#line 2683 "ui.c"
+ }
+#line 573 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (e);
+#line 2687 "ui.c"
+ }
+ }
+ }
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp85_ = file_type_view;
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp86_ = gtk_tree_view_get_selection (_tmp85_);
+#line 581 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp86_, "changed", (GCallback) _user_interface_on_file_type_changed_gtk_tree_selection_changed, self, 0);
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp87_ = expander;
+#line 583 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_show_all ((GtkWidget*) _tmp87_);
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp88_ = self->priv->save_dialog;
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp89_ = gtk_dialog_run ((GtkDialog*) _tmp88_);
+#line 585 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ response = _tmp89_;
+#line 587 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ uri = NULL;
+#line 588 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp90_ = response;
+#line 588 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp90_ == ((gint) GTK_RESPONSE_ACCEPT)) {
+#line 2713 "ui.c"
+ GtkTreeSelection* selection = NULL;
+ GtkTreeView* _tmp91_ = NULL;
+ GtkTreeSelection* _tmp92_ = NULL;
+ GtkTreeSelection* _tmp93_ = NULL;
+ gchar* extension = NULL;
+ GtkTreeSelection* _tmp94_ = NULL;
+ gchar* _tmp95_ = NULL;
+ gchar* path = NULL;
+ GtkFileChooserDialog* _tmp96_ = NULL;
+ gchar* _tmp97_ = NULL;
+ gchar* filename = NULL;
+ const gchar* _tmp98_ = NULL;
+ gchar* _tmp99_ = NULL;
+ gint extension_index = 0;
+ const gchar* _tmp100_ = NULL;
+ gint _tmp101_ = 0;
+ gint _tmp102_ = 0;
+ const gchar* _tmp106_ = NULL;
+ GFile* _tmp107_ = NULL;
+ GFile* _tmp108_ = NULL;
+ gchar* _tmp109_ = NULL;
+#line 590 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp91_ = file_type_view;
+#line 590 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp92_ = gtk_tree_view_get_selection (_tmp91_);
+#line 590 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp93_ = _g_object_ref0 (_tmp92_);
+#line 590 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ selection = _tmp93_;
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp94_ = selection;
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp95_ = user_interface_get_selected_extension (self, _tmp94_);
+#line 591 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ extension = _tmp95_;
+#line 593 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp96_ = self->priv->save_dialog;
+#line 593 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp97_ = gtk_file_chooser_get_filename ((GtkFileChooser*) _tmp96_);
+#line 593 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ path = _tmp97_;
+#line 594 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp98_ = path;
+#line 594 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp99_ = g_path_get_basename (_tmp98_);
+#line 594 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ filename = _tmp99_;
+#line 596 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp100_ = filename;
+#line 596 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp101_ = string_last_index_of_char (_tmp100_, (gunichar) '.', 0);
+#line 596 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ extension_index = _tmp101_;
+#line 597 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp102_ = extension_index;
+#line 597 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp102_ < 0) {
+#line 2771 "ui.c"
+ const gchar* _tmp103_ = NULL;
+ const gchar* _tmp104_ = NULL;
+ gchar* _tmp105_ = NULL;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp103_ = path;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp104_ = extension;
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp105_ = g_strconcat (_tmp103_, _tmp104_, NULL);
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (path);
+#line 598 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ path = _tmp105_;
+#line 2785 "ui.c"
+ }
+#line 600 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp106_ = path;
+#line 600 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp107_ = g_file_new_for_path (_tmp106_);
+#line 600 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp108_ = _tmp107_;
+#line 600 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp109_ = g_file_get_uri (_tmp108_);
+#line 600 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (uri);
+#line 600 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ uri = _tmp109_;
+#line 600 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (_tmp108_);
+#line 588 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (filename);
+#line 588 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (path);
+#line 588 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (extension);
+#line 588 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (selection);
+#line 2809 "ui.c"
+ }
+#line 603 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp110_ = self->priv->settings;
+#line 603 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp111_ = self->priv->save_dialog;
+#line 603 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp112_ = gtk_file_chooser_get_current_folder ((GtkFileChooser*) _tmp111_);
+#line 603 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp113_ = _tmp112_;
+#line 603 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_settings_set_string (_tmp110_, "save-directory", _tmp113_);
+#line 603 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_tmp113_);
+#line 605 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp114_ = file_type_view;
+#line 605 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp115_ = gtk_tree_view_get_selection (_tmp114_);
+#line 605 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_parse_name ("changed", GTK_TYPE_TREE_SELECTION, &_tmp116_, NULL, FALSE);
+#line 605 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_handlers_disconnect_matched (_tmp115_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp116_, 0, NULL, (GCallback) _user_interface_on_file_type_changed_gtk_tree_selection_changed, self);
+#line 606 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp117_ = self->priv->save_dialog;
+#line 606 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_destroy ((GtkWidget*) _tmp117_);
+#line 607 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->save_dialog);
+#line 607 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->save_dialog = NULL;
+#line 609 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = uri;
+#line 609 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (column);
+#line 609 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (file_type_view);
+#line 609 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (file_type_store);
+#line 609 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (default_extension);
+#line 609 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (expander);
+#line 609 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (filter);
+#line 609 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (directory);
+#line 609 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 2857 "ui.c"
+}
+
+
+static gboolean user_interface_save_document (UserInterface* self, gboolean force_choose_location) {
+ gboolean result = FALSE;
+ gchar* uri = NULL;
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GFile* file = NULL;
+ const gchar* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* uri_lower = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* format = NULL;
+ gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ const gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ Book* _tmp40_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 612 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = self->priv->book_uri;
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp1_ != NULL) {
+#line 2888 "ui.c"
+ gboolean _tmp2_ = FALSE;
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = force_choose_location;
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = !_tmp2_;
+#line 2894 "ui.c"
+ } else {
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = FALSE;
+#line 2898 "ui.c"
+ }
+#line 615 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp0_) {
+#line 2902 "ui.c"
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 616 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->book_uri;
+#line 616 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 616 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (uri);
+#line 616 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ uri = _tmp4_;
+#line 2913 "ui.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+#line 618 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = user_interface_choose_file_location (self);
+#line 618 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (uri);
+#line 618 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ uri = _tmp5_;
+#line 2922 "ui.c"
+ }
+#line 619 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = uri;
+#line 619 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp6_ == NULL) {
+#line 620 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = FALSE;
+#line 620 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (uri);
+#line 620 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 2934 "ui.c"
+ }
+#line 622 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = uri;
+#line 622 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = g_file_new_for_uri (_tmp7_);
+#line 622 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ file = _tmp8_;
+#line 624 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = uri;
+#line 624 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_debug ("ui.vala:624: Saving to '%s'", _tmp9_);
+#line 626 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = uri;
+#line 626 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = g_utf8_strdown (_tmp10_, (gssize) (-1));
+#line 626 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ uri_lower = _tmp11_;
+#line 627 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = g_strdup ("jpeg");
+#line 627 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ format = _tmp12_;
+#line 628 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = uri_lower;
+#line 628 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = g_str_has_suffix (_tmp13_, ".pdf");
+#line 628 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp14_) {
+#line 2962 "ui.c"
+ gchar* _tmp15_ = NULL;
+#line 629 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = g_strdup ("pdf");
+#line 629 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (format);
+#line 629 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ format = _tmp15_;
+#line 2970 "ui.c"
+ } else {
+ const gchar* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+#line 630 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = uri_lower;
+#line 630 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = g_str_has_suffix (_tmp16_, ".ps");
+#line 630 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp17_) {
+#line 2980 "ui.c"
+ gchar* _tmp18_ = NULL;
+#line 631 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = g_strdup ("ps");
+#line 631 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (format);
+#line 631 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ format = _tmp18_;
+#line 2988 "ui.c"
+ } else {
+ const gchar* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 632 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = uri_lower;
+#line 632 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp20_ = g_str_has_suffix (_tmp19_, ".png");
+#line 632 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp20_) {
+#line 2998 "ui.c"
+ gchar* _tmp21_ = NULL;
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp21_ = g_strdup ("png");
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (format);
+#line 633 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ format = _tmp21_;
+#line 3006 "ui.c"
+ } else {
+ gboolean _tmp22_ = FALSE;
+ const gchar* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 634 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp23_ = uri_lower;
+#line 634 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp24_ = g_str_has_suffix (_tmp23_, ".tif");
+#line 634 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp24_) {
+#line 634 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp22_ = TRUE;
+#line 3019 "ui.c"
+ } else {
+ const gchar* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+#line 634 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp25_ = uri_lower;
+#line 634 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp26_ = g_str_has_suffix (_tmp25_, ".tiff");
+#line 634 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp22_ = _tmp26_;
+#line 3029 "ui.c"
+ }
+#line 634 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp22_) {
+#line 3033 "ui.c"
+ gchar* _tmp27_ = NULL;
+#line 635 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp27_ = g_strdup ("tiff");
+#line 635 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (format);
+#line 635 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ format = _tmp27_;
+#line 3041 "ui.c"
+ }
+ }
+ }
+ }
+#line 637 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_show_progress_dialog (self);
+#line 3048 "ui.c"
+ {
+ Book* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ GFile* _tmp32_ = NULL;
+#line 640 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp28_ = self->priv->_book;
+#line 640 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp29_ = format;
+#line 640 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp30_ = user_interface_get_quality (self);
+#line 640 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp31_ = _tmp30_;
+#line 640 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp32_ = file;
+#line 640 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ book_save (_tmp28_, _tmp29_, _tmp31_, _tmp32_, &_inner_error_);
+#line 640 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 3069 "ui.c"
+ goto __catch16_g_error;
+ }
+ }
+ goto __finally16;
+ __catch16_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+ GError* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+#line 638 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ e = _inner_error_;
+#line 638 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _inner_error_ = NULL;
+#line 644 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_hide_progress_dialog (self);
+#line 645 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp33_ = e;
+#line 645 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp34_ = _tmp33_->message;
+#line 645 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_warning ("ui.vala:645: Error saving file: %s", _tmp34_);
+#line 646 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp35_ = _ ("Failed to save file");
+#line 646 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp36_ = e;
+#line 646 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp37_ = _tmp36_->message;
+#line 646 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_show_error (self, _tmp35_, _tmp37_, FALSE);
+#line 650 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = FALSE;
+#line 650 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_error_free0 (e);
+#line 650 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (format);
+#line 650 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (uri_lower);
+#line 650 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (file);
+#line 650 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (uri);
+#line 650 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 3116 "ui.c"
+ }
+ __finally16:
+#line 638 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 638 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (format);
+#line 638 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (uri_lower);
+#line 638 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (file);
+#line 638 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (uri);
+#line 638 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 638 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_clear_error (&_inner_error_);
+#line 638 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return FALSE;
+#line 3135 "ui.c"
+ }
+#line 653 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp38_ = uri;
+#line 653 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp39_ = g_strdup (_tmp38_);
+#line 653 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (self->priv->book_uri);
+#line 653 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->book_uri = _tmp39_;
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp40_ = self->priv->_book;
+#line 654 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ book_set_needs_saving (_tmp40_, FALSE);
+#line 655 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = TRUE;
+#line 655 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (format);
+#line 655 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (uri_lower);
+#line 655 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (file);
+#line 655 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (uri);
+#line 655 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 3161 "ui.c"
+}
+
+
+static gboolean user_interface_prompt_to_save (UserInterface* self, const gchar* title, const gchar* discard_label) {
+ gboolean result = FALSE;
+ Book* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ GtkMessageDialog* dialog = NULL;
+ const gchar* _tmp3_ = NULL;
+ GtkMessageDialog* _tmp4_ = NULL;
+ GtkMessageDialog* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GtkMessageDialog* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkMessageDialog* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ GtkMessageDialog* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gint response = 0;
+ GtkMessageDialog* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ GtkMessageDialog* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+#line 658 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 658 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (title != NULL, FALSE);
+#line 658 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (discard_label != NULL, FALSE);
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->_book;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = book_get_needs_saving (_tmp0_);
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 660 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp2_) {
+#line 661 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = TRUE;
+#line 661 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 3204 "ui.c"
+ }
+#line 663 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = title;
+#line 663 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE, "%s", _tmp3_);
+#line 663 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp4_);
+#line 663 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ dialog = _tmp4_;
+#line 668 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = dialog;
+#line 668 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = _ ("If you don't save, changes will be permanently lost.");
+#line 668 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_message_dialog_format_secondary_text (_tmp5_, "%s", _tmp6_);
+#line 671 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = dialog;
+#line 671 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = discard_label;
+#line 671 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_dialog_add_button ((GtkDialog*) _tmp7_, _tmp8_, (gint) GTK_RESPONSE_NO);
+#line 672 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = dialog;
+#line 672 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = _ ("_Cancel");
+#line 672 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_dialog_add_button ((GtkDialog*) _tmp9_, _tmp10_, (gint) GTK_RESPONSE_CANCEL);
+#line 673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = dialog;
+#line 673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = _ ("_Save");
+#line 673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_dialog_add_button ((GtkDialog*) _tmp11_, _tmp12_, (gint) GTK_RESPONSE_YES);
+#line 675 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = dialog;
+#line 675 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = gtk_dialog_run ((GtkDialog*) _tmp13_);
+#line 675 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ response = _tmp14_;
+#line 676 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = dialog;
+#line 676 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_destroy ((GtkWidget*) _tmp15_);
+#line 678 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = response;
+#line 678 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ switch (_tmp16_) {
+#line 678 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case GTK_RESPONSE_YES:
+#line 3254 "ui.c"
+ {
+ gboolean _tmp17_ = FALSE;
+#line 681 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = user_interface_save_document (self, FALSE);
+#line 681 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp17_) {
+#line 682 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = TRUE;
+#line 682 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (dialog);
+#line 682 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 3267 "ui.c"
+ } else {
+#line 684 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = FALSE;
+#line 684 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (dialog);
+#line 684 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 3275 "ui.c"
+ }
+ }
+#line 678 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case GTK_RESPONSE_CANCEL:
+#line 3280 "ui.c"
+ {
+#line 686 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = FALSE;
+#line 686 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (dialog);
+#line 686 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 3288 "ui.c"
+ }
+ default:
+#line 678 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case GTK_RESPONSE_NO:
+#line 3293 "ui.c"
+ {
+#line 689 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = TRUE;
+#line 689 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (dialog);
+#line 689 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 3301 "ui.c"
+ }
+ }
+#line 658 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (dialog);
+#line 3306 "ui.c"
+}
+
+
+static void user_interface_clear_document (UserInterface* self) {
+ Book* _tmp0_ = NULL;
+ Book* _tmp1_ = NULL;
+ GtkMenuItem* _tmp2_ = NULL;
+ GtkMenuItem* _tmp3_ = NULL;
+#line 693 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 695 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->_book;
+#line 695 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ book_clear (_tmp0_);
+#line 696 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_add_default_page (self);
+#line 697 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (self->priv->book_uri);
+#line 697 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->book_uri = NULL;
+#line 698 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = self->priv->_book;
+#line 698 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ book_set_needs_saving (_tmp1_, FALSE);
+#line 699 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = self->priv->save_as_menuitem;
+#line 699 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_sensitive ((GtkWidget*) _tmp2_, FALSE);
+#line 700 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->copy_to_clipboard_menuitem;
+#line 700 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_sensitive ((GtkWidget*) _tmp3_, FALSE);
+#line 3339 "ui.c"
+}
+
+
+static void user_interface_new_document (UserInterface* self) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 703 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 705 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = _ ("Save current document?");
+#line 705 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = _ ("Discard Changes");
+#line 705 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = user_interface_prompt_to_save (self, _tmp0_, _tmp1_);
+#line 705 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp2_) {
+#line 709 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 3361 "ui.c"
+ }
+#line 711 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = user_interface_get_scanning (self);
+#line 711 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = _tmp3_;
+#line 711 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp4_) {
+#line 712 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_emit_by_name (self, "stop-scan");
+#line 3371 "ui.c"
+ }
+#line 713 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_clear_document (self);
+#line 3375 "ui.c"
+}
+
+
+static void user_interface_new_button_clicked_cb (UserInterface* self, GtkWidget* widget) {
+#line 717 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 717 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 719 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_new_document (self);
+#line 3386 "ui.c"
+}
+
+
+static void _user_interface_new_button_clicked_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_new_button_clicked_cb ((UserInterface*) self, _sender);
+#line 3393 "ui.c"
+}
+
+
+void user_interface_new_document_activate_cb (UserInterface* self) {
+#line 722 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 724 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_new_document (self);
+#line 3402 "ui.c"
+}
+
+
+static void user_interface_set_document_hint (UserInterface* self, const gchar* document_hint, gboolean save) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 727 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 727 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (document_hint != NULL);
+#line 729 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = document_hint;
+#line 729 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 729 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (self->priv->document_hint);
+#line 729 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->document_hint = _tmp1_;
+#line 731 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = document_hint;
+#line 731 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (g_strcmp0 (_tmp2_, "text") == 0) {
+#line 3427 "ui.c"
+ GtkRadioMenuItem* _tmp3_ = NULL;
+ GtkRadioMenuItem* _tmp4_ = NULL;
+ GtkRadioMenuItem* _tmp5_ = NULL;
+#line 733 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->text_button_menuitem;
+#line 733 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_check_menu_item_set_active ((GtkCheckMenuItem*) _tmp3_, TRUE);
+#line 734 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = self->priv->text_button_hb_menuitem;
+#line 734 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_check_menu_item_set_active ((GtkCheckMenuItem*) _tmp4_, TRUE);
+#line 735 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = self->priv->text_menuitem;
+#line 735 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_check_menu_item_set_active ((GtkCheckMenuItem*) _tmp5_, TRUE);
+#line 3443 "ui.c"
+ } else {
+ const gchar* _tmp6_ = NULL;
+#line 737 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = document_hint;
+#line 737 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (g_strcmp0 (_tmp6_, "photo") == 0) {
+#line 3450 "ui.c"
+ GtkRadioMenuItem* _tmp7_ = NULL;
+ GtkRadioMenuItem* _tmp8_ = NULL;
+ GtkRadioMenuItem* _tmp9_ = NULL;
+#line 739 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = self->priv->photo_button_menuitem;
+#line 739 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_check_menu_item_set_active ((GtkCheckMenuItem*) _tmp7_, TRUE);
+#line 740 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = self->priv->photo_button_hb_menuitem;
+#line 740 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_check_menu_item_set_active ((GtkCheckMenuItem*) _tmp8_, TRUE);
+#line 741 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = self->priv->photo_menuitem;
+#line 741 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_check_menu_item_set_active ((GtkCheckMenuItem*) _tmp9_, TRUE);
+#line 3466 "ui.c"
+ }
+ }
+#line 744 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = save;
+#line 744 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp10_) {
+#line 3473 "ui.c"
+ GSettings* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = self->priv->settings;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = document_hint;
+#line 745 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_settings_set_string (_tmp11_, "document-type", _tmp12_);
+#line 3482 "ui.c"
+ }
+}
+
+
+static void user_interface_text_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget) {
+ GtkCheckMenuItem* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 749 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 749 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 751 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = widget;
+#line 751 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_check_menu_item_get_active (_tmp0_);
+#line 751 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 751 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 752 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_document_hint (self, "text", TRUE);
+#line 3505 "ui.c"
+ }
+}
+
+
+static void _user_interface_text_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_text_menuitem_toggled_cb ((UserInterface*) self, _sender);
+#line 3513 "ui.c"
+}
+
+
+static void user_interface_photo_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget) {
+ GtkCheckMenuItem* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 756 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 756 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 758 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = widget;
+#line 758 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_check_menu_item_get_active (_tmp0_);
+#line 758 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 758 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 759 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_document_hint (self, "photo", TRUE);
+#line 3535 "ui.c"
+ }
+}
+
+
+static void _user_interface_photo_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_photo_menuitem_toggled_cb ((UserInterface*) self, _sender);
+#line 3543 "ui.c"
+}
+
+
+static void user_interface_set_page_side (UserInterface* self, ScanType page_side) {
+ GtkTreeIter iter = {0};
+ GtkListStore* _tmp0_ = NULL;
+ GtkTreeIter _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+#line 762 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 766 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->page_side_model;
+#line 766 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) _tmp0_, &_tmp1_);
+#line 766 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp1_;
+#line 766 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 3562 "ui.c"
+ {
+ gboolean _tmp3_ = FALSE;
+#line 768 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = TRUE;
+#line 768 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ while (TRUE) {
+#line 3569 "ui.c"
+ gint s = 0;
+ GtkListStore* _tmp6_ = NULL;
+ GtkTreeIter _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ ScanType _tmp9_ = 0;
+#line 768 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp3_) {
+#line 3577 "ui.c"
+ GtkListStore* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 777 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = self->priv->page_side_model;
+#line 777 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = gtk_tree_model_iter_next ((GtkTreeModel*) _tmp4_, &iter);
+#line 777 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp5_) {
+#line 777 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 3588 "ui.c"
+ }
+ }
+#line 768 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = FALSE;
+#line 771 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = self->priv->page_side_model;
+#line 771 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = iter;
+#line 771 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_model_get ((GtkTreeModel*) _tmp6_, &_tmp7_, 0, &s, -1, -1);
+#line 772 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = s;
+#line 772 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = page_side;
+#line 772 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp8_ == ((gint) _tmp9_)) {
+#line 3605 "ui.c"
+ GtkComboBox* _tmp10_ = NULL;
+ GtkTreeIter _tmp11_ = {0};
+#line 774 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = self->priv->page_side_combo;
+#line 774 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = iter;
+#line 774 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_combo_box_set_active_iter (_tmp10_, &_tmp11_);
+#line 775 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 3616 "ui.c"
+ }
+ }
+ }
+ }
+}
+
+
+static void user_interface_set_paper_size (UserInterface* self, gint width, gint height) {
+ GtkTreeIter iter = {0};
+ gboolean have_iter = FALSE;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+#line 781 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 3631 "ui.c"
+ {
+ GtkListStore* _tmp0_ = NULL;
+ GtkTreeIter _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 786 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->paper_size_model;
+#line 786 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) _tmp0_, &_tmp1_);
+#line 786 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp1_;
+#line 786 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ have_iter = _tmp2_;
+#line 786 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = TRUE;
+#line 786 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ while (TRUE) {
+#line 3649 "ui.c"
+ gboolean _tmp6_ = FALSE;
+ gint w = 0;
+ gint h = 0;
+ GtkListStore* _tmp7_ = NULL;
+ GtkTreeIter _tmp8_ = {0};
+ gboolean _tmp9_ = FALSE;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 786 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp3_) {
+#line 3660 "ui.c"
+ GtkListStore* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 788 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = self->priv->paper_size_model;
+#line 788 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = gtk_tree_model_iter_next ((GtkTreeModel*) _tmp4_, &iter);
+#line 788 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ have_iter = _tmp5_;
+#line 3669 "ui.c"
+ }
+#line 786 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = FALSE;
+#line 787 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = have_iter;
+#line 787 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp6_) {
+#line 787 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 3679 "ui.c"
+ }
+#line 791 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = self->priv->paper_size_model;
+#line 791 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = iter;
+#line 791 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_model_get ((GtkTreeModel*) _tmp7_, &_tmp8_, 0, &w, 1, &h, -1, -1);
+#line 792 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = w;
+#line 792 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = width;
+#line 792 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp10_ == _tmp11_) {
+#line 3693 "ui.c"
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 792 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = h;
+#line 792 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = height;
+#line 792 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = _tmp12_ == _tmp13_;
+#line 3702 "ui.c"
+ } else {
+#line 792 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = FALSE;
+#line 3706 "ui.c"
+ }
+#line 792 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp9_) {
+#line 793 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 3712 "ui.c"
+ }
+ }
+ }
+#line 796 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = have_iter;
+#line 796 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp14_) {
+#line 3720 "ui.c"
+ GtkListStore* _tmp15_ = NULL;
+ GtkTreeIter _tmp16_ = {0};
+ gboolean _tmp17_ = FALSE;
+#line 797 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = self->priv->paper_size_model;
+#line 797 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) _tmp15_, &_tmp16_);
+#line 797 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp16_;
+#line 797 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ have_iter = _tmp17_;
+#line 3732 "ui.c"
+ }
+#line 798 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = have_iter;
+#line 798 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp18_) {
+#line 3738 "ui.c"
+ GtkComboBox* _tmp19_ = NULL;
+ GtkTreeIter _tmp20_ = {0};
+#line 799 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = self->priv->paper_size_combo;
+#line 799 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp20_ = iter;
+#line 799 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_combo_box_set_active_iter (_tmp19_, &_tmp20_);
+#line 3747 "ui.c"
+ }
+}
+
+
+static gint user_interface_get_text_dpi (UserInterface* self) {
+ gint result = 0;
+ GtkTreeIter iter = {0};
+ gint dpi = 0;
+ GtkComboBox* _tmp0_ = NULL;
+ GtkTreeIter _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+#line 802 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 805 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ dpi = USER_INTERFACE_DEFAULT_TEXT_DPI;
+#line 807 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->text_dpi_combo;
+#line 807 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = gtk_combo_box_get_active_iter (_tmp0_, &_tmp1_);
+#line 807 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp1_;
+#line 807 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 3771 "ui.c"
+ GtkListStore* _tmp3_ = NULL;
+ GtkTreeIter _tmp4_ = {0};
+#line 808 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->text_dpi_model;
+#line 808 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = iter;
+#line 808 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_model_get ((GtkTreeModel*) _tmp3_, &_tmp4_, 0, &dpi, -1, -1);
+#line 3780 "ui.c"
+ }
+#line 810 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = dpi;
+#line 810 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 3786 "ui.c"
+}
+
+
+static gint user_interface_get_photo_dpi (UserInterface* self) {
+ gint result = 0;
+ GtkTreeIter iter = {0};
+ gint dpi = 0;
+ GtkComboBox* _tmp0_ = NULL;
+ GtkTreeIter _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+#line 813 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 816 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ dpi = USER_INTERFACE_DEFAULT_PHOTO_DPI;
+#line 818 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->photo_dpi_combo;
+#line 818 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = gtk_combo_box_get_active_iter (_tmp0_, &_tmp1_);
+#line 818 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp1_;
+#line 818 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 3809 "ui.c"
+ GtkListStore* _tmp3_ = NULL;
+ GtkTreeIter _tmp4_ = {0};
+#line 819 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->photo_dpi_model;
+#line 819 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = iter;
+#line 819 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_model_get ((GtkTreeModel*) _tmp3_, &_tmp4_, 0, &dpi, -1, -1);
+#line 3818 "ui.c"
+ }
+#line 821 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = dpi;
+#line 821 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 3824 "ui.c"
+}
+
+
+static ScanType user_interface_get_page_side (UserInterface* self) {
+ ScanType result = 0;
+ GtkTreeIter iter = {0};
+ gint page_side = 0;
+ GtkComboBox* _tmp0_ = NULL;
+ GtkTreeIter _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ gint _tmp5_ = 0;
+#line 824 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 827 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page_side = (gint) SCAN_TYPE_ADF_BOTH;
+#line 829 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->page_side_combo;
+#line 829 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = gtk_combo_box_get_active_iter (_tmp0_, &_tmp1_);
+#line 829 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp1_;
+#line 829 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 3848 "ui.c"
+ GtkListStore* _tmp3_ = NULL;
+ GtkTreeIter _tmp4_ = {0};
+#line 830 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->page_side_model;
+#line 830 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = iter;
+#line 830 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_model_get ((GtkTreeModel*) _tmp3_, &_tmp4_, 0, &page_side, -1, -1);
+#line 3857 "ui.c"
+ }
+#line 832 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = page_side;
+#line 832 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = (ScanType) _tmp5_;
+#line 832 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 3865 "ui.c"
+}
+
+
+static gboolean user_interface_get_paper_size (UserInterface* self, gint* width, gint* height) {
+ gint _vala_width = 0;
+ gint _vala_height = 0;
+ gboolean result = FALSE;
+ GtkTreeIter iter = {0};
+ gint _tmp0_ = 0;
+ GtkComboBox* _tmp1_ = NULL;
+ GtkTreeIter _tmp2_ = {0};
+ gboolean _tmp3_ = FALSE;
+#line 835 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 839 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _vala_height = 0;
+#line 839 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = _vala_height;
+#line 839 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _vala_width = _tmp0_;
+#line 840 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = self->priv->paper_size_combo;
+#line 840 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = gtk_combo_box_get_active_iter (_tmp1_, &_tmp2_);
+#line 840 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp2_;
+#line 840 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp3_) {
+#line 3894 "ui.c"
+ GtkListStore* _tmp4_ = NULL;
+ GtkTreeIter _tmp5_ = {0};
+#line 842 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = self->priv->paper_size_model;
+#line 842 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = iter;
+#line 842 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_model_get ((GtkTreeModel*) _tmp4_, &_tmp5_, 0, &_vala_width, 1, &_vala_height, -1, -1);
+#line 843 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = TRUE;
+#line 843 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (width) {
+#line 843 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ *width = _vala_width;
+#line 3909 "ui.c"
+ }
+#line 843 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (height) {
+#line 843 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ *height = _vala_height;
+#line 3915 "ui.c"
+ }
+#line 843 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 3919 "ui.c"
+ }
+#line 846 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = FALSE;
+#line 846 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (width) {
+#line 846 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ *width = _vala_width;
+#line 3927 "ui.c"
+ }
+#line 846 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (height) {
+#line 846 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ *height = _vala_height;
+#line 3933 "ui.c"
+ }
+#line 846 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 3937 "ui.c"
+}
+
+
+static ScanOptions* user_interface_make_scan_options (UserInterface* self) {
+ ScanOptions* result = NULL;
+ ScanOptions* options = NULL;
+ ScanOptions* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ ScanOptions* _tmp10_ = NULL;
+ ScanOptions* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ ScanOptions* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ ScanOptions* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 849 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 851 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = scan_options_new ();
+#line 851 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ options = _tmp0_;
+#line 852 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = self->priv->document_hint;
+#line 852 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (g_strcmp0 (_tmp1_, "text") == 0) {
+#line 3966 "ui.c"
+ ScanOptions* _tmp2_ = NULL;
+ ScanOptions* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ ScanOptions* _tmp5_ = NULL;
+#line 854 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = options;
+#line 854 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_->scan_mode = SCAN_MODE_GRAY;
+#line 855 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = options;
+#line 855 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = user_interface_get_text_dpi (self);
+#line 855 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_->dpi = _tmp4_;
+#line 856 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = options;
+#line 856 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_->depth = 2;
+#line 3985 "ui.c"
+ } else {
+ ScanOptions* _tmp6_ = NULL;
+ ScanOptions* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ ScanOptions* _tmp9_ = NULL;
+#line 860 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = options;
+#line 860 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_->scan_mode = SCAN_MODE_COLOR;
+#line 861 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = options;
+#line 861 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = user_interface_get_photo_dpi (self);
+#line 861 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_->dpi = _tmp8_;
+#line 862 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = options;
+#line 862 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_->depth = 8;
+#line 4005 "ui.c"
+ }
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = options;
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = options;
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_get_paper_size (self, &_tmp12_, &_tmp13_);
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_->paper_width = _tmp12_;
+#line 864 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_->paper_height = _tmp13_;
+#line 865 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = options;
+#line 865 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = user_interface_get_brightness (self);
+#line 865 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = _tmp15_;
+#line 865 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_->brightness = _tmp16_;
+#line 866 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = options;
+#line 866 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = user_interface_get_contrast (self);
+#line 866 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = _tmp18_;
+#line 866 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_->contrast = _tmp19_;
+#line 868 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = options;
+#line 868 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 4037 "ui.c"
+}
+
+
+static void user_interface_scan_button_clicked_cb (UserInterface* self, GtkWidget* widget) {
+ ScanOptions* options = NULL;
+ ScanOptions* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 872 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 872 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 874 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = user_interface_make_scan_options (self);
+#line 874 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ options = _tmp0_;
+#line 875 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ options->type = SCAN_TYPE_SINGLE;
+#line 876 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = user_interface_get_selected_device (self);
+#line 876 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 876 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _tmp2_;
+#line 876 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_emit_by_name (self, "start-scan", _tmp3_, options);
+#line 876 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_tmp3_);
+#line 872 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _scan_options_unref0 (options);
+#line 4069 "ui.c"
+}
+
+
+static void _user_interface_scan_button_clicked_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_scan_button_clicked_cb ((UserInterface*) self, _sender);
+#line 4076 "ui.c"
+}
+
+
+static void user_interface_stop_scan_button_clicked_cb (UserInterface* self, GtkWidget* widget) {
+#line 880 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 880 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 882 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_emit_by_name (self, "stop-scan");
+#line 4087 "ui.c"
+}
+
+
+static void _user_interface_stop_scan_button_clicked_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_stop_scan_button_clicked_cb ((UserInterface*) self, _sender);
+#line 4094 "ui.c"
+}
+
+
+static void user_interface_continuous_scan_button_clicked_cb (UserInterface* self, GtkWidget* widget) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 886 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 886 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 888 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = user_interface_get_scanning (self);
+#line 888 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = _tmp0_;
+#line 888 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp1_) {
+#line 889 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_emit_by_name (self, "stop-scan");
+#line 4113 "ui.c"
+ } else {
+ ScanOptions* options = NULL;
+ ScanOptions* _tmp2_ = NULL;
+ ScanOptions* _tmp3_ = NULL;
+ ScanType _tmp4_ = 0;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ ScanOptions* _tmp8_ = NULL;
+#line 892 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = user_interface_make_scan_options (self);
+#line 892 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ options = _tmp2_;
+#line 893 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = options;
+#line 893 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = user_interface_get_page_side (self);
+#line 893 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_->type = _tmp4_;
+#line 894 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = user_interface_get_selected_device (self);
+#line 894 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = _tmp5_;
+#line 894 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = _tmp6_;
+#line 894 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = options;
+#line 894 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_emit_by_name (self, "start-scan", _tmp7_, _tmp8_);
+#line 894 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_tmp7_);
+#line 888 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _scan_options_unref0 (options);
+#line 4147 "ui.c"
+ }
+}
+
+
+static void _user_interface_continuous_scan_button_clicked_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_continuous_scan_button_clicked_cb ((UserInterface*) self, _sender);
+#line 4155 "ui.c"
+}
+
+
+static void user_interface_preferences_button_clicked_cb (UserInterface* self, GtkWidget* widget) {
+ GtkDialog* _tmp0_ = NULL;
+#line 899 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 899 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 901 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->preferences_dialog;
+#line 901 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_present ((GtkWindow*) _tmp0_);
+#line 4169 "ui.c"
+}
+
+
+static void _user_interface_preferences_button_clicked_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_preferences_button_clicked_cb ((UserInterface*) self, _sender);
+#line 4176 "ui.c"
+}
+
+
+void user_interface_preferences_activate_cb (UserInterface* self) {
+ GtkDialog* _tmp0_ = NULL;
+#line 904 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 906 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->preferences_dialog;
+#line 906 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_present ((GtkWindow*) _tmp0_);
+#line 4188 "ui.c"
+}
+
+
+static gboolean user_interface_preferences_dialog_delete_event_cb (UserInterface* self, GtkWidget* widget, GdkEventAny* event) {
+ gboolean result = FALSE;
+#line 910 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 910 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (widget != NULL, FALSE);
+#line 910 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 912 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = TRUE;
+#line 912 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 4204 "ui.c"
+}
+
+
+static gboolean _user_interface_preferences_dialog_delete_event_cb_gtk_widget_delete_event (GtkWidget* _sender, GdkEventAny* event, gpointer self) {
+ gboolean result;
+ result = user_interface_preferences_dialog_delete_event_cb ((UserInterface*) self, _sender, event);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 4213 "ui.c"
+}
+
+
+static void user_interface_preferences_dialog_response_cb (UserInterface* self, GtkWidget* widget, gint response_id) {
+ GtkDialog* _tmp0_ = NULL;
+#line 916 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 916 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 918 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->preferences_dialog;
+#line 918 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp0_, FALSE);
+#line 4227 "ui.c"
+}
+
+
+static void _user_interface_preferences_dialog_response_cb_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_preferences_dialog_response_cb ((UserInterface*) self, _sender, response_id);
+#line 4234 "ui.c"
+}
+
+
+static gpointer _page_ref0 (gpointer self) {
+#line 923 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return self ? page_ref (self) : NULL;
+#line 4241 "ui.c"
+}
+
+
+static void user_interface_update_page_menu (UserInterface* self) {
+ Page* page = NULL;
+ BookView* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+#line 921 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 923 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->book_view;
+#line 923 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = book_view_get_selected_page (_tmp0_);
+#line 923 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 923 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _page_ref0 (_tmp2_);
+#line 923 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page = _tmp3_;
+#line 924 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = page;
+#line 924 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp4_ == NULL) {
+#line 4268 "ui.c"
+ GtkMenuItem* _tmp5_ = NULL;
+ GtkMenuItem* _tmp6_ = NULL;
+#line 926 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = self->priv->page_move_left_menuitem;
+#line 926 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_sensitive ((GtkWidget*) _tmp5_, FALSE);
+#line 927 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = self->priv->page_move_right_menuitem;
+#line 927 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_sensitive ((GtkWidget*) _tmp6_, FALSE);
+#line 4279 "ui.c"
+ } else {
+ guint index = 0U;
+ Book* _tmp7_ = NULL;
+ Page* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ GtkMenuItem* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+ GtkMenuItem* _tmp12_ = NULL;
+ guint _tmp13_ = 0U;
+ Book* _tmp14_ = NULL;
+ guint _tmp15_ = 0U;
+ guint _tmp16_ = 0U;
+#line 931 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = self->priv->_book;
+#line 931 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = page;
+#line 931 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = book_get_page_index (_tmp7_, _tmp8_);
+#line 931 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ index = _tmp9_;
+#line 932 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = self->priv->page_move_left_menuitem;
+#line 932 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = index;
+#line 932 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_sensitive ((GtkWidget*) _tmp10_, _tmp11_ > ((guint) 0));
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = self->priv->page_move_right_menuitem;
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = index;
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = self->priv->_book;
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = book_get_n_pages (_tmp14_);
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = _tmp15_;
+#line 933 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_sensitive ((GtkWidget*) _tmp12_, _tmp13_ < (_tmp16_ - 1));
+#line 4318 "ui.c"
+ }
+#line 921 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _page_unref0 (page);
+#line 4322 "ui.c"
+}
+
+
+static void user_interface_page_selected_cb (UserInterface* self, BookView* view, Page* page) {
+ Page* _tmp0_ = NULL;
+ GtkRadioMenuItem* menuitem = NULL;
+ GtkRadioMenuItem* _tmp1_ = NULL;
+ GtkRadioMenuItem* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ GtkRadioMenuItem* _tmp31_ = NULL;
+ GtkToggleButton* _tmp32_ = NULL;
+ Page* _tmp33_ = NULL;
+ gboolean _tmp34_ = FALSE;
+ gboolean _tmp35_ = FALSE;
+ GtkToggleToolButton* _tmp36_ = NULL;
+ Page* _tmp37_ = NULL;
+ gboolean _tmp38_ = FALSE;
+ gboolean _tmp39_ = FALSE;
+#line 937 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 937 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (view != NULL);
+#line 939 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = page;
+#line 939 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp0_ == NULL) {
+#line 940 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 4353 "ui.c"
+ }
+#line 942 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->updating_page_menu = TRUE;
+#line 944 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_update_page_menu (self);
+#line 946 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = self->priv->no_crop_menuitem;
+#line 946 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 946 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ menuitem = _tmp2_;
+#line 947 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = page;
+#line 947 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = page_get_has_crop (_tmp3_);
+#line 947 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = _tmp4_;
+#line 947 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp5_) {
+#line 4373 "ui.c"
+ gchar* crop_name = NULL;
+ Page* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+#line 949 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = page;
+#line 949 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = page_get_crop_name (_tmp6_);
+#line 949 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = _tmp7_;
+#line 949 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 949 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ crop_name = _tmp9_;
+#line 950 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = crop_name;
+#line 950 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp10_ != NULL) {
+#line 4394 "ui.c"
+ const gchar* _tmp11_ = NULL;
+#line 952 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = crop_name;
+#line 952 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (g_strcmp0 (_tmp11_, "A4") == 0) {
+#line 4400 "ui.c"
+ GtkRadioMenuItem* _tmp12_ = NULL;
+ GtkRadioMenuItem* _tmp13_ = NULL;
+#line 953 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = self->priv->a4_menuitem;
+#line 953 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = _g_object_ref0 (_tmp12_);
+#line 953 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (menuitem);
+#line 953 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ menuitem = _tmp13_;
+#line 4411 "ui.c"
+ } else {
+ const gchar* _tmp14_ = NULL;
+#line 954 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = crop_name;
+#line 954 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (g_strcmp0 (_tmp14_, "A5") == 0) {
+#line 4418 "ui.c"
+ GtkRadioMenuItem* _tmp15_ = NULL;
+ GtkRadioMenuItem* _tmp16_ = NULL;
+#line 955 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = self->priv->a5_menuitem;
+#line 955 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = _g_object_ref0 (_tmp15_);
+#line 955 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (menuitem);
+#line 955 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ menuitem = _tmp16_;
+#line 4429 "ui.c"
+ } else {
+ const gchar* _tmp17_ = NULL;
+#line 956 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = crop_name;
+#line 956 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (g_strcmp0 (_tmp17_, "A6") == 0) {
+#line 4436 "ui.c"
+ GtkRadioMenuItem* _tmp18_ = NULL;
+ GtkRadioMenuItem* _tmp19_ = NULL;
+#line 957 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = self->priv->a6_menuitem;
+#line 957 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = _g_object_ref0 (_tmp18_);
+#line 957 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (menuitem);
+#line 957 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ menuitem = _tmp19_;
+#line 4447 "ui.c"
+ } else {
+ const gchar* _tmp20_ = NULL;
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp20_ = crop_name;
+#line 958 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (g_strcmp0 (_tmp20_, "letter") == 0) {
+#line 4454 "ui.c"
+ GtkRadioMenuItem* _tmp21_ = NULL;
+ GtkRadioMenuItem* _tmp22_ = NULL;
+#line 959 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp21_ = self->priv->letter_menuitem;
+#line 959 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp22_ = _g_object_ref0 (_tmp21_);
+#line 959 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (menuitem);
+#line 959 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ menuitem = _tmp22_;
+#line 4465 "ui.c"
+ } else {
+ const gchar* _tmp23_ = NULL;
+#line 960 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp23_ = crop_name;
+#line 960 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (g_strcmp0 (_tmp23_, "legal") == 0) {
+#line 4472 "ui.c"
+ GtkRadioMenuItem* _tmp24_ = NULL;
+ GtkRadioMenuItem* _tmp25_ = NULL;
+#line 961 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp24_ = self->priv->legal_menuitem;
+#line 961 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp25_ = _g_object_ref0 (_tmp24_);
+#line 961 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (menuitem);
+#line 961 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ menuitem = _tmp25_;
+#line 4483 "ui.c"
+ } else {
+ const gchar* _tmp26_ = NULL;
+#line 962 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp26_ = crop_name;
+#line 962 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (g_strcmp0 (_tmp26_, "4x6") == 0) {
+#line 4490 "ui.c"
+ GtkRadioMenuItem* _tmp27_ = NULL;
+ GtkRadioMenuItem* _tmp28_ = NULL;
+#line 963 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp27_ = self->priv->four_by_six_menuitem;
+#line 963 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp28_ = _g_object_ref0 (_tmp27_);
+#line 963 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (menuitem);
+#line 963 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ menuitem = _tmp28_;
+#line 4501 "ui.c"
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ GtkRadioMenuItem* _tmp29_ = NULL;
+ GtkRadioMenuItem* _tmp30_ = NULL;
+#line 966 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp29_ = self->priv->custom_crop_menuitem;
+#line 966 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp30_ = _g_object_ref0 (_tmp29_);
+#line 966 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (menuitem);
+#line 966 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ menuitem = _tmp30_;
+#line 4519 "ui.c"
+ }
+#line 947 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (crop_name);
+#line 4523 "ui.c"
+ }
+#line 969 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp31_ = menuitem;
+#line 969 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_check_menu_item_set_active ((GtkCheckMenuItem*) _tmp31_, TRUE);
+#line 970 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp32_ = self->priv->crop_button;
+#line 970 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp33_ = page;
+#line 970 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp34_ = page_get_has_crop (_tmp33_);
+#line 970 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp35_ = _tmp34_;
+#line 970 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_toggle_button_set_active (_tmp32_, _tmp35_);
+#line 971 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp36_ = self->priv->crop_toolbutton;
+#line 971 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp37_ = page;
+#line 971 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp38_ = page_get_has_crop (_tmp37_);
+#line 971 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp39_ = _tmp38_;
+#line 971 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_toggle_tool_button_set_active (_tmp36_, _tmp39_);
+#line 973 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->updating_page_menu = FALSE;
+#line 937 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (menuitem);
+#line 4553 "ui.c"
+}
+
+
+static void user_interface_show_page_cb (UserInterface* self, BookView* view, Page* page) {
+ gchar* path = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GFile* file = NULL;
+ const gchar* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 976 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 976 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (view != NULL);
+#line 976 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (page != NULL);
+#line 978 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = get_temporary_filename ("scanned-page", "tiff");
+#line 978 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ path = _tmp0_;
+#line 979 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = path;
+#line 979 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp1_ == NULL) {
+#line 980 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (path);
+#line 980 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 4583 "ui.c"
+ }
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = path;
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = g_file_new_for_path (_tmp2_);
+#line 981 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ file = _tmp3_;
+#line 4591 "ui.c"
+ {
+ Page* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ GFile* _tmp7_ = NULL;
+#line 985 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = page;
+#line 985 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = user_interface_get_quality (self);
+#line 985 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = _tmp5_;
+#line 985 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = file;
+#line 985 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page_save (_tmp4_, "tiff", _tmp6_, _tmp7_, &_inner_error_);
+#line 985 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 4609 "ui.c"
+ goto __catch17_g_error;
+ }
+ }
+ goto __finally17;
+ __catch17_g_error:
+ {
+ GError* e = NULL;
+ const gchar* _tmp8_ = NULL;
+ GError* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+#line 983 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ e = _inner_error_;
+#line 983 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _inner_error_ = NULL;
+#line 989 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = _ ("Unable to save image for preview");
+#line 989 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = e;
+#line 989 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = _tmp9_->message;
+#line 989 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_show_error_dialog (self, _tmp8_, _tmp10_);
+#line 992 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_error_free0 (e);
+#line 992 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (file);
+#line 992 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (path);
+#line 992 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 4640 "ui.c"
+ }
+ __finally17:
+#line 983 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 983 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (file);
+#line 983 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (path);
+#line 983 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 983 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_clear_error (&_inner_error_);
+#line 983 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 4655 "ui.c"
+ }
+ {
+ GdkScreen* _tmp11_ = NULL;
+ GdkScreen* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ guint32 _tmp16_ = 0U;
+#line 997 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = gtk_window_get_screen ((GtkWindow*) self);
+#line 997 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = _tmp11_;
+#line 997 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = file;
+#line 997 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = g_file_get_uri (_tmp13_);
+#line 997 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = _tmp14_;
+#line 997 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = gtk_get_current_event_time ();
+#line 997 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_show_uri (_tmp12_, _tmp15_, _tmp16_, &_inner_error_);
+#line 997 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_tmp15_);
+#line 997 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 4682 "ui.c"
+ goto __catch18_g_error;
+ }
+ }
+ goto __finally18;
+ __catch18_g_error:
+ {
+ GError* e = NULL;
+ const gchar* _tmp17_ = NULL;
+ GError* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+#line 995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ e = _inner_error_;
+#line 995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _inner_error_ = NULL;
+#line 1001 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = _ ("Unable to open image preview application");
+#line 1001 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = e;
+#line 1001 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = _tmp18_->message;
+#line 1001 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_show_error_dialog (self, _tmp17_, _tmp19_);
+#line 995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_error_free0 (e);
+#line 4707 "ui.c"
+ }
+ __finally18:
+#line 995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (file);
+#line 995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (path);
+#line 995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_clear_error (&_inner_error_);
+#line 995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 4722 "ui.c"
+ }
+#line 976 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (file);
+#line 976 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (path);
+#line 4728 "ui.c"
+}
+
+
+static void user_interface_show_page_menu_cb (UserInterface* self, BookView* view) {
+ GtkMenu* _tmp0_ = NULL;
+ guint32 _tmp1_ = 0U;
+#line 1007 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1007 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (view != NULL);
+#line 1009 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->page_menu;
+#line 1009 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_get_current_event_time ();
+#line 1009 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_menu_popup (_tmp0_, NULL, NULL, NULL, NULL, (guint) 3, _tmp1_);
+#line 4745 "ui.c"
+}
+
+
+static void user_interface_rotate_left_button_clicked_cb (UserInterface* self, GtkWidget* widget) {
+ gboolean _tmp0_ = FALSE;
+ Page* page = NULL;
+ BookView* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+#line 1013 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1013 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1015 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->updating_page_menu;
+#line 1015 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp0_) {
+#line 1016 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 4767 "ui.c"
+ }
+#line 1017 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = self->priv->book_view;
+#line 1017 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = book_view_get_selected_page (_tmp1_);
+#line 1017 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _tmp2_;
+#line 1017 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = _page_ref0 (_tmp3_);
+#line 1017 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page = _tmp4_;
+#line 1018 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = page;
+#line 1018 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp5_ != NULL) {
+#line 4783 "ui.c"
+ Page* _tmp6_ = NULL;
+#line 1019 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = page;
+#line 1019 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page_rotate_left (_tmp6_);
+#line 4789 "ui.c"
+ }
+#line 1013 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _page_unref0 (page);
+#line 4793 "ui.c"
+}
+
+
+static void _user_interface_rotate_left_button_clicked_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_rotate_left_button_clicked_cb ((UserInterface*) self, _sender);
+#line 4800 "ui.c"
+}
+
+
+static void user_interface_rotate_right_button_clicked_cb (UserInterface* self, GtkWidget* widget) {
+ gboolean _tmp0_ = FALSE;
+ Page* page = NULL;
+ BookView* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+#line 1023 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1023 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1025 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->updating_page_menu;
+#line 1025 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp0_) {
+#line 1026 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 4822 "ui.c"
+ }
+#line 1027 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = self->priv->book_view;
+#line 1027 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = book_view_get_selected_page (_tmp1_);
+#line 1027 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _tmp2_;
+#line 1027 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = _page_ref0 (_tmp3_);
+#line 1027 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page = _tmp4_;
+#line 1028 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = page;
+#line 1028 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp5_ != NULL) {
+#line 4838 "ui.c"
+ Page* _tmp6_ = NULL;
+#line 1029 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = page;
+#line 1029 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page_rotate_right (_tmp6_);
+#line 4844 "ui.c"
+ }
+#line 1023 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _page_unref0 (page);
+#line 4848 "ui.c"
+}
+
+
+static void _user_interface_rotate_right_button_clicked_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_rotate_right_button_clicked_cb ((UserInterface*) self, _sender);
+#line 4855 "ui.c"
+}
+
+
+static void user_interface_set_crop (UserInterface* self, const gchar* crop_name) {
+ GtkMenuItem* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ Page* page = NULL;
+ BookView* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+ Page* _tmp6_ = NULL;
+ Page* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 1032 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1034 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->crop_rotate_menuitem;
+#line 1034 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = crop_name;
+#line 1034 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, _tmp1_ != NULL);
+#line 1036 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = self->priv->updating_page_menu;
+#line 1036 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 1037 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 4884 "ui.c"
+ }
+#line 1039 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->book_view;
+#line 1039 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = book_view_get_selected_page (_tmp3_);
+#line 1039 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = _tmp4_;
+#line 1039 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = _page_ref0 (_tmp5_);
+#line 1039 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page = _tmp6_;
+#line 1040 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = page;
+#line 1040 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp7_ == NULL) {
+#line 1042 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_warning ("ui.vala:1042: Trying to set crop but no selected page");
+#line 1043 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _page_unref0 (page);
+#line 1043 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 4906 "ui.c"
+ }
+#line 1046 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = crop_name;
+#line 1046 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp8_ == NULL) {
+#line 4912 "ui.c"
+ Page* _tmp9_ = NULL;
+#line 1047 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = page;
+#line 1047 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page_set_no_crop (_tmp9_);
+#line 4918 "ui.c"
+ } else {
+ const gchar* _tmp10_ = NULL;
+#line 1048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = crop_name;
+#line 1048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (g_strcmp0 (_tmp10_, "custom") == 0) {
+#line 4925 "ui.c"
+ gint width = 0;
+ Page* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint height = 0;
+ Page* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint crop_width = 0;
+ gint _tmp17_ = 0;
+ gint crop_height = 0;
+ gint _tmp18_ = 0;
+ Page* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ Page* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+#line 1050 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = page;
+#line 1050 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = page_get_width (_tmp11_);
+#line 1050 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = _tmp12_;
+#line 1050 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ width = _tmp13_;
+#line 1051 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = page;
+#line 1051 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = page_get_height (_tmp14_);
+#line 1051 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = _tmp15_;
+#line 1051 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ height = _tmp16_;
+#line 1052 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = width;
+#line 1052 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ crop_width = (gint) ((_tmp17_ * 0.8) + 0.5);
+#line 1053 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = height;
+#line 1053 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ crop_height = (gint) ((_tmp18_ * 0.8) + 0.5);
+#line 1054 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = page;
+#line 1054 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp20_ = crop_width;
+#line 1054 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp21_ = crop_height;
+#line 1054 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page_set_custom_crop (_tmp19_, _tmp20_, _tmp21_);
+#line 1055 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp22_ = page;
+#line 1055 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp23_ = width;
+#line 1055 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp24_ = crop_width;
+#line 1055 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp25_ = height;
+#line 1055 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp26_ = crop_height;
+#line 1055 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page_move_crop (_tmp22_, (_tmp23_ - _tmp24_) / 2, (_tmp25_ - _tmp26_) / 2);
+#line 4990 "ui.c"
+ } else {
+ Page* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+#line 1058 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp27_ = page;
+#line 1058 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp28_ = crop_name;
+#line 1058 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page_set_named_crop (_tmp27_, _tmp28_);
+#line 5000 "ui.c"
+ }
+ }
+#line 1032 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _page_unref0 (page);
+#line 5005 "ui.c"
+}
+
+
+static void user_interface_no_crop_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget) {
+ GtkCheckMenuItem* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 1062 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1062 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1064 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = widget;
+#line 1064 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_check_menu_item_get_active (_tmp0_);
+#line 1064 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1064 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 1065 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_crop (self, NULL);
+#line 5027 "ui.c"
+ }
+}
+
+
+static void _user_interface_no_crop_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_no_crop_menuitem_toggled_cb ((UserInterface*) self, _sender);
+#line 5035 "ui.c"
+}
+
+
+static void user_interface_custom_crop_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget) {
+ GtkCheckMenuItem* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 1069 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1069 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1071 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = widget;
+#line 1071 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_check_menu_item_get_active (_tmp0_);
+#line 1071 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1071 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 1072 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_crop (self, "custom");
+#line 5057 "ui.c"
+ }
+}
+
+
+static void _user_interface_custom_crop_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_custom_crop_menuitem_toggled_cb ((UserInterface*) self, _sender);
+#line 5065 "ui.c"
+}
+
+
+static void user_interface_crop_button_toggled_cb (UserInterface* self, GtkToggleButton* widget) {
+ gboolean _tmp0_ = FALSE;
+ GtkToggleButton* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 1076 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1076 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1078 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->updating_page_menu;
+#line 1078 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp0_) {
+#line 1079 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 5084 "ui.c"
+ }
+#line 1081 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = widget;
+#line 1081 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = gtk_toggle_button_get_active (_tmp1_);
+#line 1081 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _tmp2_;
+#line 1081 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp3_) {
+#line 5094 "ui.c"
+ GtkRadioMenuItem* _tmp4_ = NULL;
+#line 1082 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = self->priv->custom_crop_menuitem;
+#line 1082 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_check_menu_item_set_active ((GtkCheckMenuItem*) _tmp4_, TRUE);
+#line 5100 "ui.c"
+ } else {
+ GtkRadioMenuItem* _tmp5_ = NULL;
+#line 1084 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = self->priv->no_crop_menuitem;
+#line 1084 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_check_menu_item_set_active ((GtkCheckMenuItem*) _tmp5_, TRUE);
+#line 5107 "ui.c"
+ }
+}
+
+
+static void _user_interface_crop_button_toggled_cb_gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_crop_button_toggled_cb ((UserInterface*) self, _sender);
+#line 5115 "ui.c"
+}
+
+
+static void user_interface_crop_toolbutton_toggled_cb (UserInterface* self, GtkToggleToolButton* widget) {
+ gboolean _tmp0_ = FALSE;
+ GtkToggleToolButton* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 1088 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1088 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1090 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->updating_page_menu;
+#line 1090 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp0_) {
+#line 1091 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 5134 "ui.c"
+ }
+#line 1093 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = widget;
+#line 1093 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = gtk_toggle_tool_button_get_active (_tmp1_);
+#line 1093 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _tmp2_;
+#line 1093 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp3_) {
+#line 5144 "ui.c"
+ GtkRadioMenuItem* _tmp4_ = NULL;
+#line 1094 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = self->priv->custom_crop_menuitem;
+#line 1094 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_check_menu_item_set_active ((GtkCheckMenuItem*) _tmp4_, TRUE);
+#line 5150 "ui.c"
+ } else {
+ GtkRadioMenuItem* _tmp5_ = NULL;
+#line 1096 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = self->priv->no_crop_menuitem;
+#line 1096 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_check_menu_item_set_active ((GtkCheckMenuItem*) _tmp5_, TRUE);
+#line 5157 "ui.c"
+ }
+}
+
+
+static void _user_interface_crop_toolbutton_toggled_cb_gtk_toggle_tool_button_toggled (GtkToggleToolButton* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_crop_toolbutton_toggled_cb ((UserInterface*) self, _sender);
+#line 5165 "ui.c"
+}
+
+
+static void user_interface_four_by_six_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget) {
+ GtkCheckMenuItem* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 1100 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1100 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1102 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = widget;
+#line 1102 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_check_menu_item_get_active (_tmp0_);
+#line 1102 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1102 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 1103 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_crop (self, "4x6");
+#line 5187 "ui.c"
+ }
+}
+
+
+static void _user_interface_four_by_six_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_four_by_six_menuitem_toggled_cb ((UserInterface*) self, _sender);
+#line 5195 "ui.c"
+}
+
+
+static void user_interface_legal_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget) {
+ GtkCheckMenuItem* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 1107 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1107 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1109 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = widget;
+#line 1109 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_check_menu_item_get_active (_tmp0_);
+#line 1109 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1109 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 1110 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_crop (self, "legal");
+#line 5217 "ui.c"
+ }
+}
+
+
+static void _user_interface_legal_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_legal_menuitem_toggled_cb ((UserInterface*) self, _sender);
+#line 5225 "ui.c"
+}
+
+
+static void user_interface_letter_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget) {
+ GtkCheckMenuItem* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 1114 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1114 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1116 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = widget;
+#line 1116 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_check_menu_item_get_active (_tmp0_);
+#line 1116 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1116 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 1117 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_crop (self, "letter");
+#line 5247 "ui.c"
+ }
+}
+
+
+static void _user_interface_letter_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_letter_menuitem_toggled_cb ((UserInterface*) self, _sender);
+#line 5255 "ui.c"
+}
+
+
+static void user_interface_a6_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget) {
+ GtkCheckMenuItem* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 1121 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1121 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1123 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = widget;
+#line 1123 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_check_menu_item_get_active (_tmp0_);
+#line 1123 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1123 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 1124 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_crop (self, "A6");
+#line 5277 "ui.c"
+ }
+}
+
+
+static void _user_interface_a6_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_a6_menuitem_toggled_cb ((UserInterface*) self, _sender);
+#line 5285 "ui.c"
+}
+
+
+static void user_interface_a5_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget) {
+ GtkCheckMenuItem* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 1128 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1128 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1130 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = widget;
+#line 1130 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_check_menu_item_get_active (_tmp0_);
+#line 1130 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1130 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 1131 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_crop (self, "A5");
+#line 5307 "ui.c"
+ }
+}
+
+
+static void _user_interface_a5_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_a5_menuitem_toggled_cb ((UserInterface*) self, _sender);
+#line 5315 "ui.c"
+}
+
+
+static void user_interface_a4_menuitem_toggled_cb (UserInterface* self, GtkCheckMenuItem* widget) {
+ GtkCheckMenuItem* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 1135 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1135 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1137 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = widget;
+#line 1137 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_check_menu_item_get_active (_tmp0_);
+#line 1137 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1137 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 1138 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_crop (self, "A4");
+#line 5337 "ui.c"
+ }
+}
+
+
+static void _user_interface_a4_menuitem_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_a4_menuitem_toggled_cb ((UserInterface*) self, _sender);
+#line 5345 "ui.c"
+}
+
+
+static void user_interface_crop_rotate_menuitem_activate_cb (UserInterface* self, GtkWidget* widget) {
+ Page* page = NULL;
+ BookView* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+#line 1142 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1142 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1144 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->book_view;
+#line 1144 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = book_view_get_selected_page (_tmp0_);
+#line 1144 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1144 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _page_ref0 (_tmp2_);
+#line 1144 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page = _tmp3_;
+#line 1145 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = page;
+#line 1145 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp4_ == NULL) {
+#line 1146 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _page_unref0 (page);
+#line 1146 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 5379 "ui.c"
+ }
+#line 1147 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = page;
+#line 1147 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page_rotate_crop (_tmp5_);
+#line 1142 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _page_unref0 (page);
+#line 5387 "ui.c"
+}
+
+
+static void _user_interface_crop_rotate_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_crop_rotate_menuitem_activate_cb ((UserInterface*) self, _sender);
+#line 5394 "ui.c"
+}
+
+
+static void user_interface_page_move_left_menuitem_activate_cb (UserInterface* self, GtkWidget* widget) {
+ Page* page = NULL;
+ BookView* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ guint index = 0U;
+ Book* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ guint _tmp7_ = 0U;
+#line 1151 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1151 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1153 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->book_view;
+#line 1153 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = book_view_get_selected_page (_tmp0_);
+#line 1153 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1153 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _page_ref0 (_tmp2_);
+#line 1153 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page = _tmp3_;
+#line 1154 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = self->priv->_book;
+#line 1154 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = page;
+#line 1154 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = book_get_page_index (_tmp4_, _tmp5_);
+#line 1154 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ index = _tmp6_;
+#line 1155 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = index;
+#line 1155 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp7_ > ((guint) 0)) {
+#line 5435 "ui.c"
+ Book* _tmp8_ = NULL;
+ Page* _tmp9_ = NULL;
+ guint _tmp10_ = 0U;
+#line 1156 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = self->priv->_book;
+#line 1156 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = page;
+#line 1156 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = index;
+#line 1156 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ book_move_page (_tmp8_, _tmp9_, _tmp10_ - 1);
+#line 5447 "ui.c"
+ }
+#line 1151 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _page_unref0 (page);
+#line 5451 "ui.c"
+}
+
+
+static void _user_interface_page_move_left_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_page_move_left_menuitem_activate_cb ((UserInterface*) self, _sender);
+#line 5458 "ui.c"
+}
+
+
+static void user_interface_page_move_right_menuitem_activate_cb (UserInterface* self, GtkWidget* widget) {
+ Page* page = NULL;
+ BookView* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ guint index = 0U;
+ Book* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ guint _tmp7_ = 0U;
+ Book* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ guint _tmp10_ = 0U;
+#line 1160 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1160 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->book_view;
+#line 1162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = book_view_get_selected_page (_tmp0_);
+#line 1162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _page_ref0 (_tmp2_);
+#line 1162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page = _tmp3_;
+#line 1163 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = self->priv->_book;
+#line 1163 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = page;
+#line 1163 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = book_get_page_index (_tmp4_, _tmp5_);
+#line 1163 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ index = _tmp6_;
+#line 1164 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = index;
+#line 1164 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = self->priv->_book;
+#line 1164 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = book_get_n_pages (_tmp8_);
+#line 1164 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = _tmp9_;
+#line 1164 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp7_ < (_tmp10_ - 1)) {
+#line 5508 "ui.c"
+ Book* _tmp11_ = NULL;
+ Page* _tmp12_ = NULL;
+ Book* _tmp13_ = NULL;
+ Page* _tmp14_ = NULL;
+ guint _tmp15_ = 0U;
+#line 1165 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = self->priv->_book;
+#line 1165 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = page;
+#line 1165 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = self->priv->_book;
+#line 1165 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = page;
+#line 1165 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = book_get_page_index (_tmp13_, _tmp14_);
+#line 1165 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ book_move_page (_tmp11_, _tmp12_, _tmp15_ + 1);
+#line 5526 "ui.c"
+ }
+#line 1160 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _page_unref0 (page);
+#line 5530 "ui.c"
+}
+
+
+static void _user_interface_page_move_right_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_page_move_right_menuitem_activate_cb ((UserInterface*) self, _sender);
+#line 5537 "ui.c"
+}
+
+
+static void user_interface_page_delete_menuitem_activate_cb (UserInterface* self, GtkWidget* widget) {
+ BookView* _tmp0_ = NULL;
+ Book* _tmp1_ = NULL;
+ Book* _tmp2_ = NULL;
+ BookView* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+#line 1169 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1169 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1171 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->book_view;
+#line 1171 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = book_view_get_book (_tmp0_);
+#line 1171 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1171 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->book_view;
+#line 1171 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = book_view_get_selected_page (_tmp3_);
+#line 1171 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = _tmp4_;
+#line 1171 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ book_delete_page (_tmp2_, _tmp5_);
+#line 5566 "ui.c"
+}
+
+
+static void _user_interface_page_delete_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_page_delete_menuitem_activate_cb ((UserInterface*) self, _sender);
+#line 5573 "ui.c"
+}
+
+
+static Block1Data* block1_data_ref (Block1Data* _data1_) {
+#line 1174 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_atomic_int_inc (&_data1_->_ref_count_);
+#line 1174 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return _data1_;
+#line 5582 "ui.c"
+}
+
+
+static void block1_data_unref (void * _userdata_) {
+ Block1Data* _data1_;
+ _data1_ = (Block1Data*) _userdata_;
+#line 1174 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
+#line 5591 "ui.c"
+ UserInterface* self;
+#line 1174 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = _data1_->self;
+#line 1174 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (_data1_->dialog);
+#line 1174 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self);
+#line 1174 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_slice_free (Block1Data, _data1_);
+#line 5601 "ui.c"
+ }
+}
+
+
+static gboolean __lambda4_ (Block1Data* _data1_, GdkEventKey* e) {
+ UserInterface* self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GdkEventKey* _tmp1_ = NULL;
+ GdkModifierType _tmp2_ = 0;
+#line 1183 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = _data1_->self;
+#line 1183 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (e != NULL, FALSE);
+#line 1185 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = e;
+#line 1185 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_->state;
+#line 1185 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_ == 0) {
+#line 5622 "ui.c"
+ GdkEventKey* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+#line 1185 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = e;
+#line 1185 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = _tmp3_->keyval;
+#line 1185 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = _tmp4_ == ((guint) GDK_KEY_Escape);
+#line 5631 "ui.c"
+ } else {
+#line 1185 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = FALSE;
+#line 5635 "ui.c"
+ }
+#line 1185 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp0_) {
+#line 1187 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_destroy ((GtkWidget*) _data1_->dialog);
+#line 1188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = TRUE;
+#line 1188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 5645 "ui.c"
+ }
+#line 1191 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = FALSE;
+#line 1191 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 5651 "ui.c"
+}
+
+
+static gboolean ___lambda4__gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) {
+ gboolean result;
+ result = __lambda4_ (self, event);
+#line 1183 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 5660 "ui.c"
+}
+
+
+static void __lambda5_ (Block1Data* _data1_) {
+ UserInterface* self;
+ Book* _tmp0_ = NULL;
+#line 1205 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = _data1_->self;
+#line 1207 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->_book;
+#line 1207 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ book_combine_sides (_tmp0_);
+#line 1208 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_destroy ((GtkWidget*) _data1_->dialog);
+#line 5675 "ui.c"
+}
+
+
+static void ___lambda5__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 1205 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ __lambda5_ (self);
+#line 5682 "ui.c"
+}
+
+
+static void __lambda6_ (Block1Data* _data1_) {
+ UserInterface* self;
+ Book* _tmp0_ = NULL;
+#line 1215 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = _data1_->self;
+#line 1217 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->_book;
+#line 1217 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ book_combine_sides_reverse (_tmp0_);
+#line 1218 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_destroy ((GtkWidget*) _data1_->dialog);
+#line 5697 "ui.c"
+}
+
+
+static void ___lambda6__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 1215 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ __lambda6_ (self);
+#line 5704 "ui.c"
+}
+
+
+static void __lambda7_ (Block1Data* _data1_) {
+ UserInterface* self;
+ Book* _tmp0_ = NULL;
+#line 1225 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = _data1_->self;
+#line 1227 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->_book;
+#line 1227 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ book_reverse (_tmp0_);
+#line 1228 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_destroy ((GtkWidget*) _data1_->dialog);
+#line 5719 "ui.c"
+}
+
+
+static void ___lambda7__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 1225 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ __lambda7_ (self);
+#line 5726 "ui.c"
+}
+
+
+static void __lambda8_ (Block1Data* _data1_) {
+ UserInterface* self;
+#line 1235 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = _data1_->self;
+#line 1237 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_destroy ((GtkWidget*) _data1_->dialog);
+#line 5736 "ui.c"
+}
+
+
+static void ___lambda8__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 1235 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ __lambda8_ (self);
+#line 5743 "ui.c"
+}
+
+
+static void user_interface_reorder_document (UserInterface* self) {
+ Block1Data* _data1_;
+ GtkWindow* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GtkGrid* g = NULL;
+ GtkGrid* _tmp2_ = NULL;
+ GtkButton* b = NULL;
+ const gchar* _tmp3_ = NULL;
+ GtkButton* _tmp4_ = NULL;
+ GtkButton* _tmp5_ = NULL;
+ GtkButton* _tmp6_ = NULL;
+ GtkButton* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkButton* _tmp9_ = NULL;
+ GtkButton* _tmp10_ = NULL;
+ GtkButton* _tmp11_ = NULL;
+ GtkButton* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ GtkButton* _tmp14_ = NULL;
+ GtkButton* _tmp15_ = NULL;
+ GtkButton* _tmp16_ = NULL;
+ GtkButton* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ GtkButton* _tmp19_ = NULL;
+ GtkButton* _tmp20_ = NULL;
+ GtkButton* _tmp21_ = NULL;
+ GtkButton* _tmp22_ = NULL;
+#line 1174 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1174 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _data1_ = g_slice_new0 (Block1Data);
+#line 1174 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _data1_->_ref_count_ = 1;
+#line 1174 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _data1_->self = g_object_ref (self);
+#line 1176 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = (GtkWindow*) gtk_window_new (GTK_WINDOW_TOPLEVEL);
+#line 1176 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp0_);
+#line 1176 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _data1_->dialog = _tmp0_;
+#line 1177 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_set_type_hint (_data1_->dialog, GDK_WINDOW_TYPE_HINT_DIALOG);
+#line 1178 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_set_modal (_data1_->dialog, TRUE);
+#line 1179 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_container_set_border_width ((GtkContainer*) _data1_->dialog, (guint) 12);
+#line 1181 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = _ ("Reorder Pages");
+#line 1181 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_set_title (_data1_->dialog, _tmp1_);
+#line 1182 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_set_transient_for (_data1_->dialog, (GtkWindow*) self);
+#line 1183 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_data ((GtkWidget*) _data1_->dialog, "key-press-event", (GCallback) ___lambda4__gtk_widget_key_press_event, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
+#line 1193 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _data1_->dialog, TRUE);
+#line 1195 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = (GtkGrid*) gtk_grid_new ();
+#line 1195 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp2_);
+#line 1195 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g = _tmp2_;
+#line 1196 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_grid_set_row_homogeneous (g, TRUE);
+#line 1197 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_grid_set_row_spacing (g, 6);
+#line 1198 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_grid_set_column_homogeneous (g, TRUE);
+#line 1199 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_grid_set_column_spacing (g, 6);
+#line 1200 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) g, TRUE);
+#line 1201 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_container_add ((GtkContainer*) _data1_->dialog, (GtkWidget*) g);
+#line 1204 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _ ("Combine sides");
+#line 1204 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = user_interface_make_reorder_button (self, _tmp3_, "F1F2F3B1B2B3-F1B1F2B2F3B3");
+#line 1204 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ b = _tmp4_;
+#line 1205 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = b;
+#line 1205 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_data (_tmp5_, "clicked", (GCallback) ___lambda5__gtk_button_clicked, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
+#line 1210 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = b;
+#line 1210 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp6_, TRUE);
+#line 1211 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = b;
+#line 1211 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_grid_attach (g, (GtkWidget*) _tmp7_, 0, 0, 1, 1);
+#line 1214 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = _ ("Combine sides (reverse)");
+#line 1214 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = user_interface_make_reorder_button (self, _tmp8_, "F1F2F3B3B2B1-F1B1F2B2F3B3");
+#line 1214 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (b);
+#line 1214 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ b = _tmp9_;
+#line 1215 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = b;
+#line 1215 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_data (_tmp10_, "clicked", (GCallback) ___lambda6__gtk_button_clicked, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
+#line 1220 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = b;
+#line 1220 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp11_, TRUE);
+#line 1221 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = b;
+#line 1221 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_grid_attach (g, (GtkWidget*) _tmp12_, 1, 0, 1, 1);
+#line 1224 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = _ ("Reverse");
+#line 1224 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = user_interface_make_reorder_button (self, _tmp13_, "C1C2C3C4C5C6-C6C5C4C3C2C1");
+#line 1224 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (b);
+#line 1224 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ b = _tmp14_;
+#line 1225 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = b;
+#line 1225 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_data (_tmp15_, "clicked", (GCallback) ___lambda7__gtk_button_clicked, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
+#line 1230 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = b;
+#line 1230 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp16_, TRUE);
+#line 1231 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = b;
+#line 1231 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_grid_attach (g, (GtkWidget*) _tmp17_, 0, 2, 1, 1);
+#line 1234 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = _ ("Keep unchanged");
+#line 1234 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = user_interface_make_reorder_button (self, _tmp18_, "C1C2C3C4C5C6-C1C2C3C4C5C6");
+#line 1234 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (b);
+#line 1234 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ b = _tmp19_;
+#line 1235 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp20_ = b;
+#line 1235 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_data (_tmp20_, "clicked", (GCallback) ___lambda8__gtk_button_clicked, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
+#line 1239 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp21_ = b;
+#line 1239 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp21_, TRUE);
+#line 1240 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp22_ = b;
+#line 1240 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_grid_attach (g, (GtkWidget*) _tmp22_, 1, 2, 1, 1);
+#line 1242 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_present (_data1_->dialog);
+#line 1174 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (b);
+#line 1174 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (g);
+#line 1174 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ block1_data_unref (_data1_);
+#line 1174 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _data1_ = NULL;
+#line 5910 "ui.c"
+}
+
+
+void user_interface_reorder_document_activate_cb (UserInterface* self) {
+#line 1245 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1247 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_reorder_document (self);
+#line 5919 "ui.c"
+}
+
+
+static void user_interface_reorder_menuitem_activate_cb (UserInterface* self, GtkWidget* widget) {
+#line 1251 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1251 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1253 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_reorder_document (self);
+#line 5930 "ui.c"
+}
+
+
+static void _user_interface_reorder_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_reorder_menuitem_activate_cb ((UserInterface*) self, _sender);
+#line 5937 "ui.c"
+}
+
+
+static GtkButton* user_interface_make_reorder_button (UserInterface* self, const gchar* text, const gchar* items) {
+ GtkButton* result = NULL;
+ GtkButton* b = NULL;
+ GtkButton* _tmp0_ = NULL;
+ GtkBox* vbox = NULL;
+ GtkBox* _tmp1_ = NULL;
+ GtkLabel* label = NULL;
+ const gchar* _tmp2_ = NULL;
+ GtkLabel* _tmp3_ = NULL;
+ GtkBox* rb = NULL;
+ const gchar* _tmp4_ = NULL;
+ GtkBox* _tmp5_ = NULL;
+#line 1256 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1256 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (text != NULL, NULL);
+#line 1256 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (items != NULL, NULL);
+#line 1258 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = (GtkButton*) gtk_button_new ();
+#line 1258 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp0_);
+#line 1258 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ b = _tmp0_;
+#line 1260 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
+#line 1260 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp1_);
+#line 1260 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ vbox = _tmp1_;
+#line 1261 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) vbox, TRUE);
+#line 1262 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_container_add ((GtkContainer*) b, (GtkWidget*) vbox);
+#line 1264 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = text;
+#line 1264 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = (GtkLabel*) gtk_label_new (_tmp2_);
+#line 1264 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp3_);
+#line 1264 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ label = _tmp3_;
+#line 1265 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) label, TRUE);
+#line 1266 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_box_pack_start (vbox, (GtkWidget*) label, TRUE, TRUE, (guint) 0);
+#line 1268 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = items;
+#line 1268 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = user_interface_make_reorder_box (self, _tmp4_);
+#line 1268 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ rb = _tmp5_;
+#line 1269 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) rb, TRUE);
+#line 1270 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_box_pack_start (vbox, (GtkWidget*) rb, TRUE, TRUE, (guint) 0);
+#line 1272 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = b;
+#line 1272 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (rb);
+#line 1272 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (label);
+#line 1272 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (vbox);
+#line 1272 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 6007 "ui.c"
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+ gchar result = '\0';
+ glong _tmp0_ = 0L;
+ gchar _tmp1_ = '\0';
+#line 996 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, '\0');
+#line 997 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp0_ = index;
+#line 997 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 997 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 997 "/usr/share/vala-0.24/vapi/glib-2.0.vapi"
+ return result;
+#line 6025 "ui.c"
+}
+
+
+static GtkBox* user_interface_make_reorder_box (UserInterface* self, const gchar* items) {
+ GtkBox* result = NULL;
+ GtkBox* box = NULL;
+ GtkBox* _tmp0_ = NULL;
+ GtkBox* _tmp1_ = NULL;
+ GtkBox* page_box = NULL;
+#line 1275 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1275 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (items != NULL, NULL);
+#line 1277 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+#line 1277 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp0_);
+#line 1277 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ box = _tmp0_;
+#line 1278 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = box;
+#line 1278 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp1_, TRUE);
+#line 1280 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page_box = NULL;
+#line 6051 "ui.c"
+ {
+ gint i = 0;
+#line 1281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ i = 0;
+#line 6056 "ui.c"
+ {
+ gboolean _tmp2_ = FALSE;
+#line 1281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = TRUE;
+#line 1281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ while (TRUE) {
+#line 6063 "ui.c"
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gchar _tmp6_ = '\0';
+ const gchar* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gchar _tmp9_ = '\0';
+ gchar side = '\0';
+ const gchar* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gchar _tmp16_ = '\0';
+ gint _tmp17_ = 0;
+ const gchar* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gchar _tmp20_ = '\0';
+ GtkBox* _tmp21_ = NULL;
+ gdouble r = 0.0;
+ gdouble g = 0.0;
+ gdouble b = 0.0;
+ gchar _tmp26_ = '\0';
+ gdouble _tmp33_ = 0.0;
+ gdouble _tmp34_ = 0.0;
+ gdouble _tmp35_ = 0.0;
+ gdouble _tmp36_ = 0.0;
+ gdouble _tmp37_ = 0.0;
+ gdouble _tmp38_ = 0.0;
+ PageIcon* icon = NULL;
+ const gchar* _tmp39_ = NULL;
+ gint _tmp40_ = 0;
+ gchar _tmp41_ = '\0';
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ gdouble _tmp44_ = 0.0;
+ gdouble _tmp45_ = 0.0;
+ gdouble _tmp46_ = 0.0;
+ PageIcon* _tmp47_ = NULL;
+ PageIcon* _tmp48_ = NULL;
+ PageIcon* _tmp49_ = NULL;
+ GtkBox* _tmp50_ = NULL;
+ PageIcon* _tmp51_ = NULL;
+#line 1281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp2_) {
+#line 6105 "ui.c"
+ gint _tmp3_ = 0;
+#line 1281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = i;
+#line 1281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ i = _tmp3_ + 1;
+#line 6111 "ui.c"
+ }
+#line 1281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = FALSE;
+#line 1281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = items;
+#line 1281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = i;
+#line 1281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = string_get (_tmp4_, (glong) _tmp5_);
+#line 1281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!(_tmp6_ != '\0')) {
+#line 1281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 6125 "ui.c"
+ }
+#line 1283 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = items;
+#line 1283 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = i;
+#line 1283 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = string_get (_tmp7_, (glong) _tmp8_);
+#line 1283 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp9_ == '-') {
+#line 6135 "ui.c"
+ GtkArrow* a = NULL;
+ GtkArrow* _tmp10_ = NULL;
+ GtkArrow* _tmp11_ = NULL;
+ GtkBox* _tmp12_ = NULL;
+ GtkArrow* _tmp13_ = NULL;
+#line 1285 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = (GtkArrow*) gtk_arrow_new (GTK_ARROW_RIGHT, GTK_SHADOW_NONE);
+#line 1285 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp10_);
+#line 1285 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ a = _tmp10_;
+#line 1286 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = a;
+#line 1286 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp11_, TRUE);
+#line 1287 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = box;
+#line 1287 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = a;
+#line 1287 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_box_pack_start (_tmp12_, (GtkWidget*) _tmp13_, FALSE, FALSE, (guint) 0);
+#line 1288 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (page_box);
+#line 1288 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page_box = NULL;
+#line 1289 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (a);
+#line 1289 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ continue;
+#line 6165 "ui.c"
+ }
+#line 1293 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = items;
+#line 1293 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = i;
+#line 1293 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = string_get (_tmp14_, (glong) _tmp15_);
+#line 1293 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ side = _tmp16_;
+#line 1294 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = i;
+#line 1294 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ i = _tmp17_ + 1;
+#line 1295 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = items;
+#line 1295 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = i;
+#line 1295 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp20_ = string_get (_tmp18_, (glong) _tmp19_);
+#line 1295 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp20_ == '\0') {
+#line 1296 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 6189 "ui.c"
+ }
+#line 1298 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp21_ = page_box;
+#line 1298 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp21_ == NULL) {
+#line 6195 "ui.c"
+ GtkBox* _tmp22_ = NULL;
+ GtkBox* _tmp23_ = NULL;
+ GtkBox* _tmp24_ = NULL;
+ GtkBox* _tmp25_ = NULL;
+#line 1300 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp22_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
+#line 1300 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp22_);
+#line 1300 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (page_box);
+#line 1300 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page_box = _tmp22_;
+#line 1301 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp23_ = page_box;
+#line 1301 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp23_, TRUE);
+#line 1302 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp24_ = box;
+#line 1302 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp25_ = page_box;
+#line 1302 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_box_pack_start (_tmp24_, (GtkWidget*) _tmp25_, FALSE, FALSE, (guint) 0);
+#line 6218 "ui.c"
+ }
+#line 1306 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ r = 1.0;
+#line 1307 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g = 1.0;
+#line 1308 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ b = 1.0;
+#line 1309 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp26_ = side;
+#line 1309 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ switch (_tmp26_) {
+#line 1309 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case 'F':
+#line 6232 "ui.c"
+ {
+#line 1313 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ r = 0x75 / 255.0;
+#line 1314 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g = 0x50 / 255.0;
+#line 1315 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ b = 0x7B / 255.0;
+#line 1316 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 6242 "ui.c"
+ }
+#line 1309 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case 'B':
+#line 6246 "ui.c"
+ {
+#line 1319 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ r = 0xF5 / 255.0;
+#line 1320 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g = 0x79 / 255.0;
+#line 1321 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ b = 0.0;
+#line 1322 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 6256 "ui.c"
+ }
+#line 1309 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case 'C':
+#line 6260 "ui.c"
+ {
+ gdouble p = 0.0;
+ const gchar* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gchar _tmp29_ = '\0';
+ gdouble _tmp30_ = 0.0;
+ gdouble _tmp31_ = 0.0;
+ gdouble _tmp32_ = 0.0;
+#line 1325 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp27_ = items;
+#line 1325 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp28_ = i;
+#line 1325 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp29_ = string_get (_tmp27_, (glong) _tmp28_);
+#line 1325 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ p = (_tmp29_ - '1') / 5.0;
+#line 1326 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp30_ = p;
+#line 1326 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp31_ = p;
+#line 1326 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ r = ((0xED / 255.0) * (1 - _tmp30_)) + (0xCC * _tmp31_);
+#line 1327 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp32_ = p;
+#line 1327 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g = (0xD4 / 255.0) * (1 - _tmp32_);
+#line 1328 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ b = (gdouble) 0;
+#line 1329 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 6291 "ui.c"
+ }
+ default:
+#line 1309 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 6296 "ui.c"
+ }
+#line 1333 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp33_ = r;
+#line 1333 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp34_ = r;
+#line 1333 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ r = _tmp33_ + ((1.0 - _tmp34_) * 0.7);
+#line 1334 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp35_ = g;
+#line 1334 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp36_ = g;
+#line 1334 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g = _tmp35_ + ((1.0 - _tmp36_) * 0.7);
+#line 1335 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp37_ = b;
+#line 1335 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp38_ = b;
+#line 1335 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ b = _tmp37_ + ((1.0 - _tmp38_) * 0.7);
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp39_ = items;
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp40_ = i;
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp41_ = string_get (_tmp39_, (glong) _tmp40_);
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp42_ = g_strdup_printf ("%c", (gint) _tmp41_);
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp43_ = _tmp42_;
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp44_ = r;
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp45_ = g;
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp46_ = b;
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp47_ = page_icon_new (_tmp43_, _tmp44_, _tmp45_, _tmp46_);
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp47_);
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp48_ = _tmp47_;
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_tmp43_);
+#line 1337 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ icon = _tmp48_;
+#line 1338 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp49_ = icon;
+#line 1338 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp49_, TRUE);
+#line 1339 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp50_ = page_box;
+#line 1339 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp51_ = icon;
+#line 1339 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_box_pack_start (_tmp50_, (GtkWidget*) _tmp51_, FALSE, FALSE, (guint) 0);
+#line 1281 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (icon);
+#line 6354 "ui.c"
+ }
+ }
+ }
+#line 1342 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = box;
+#line 1342 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (page_box);
+#line 1342 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 6364 "ui.c"
+}
+
+
+static void user_interface_save_file_button_clicked_cb (UserInterface* self, GtkWidget* widget) {
+#line 1346 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1346 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1348 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_save_document (self, FALSE);
+#line 6375 "ui.c"
+}
+
+
+static void _user_interface_save_file_button_clicked_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_save_file_button_clicked_cb ((UserInterface*) self, _sender);
+#line 6382 "ui.c"
+}
+
+
+void user_interface_save_document_activate_cb (UserInterface* self) {
+#line 1351 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1353 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_save_document (self, FALSE);
+#line 6391 "ui.c"
+}
+
+
+static void user_interface_copy_to_clipboard_button_clicked_cb (UserInterface* self, GtkWidget* widget) {
+ Page* page = NULL;
+ BookView* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+#line 1357 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1357 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1359 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->book_view;
+#line 1359 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = book_view_get_selected_page (_tmp0_);
+#line 1359 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1359 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _page_ref0 (_tmp2_);
+#line 1359 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page = _tmp3_;
+#line 1360 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = page;
+#line 1360 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp4_ != NULL) {
+#line 6420 "ui.c"
+ Page* _tmp5_ = NULL;
+#line 1361 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = page;
+#line 1361 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page_copy_to_clipboard (_tmp5_, (GtkWindow*) self);
+#line 6426 "ui.c"
+ }
+#line 1357 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _page_unref0 (page);
+#line 6430 "ui.c"
+}
+
+
+static void _user_interface_copy_to_clipboard_button_clicked_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_copy_to_clipboard_button_clicked_cb ((UserInterface*) self, _sender);
+#line 6437 "ui.c"
+}
+
+
+static void user_interface_save_as_file_button_clicked_cb (UserInterface* self, GtkWidget* widget) {
+#line 1365 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1365 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1367 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_save_document (self, TRUE);
+#line 6448 "ui.c"
+}
+
+
+static void _user_interface_save_as_file_button_clicked_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_save_as_file_button_clicked_cb ((UserInterface*) self, _sender);
+#line 6455 "ui.c"
+}
+
+
+void user_interface_save_as_document_activate_cb (UserInterface* self) {
+#line 1370 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1372 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_save_document (self, TRUE);
+#line 6464 "ui.c"
+}
+
+
+static gpointer _cairo_reference0 (gpointer self) {
+#line 1379 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return self ? cairo_reference (self) : NULL;
+#line 6471 "ui.c"
+}
+
+
+static void user_interface_draw_page (UserInterface* self, GtkPrintOperation* operation, GtkPrintContext* print_context, gint page_number) {
+ cairo_t* context = NULL;
+ GtkPrintContext* _tmp0_ = NULL;
+ cairo_t* _tmp1_ = NULL;
+ cairo_t* _tmp2_ = NULL;
+ Page* page = NULL;
+ Book* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ Page* _tmp5_ = NULL;
+ gboolean is_landscape = FALSE;
+ GtkPrintContext* _tmp6_ = NULL;
+ gdouble _tmp7_ = 0.0;
+ GtkPrintContext* _tmp8_ = NULL;
+ gdouble _tmp9_ = 0.0;
+ Page* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ cairo_t* _tmp18_ = NULL;
+ GtkPrintContext* _tmp19_ = NULL;
+ gdouble _tmp20_ = 0.0;
+ Page* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ GtkPrintContext* _tmp24_ = NULL;
+ gdouble _tmp25_ = 0.0;
+ Page* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ GdkPixbuf* image = NULL;
+ Page* _tmp29_ = NULL;
+ GdkPixbuf* _tmp30_ = NULL;
+ cairo_t* _tmp31_ = NULL;
+ cairo_t* _tmp32_ = NULL;
+#line 1375 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1375 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (operation != NULL);
+#line 1375 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (print_context != NULL);
+#line 1379 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = print_context;
+#line 1379 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_print_context_get_cairo_context (_tmp0_);
+#line 1379 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _cairo_reference0 (_tmp1_);
+#line 1379 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ context = _tmp2_;
+#line 1380 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->_book;
+#line 1380 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = page_number;
+#line 1380 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = book_get_page (_tmp3_, _tmp4_);
+#line 1380 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page = _tmp5_;
+#line 1383 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ is_landscape = FALSE;
+#line 1384 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = print_context;
+#line 1384 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = gtk_print_context_get_width (_tmp6_);
+#line 1384 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = print_context;
+#line 1384 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = gtk_print_context_get_height (_tmp8_);
+#line 1384 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp7_ > _tmp9_) {
+#line 1385 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ is_landscape = TRUE;
+#line 6545 "ui.c"
+ }
+#line 1386 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = page;
+#line 1386 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = page_get_is_landscape (_tmp10_);
+#line 1386 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = _tmp11_;
+#line 1386 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = is_landscape;
+#line 1386 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp12_ != _tmp13_) {
+#line 6557 "ui.c"
+ cairo_t* _tmp14_ = NULL;
+ GtkPrintContext* _tmp15_ = NULL;
+ gdouble _tmp16_ = 0.0;
+ cairo_t* _tmp17_ = NULL;
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = context;
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = print_context;
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = gtk_print_context_get_width (_tmp15_);
+#line 1388 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ cairo_translate (_tmp14_, _tmp16_, (gdouble) 0);
+#line 1389 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = context;
+#line 1389 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ cairo_rotate (_tmp17_, G_PI_2);
+#line 6574 "ui.c"
+ }
+#line 1392 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = context;
+#line 1392 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = print_context;
+#line 1392 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp20_ = gtk_print_context_get_dpi_x (_tmp19_);
+#line 1392 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp21_ = page;
+#line 1392 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp22_ = page_get_dpi (_tmp21_);
+#line 1392 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp23_ = _tmp22_;
+#line 1392 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp24_ = print_context;
+#line 1392 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp25_ = gtk_print_context_get_dpi_y (_tmp24_);
+#line 1392 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp26_ = page;
+#line 1392 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp27_ = page_get_dpi (_tmp26_);
+#line 1392 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp28_ = _tmp27_;
+#line 1392 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ cairo_scale (_tmp18_, _tmp20_ / _tmp23_, _tmp25_ / _tmp28_);
+#line 1395 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp29_ = page;
+#line 1395 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp30_ = page_get_image (_tmp29_, TRUE);
+#line 1395 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ image = _tmp30_;
+#line 1396 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp31_ = context;
+#line 1396 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gdk_cairo_set_source_pixbuf (_tmp31_, image, (gdouble) 0, (gdouble) 0);
+#line 1397 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp32_ = context;
+#line 1397 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ cairo_paint (_tmp32_);
+#line 1375 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (image);
+#line 1375 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _page_unref0 (page);
+#line 1375 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _cairo_destroy0 (context);
+#line 6620 "ui.c"
+}
+
+
+static void user_interface_email_button_clicked_cb (UserInterface* self, GtkWidget* widget) {
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 1401 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1401 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1403 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->document_hint;
+#line 1403 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = user_interface_get_quality (self);
+#line 1403 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1403 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_emit_by_name (self, "email", _tmp0_, _tmp2_);
+#line 6640 "ui.c"
+}
+
+
+static void _user_interface_email_button_clicked_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_email_button_clicked_cb ((UserInterface*) self, _sender);
+#line 6647 "ui.c"
+}
+
+
+void user_interface_email_document_activate_cb (UserInterface* self) {
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 1406 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1408 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->document_hint;
+#line 1408 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = user_interface_get_quality (self);
+#line 1408 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1408 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_emit_by_name (self, "email", _tmp0_, _tmp2_);
+#line 6665 "ui.c"
+}
+
+
+static void _user_interface_draw_page_gtk_print_operation_draw_page (GtkPrintOperation* _sender, GtkPrintContext* context, gint page_nr, gpointer self) {
+#line 1415 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_draw_page ((UserInterface*) self, _sender, context, page_nr);
+#line 6672 "ui.c"
+}
+
+
+static void user_interface_print_document (UserInterface* self) {
+ GtkPrintOperation* print = NULL;
+ GtkPrintOperation* _tmp0_ = NULL;
+ Book* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ guint _tmp3_ = 0U;
+ guint _tmp6_ = 0U;
+ GError * _inner_error_ = NULL;
+#line 1411 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1413 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = gtk_print_operation_new ();
+#line 1413 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ print = _tmp0_;
+#line 1414 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = self->priv->_book;
+#line 1414 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = book_get_n_pages (_tmp1_);
+#line 1414 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _tmp2_;
+#line 1414 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_set (print, "n-pages", (gint) _tmp3_, NULL);
+#line 1415 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (print, "draw-page", (GCallback) _user_interface_draw_page_gtk_print_operation_draw_page, self, 0);
+#line 6700 "ui.c"
+ {
+#line 1419 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_print_operation_run (print, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, (GtkWindow*) self, &_inner_error_);
+#line 1419 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 6706 "ui.c"
+ goto __catch19_g_error;
+ }
+ }
+ goto __finally19;
+ __catch19_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 1417 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ e = _inner_error_;
+#line 1417 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _inner_error_ = NULL;
+#line 1423 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = e;
+#line 1423 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = _tmp4_->message;
+#line 1423 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_warning ("ui.vala:1423: Error printing: %s", _tmp5_);
+#line 1417 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_error_free0 (e);
+#line 6728 "ui.c"
+ }
+ __finally19:
+#line 1417 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 1417 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (print);
+#line 1417 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1417 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_clear_error (&_inner_error_);
+#line 1417 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 6741 "ui.c"
+ }
+#line 1426 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_parse_name ("draw-page", GTK_TYPE_PRINT_OPERATION, &_tmp6_, NULL, FALSE);
+#line 1426 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_handlers_disconnect_matched (print, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _user_interface_draw_page_gtk_print_operation_draw_page, self);
+#line 1411 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (print);
+#line 6749 "ui.c"
+}
+
+
+static void user_interface_print_button_clicked_cb (UserInterface* self, GtkWidget* widget) {
+#line 1430 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1430 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1432 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_print_document (self);
+#line 6760 "ui.c"
+}
+
+
+static void _user_interface_print_button_clicked_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_print_button_clicked_cb ((UserInterface*) self, _sender);
+#line 6767 "ui.c"
+}
+
+
+void user_interface_print_document_activate_cb (UserInterface* self) {
+#line 1435 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1437 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_print_document (self);
+#line 6776 "ui.c"
+}
+
+
+static void user_interface_launch_help (UserInterface* self) {
+ GError * _inner_error_ = NULL;
+#line 1440 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 6784 "ui.c"
+ {
+ GdkScreen* _tmp0_ = NULL;
+ GdkScreen* _tmp1_ = NULL;
+ guint32 _tmp2_ = 0U;
+#line 1444 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = gtk_window_get_screen ((GtkWindow*) self);
+#line 1444 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = _tmp0_;
+#line 1444 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = gtk_get_current_event_time ();
+#line 1444 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_show_uri (_tmp1_, "help:simple-scan", _tmp2_, &_inner_error_);
+#line 1444 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 6799 "ui.c"
+ goto __catch20_g_error;
+ }
+ }
+ goto __finally20;
+ __catch20_g_error:
+ {
+ GError* e = NULL;
+ const gchar* _tmp3_ = NULL;
+ GError* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 1442 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ e = _inner_error_;
+#line 1442 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _inner_error_ = NULL;
+#line 1448 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _ ("Unable to open help file");
+#line 1448 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = e;
+#line 1448 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = _tmp4_->message;
+#line 1448 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_show_error_dialog (self, _tmp3_, _tmp5_);
+#line 1442 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_error_free0 (e);
+#line 6824 "ui.c"
+ }
+ __finally20:
+#line 1442 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 1442 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1442 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_clear_error (&_inner_error_);
+#line 1442 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 6835 "ui.c"
+ }
+}
+
+
+static void user_interface_help_contents_menuitem_activate_cb (UserInterface* self, GtkWidget* widget) {
+#line 1455 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1455 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1457 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_launch_help (self);
+#line 6847 "ui.c"
+}
+
+
+static void _user_interface_help_contents_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_help_contents_menuitem_activate_cb ((UserInterface*) self, _sender);
+#line 6854 "ui.c"
+}
+
+
+void user_interface_help_contents_activate_cb (UserInterface* self) {
+#line 1460 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1462 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_launch_help (self);
+#line 6863 "ui.c"
+}
+
+
+static void user_interface_show_about (UserInterface* self) {
+ gchar** authors = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar** _tmp1_ = NULL;
+ gint authors_length1 = 0;
+ gint _authors_size_ = 0;
+ gchar* license = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* title = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* description = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 1465 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1467 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = g_strdup ("Robert Ancell <robert.ancell@canonical.com>");
+#line 1467 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = g_new0 (gchar*, 1 + 1);
+#line 1467 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_[0] = _tmp0_;
+#line 1467 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ authors = _tmp1_;
+#line 1467 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ authors_length1 = 1;
+#line 1467 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _authors_size_ = authors_length1;
+#line 1470 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _ ("This program is free software: you can redistribute it and/or modify\n" \
+"it under the terms of the GNU General Public License as published by\n" \
+"the Free Software Foundation, either version 3 of the License, or\n" \
+"(at your option) any later version.\n" \
+"\n" \
+"This program is distributed in the hope that it will be useful,\n" \
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" \
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" \
+"GNU General Public License for more details.\n" \
+"\n" \
+"You should have received a copy of the GNU General Public License\n" \
+"along with this program. If not, see <http://www.gnu.org/licenses/>.");
+#line 1470 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 1470 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ license = _tmp3_;
+#line 1473 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = _ ("About Simple Scan");
+#line 1473 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 1473 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ title = _tmp5_;
+#line 1476 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = _ ("Simple document scanning tool");
+#line 1476 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 1476 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ description = _tmp7_;
+#line 1478 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = _ ("translator-credits");
+#line 1478 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_show_about_dialog ((GtkWindow*) self, "title", title, "program-name", "Simple Scan", "version", VERSION, "comments", description, "logo-icon-name", "scanner", "authors", authors, "translator-credits", _tmp8_, "website", "https://launchpad.net/simple-scan", "copyright", "Copyright © 2009-2011 Canonical Ltd.", "license", license, "wrap-license", TRUE, NULL, NULL);
+#line 1465 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (description);
+#line 1465 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (title);
+#line 1465 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (license);
+#line 1465 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ authors = (_vala_array_free (authors, authors_length1, (GDestroyNotify) g_free), NULL);
+#line 6927 "ui.c"
+}
+
+
+static void user_interface_about_menuitem_activate_cb (UserInterface* self, GtkWidget* widget) {
+#line 1494 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1494 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1496 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_show_about (self);
+#line 6938 "ui.c"
+}
+
+
+static void _user_interface_about_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_about_menuitem_activate_cb ((UserInterface*) self, _sender);
+#line 6945 "ui.c"
+}
+
+
+void user_interface_about_activate_cb (UserInterface* self) {
+#line 1499 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1501 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_show_about (self);
+#line 6954 "ui.c"
+}
+
+
+static gboolean user_interface_on_quit (UserInterface* self) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ guint _tmp3_ = 0U;
+ AutosaveManager* _tmp4_ = NULL;
+#line 1504 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1506 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = _ ("Save document before quitting?");
+#line 1506 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = _ ("Quit without Saving");
+#line 1506 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = user_interface_prompt_to_save (self, _tmp0_, _tmp1_);
+#line 1506 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp2_) {
+#line 1510 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = FALSE;
+#line 1510 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 6979 "ui.c"
+ }
+#line 1512 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_destroy ((GtkWidget*) self);
+#line 1514 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->save_state_timeout;
+#line 1514 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp3_ != ((guint) 0)) {
+#line 1515 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_save_state (self, TRUE);
+#line 6989 "ui.c"
+ }
+#line 1517 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = self->priv->autosave_manager;
+#line 1517 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ autosave_manager_cleanup (_tmp4_);
+#line 1519 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = TRUE;
+#line 1519 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 6999 "ui.c"
+}
+
+
+static void user_interface_quit_menuitem_activate_cb (UserInterface* self, GtkWidget* widget) {
+#line 1523 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1523 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1525 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_on_quit (self);
+#line 7010 "ui.c"
+}
+
+
+static void _user_interface_quit_menuitem_activate_cb_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_quit_menuitem_activate_cb ((UserInterface*) self, _sender);
+#line 7017 "ui.c"
+}
+
+
+void user_interface_quit_activate_cb (UserInterface* self) {
+#line 1528 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1530 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_on_quit (self);
+#line 7026 "ui.c"
+}
+
+
+static gboolean user_interface_simple_scan_window_configure_event_cb (UserInterface* self, GtkWidget* widget, GdkEventConfigure* event) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 1534 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1534 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (widget != NULL, FALSE);
+#line 1534 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1536 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->window_is_maximized;
+#line 1536 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp0_) {
+#line 7043 "ui.c"
+ GdkEventConfigure* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ GdkEventConfigure* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 1538 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = event;
+#line 1538 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_->width;
+#line 1538 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->window_width = _tmp2_;
+#line 1539 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = event;
+#line 1539 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = _tmp3_->height;
+#line 1539 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->window_height = _tmp4_;
+#line 1540 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_save_state (self, FALSE);
+#line 7062 "ui.c"
+ }
+#line 1543 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = FALSE;
+#line 1543 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 7068 "ui.c"
+}
+
+
+static gboolean _user_interface_simple_scan_window_configure_event_cb_gtk_widget_configure_event (GtkWidget* _sender, GdkEventConfigure* event, gpointer self) {
+ gboolean result;
+ result = user_interface_simple_scan_window_configure_event_cb ((UserInterface*) self, _sender, event);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 7077 "ui.c"
+}
+
+
+static void user_interface_info_bar_response_cb (UserInterface* self, GtkInfoBar* widget, gint response_id) {
+ gint _tmp0_ = 0;
+#line 1546 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1546 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (widget != NULL);
+#line 1548 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = response_id;
+#line 1548 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp0_ == 1) {
+#line 7091 "ui.c"
+ GtkComboBox* _tmp1_ = NULL;
+ GtkDialog* _tmp2_ = NULL;
+#line 1550 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = self->priv->device_combo;
+#line 1550 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_grab_focus ((GtkWidget*) _tmp1_);
+#line 1551 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = self->priv->preferences_dialog;
+#line 1551 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_present ((GtkWindow*) _tmp2_);
+#line 7102 "ui.c"
+ } else {
+#line 1555 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->have_error = FALSE;
+#line 1556 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (self->priv->error_title);
+#line 1556 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->error_title = NULL;
+#line 1557 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (self->priv->error_text);
+#line 1557 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->error_text = NULL;
+#line 1558 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_update_info_bar (self);
+#line 7116 "ui.c"
+ }
+}
+
+
+static gboolean user_interface_simple_scan_window_window_state_event_cb (UserInterface* self, GtkWidget* widget, GdkEventWindowState* event) {
+ gboolean result = FALSE;
+ GdkEventWindowState* _tmp0_ = NULL;
+ GdkWindowState _tmp1_ = 0;
+#line 1563 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1563 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (widget != NULL, FALSE);
+#line 1563 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1565 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = event;
+#line 1565 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = _tmp0_->changed_mask;
+#line 1565 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if ((_tmp1_ & GDK_WINDOW_STATE_MAXIMIZED) != 0) {
+#line 7137 "ui.c"
+ GdkEventWindowState* _tmp2_ = NULL;
+ GdkWindowState _tmp3_ = 0;
+#line 1567 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = event;
+#line 1567 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _tmp2_->new_window_state;
+#line 1567 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->window_is_maximized = (_tmp3_ & GDK_WINDOW_STATE_MAXIMIZED) != 0;
+#line 1568 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_save_state (self, FALSE);
+#line 7148 "ui.c"
+ }
+#line 1570 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = FALSE;
+#line 1570 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 7154 "ui.c"
+}
+
+
+static gboolean _user_interface_simple_scan_window_window_state_event_cb_gtk_widget_window_state_event (GtkWidget* _sender, GdkEventWindowState* event, gpointer self) {
+ gboolean result;
+ result = user_interface_simple_scan_window_window_state_event_cb ((UserInterface*) self, _sender, event);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 7163 "ui.c"
+}
+
+
+static gboolean user_interface_window_delete_event_cb (UserInterface* self, GtkWidget* widget, GdkEventAny* event) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 1574 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1574 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (widget != NULL, FALSE);
+#line 1574 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1576 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = user_interface_on_quit (self);
+#line 1576 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = !_tmp0_;
+#line 1576 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 7182 "ui.c"
+}
+
+
+static gboolean _user_interface_window_delete_event_cb_gtk_widget_delete_event (GtkWidget* _sender, GdkEventAny* event, gpointer self) {
+ gboolean result;
+ result = user_interface_window_delete_event_cb ((UserInterface*) self, _sender, event);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 7191 "ui.c"
+}
+
+
+static void user_interface_page_size_changed_cb (UserInterface* self, Page* page) {
+ Page* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ Page* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ Page* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 1579 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1579 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (page != NULL);
+#line 1581 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = page;
+#line 1581 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = page_get_width (_tmp0_);
+#line 1581 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1581 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->default_page_width = _tmp2_;
+#line 1582 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = page;
+#line 1582 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = page_get_height (_tmp3_);
+#line 1582 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = _tmp4_;
+#line 1582 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->default_page_height = _tmp5_;
+#line 1583 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = page;
+#line 1583 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = page_get_dpi (_tmp6_);
+#line 1583 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = _tmp7_;
+#line 1583 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->default_page_dpi = _tmp8_;
+#line 1584 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_save_state (self, FALSE);
+#line 7235 "ui.c"
+}
+
+
+static void user_interface_page_scan_direction_changed_cb (UserInterface* self, Page* page) {
+ Page* _tmp0_ = NULL;
+ ScanDirection _tmp1_ = 0;
+ ScanDirection _tmp2_ = 0;
+#line 1587 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1587 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (page != NULL);
+#line 1589 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = page;
+#line 1589 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = page_get_scan_direction (_tmp0_);
+#line 1589 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1589 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->default_page_scan_direction = _tmp2_;
+#line 1590 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_save_state (self, FALSE);
+#line 7257 "ui.c"
+}
+
+
+static void _user_interface_page_size_changed_cb_page_size_changed (Page* _sender, gpointer self) {
+#line 1597 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_page_size_changed_cb ((UserInterface*) self, _sender);
+#line 7264 "ui.c"
+}
+
+
+static void _user_interface_page_scan_direction_changed_cb_page_scan_direction_changed (Page* _sender, gpointer self) {
+#line 1598 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_page_scan_direction_changed_cb ((UserInterface*) self, _sender);
+#line 7271 "ui.c"
+}
+
+
+static void user_interface_page_added_cb (UserInterface* self, Book* book, Page* page) {
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ ScanDirection _tmp2_ = 0;
+ ScanDirection _tmp3_ = 0;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+#line 1593 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1593 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (book != NULL);
+#line 1593 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (page != NULL);
+#line 1595 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = page;
+#line 1595 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_page_size_changed_cb (self, _tmp0_);
+#line 1596 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = page;
+#line 1596 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = page_get_scan_direction (_tmp1_);
+#line 1596 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _tmp2_;
+#line 1596 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->default_page_scan_direction = _tmp3_;
+#line 1597 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = page;
+#line 1597 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp4_, "size-changed", (GCallback) _user_interface_page_size_changed_cb_page_size_changed, self, 0);
+#line 1598 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = page;
+#line 1598 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp5_, "scan-direction-changed", (GCallback) _user_interface_page_scan_direction_changed_cb_page_scan_direction_changed, self, 0);
+#line 1600 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_update_page_menu (self);
+#line 7310 "ui.c"
+}
+
+
+static void user_interface_reordered_cb (UserInterface* self, Book* book) {
+#line 1603 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1603 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (book != NULL);
+#line 1605 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_update_page_menu (self);
+#line 7321 "ui.c"
+}
+
+
+static void user_interface_page_removed_cb (UserInterface* self, Book* book, Page* page) {
+ Page* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ Page* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ Book* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ guint _tmp6_ = 0U;
+#line 1608 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1608 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (book != NULL);
+#line 1608 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (page != NULL);
+#line 1610 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = page;
+#line 1610 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_parse_name ("size-changed", TYPE_PAGE, &_tmp1_, NULL, FALSE);
+#line 1610 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _user_interface_page_size_changed_cb_page_size_changed, self);
+#line 1611 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = page;
+#line 1611 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_parse_name ("scan-direction-changed", TYPE_PAGE, &_tmp3_, NULL, FALSE);
+#line 1611 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _user_interface_page_scan_direction_changed_cb_page_scan_direction_changed, self);
+#line 1614 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = book;
+#line 1614 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = book_get_n_pages (_tmp4_);
+#line 1614 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = _tmp5_;
+#line 1614 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp6_ == ((guint) 1)) {
+#line 1615 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_add_default_page (self);
+#line 7361 "ui.c"
+ }
+#line 1617 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_update_page_menu (self);
+#line 7365 "ui.c"
+}
+
+
+static void user_interface_set_dpi_combo (UserInterface* self, GtkComboBox* combo, gint default_dpi, gint current_dpi) {
+ GtkCellRendererText* renderer = NULL;
+ GtkCellRendererText* _tmp0_ = NULL;
+ GtkComboBox* _tmp1_ = NULL;
+ GtkCellRendererText* _tmp2_ = NULL;
+ GtkComboBox* _tmp3_ = NULL;
+ GtkCellRendererText* _tmp4_ = NULL;
+ GtkListStore* model = NULL;
+ GtkComboBox* _tmp5_ = NULL;
+ GtkTreeModel* _tmp6_ = NULL;
+ GtkTreeModel* _tmp7_ = NULL;
+ GtkListStore* _tmp8_ = NULL;
+ gint* scan_resolutions = NULL;
+ gint* _tmp9_ = NULL;
+ gint scan_resolutions_length1 = 0;
+ gint _scan_resolutions_size_ = 0;
+ gint* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+#line 1620 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1620 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (combo != NULL);
+#line 1622 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+#line 1622 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp0_);
+#line 1622 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ renderer = _tmp0_;
+#line 1623 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = combo;
+#line 1623 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = renderer;
+#line 1623 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_cell_layout_pack_start ((GtkCellLayout*) _tmp1_, (GtkCellRenderer*) _tmp2_, TRUE);
+#line 1624 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = combo;
+#line 1624 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = renderer;
+#line 1624 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_cell_layout_add_attribute ((GtkCellLayout*) _tmp3_, (GtkCellRenderer*) _tmp4_, "text", 1);
+#line 1626 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = combo;
+#line 1626 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = gtk_combo_box_get_model (_tmp5_);
+#line 1626 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = _tmp6_;
+#line 1626 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, GTK_TYPE_LIST_STORE) ? ((GtkListStore*) _tmp7_) : NULL);
+#line 1626 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ model = _tmp8_;
+#line 1627 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = g_new0 (gint, 6);
+#line 1627 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_[0] = 75;
+#line 1627 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_[1] = 150;
+#line 1627 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_[2] = 300;
+#line 1627 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_[3] = 600;
+#line 1627 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_[4] = 1200;
+#line 1627 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_[5] = 2400;
+#line 1627 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ scan_resolutions = _tmp9_;
+#line 1627 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ scan_resolutions_length1 = 6;
+#line 1627 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _scan_resolutions_size_ = scan_resolutions_length1;
+#line 1628 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = scan_resolutions;
+#line 1628 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10__length1 = scan_resolutions_length1;
+#line 7443 "ui.c"
+ {
+ gint* dpi_collection = NULL;
+ gint dpi_collection_length1 = 0;
+ gint _dpi_collection_size_ = 0;
+ gint dpi_it = 0;
+#line 1628 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ dpi_collection = _tmp10_;
+#line 1628 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ dpi_collection_length1 = _tmp10__length1;
+#line 1628 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ for (dpi_it = 0; dpi_it < _tmp10__length1; dpi_it = dpi_it + 1) {
+#line 7455 "ui.c"
+ gint dpi = 0;
+#line 1628 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ dpi = dpi_collection[dpi_it];
+#line 7459 "ui.c"
+ {
+ gchar* label = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ GtkTreeIter iter = {0};
+ GtkListStore* _tmp27_ = NULL;
+ GtkTreeIter _tmp28_ = {0};
+ GtkListStore* _tmp29_ = NULL;
+ GtkTreeIter _tmp30_ = {0};
+ gint _tmp31_ = 0;
+ const gchar* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+#line 1631 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = dpi;
+#line 1631 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = default_dpi;
+#line 1631 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp11_ == _tmp12_) {
+#line 7479 "ui.c"
+ const gchar* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gchar* _tmp15_ = NULL;
+#line 1633 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = _ ("%d dpi (default)");
+#line 1633 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = dpi;
+#line 1633 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = g_strdup_printf (_tmp13_, _tmp14_);
+#line 1633 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (label);
+#line 1633 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ label = _tmp15_;
+#line 7493 "ui.c"
+ } else {
+ gint _tmp16_ = 0;
+#line 1634 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = dpi;
+#line 1634 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp16_ == 75) {
+#line 7500 "ui.c"
+ const gchar* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gchar* _tmp19_ = NULL;
+#line 1636 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = _ ("%d dpi (draft)");
+#line 1636 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = dpi;
+#line 1636 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = g_strdup_printf (_tmp17_, _tmp18_);
+#line 1636 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (label);
+#line 1636 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ label = _tmp19_;
+#line 7514 "ui.c"
+ } else {
+ gint _tmp20_ = 0;
+#line 1637 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp20_ = dpi;
+#line 1637 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp20_ == 1200) {
+#line 7521 "ui.c"
+ const gchar* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gchar* _tmp23_ = NULL;
+#line 1639 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp21_ = _ ("%d dpi (high resolution)");
+#line 1639 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp22_ = dpi;
+#line 1639 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp23_ = g_strdup_printf (_tmp21_, _tmp22_);
+#line 1639 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (label);
+#line 1639 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ label = _tmp23_;
+#line 7535 "ui.c"
+ } else {
+ const gchar* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gchar* _tmp26_ = NULL;
+#line 1642 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp24_ = _ ("%d dpi");
+#line 1642 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp25_ = dpi;
+#line 1642 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp26_ = g_strdup_printf (_tmp24_, _tmp25_);
+#line 1642 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (label);
+#line 1642 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ label = _tmp26_;
+#line 7550 "ui.c"
+ }
+ }
+ }
+#line 1645 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp27_ = model;
+#line 1645 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_append (_tmp27_, &_tmp28_);
+#line 1645 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp28_;
+#line 1646 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp29_ = model;
+#line 1646 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp30_ = iter;
+#line 1646 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp31_ = dpi;
+#line 1646 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp32_ = label;
+#line 1646 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_set (_tmp29_, &_tmp30_, 0, _tmp31_, 1, _tmp32_, -1, -1);
+#line 1648 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp33_ = dpi;
+#line 1648 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp34_ = current_dpi;
+#line 1648 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp33_ == _tmp34_) {
+#line 7576 "ui.c"
+ GtkComboBox* _tmp35_ = NULL;
+ GtkTreeIter _tmp36_ = {0};
+#line 1649 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp35_ = combo;
+#line 1649 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp36_ = iter;
+#line 1649 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_combo_box_set_active_iter (_tmp35_, &_tmp36_);
+#line 7585 "ui.c"
+ }
+#line 1628 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (label);
+#line 7589 "ui.c"
+ }
+ }
+ }
+#line 1620 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ scan_resolutions = (g_free (scan_resolutions), NULL);
+#line 1620 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (model);
+#line 1620 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (renderer);
+#line 7599 "ui.c"
+}
+
+
+static void user_interface_needs_saving_cb (UserInterface* self, Book* book) {
+ GtkMenuItem* _tmp0_ = NULL;
+ Book* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ GtkButton* _tmp4_ = NULL;
+ Book* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ GtkToolButton* _tmp8_ = NULL;
+ Book* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ Book* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ GtkMenuItem* _tmp16_ = NULL;
+#line 1653 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1653 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (book != NULL);
+#line 1655 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->save_menuitem;
+#line 1655 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = book;
+#line 1655 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = book_get_needs_saving (_tmp1_);
+#line 1655 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _tmp2_;
+#line 1655 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, _tmp3_);
+#line 1656 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = self->priv->save_button;
+#line 1656 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = book;
+#line 1656 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = book_get_needs_saving (_tmp5_);
+#line 1656 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = _tmp6_;
+#line 1656 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_sensitive ((GtkWidget*) _tmp4_, _tmp7_);
+#line 1657 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = self->priv->save_toolbutton;
+#line 1657 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = book;
+#line 1657 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = book_get_needs_saving (_tmp9_);
+#line 1657 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = _tmp10_;
+#line 1657 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_sensitive ((GtkWidget*) _tmp8_, _tmp11_);
+#line 1658 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = book;
+#line 1658 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = book_get_needs_saving (_tmp12_);
+#line 1658 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = _tmp13_;
+#line 1658 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp14_) {
+#line 7662 "ui.c"
+ GtkMenuItem* _tmp15_ = NULL;
+#line 1659 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = self->priv->save_as_menuitem;
+#line 1659 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_sensitive ((GtkWidget*) _tmp15_, TRUE);
+#line 7668 "ui.c"
+ }
+#line 1660 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = self->priv->copy_to_clipboard_menuitem;
+#line 1660 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_sensitive ((GtkWidget*) _tmp16_, TRUE);
+#line 7674 "ui.c"
+}
+
+
+static void _user_interface_info_bar_response_cb_gtk_info_bar_response (GtkInfoBar* _sender, gint response_id, gpointer self) {
+#line 1730 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_info_bar_response_cb ((UserInterface*) self, _sender, response_id);
+#line 7681 "ui.c"
+}
+
+
+static void __lambda10_ (UserInterface* self) {
+ GSettings* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 1772 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->settings;
+#line 1772 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = user_interface_get_text_dpi (self);
+#line 1772 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_settings_set_int (_tmp0_, "text-dpi", _tmp1_);
+#line 7694 "ui.c"
+}
+
+
+static void ___lambda10__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 1772 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ __lambda10_ ((UserInterface*) self);
+#line 7701 "ui.c"
+}
+
+
+static void __lambda11_ (UserInterface* self) {
+ GSettings* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 1777 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->settings;
+#line 1777 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = user_interface_get_photo_dpi (self);
+#line 1777 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_settings_set_int (_tmp0_, "photo-dpi", _tmp1_);
+#line 7714 "ui.c"
+}
+
+
+static void ___lambda11__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 1777 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ __lambda11_ ((UserInterface*) self);
+#line 7721 "ui.c"
+}
+
+
+static void __lambda12_ (UserInterface* self) {
+ GSettings* _tmp0_ = NULL;
+ ScanType _tmp1_ = 0;
+#line 1787 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->settings;
+#line 1787 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = user_interface_get_page_side (self);
+#line 1787 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_settings_set_enum (_tmp0_, "page-side", (gint) _tmp1_);
+#line 7734 "ui.c"
+}
+
+
+static void ___lambda12__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 1787 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ __lambda12_ ((UserInterface*) self);
+#line 7741 "ui.c"
+}
+
+
+static void __lambda13_ (UserInterface* self) {
+ gint w = 0;
+ gint h = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ GSettings* _tmp2_ = NULL;
+ GSettings* _tmp3_ = NULL;
+#line 1798 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_get_paper_size (self, &_tmp0_, &_tmp1_);
+#line 1798 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ w = _tmp0_;
+#line 1798 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ h = _tmp1_;
+#line 1799 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = self->priv->settings;
+#line 1799 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_settings_set_int (_tmp2_, "paper-width", w);
+#line 1800 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->settings;
+#line 1800 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_settings_set_int (_tmp3_, "paper-height", h);
+#line 7766 "ui.c"
+}
+
+
+static void ___lambda13__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 1795 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ __lambda13_ ((UserInterface*) self);
+#line 7773 "ui.c"
+}
+
+
+static void __lambda14_ (UserInterface* self) {
+ GSettings* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 1811 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->settings;
+#line 1811 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = user_interface_get_brightness (self);
+#line 1811 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1811 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_settings_set_int (_tmp0_, "brightness", _tmp2_);
+#line 7789 "ui.c"
+}
+
+
+static void ___lambda14__gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self) {
+#line 1811 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ __lambda14_ ((UserInterface*) self);
+#line 7796 "ui.c"
+}
+
+
+static void __lambda15_ (UserInterface* self) {
+ GSettings* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 1821 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->settings;
+#line 1821 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = user_interface_get_contrast (self);
+#line 1821 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1821 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_settings_set_int (_tmp0_, "contrast", _tmp2_);
+#line 7812 "ui.c"
+}
+
+
+static void ___lambda15__gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self) {
+#line 1821 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ __lambda15_ ((UserInterface*) self);
+#line 7819 "ui.c"
+}
+
+
+static void __lambda16_ (UserInterface* self) {
+ GSettings* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 1831 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->settings;
+#line 1831 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = user_interface_get_quality (self);
+#line 1831 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1831 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_settings_set_int (_tmp0_, "jpeg-quality", _tmp2_);
+#line 7835 "ui.c"
+}
+
+
+static void ___lambda16__gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self) {
+#line 1831 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ __lambda16_ ((UserInterface*) self);
+#line 7842 "ui.c"
+}
+
+
+static void _user_interface_page_selected_cb_book_view_page_selected (BookView* _sender, Page* page, gpointer self) {
+#line 1847 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_page_selected_cb ((UserInterface*) self, _sender, page);
+#line 7849 "ui.c"
+}
+
+
+static void _user_interface_show_page_cb_book_view_show_page (BookView* _sender, Page* page, gpointer self) {
+#line 1848 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_show_page_cb ((UserInterface*) self, _sender, page);
+#line 7856 "ui.c"
+}
+
+
+static void _user_interface_show_page_menu_cb_book_view_show_menu (BookView* _sender, gpointer self) {
+#line 1849 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_show_page_menu_cb ((UserInterface*) self, _sender);
+#line 7863 "ui.c"
+}
+
+
+static void _user_interface_book_saving_cb_book_saving (Book* _sender, gint i, gpointer self) {
+#line 1868 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_book_saving_cb ((UserInterface*) self, i);
+#line 7870 "ui.c"
+}
+
+
+static void user_interface_load (UserInterface* self) {
+ GtkIconTheme* _tmp0_ = NULL;
+ GtkApplication* app = NULL;
+ GApplication* _tmp1_ = NULL;
+ GtkApplication* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ GtkApplication* _tmp54_ = NULL;
+ GtkInfoBar* _tmp55_ = NULL;
+ GtkInfoBar* _tmp56_ = NULL;
+ GtkBox* _tmp57_ = NULL;
+ GtkInfoBar* _tmp58_ = NULL;
+ GtkBox* hbox = NULL;
+ GtkBox* _tmp59_ = NULL;
+ GtkContainer* content_area = NULL;
+ GtkInfoBar* _tmp60_ = NULL;
+ GtkContainer* _tmp61_ = NULL;
+ GtkContainer* _tmp62_ = NULL;
+ GtkContainer* _tmp63_ = NULL;
+ GtkBox* _tmp64_ = NULL;
+ GtkBox* _tmp65_ = NULL;
+ GtkImage* _tmp66_ = NULL;
+ GtkBox* _tmp67_ = NULL;
+ GtkImage* _tmp68_ = NULL;
+ GtkImage* _tmp69_ = NULL;
+ GtkLabel* _tmp70_ = NULL;
+ GtkLabel* _tmp71_ = NULL;
+ GtkBox* _tmp72_ = NULL;
+ GtkLabel* _tmp73_ = NULL;
+ GtkLabel* _tmp74_ = NULL;
+ GtkInfoBar* _tmp75_ = NULL;
+ const gchar* _tmp76_ = NULL;
+ GtkButton* _tmp77_ = NULL;
+ GtkButton* _tmp78_ = NULL;
+ GtkInfoBar* _tmp79_ = NULL;
+ const gchar* _tmp80_ = NULL;
+ GtkButton* _tmp81_ = NULL;
+ GtkButton* _tmp82_ = NULL;
+ GtkTreeIter iter = {0};
+ GtkListStore* _tmp83_ = NULL;
+ GtkTreeIter _tmp84_ = {0};
+ GtkListStore* _tmp85_ = NULL;
+ GtkTreeIter _tmp86_ = {0};
+ const gchar* _tmp87_ = NULL;
+ GtkListStore* _tmp88_ = NULL;
+ GtkTreeIter _tmp89_ = {0};
+ GtkListStore* _tmp90_ = NULL;
+ GtkTreeIter _tmp91_ = {0};
+ GtkListStore* _tmp92_ = NULL;
+ GtkTreeIter _tmp93_ = {0};
+ GtkListStore* _tmp94_ = NULL;
+ GtkTreeIter _tmp95_ = {0};
+ GtkListStore* _tmp96_ = NULL;
+ GtkTreeIter _tmp97_ = {0};
+ GtkListStore* _tmp98_ = NULL;
+ GtkTreeIter _tmp99_ = {0};
+ GtkListStore* _tmp100_ = NULL;
+ GtkTreeIter _tmp101_ = {0};
+ GtkListStore* _tmp102_ = NULL;
+ GtkTreeIter _tmp103_ = {0};
+ GtkListStore* _tmp104_ = NULL;
+ GtkTreeIter _tmp105_ = {0};
+ GtkListStore* _tmp106_ = NULL;
+ GtkTreeIter _tmp107_ = {0};
+ GtkListStore* _tmp108_ = NULL;
+ GtkTreeIter _tmp109_ = {0};
+ GtkListStore* _tmp110_ = NULL;
+ GtkTreeIter _tmp111_ = {0};
+ gint dpi = 0;
+ GSettings* _tmp112_ = NULL;
+ gint _tmp113_ = 0;
+ gint _tmp114_ = 0;
+ GtkComboBox* _tmp115_ = NULL;
+ gint _tmp116_ = 0;
+ GtkComboBox* _tmp117_ = NULL;
+ GSettings* _tmp118_ = NULL;
+ gint _tmp119_ = 0;
+ gint _tmp120_ = 0;
+ GtkComboBox* _tmp121_ = NULL;
+ gint _tmp122_ = 0;
+ GtkComboBox* _tmp123_ = NULL;
+ GtkCellRendererText* renderer = NULL;
+ GtkCellRendererText* _tmp124_ = NULL;
+ GtkComboBox* _tmp125_ = NULL;
+ GtkCellRendererText* _tmp126_ = NULL;
+ GtkComboBox* _tmp127_ = NULL;
+ GtkCellRendererText* _tmp128_ = NULL;
+ GtkCellRendererText* _tmp129_ = NULL;
+ GtkComboBox* _tmp130_ = NULL;
+ GtkCellRendererText* _tmp131_ = NULL;
+ GtkComboBox* _tmp132_ = NULL;
+ GtkCellRendererText* _tmp133_ = NULL;
+ GSettings* _tmp134_ = NULL;
+ gint _tmp135_ = 0;
+ GtkComboBox* _tmp136_ = NULL;
+ GtkCellRendererText* _tmp137_ = NULL;
+ GtkComboBox* _tmp138_ = NULL;
+ GtkCellRendererText* _tmp139_ = NULL;
+ GtkComboBox* _tmp140_ = NULL;
+ GtkCellRendererText* _tmp141_ = NULL;
+ gint paper_width = 0;
+ GSettings* _tmp142_ = NULL;
+ gint _tmp143_ = 0;
+ gint paper_height = 0;
+ GSettings* _tmp144_ = NULL;
+ gint _tmp145_ = 0;
+ gint _tmp146_ = 0;
+ gint _tmp147_ = 0;
+ GtkComboBox* _tmp148_ = NULL;
+ gdouble lower = 0.0;
+ GtkAdjustment* _tmp149_ = NULL;
+ gdouble _tmp150_ = 0.0;
+ gdouble _tmp151_ = 0.0;
+ gchar* darker_label = NULL;
+ const gchar* _tmp152_ = NULL;
+ gchar* _tmp153_ = NULL;
+ gdouble upper = 0.0;
+ GtkAdjustment* _tmp154_ = NULL;
+ gdouble _tmp155_ = 0.0;
+ gdouble _tmp156_ = 0.0;
+ gchar* lighter_label = NULL;
+ const gchar* _tmp157_ = NULL;
+ gchar* _tmp158_ = NULL;
+ GtkScale* _tmp159_ = NULL;
+ gdouble _tmp160_ = 0.0;
+ const gchar* _tmp161_ = NULL;
+ GtkScale* _tmp162_ = NULL;
+ GtkScale* _tmp163_ = NULL;
+ gdouble _tmp164_ = 0.0;
+ const gchar* _tmp165_ = NULL;
+ GSettings* _tmp166_ = NULL;
+ gint _tmp167_ = 0;
+ GtkAdjustment* _tmp168_ = NULL;
+ GtkAdjustment* _tmp169_ = NULL;
+ gdouble _tmp170_ = 0.0;
+ gdouble _tmp171_ = 0.0;
+ gchar* less_label = NULL;
+ const gchar* _tmp172_ = NULL;
+ gchar* _tmp173_ = NULL;
+ GtkAdjustment* _tmp174_ = NULL;
+ gdouble _tmp175_ = 0.0;
+ gdouble _tmp176_ = 0.0;
+ gchar* more_label = NULL;
+ const gchar* _tmp177_ = NULL;
+ gchar* _tmp178_ = NULL;
+ GtkScale* _tmp179_ = NULL;
+ gdouble _tmp180_ = 0.0;
+ const gchar* _tmp181_ = NULL;
+ GtkScale* _tmp182_ = NULL;
+ GtkScale* _tmp183_ = NULL;
+ gdouble _tmp184_ = 0.0;
+ const gchar* _tmp185_ = NULL;
+ GSettings* _tmp186_ = NULL;
+ gint _tmp187_ = 0;
+ GtkAdjustment* _tmp188_ = NULL;
+ GtkAdjustment* _tmp189_ = NULL;
+ gdouble _tmp190_ = 0.0;
+ gdouble _tmp191_ = 0.0;
+ gchar* minimum_label = NULL;
+ const gchar* _tmp192_ = NULL;
+ gchar* _tmp193_ = NULL;
+ GtkAdjustment* _tmp194_ = NULL;
+ gdouble _tmp195_ = 0.0;
+ gdouble _tmp196_ = 0.0;
+ gchar* maximum_label = NULL;
+ const gchar* _tmp197_ = NULL;
+ gchar* _tmp198_ = NULL;
+ GtkScale* _tmp199_ = NULL;
+ gdouble _tmp200_ = 0.0;
+ const gchar* _tmp201_ = NULL;
+ GtkScale* _tmp202_ = NULL;
+ GtkScale* _tmp203_ = NULL;
+ gdouble _tmp204_ = 0.0;
+ const gchar* _tmp205_ = NULL;
+ GSettings* _tmp206_ = NULL;
+ gint _tmp207_ = 0;
+ GtkAdjustment* _tmp208_ = NULL;
+ gchar* device = NULL;
+ GSettings* _tmp209_ = NULL;
+ gchar* _tmp210_ = NULL;
+ const gchar* _tmp211_ = NULL;
+ gchar* document_type = NULL;
+ GSettings* _tmp217_ = NULL;
+ gchar* _tmp218_ = NULL;
+ const gchar* _tmp219_ = NULL;
+ Book* _tmp221_ = NULL;
+ BookView* _tmp222_ = NULL;
+ BookView* _tmp223_ = NULL;
+ GtkBox* _tmp224_ = NULL;
+ BookView* _tmp225_ = NULL;
+ BookView* _tmp226_ = NULL;
+ BookView* _tmp227_ = NULL;
+ BookView* _tmp228_ = NULL;
+ BookView* _tmp229_ = NULL;
+ GtkDialog* _tmp230_ = NULL;
+ GtkDialog* _tmp231_ = NULL;
+ gint _tmp232_ = 0;
+ gint _tmp233_ = 0;
+ gint _tmp234_ = 0;
+ gint _tmp235_ = 0;
+ gboolean _tmp236_ = FALSE;
+ const gchar* _tmp237_ = NULL;
+ ProgressBarDialog* _tmp238_ = NULL;
+ Book* _tmp239_ = NULL;
+#line 1673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1675 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = gtk_icon_theme_get_default ();
+#line 1675 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_icon_theme_append_search_path (_tmp0_, ICON_DIR);
+#line 1677 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_set_default_icon_name ("scanner");
+#line 1679 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = g_application_get_default ();
+#line 1679 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, GTK_TYPE_APPLICATION) ? ((GtkApplication*) _tmp1_) : NULL);
+#line 1679 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ app = _tmp2_;
+#line 1681 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = user_interface_get_shell_shows_menubar (self);
+#line 1681 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = _tmp3_;
+#line 1681 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp4_) {
+#line 8098 "ui.c"
+ GtkApplication* _tmp5_ = NULL;
+ GMenu* appmenu = NULL;
+ GMenu* _tmp6_ = NULL;
+ GMenu* section = NULL;
+ GMenu* _tmp7_ = NULL;
+ GMenu* _tmp8_ = NULL;
+ GMenu* _tmp9_ = NULL;
+ GMenu* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ GMenu* _tmp12_ = NULL;
+ GMenu* _tmp13_ = NULL;
+ GMenu* _tmp14_ = NULL;
+ GMenu* menu = NULL;
+ GMenu* _tmp15_ = NULL;
+ GMenu* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ GMenu* _tmp18_ = NULL;
+ GMenu* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ GMenu* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ GMenu* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ GMenu* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ GMenu* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ GMenu* _tmp29_ = NULL;
+ GMenu* _tmp30_ = NULL;
+ GMenu* _tmp31_ = NULL;
+ GMenu* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ GMenu* _tmp34_ = NULL;
+ GMenu* _tmp35_ = NULL;
+ GMenu* _tmp36_ = NULL;
+ GMenu* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+ GMenu* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ GMenu* _tmp41_ = NULL;
+ const gchar* _tmp42_ = NULL;
+ GtkApplication* _tmp43_ = NULL;
+ GMenu* _tmp44_ = NULL;
+ GtkApplication* _tmp45_ = NULL;
+ GtkApplication* _tmp46_ = NULL;
+ GtkApplication* _tmp47_ = NULL;
+ GtkApplication* _tmp48_ = NULL;
+ GtkApplication* _tmp49_ = NULL;
+ GtkApplication* _tmp50_ = NULL;
+ GtkApplication* _tmp51_ = NULL;
+#line 1683 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = app;
+#line 1683 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_action_map_add_action_entries ((GActionMap*) _tmp5_, USER_INTERFACE_action_entries, G_N_ELEMENTS (USER_INTERFACE_action_entries), self);
+#line 1685 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = g_menu_new ();
+#line 1685 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ appmenu = _tmp6_;
+#line 1686 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = g_menu_new ();
+#line 1686 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ section = _tmp7_;
+#line 1687 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = appmenu;
+#line 1687 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = section;
+#line 1687 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_menu_append_section (_tmp8_, NULL, (GMenuModel*) _tmp9_);
+#line 1688 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = section;
+#line 1688 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = _ ("New Document");
+#line 1688 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_menu_append (_tmp10_, _tmp11_, "app.new_document");
+#line 1690 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = g_menu_new ();
+#line 1690 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (section);
+#line 1690 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ section = _tmp12_;
+#line 1691 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = appmenu;
+#line 1691 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = section;
+#line 1691 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_menu_append_section (_tmp13_, NULL, (GMenuModel*) _tmp14_);
+#line 1692 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = g_menu_new ();
+#line 1692 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ menu = _tmp15_;
+#line 1693 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = section;
+#line 1693 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = _ ("Document");
+#line 1693 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = menu;
+#line 1693 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_menu_append_submenu (_tmp16_, _tmp17_, (GMenuModel*) _tmp18_);
+#line 1694 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = menu;
+#line 1694 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp20_ = _ ("Reorder Pages");
+#line 1694 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_menu_append (_tmp19_, _tmp20_, "app.reorder");
+#line 1695 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp21_ = menu;
+#line 1695 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp22_ = _ ("Save");
+#line 1695 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_menu_append (_tmp21_, _tmp22_, "app.save");
+#line 1696 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp23_ = menu;
+#line 1696 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp24_ = _ ("Save As...");
+#line 1696 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_menu_append (_tmp23_, _tmp24_, "app.save_as");
+#line 1697 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp25_ = menu;
+#line 1697 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp26_ = _ ("Email...");
+#line 1697 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_menu_append (_tmp25_, _tmp26_, "app.email");
+#line 1698 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp27_ = menu;
+#line 1698 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp28_ = _ ("Print...");
+#line 1698 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_menu_append (_tmp27_, _tmp28_, "app.print");
+#line 1700 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp29_ = g_menu_new ();
+#line 1700 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (section);
+#line 1700 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ section = _tmp29_;
+#line 1701 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp30_ = appmenu;
+#line 1701 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp31_ = section;
+#line 1701 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_menu_append_section (_tmp30_, NULL, (GMenuModel*) _tmp31_);
+#line 1702 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp32_ = section;
+#line 1702 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp33_ = _ ("Preferences");
+#line 1702 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_menu_append (_tmp32_, _tmp33_, "app.preferences");
+#line 1704 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp34_ = g_menu_new ();
+#line 1704 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (section);
+#line 1704 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ section = _tmp34_;
+#line 1705 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp35_ = appmenu;
+#line 1705 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp36_ = section;
+#line 1705 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_menu_append_section (_tmp35_, NULL, (GMenuModel*) _tmp36_);
+#line 1706 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp37_ = section;
+#line 1706 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp38_ = _ ("Help");
+#line 1706 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_menu_append (_tmp37_, _tmp38_, "app.help");
+#line 1707 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp39_ = section;
+#line 1707 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp40_ = _ ("About");
+#line 1707 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_menu_append (_tmp39_, _tmp40_, "app.about");
+#line 1708 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp41_ = section;
+#line 1708 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp42_ = _ ("Quit");
+#line 1708 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_menu_append (_tmp41_, _tmp42_, "app.quit");
+#line 1710 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp43_ = app;
+#line 1710 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp44_ = appmenu;
+#line 1710 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_application_set_app_menu (_tmp43_, (GMenuModel*) _tmp44_);
+#line 1712 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp45_ = app;
+#line 1712 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_application_add_accelerator (_tmp45_, "<Ctrl>N", "app.new_document", NULL);
+#line 1713 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp46_ = app;
+#line 1713 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_application_add_accelerator (_tmp46_, "<Ctrl>S", "app.save", NULL);
+#line 1714 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp47_ = app;
+#line 1714 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_application_add_accelerator (_tmp47_, "<Shift><Ctrl>S", "app.save_as", NULL);
+#line 1715 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp48_ = app;
+#line 1715 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_application_add_accelerator (_tmp48_, "<Ctrl>E", "app.email", NULL);
+#line 1716 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp49_ = app;
+#line 1716 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_application_add_accelerator (_tmp49_, "<Ctrl>P", "app.print", NULL);
+#line 1717 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp50_ = app;
+#line 1717 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_application_add_accelerator (_tmp50_, "F1", "app.help", NULL);
+#line 1718 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp51_ = app;
+#line 1718 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_application_add_accelerator (_tmp51_, "<Ctrl>Q", "app.quit", NULL);
+#line 1681 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (menu);
+#line 1681 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (section);
+#line 1681 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (appmenu);
+#line 8315 "ui.c"
+ } else {
+ GtkMenuBar* _tmp52_ = NULL;
+ GtkToolbar* _tmp53_ = NULL;
+#line 1722 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_set_titlebar ((GtkWindow*) self, NULL);
+#line 1723 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp52_ = self->priv->menubar;
+#line 1723 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp52_, TRUE);
+#line 1724 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp53_ = self->priv->toolbar;
+#line 1724 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp53_, TRUE);
+#line 8329 "ui.c"
+ }
+#line 1726 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp54_ = app;
+#line 1726 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_application_add_window (_tmp54_, (GtkWindow*) self);
+#line 1729 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp55_ = (GtkInfoBar*) gtk_info_bar_new ();
+#line 1729 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp55_);
+#line 1729 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->info_bar);
+#line 1729 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->info_bar = _tmp55_;
+#line 1730 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp56_ = self->priv->info_bar;
+#line 1730 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp56_, "response", (GCallback) _user_interface_info_bar_response_cb_gtk_info_bar_response, self, 0);
+#line 1731 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp57_ = self->priv->main_vbox;
+#line 1731 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp58_ = self->priv->info_bar;
+#line 1731 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_box_pack_start (_tmp57_, (GtkWidget*) _tmp58_, FALSE, TRUE, (guint) 0);
+#line 1732 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp59_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
+#line 1732 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp59_);
+#line 1732 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ hbox = _tmp59_;
+#line 1733 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp60_ = self->priv->info_bar;
+#line 1733 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp61_ = gtk_info_bar_get_content_area (_tmp60_);
+#line 1733 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp62_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp61_, GTK_TYPE_CONTAINER) ? ((GtkContainer*) _tmp61_) : NULL);
+#line 1733 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ content_area = _tmp62_;
+#line 1734 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp63_ = content_area;
+#line 1734 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp64_ = hbox;
+#line 1734 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_container_add (_tmp63_, (GtkWidget*) _tmp64_);
+#line 1735 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp65_ = hbox;
+#line 1735 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp65_, TRUE);
+#line 1737 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp66_ = (GtkImage*) gtk_image_new_from_icon_name ("dialog-warning", GTK_ICON_SIZE_DIALOG);
+#line 1737 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp66_);
+#line 1737 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->info_bar_image);
+#line 1737 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->info_bar_image = _tmp66_;
+#line 1738 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp67_ = hbox;
+#line 1738 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp68_ = self->priv->info_bar_image;
+#line 1738 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_box_pack_start (_tmp67_, (GtkWidget*) _tmp68_, FALSE, TRUE, (guint) 0);
+#line 1739 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp69_ = self->priv->info_bar_image;
+#line 1739 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp69_, TRUE);
+#line 1741 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp70_ = (GtkLabel*) gtk_label_new (NULL);
+#line 1741 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp70_);
+#line 1741 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->info_bar_label);
+#line 1741 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->info_bar_label = _tmp70_;
+#line 1742 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp71_ = self->priv->info_bar_label;
+#line 1742 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_misc_set_alignment ((GtkMisc*) _tmp71_, 0.0f, 0.5f);
+#line 1743 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp72_ = hbox;
+#line 1743 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp73_ = self->priv->info_bar_label;
+#line 1743 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_box_pack_start (_tmp72_, (GtkWidget*) _tmp73_, TRUE, TRUE, (guint) 0);
+#line 1744 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp74_ = self->priv->info_bar_label;
+#line 1744 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp74_, TRUE);
+#line 1746 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp75_ = self->priv->info_bar;
+#line 1746 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp76_ = _ ("_Close");
+#line 1746 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp77_ = gtk_info_bar_add_button (_tmp75_, _tmp76_, (gint) GTK_RESPONSE_CLOSE);
+#line 1746 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp78_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp77_, GTK_TYPE_BUTTON) ? ((GtkButton*) _tmp77_) : NULL);
+#line 1746 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->info_bar_close_button);
+#line 1746 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->info_bar_close_button = _tmp78_;
+#line 1747 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp79_ = self->priv->info_bar;
+#line 1747 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp80_ = _ ("Change _Scanner");
+#line 1747 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp81_ = gtk_info_bar_add_button (_tmp79_, _tmp80_, 1);
+#line 1747 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp82_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp81_, GTK_TYPE_BUTTON) ? ((GtkButton*) _tmp81_) : NULL);
+#line 1747 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->info_bar_change_scanner_button);
+#line 1747 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->info_bar_change_scanner_button = _tmp82_;
+#line 1751 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp83_ = self->priv->paper_size_model;
+#line 1751 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_append (_tmp83_, &_tmp84_);
+#line 1751 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp84_;
+#line 1752 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp85_ = self->priv->paper_size_model;
+#line 1752 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp86_ = iter;
+#line 1752 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp87_ = _ ("Automatic");
+#line 1752 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_set (_tmp85_, &_tmp86_, 0, 0, 1, 0, 2, _tmp87_, -1, -1);
+#line 1755 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp88_ = self->priv->paper_size_model;
+#line 1755 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_append (_tmp88_, &_tmp89_);
+#line 1755 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp89_;
+#line 1756 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp90_ = self->priv->paper_size_model;
+#line 1756 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp91_ = iter;
+#line 1756 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_set (_tmp90_, &_tmp91_, 0, 1050, 1, 1480, 2, "A6", -1, -1);
+#line 1757 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp92_ = self->priv->paper_size_model;
+#line 1757 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_append (_tmp92_, &_tmp93_);
+#line 1757 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp93_;
+#line 1758 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp94_ = self->priv->paper_size_model;
+#line 1758 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp95_ = iter;
+#line 1758 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_set (_tmp94_, &_tmp95_, 0, 1480, 1, 2100, 2, "A5", -1, -1);
+#line 1759 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp96_ = self->priv->paper_size_model;
+#line 1759 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_append (_tmp96_, &_tmp97_);
+#line 1759 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp97_;
+#line 1760 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp98_ = self->priv->paper_size_model;
+#line 1760 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp99_ = iter;
+#line 1760 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_set (_tmp98_, &_tmp99_, 0, 2100, 1, 2970, 2, "A4", -1, -1);
+#line 1761 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp100_ = self->priv->paper_size_model;
+#line 1761 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_append (_tmp100_, &_tmp101_);
+#line 1761 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp101_;
+#line 1762 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp102_ = self->priv->paper_size_model;
+#line 1762 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp103_ = iter;
+#line 1762 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_set (_tmp102_, &_tmp103_, 0, 2159, 1, 2794, 2, "Letter", -1, -1);
+#line 1763 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp104_ = self->priv->paper_size_model;
+#line 1763 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_append (_tmp104_, &_tmp105_);
+#line 1763 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp105_;
+#line 1764 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp106_ = self->priv->paper_size_model;
+#line 1764 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp107_ = iter;
+#line 1764 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_set (_tmp106_, &_tmp107_, 0, 2159, 1, 3556, 2, "Legal", -1, -1);
+#line 1765 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp108_ = self->priv->paper_size_model;
+#line 1765 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_append (_tmp108_, &_tmp109_);
+#line 1765 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp109_;
+#line 1766 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp110_ = self->priv->paper_size_model;
+#line 1766 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp111_ = iter;
+#line 1766 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_list_store_set (_tmp110_, &_tmp111_, 0, 1016, 1, 1524, 2, "4×6", -1, -1);
+#line 1768 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp112_ = self->priv->settings;
+#line 1768 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp113_ = g_settings_get_int (_tmp112_, "text-dpi");
+#line 1768 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ dpi = _tmp113_;
+#line 1769 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp114_ = dpi;
+#line 1769 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp114_ <= 0) {
+#line 1770 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ dpi = USER_INTERFACE_DEFAULT_TEXT_DPI;
+#line 8539 "ui.c"
+ }
+#line 1771 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp115_ = self->priv->text_dpi_combo;
+#line 1771 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp116_ = dpi;
+#line 1771 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_dpi_combo (self, _tmp115_, USER_INTERFACE_DEFAULT_TEXT_DPI, _tmp116_);
+#line 1772 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp117_ = self->priv->text_dpi_combo;
+#line 1772 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp117_, "changed", (GCallback) ___lambda10__gtk_combo_box_changed, self, 0);
+#line 1773 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp118_ = self->priv->settings;
+#line 1773 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp119_ = g_settings_get_int (_tmp118_, "photo-dpi");
+#line 1773 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ dpi = _tmp119_;
+#line 1774 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp120_ = dpi;
+#line 1774 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp120_ <= 0) {
+#line 1775 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ dpi = USER_INTERFACE_DEFAULT_PHOTO_DPI;
+#line 8563 "ui.c"
+ }
+#line 1776 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp121_ = self->priv->photo_dpi_combo;
+#line 1776 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp122_ = dpi;
+#line 1776 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_dpi_combo (self, _tmp121_, USER_INTERFACE_DEFAULT_PHOTO_DPI, _tmp122_);
+#line 1777 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp123_ = self->priv->photo_dpi_combo;
+#line 1777 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp123_, "changed", (GCallback) ___lambda11__gtk_combo_box_changed, self, 0);
+#line 1779 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp124_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+#line 1779 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp124_);
+#line 1779 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ renderer = _tmp124_;
+#line 1780 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp125_ = self->priv->device_combo;
+#line 1780 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp126_ = renderer;
+#line 1780 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_cell_layout_pack_start ((GtkCellLayout*) _tmp125_, (GtkCellRenderer*) _tmp126_, TRUE);
+#line 1781 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp127_ = self->priv->device_combo;
+#line 1781 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp128_ = renderer;
+#line 1781 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_cell_layout_add_attribute ((GtkCellLayout*) _tmp127_, (GtkCellRenderer*) _tmp128_, "text", 1);
+#line 1783 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp129_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+#line 1783 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp129_);
+#line 1783 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (renderer);
+#line 1783 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ renderer = _tmp129_;
+#line 1784 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp130_ = self->priv->page_side_combo;
+#line 1784 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp131_ = renderer;
+#line 1784 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_cell_layout_pack_start ((GtkCellLayout*) _tmp130_, (GtkCellRenderer*) _tmp131_, TRUE);
+#line 1785 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp132_ = self->priv->page_side_combo;
+#line 1785 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp133_ = renderer;
+#line 1785 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_cell_layout_add_attribute ((GtkCellLayout*) _tmp132_, (GtkCellRenderer*) _tmp133_, "text", 1);
+#line 1786 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp134_ = self->priv->settings;
+#line 1786 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp135_ = g_settings_get_enum (_tmp134_, "page-side");
+#line 1786 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_page_side (self, (ScanType) _tmp135_);
+#line 1787 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp136_ = self->priv->page_side_combo;
+#line 1787 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp136_, "changed", (GCallback) ___lambda12__gtk_combo_box_changed, self, 0);
+#line 1789 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp137_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+#line 1789 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp137_);
+#line 1789 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (renderer);
+#line 1789 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ renderer = _tmp137_;
+#line 1790 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp138_ = self->priv->paper_size_combo;
+#line 1790 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp139_ = renderer;
+#line 1790 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_cell_layout_pack_start ((GtkCellLayout*) _tmp138_, (GtkCellRenderer*) _tmp139_, TRUE);
+#line 1791 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp140_ = self->priv->paper_size_combo;
+#line 1791 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp141_ = renderer;
+#line 1791 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_cell_layout_add_attribute ((GtkCellLayout*) _tmp140_, (GtkCellRenderer*) _tmp141_, "text", 2);
+#line 1792 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp142_ = self->priv->settings;
+#line 1792 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp143_ = g_settings_get_int (_tmp142_, "paper-width");
+#line 1792 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ paper_width = _tmp143_;
+#line 1793 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp144_ = self->priv->settings;
+#line 1793 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp145_ = g_settings_get_int (_tmp144_, "paper-height");
+#line 1793 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ paper_height = _tmp145_;
+#line 1794 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp146_ = paper_width;
+#line 1794 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp147_ = paper_height;
+#line 1794 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_paper_size (self, _tmp146_, _tmp147_);
+#line 1795 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp148_ = self->priv->paper_size_combo;
+#line 1795 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp148_, "changed", (GCallback) ___lambda13__gtk_combo_box_changed, self, 0);
+#line 1803 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp149_ = self->priv->brightness_adjustment;
+#line 1803 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp150_ = gtk_adjustment_get_lower (_tmp149_);
+#line 1803 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp151_ = _tmp150_;
+#line 1803 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ lower = _tmp151_;
+#line 1804 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp152_ = _ ("Darker");
+#line 1804 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp153_ = g_strdup_printf ("<small>%s</small>", _tmp152_);
+#line 1804 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ darker_label = _tmp153_;
+#line 1805 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp154_ = self->priv->brightness_adjustment;
+#line 1805 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp155_ = gtk_adjustment_get_upper (_tmp154_);
+#line 1805 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp156_ = _tmp155_;
+#line 1805 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ upper = _tmp156_;
+#line 1806 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp157_ = _ ("Lighter");
+#line 1806 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp158_ = g_strdup_printf ("<small>%s</small>", _tmp157_);
+#line 1806 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ lighter_label = _tmp158_;
+#line 1807 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp159_ = self->priv->brightness_scale;
+#line 1807 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp160_ = lower;
+#line 1807 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp161_ = darker_label;
+#line 1807 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_scale_add_mark (_tmp159_, _tmp160_, GTK_POS_BOTTOM, _tmp161_);
+#line 1808 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp162_ = self->priv->brightness_scale;
+#line 1808 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_scale_add_mark (_tmp162_, (gdouble) 0, GTK_POS_BOTTOM, NULL);
+#line 1809 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp163_ = self->priv->brightness_scale;
+#line 1809 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp164_ = upper;
+#line 1809 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp165_ = lighter_label;
+#line 1809 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_scale_add_mark (_tmp163_, _tmp164_, GTK_POS_BOTTOM, _tmp165_);
+#line 1810 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp166_ = self->priv->settings;
+#line 1810 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp167_ = g_settings_get_int (_tmp166_, "brightness");
+#line 1810 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_brightness (self, _tmp167_);
+#line 1811 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp168_ = self->priv->brightness_adjustment;
+#line 1811 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp168_, "value-changed", (GCallback) ___lambda14__gtk_adjustment_value_changed, self, 0);
+#line 1813 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp169_ = self->priv->contrast_adjustment;
+#line 1813 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp170_ = gtk_adjustment_get_lower (_tmp169_);
+#line 1813 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp171_ = _tmp170_;
+#line 1813 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ lower = _tmp171_;
+#line 1814 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp172_ = _ ("Less");
+#line 1814 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp173_ = g_strdup_printf ("<small>%s</small>", _tmp172_);
+#line 1814 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ less_label = _tmp173_;
+#line 1815 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp174_ = self->priv->contrast_adjustment;
+#line 1815 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp175_ = gtk_adjustment_get_upper (_tmp174_);
+#line 1815 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp176_ = _tmp175_;
+#line 1815 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ upper = _tmp176_;
+#line 1816 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp177_ = _ ("More");
+#line 1816 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp178_ = g_strdup_printf ("<small>%s</small>", _tmp177_);
+#line 1816 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ more_label = _tmp178_;
+#line 1817 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp179_ = self->priv->contrast_scale;
+#line 1817 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp180_ = lower;
+#line 1817 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp181_ = less_label;
+#line 1817 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_scale_add_mark (_tmp179_, _tmp180_, GTK_POS_BOTTOM, _tmp181_);
+#line 1818 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp182_ = self->priv->contrast_scale;
+#line 1818 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_scale_add_mark (_tmp182_, (gdouble) 0, GTK_POS_BOTTOM, NULL);
+#line 1819 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp183_ = self->priv->contrast_scale;
+#line 1819 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp184_ = upper;
+#line 1819 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp185_ = more_label;
+#line 1819 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_scale_add_mark (_tmp183_, _tmp184_, GTK_POS_BOTTOM, _tmp185_);
+#line 1820 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp186_ = self->priv->settings;
+#line 1820 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp187_ = g_settings_get_int (_tmp186_, "contrast");
+#line 1820 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_contrast (self, _tmp187_);
+#line 1821 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp188_ = self->priv->contrast_adjustment;
+#line 1821 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp188_, "value-changed", (GCallback) ___lambda15__gtk_adjustment_value_changed, self, 0);
+#line 1823 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp189_ = self->priv->quality_adjustment;
+#line 1823 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp190_ = gtk_adjustment_get_lower (_tmp189_);
+#line 1823 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp191_ = _tmp190_;
+#line 1823 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ lower = _tmp191_;
+#line 1824 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp192_ = _ ("Minimum");
+#line 1824 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp193_ = g_strdup_printf ("<small>%s</small>", _tmp192_);
+#line 1824 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ minimum_label = _tmp193_;
+#line 1825 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp194_ = self->priv->quality_adjustment;
+#line 1825 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp195_ = gtk_adjustment_get_upper (_tmp194_);
+#line 1825 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp196_ = _tmp195_;
+#line 1825 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ upper = _tmp196_;
+#line 1826 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp197_ = _ ("Maximum");
+#line 1826 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp198_ = g_strdup_printf ("<small>%s</small>", _tmp197_);
+#line 1826 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ maximum_label = _tmp198_;
+#line 1827 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp199_ = self->priv->quality_scale;
+#line 1827 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp200_ = lower;
+#line 1827 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp201_ = minimum_label;
+#line 1827 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_scale_add_mark (_tmp199_, _tmp200_, GTK_POS_BOTTOM, _tmp201_);
+#line 1828 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp202_ = self->priv->quality_scale;
+#line 1828 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_scale_add_mark (_tmp202_, (gdouble) 75, GTK_POS_BOTTOM, NULL);
+#line 1829 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp203_ = self->priv->quality_scale;
+#line 1829 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp204_ = upper;
+#line 1829 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp205_ = maximum_label;
+#line 1829 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_scale_add_mark (_tmp203_, _tmp204_, GTK_POS_BOTTOM, _tmp205_);
+#line 1830 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp206_ = self->priv->settings;
+#line 1830 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp207_ = g_settings_get_int (_tmp206_, "jpeg-quality");
+#line 1830 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_quality (self, _tmp207_);
+#line 1831 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp208_ = self->priv->quality_adjustment;
+#line 1831 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp208_, "value-changed", (GCallback) ___lambda16__gtk_adjustment_value_changed, self, 0);
+#line 1833 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp209_ = self->priv->settings;
+#line 1833 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp210_ = g_settings_get_string (_tmp209_, "selected-device");
+#line 1833 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ device = _tmp210_;
+#line 1834 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp211_ = device;
+#line 1834 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp211_ != NULL) {
+#line 8849 "ui.c"
+ const gchar* _tmp212_ = NULL;
+ GtkTreeIter _tmp213_ = {0};
+ gboolean _tmp214_ = FALSE;
+#line 1836 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp212_ = device;
+#line 1836 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp214_ = user_interface_find_scan_device (self, _tmp212_, &_tmp213_);
+#line 1836 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp213_;
+#line 1836 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp214_) {
+#line 8861 "ui.c"
+ GtkComboBox* _tmp215_ = NULL;
+ GtkTreeIter _tmp216_ = {0};
+#line 1837 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp215_ = self->priv->device_combo;
+#line 1837 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp216_ = iter;
+#line 1837 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_combo_box_set_active_iter (_tmp215_, &_tmp216_);
+#line 8870 "ui.c"
+ }
+ }
+#line 1840 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp217_ = self->priv->settings;
+#line 1840 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp218_ = g_settings_get_string (_tmp217_, "document-type");
+#line 1840 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ document_type = _tmp218_;
+#line 1841 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp219_ = document_type;
+#line 1841 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp219_ != NULL) {
+#line 8883 "ui.c"
+ const gchar* _tmp220_ = NULL;
+#line 1842 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp220_ = document_type;
+#line 1842 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_document_hint (self, _tmp220_, FALSE);
+#line 8889 "ui.c"
+ }
+#line 1844 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp221_ = self->priv->_book;
+#line 1844 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp222_ = book_view_new (_tmp221_);
+#line 1844 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp222_);
+#line 1844 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->book_view);
+#line 1844 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->book_view = _tmp222_;
+#line 1845 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp223_ = self->priv->book_view;
+#line 1845 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_container_set_border_width ((GtkContainer*) _tmp223_, (guint) 18);
+#line 1846 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp224_ = self->priv->main_vbox;
+#line 1846 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp225_ = self->priv->book_view;
+#line 1846 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_box_pack_end (_tmp224_, (GtkWidget*) _tmp225_, TRUE, TRUE, (guint) 0);
+#line 1847 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp226_ = self->priv->book_view;
+#line 1847 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp226_, "page-selected", (GCallback) _user_interface_page_selected_cb_book_view_page_selected, self, 0);
+#line 1848 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp227_ = self->priv->book_view;
+#line 1848 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp227_, "show-page", (GCallback) _user_interface_show_page_cb_book_view_show_page, self, 0);
+#line 1849 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp228_ = self->priv->book_view;
+#line 1849 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp228_, "show-menu", (GCallback) _user_interface_show_page_menu_cb_book_view_show_menu, self, 0);
+#line 1850 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp229_ = self->priv->book_view;
+#line 1850 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp229_, TRUE);
+#line 1852 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp230_ = self->priv->authorize_dialog;
+#line 1852 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_set_transient_for ((GtkWindow*) _tmp230_, (GtkWindow*) self);
+#line 1853 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp231_ = self->priv->preferences_dialog;
+#line 1853 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_set_transient_for ((GtkWindow*) _tmp231_, (GtkWindow*) self);
+#line 1856 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_load_state (self);
+#line 1859 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp232_ = self->priv->window_width;
+#line 1859 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp233_ = self->priv->window_height;
+#line 1859 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_debug ("ui.vala:1859: Restoring window to %dx%d pixels", _tmp232_, _tmp233_);
+#line 1860 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp234_ = self->priv->window_width;
+#line 1860 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp235_ = self->priv->window_height;
+#line 1860 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_set_default_size ((GtkWindow*) self, _tmp234_, _tmp235_);
+#line 1861 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp236_ = self->priv->window_is_maximized;
+#line 1861 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp236_) {
+#line 1863 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_debug ("ui.vala:1863: Restoring window to maximized");
+#line 1864 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_maximize ((GtkWindow*) self);
+#line 8957 "ui.c"
+ }
+#line 1867 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp237_ = _ ("Saving document...");
+#line 1867 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp238_ = progress_bar_dialog_new ((GtkApplicationWindow*) self, _tmp237_);
+#line 1867 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp238_);
+#line 1867 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->progress_dialog);
+#line 1867 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->progress_dialog = _tmp238_;
+#line 1868 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp239_ = self->priv->_book;
+#line 1868 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_connect_object (_tmp239_, "saving", (GCallback) _user_interface_book_saving_cb_book_saving, self, 0);
+#line 1673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (document_type);
+#line 1673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (device);
+#line 1673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (maximum_label);
+#line 1673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (minimum_label);
+#line 1673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (more_label);
+#line 1673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (less_label);
+#line 1673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (lighter_label);
+#line 1673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (darker_label);
+#line 1673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (renderer);
+#line 1673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (content_area);
+#line 1673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (hbox);
+#line 1673 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (app);
+#line 8997 "ui.c"
+}
+
+
+static void user_interface_load_state (UserInterface* self) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GKeyFile* f = NULL;
+ GKeyFile* _tmp3_ = NULL;
+ GKeyFile* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ GKeyFile* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ GKeyFile* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ GKeyFile* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ GKeyFile* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ GKeyFile* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ GKeyFile* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ GQuark _tmp29_ = 0U;
+#line 1900 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ static GQuark _tmp28_label0 = 0;
+#line 1900 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ static GQuark _tmp28_label1 = 0;
+#line 1900 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ static GQuark _tmp28_label2 = 0;
+#line 9031 "ui.c"
+ GError * _inner_error_ = NULL;
+#line 1876 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1878 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = user_interface_get_state_filename (self);
+#line 1878 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = _tmp0_;
+#line 1878 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 1878 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_debug ("ui.vala:1878: Loading state from %s", _tmp2_);
+#line 1878 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_tmp2_);
+#line 1880 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = g_key_file_new ();
+#line 1880 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ f = _tmp3_;
+#line 9049 "ui.c"
+ {
+ GKeyFile* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 1883 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = f;
+#line 1883 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = user_interface_get_state_filename (self);
+#line 1883 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = _tmp5_;
+#line 1883 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = _tmp6_;
+#line 1883 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_key_file_load_from_file (_tmp4_, _tmp7_, G_KEY_FILE_NONE, &_inner_error_);
+#line 1883 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_tmp7_);
+#line 1883 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 9069 "ui.c"
+ goto __catch21_g_error;
+ }
+ }
+ goto __finally21;
+ __catch21_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp8_ = NULL;
+#line 1881 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ e = _inner_error_;
+#line 1881 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _inner_error_ = NULL;
+#line 1887 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = e;
+#line 1887 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!g_error_matches (_tmp8_, G_FILE_ERROR, G_FILE_ERROR_NOENT)) {
+#line 9086 "ui.c"
+ GError* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+#line 1888 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = e;
+#line 1888 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = _tmp9_->message;
+#line 1888 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_warning ("ui.vala:1888: Failed to load state: %s", _tmp10_);
+#line 9095 "ui.c"
+ }
+#line 1881 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_error_free0 (e);
+#line 9099 "ui.c"
+ }
+ __finally21:
+#line 1881 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 1881 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_key_file_unref0 (f);
+#line 1881 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1881 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_clear_error (&_inner_error_);
+#line 1881 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 9112 "ui.c"
+ }
+#line 1890 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = f;
+#line 1890 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = user_interface_state_get_integer (self, _tmp11_, "window", "width", 600);
+#line 1890 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->window_width = _tmp12_;
+#line 1891 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = self->priv->window_width;
+#line 1891 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp13_ <= 0) {
+#line 1892 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->window_width = 600;
+#line 9126 "ui.c"
+ }
+#line 1893 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = f;
+#line 1893 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = user_interface_state_get_integer (self, _tmp14_, "window", "height", 400);
+#line 1893 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->window_height = _tmp15_;
+#line 1894 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = self->priv->window_height;
+#line 1894 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp16_ <= 0) {
+#line 1895 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->window_height = 400;
+#line 9140 "ui.c"
+ }
+#line 1896 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = f;
+#line 1896 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = user_interface_state_get_boolean (self, _tmp17_, "window", "is-maximized", FALSE);
+#line 1896 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->window_is_maximized = _tmp18_;
+#line 1897 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = f;
+#line 1897 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp20_ = user_interface_state_get_integer (self, _tmp19_, "last-page", "width", 595);
+#line 1897 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->default_page_width = _tmp20_;
+#line 1898 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp21_ = f;
+#line 1898 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp22_ = user_interface_state_get_integer (self, _tmp21_, "last-page", "height", 842);
+#line 1898 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->default_page_height = _tmp22_;
+#line 1899 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp23_ = f;
+#line 1899 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp24_ = user_interface_state_get_integer (self, _tmp23_, "last-page", "dpi", 72);
+#line 1899 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->default_page_dpi = _tmp24_;
+#line 1900 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp25_ = f;
+#line 1900 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp26_ = user_interface_state_get_string (self, _tmp25_, "last-page", "scan-direction", "top-to-bottom");
+#line 1900 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp27_ = _tmp26_;
+#line 1900 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp29_ = (NULL == _tmp27_) ? 0 : g_quark_from_string (_tmp27_);
+#line 1900 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_free (_tmp27_);
+#line 1900 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp29_ == ((0 != _tmp28_label0) ? _tmp28_label0 : (_tmp28_label0 = g_quark_from_static_string ("bottom-to-top")))) {
+#line 1900 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ switch (0) {
+#line 9180 "ui.c"
+ default:
+ {
+#line 1907 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->default_page_scan_direction = SCAN_DIRECTION_BOTTOM_TO_TOP;
+#line 1908 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 9187 "ui.c"
+ }
+ }
+ } else if (_tmp29_ == ((0 != _tmp28_label1) ? _tmp28_label1 : (_tmp28_label1 = g_quark_from_static_string ("left-to-right")))) {
+#line 1900 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ switch (0) {
+#line 9193 "ui.c"
+ default:
+ {
+#line 1910 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->default_page_scan_direction = SCAN_DIRECTION_LEFT_TO_RIGHT;
+#line 1911 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 9200 "ui.c"
+ }
+ }
+ } else if (_tmp29_ == ((0 != _tmp28_label2) ? _tmp28_label2 : (_tmp28_label2 = g_quark_from_static_string ("right-to-left")))) {
+#line 1900 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ switch (0) {
+#line 9206 "ui.c"
+ default:
+ {
+#line 1913 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->default_page_scan_direction = SCAN_DIRECTION_RIGHT_TO_LEFT;
+#line 1914 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 9213 "ui.c"
+ }
+ }
+ } else {
+#line 1900 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ switch (0) {
+#line 9219 "ui.c"
+ default:
+ {
+#line 1904 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->default_page_scan_direction = SCAN_DIRECTION_TOP_TO_BOTTOM;
+#line 1905 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 9226 "ui.c"
+ }
+ }
+ }
+#line 1876 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_key_file_unref0 (f);
+#line 9232 "ui.c"
+}
+
+
+static gint user_interface_state_get_integer (UserInterface* self, GKeyFile* f, const gchar* group_name, const gchar* key, gint _default_) {
+ gint result = 0;
+ GError * _inner_error_ = NULL;
+#line 1918 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 1918 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (f != NULL, 0);
+#line 1918 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (group_name != NULL, 0);
+#line 1918 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (key != NULL, 0);
+#line 9247 "ui.c"
+ {
+ gint _tmp0_ = 0;
+ GKeyFile* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 1922 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = f;
+#line 1922 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = group_name;
+#line 1922 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = key;
+#line 1922 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = g_key_file_get_integer (_tmp1_, _tmp2_, _tmp3_, &_inner_error_);
+#line 1922 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = _tmp4_;
+#line 1922 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 9266 "ui.c"
+ goto __catch22_g_error;
+ }
+#line 1922 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = _tmp0_;
+#line 1922 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 9273 "ui.c"
+ }
+ goto __finally22;
+ __catch22_g_error:
+ {
+ gint _tmp5_ = 0;
+#line 1920 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_clear_error (&_inner_error_);
+#line 1920 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _inner_error_ = NULL;
+#line 1926 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = _default_;
+#line 1926 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = _tmp5_;
+#line 1926 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 9289 "ui.c"
+ }
+ __finally22:
+#line 1920 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1920 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_clear_error (&_inner_error_);
+#line 1920 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return 0;
+#line 9298 "ui.c"
+}
+
+
+static gboolean user_interface_state_get_boolean (UserInterface* self, GKeyFile* f, const gchar* group_name, const gchar* key, gboolean _default_) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1930 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1930 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (f != NULL, FALSE);
+#line 1930 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (group_name != NULL, FALSE);
+#line 1930 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (key != NULL, FALSE);
+#line 9313 "ui.c"
+ {
+ gboolean _tmp0_ = FALSE;
+ GKeyFile* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 1934 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = f;
+#line 1934 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = group_name;
+#line 1934 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = key;
+#line 1934 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = g_key_file_get_boolean (_tmp1_, _tmp2_, _tmp3_, &_inner_error_);
+#line 1934 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = _tmp4_;
+#line 1934 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 9332 "ui.c"
+ goto __catch23_g_error;
+ }
+#line 1934 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = _tmp0_;
+#line 1934 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 9339 "ui.c"
+ }
+ goto __finally23;
+ __catch23_g_error:
+ {
+ gboolean _tmp5_ = FALSE;
+#line 1932 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_clear_error (&_inner_error_);
+#line 1932 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _inner_error_ = NULL;
+#line 1938 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = _default_;
+#line 1938 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = _tmp5_;
+#line 1938 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 9355 "ui.c"
+ }
+ __finally23:
+#line 1932 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1932 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_clear_error (&_inner_error_);
+#line 1932 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return FALSE;
+#line 9364 "ui.c"
+}
+
+
+static gchar* user_interface_state_get_string (UserInterface* self, GKeyFile* f, const gchar* group_name, const gchar* key, const gchar* _default_) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1942 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1942 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (f != NULL, NULL);
+#line 1942 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (group_name != NULL, NULL);
+#line 1942 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (key != NULL, NULL);
+#line 1942 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (_default_ != NULL, NULL);
+#line 9381 "ui.c"
+ {
+ gchar* _tmp0_ = NULL;
+ GKeyFile* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 1946 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = f;
+#line 1946 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = group_name;
+#line 1946 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = key;
+#line 1946 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = g_key_file_get_string (_tmp1_, _tmp2_, _tmp3_, &_inner_error_);
+#line 1946 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = _tmp4_;
+#line 1946 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 9401 "ui.c"
+ goto __catch24_g_error;
+ }
+#line 1946 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = _tmp0_;
+#line 1946 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = NULL;
+#line 1946 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = _tmp5_;
+#line 1946 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_tmp0_);
+#line 1946 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 9414 "ui.c"
+ }
+ goto __finally24;
+ __catch24_g_error:
+ {
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 1944 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_clear_error (&_inner_error_);
+#line 1944 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _inner_error_ = NULL;
+#line 1950 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = _default_;
+#line 1950 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 1950 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = _tmp7_;
+#line 1950 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 9433 "ui.c"
+ }
+ __finally24:
+#line 1944 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1944 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_clear_error (&_inner_error_);
+#line 1944 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return NULL;
+#line 9442 "ui.c"
+}
+
+
+static gboolean ___lambda9_ (UserInterface* self) {
+ gboolean result = FALSE;
+#line 1962 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_save_state (self, TRUE);
+#line 1963 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->save_state_timeout = (guint) 0;
+#line 1964 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = FALSE;
+#line 1964 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 9456 "ui.c"
+}
+
+
+static gboolean ____lambda9__gsource_func (gpointer self) {
+ gboolean result;
+ result = ___lambda9_ ((UserInterface*) self);
+#line 1960 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 9465 "ui.c"
+}
+
+
+static void user_interface_save_state (UserInterface* self, gboolean force) {
+ gboolean _tmp0_ = FALSE;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GKeyFile* f = NULL;
+ GKeyFile* _tmp7_ = NULL;
+ GKeyFile* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ GKeyFile* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ GKeyFile* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ GKeyFile* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ GKeyFile* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ GKeyFile* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ ScanDirection _tmp20_ = 0;
+ GError * _inner_error_ = NULL;
+#line 1954 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 1956 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = force;
+#line 1956 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp0_) {
+#line 9496 "ui.c"
+ guint _tmp1_ = 0U;
+ guint _tmp3_ = 0U;
+#line 1958 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = self->priv->save_state_timeout;
+#line 1958 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp1_ != ((guint) 0)) {
+#line 9503 "ui.c"
+ guint _tmp2_ = 0U;
+#line 1959 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = self->priv->save_state_timeout;
+#line 1959 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_source_remove (_tmp2_);
+#line 9509 "ui.c"
+ }
+#line 1960 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 100, ____lambda9__gsource_func, g_object_ref (self), g_object_unref);
+#line 1960 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->save_state_timeout = _tmp3_;
+#line 1966 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 9517 "ui.c"
+ }
+#line 1969 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = user_interface_get_state_filename (self);
+#line 1969 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = _tmp4_;
+#line 1969 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = _tmp5_;
+#line 1969 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_debug ("ui.vala:1969: Saving state to %s", _tmp6_);
+#line 1969 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_tmp6_);
+#line 1971 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = g_key_file_new ();
+#line 1971 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ f = _tmp7_;
+#line 1972 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = f;
+#line 1972 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = self->priv->window_width;
+#line 1972 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_key_file_set_integer (_tmp8_, "window", "width", _tmp9_);
+#line 1973 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = f;
+#line 1973 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = self->priv->window_height;
+#line 1973 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_key_file_set_integer (_tmp10_, "window", "height", _tmp11_);
+#line 1974 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = f;
+#line 1974 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = self->priv->window_is_maximized;
+#line 1974 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_key_file_set_boolean (_tmp12_, "window", "is-maximized", _tmp13_);
+#line 1975 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = f;
+#line 1975 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = self->priv->default_page_width;
+#line 1975 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_key_file_set_integer (_tmp14_, "last-page", "width", _tmp15_);
+#line 1976 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = f;
+#line 1976 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = self->priv->default_page_height;
+#line 1976 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_key_file_set_integer (_tmp16_, "last-page", "height", _tmp17_);
+#line 1977 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = f;
+#line 1977 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = self->priv->default_page_dpi;
+#line 1977 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_key_file_set_integer (_tmp18_, "last-page", "dpi", _tmp19_);
+#line 1978 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp20_ = self->priv->default_page_scan_direction;
+#line 1978 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ switch (_tmp20_) {
+#line 1978 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case SCAN_DIRECTION_TOP_TO_BOTTOM:
+#line 9575 "ui.c"
+ {
+ GKeyFile* _tmp21_ = NULL;
+#line 1981 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp21_ = f;
+#line 1981 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_key_file_set_value (_tmp21_, "last-page", "scan-direction", "top-to-bottom");
+#line 1982 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 9584 "ui.c"
+ }
+#line 1978 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case SCAN_DIRECTION_BOTTOM_TO_TOP:
+#line 9588 "ui.c"
+ {
+ GKeyFile* _tmp22_ = NULL;
+#line 1984 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp22_ = f;
+#line 1984 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_key_file_set_value (_tmp22_, "last-page", "scan-direction", "bottom-to-top");
+#line 1985 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 9597 "ui.c"
+ }
+#line 1978 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case SCAN_DIRECTION_LEFT_TO_RIGHT:
+#line 9601 "ui.c"
+ {
+ GKeyFile* _tmp23_ = NULL;
+#line 1987 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp23_ = f;
+#line 1987 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_key_file_set_value (_tmp23_, "last-page", "scan-direction", "left-to-right");
+#line 1988 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 9610 "ui.c"
+ }
+#line 1978 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case SCAN_DIRECTION_RIGHT_TO_LEFT:
+#line 9614 "ui.c"
+ {
+ GKeyFile* _tmp24_ = NULL;
+#line 1990 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp24_ = f;
+#line 1990 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_key_file_set_value (_tmp24_, "last-page", "scan-direction", "right-to-left");
+#line 1991 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 9623 "ui.c"
+ }
+ default:
+#line 1978 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 9628 "ui.c"
+ }
+ {
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ GKeyFile* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+#line 1995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp25_ = user_interface_get_state_filename (self);
+#line 1995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp26_ = _tmp25_;
+#line 1995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp27_ = _tmp26_;
+#line 1995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp28_ = f;
+#line 1995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp29_ = g_key_file_to_data (_tmp28_, NULL, NULL);
+#line 1995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp30_ = _tmp29_;
+#line 1995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_file_set_contents (_tmp27_, _tmp30_, (gssize) (-1), &_inner_error_);
+#line 1995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_tmp30_);
+#line 1995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (_tmp27_);
+#line 1995 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 9657 "ui.c"
+ goto __catch25_g_error;
+ }
+ }
+ goto __finally25;
+ __catch25_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+#line 1993 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ e = _inner_error_;
+#line 1993 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _inner_error_ = NULL;
+#line 1999 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp31_ = e;
+#line 1999 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp32_ = _tmp31_->message;
+#line 1999 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_warning ("ui.vala:1999: Failed to write state: %s", _tmp32_);
+#line 1993 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_error_free0 (e);
+#line 9679 "ui.c"
+ }
+ __finally25:
+#line 1993 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 1993 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_key_file_unref0 (f);
+#line 1993 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1993 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_clear_error (&_inner_error_);
+#line 1993 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 9692 "ui.c"
+ }
+#line 1954 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_key_file_unref0 (f);
+#line 9696 "ui.c"
+}
+
+
+static gboolean ___lambda17_ (UserInterface* self) {
+ gboolean result = FALSE;
+ ProgressBarDialog* _tmp0_ = NULL;
+#line 2014 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->progress_dialog;
+#line 2014 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp0_, FALSE);
+#line 2015 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = FALSE;
+#line 2015 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 9711 "ui.c"
+}
+
+
+static gboolean ____lambda17__gsource_func (gpointer self) {
+ gboolean result;
+ result = ___lambda17_ ((UserInterface*) self);
+#line 2013 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 9720 "ui.c"
+}
+
+
+static void user_interface_book_saving_cb (UserInterface* self, gint page_number) {
+ gint total = 0;
+ Book* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ guint _tmp3_ = 0U;
+ gdouble fraction = 0.0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gboolean complete = FALSE;
+ gdouble _tmp6_ = 0.0;
+ gboolean _tmp7_ = FALSE;
+ gchar* message = NULL;
+ const gchar* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gchar* _tmp11_ = NULL;
+ ProgressBarDialog* _tmp12_ = NULL;
+ gdouble _tmp13_ = 0.0;
+ ProgressBarDialog* _tmp14_ = NULL;
+#line 2003 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 2006 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ while (TRUE) {
+#line 9747 "ui.c"
+ gboolean _tmp0_ = FALSE;
+#line 2006 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = gtk_events_pending ();
+#line 2006 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp0_) {
+#line 2006 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 9755 "ui.c"
+ }
+#line 2007 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_main_iteration ();
+#line 9759 "ui.c"
+ }
+#line 2009 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = self->priv->_book;
+#line 2009 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = book_get_n_pages (_tmp1_);
+#line 2009 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = _tmp2_;
+#line 2009 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ total = (gint) _tmp3_;
+#line 2010 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = page_number;
+#line 2010 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = total;
+#line 2010 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ fraction = (_tmp4_ + 1.0) / _tmp5_;
+#line 2011 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = fraction;
+#line 2011 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ complete = _tmp6_ == 1.0;
+#line 2012 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = complete;
+#line 2012 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp7_) {
+#line 2013 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 500, ____lambda17__gsource_func, g_object_ref (self), g_object_unref);
+#line 9785 "ui.c"
+ }
+#line 2017 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = _ ("Saving page %d out of %d");
+#line 2017 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = page_number;
+#line 2017 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = total;
+#line 2017 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = g_strdup_printf (_tmp8_, _tmp9_ + 1, _tmp10_);
+#line 2017 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ message = _tmp11_;
+#line 2019 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = self->priv->progress_dialog;
+#line 2019 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = fraction;
+#line 2019 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ progress_bar_dialog_set_fraction (_tmp12_, _tmp13_);
+#line 2020 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = self->priv->progress_dialog;
+#line 2020 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ progress_bar_dialog_set_message (_tmp14_, message);
+#line 2003 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (message);
+#line 9809 "ui.c"
+}
+
+
+void user_interface_show_progress_dialog (UserInterface* self) {
+ ProgressBarDialog* _tmp0_ = NULL;
+#line 2023 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 2025 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->progress_dialog;
+#line 2025 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp0_, TRUE);
+#line 9821 "ui.c"
+}
+
+
+void user_interface_hide_progress_dialog (UserInterface* self) {
+ ProgressBarDialog* _tmp0_ = NULL;
+#line 2028 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 2030 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->progress_dialog;
+#line 2030 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp0_, FALSE);
+#line 9833 "ui.c"
+}
+
+
+void user_interface_show_error (UserInterface* self, const gchar* error_title, const gchar* error_text, gboolean change_scanner_hint) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 2033 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 2033 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (error_title != NULL);
+#line 2033 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (error_text != NULL);
+#line 2035 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->have_error = TRUE;
+#line 2036 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = error_title;
+#line 2036 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 2036 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (self->priv->error_title);
+#line 2036 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->error_title = _tmp1_;
+#line 2037 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = error_text;
+#line 2037 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 2037 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (self->priv->error_text);
+#line 2037 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->error_text = _tmp3_;
+#line 2038 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = change_scanner_hint;
+#line 2038 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->error_change_scanner_hint = _tmp4_;
+#line 2039 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_update_info_bar (self);
+#line 9873 "ui.c"
+}
+
+
+void user_interface_start (UserInterface* self) {
+#line 2042 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 2044 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) self, TRUE);
+#line 9882 "ui.c"
+}
+
+
+Book* user_interface_get_book (UserInterface* self) {
+ Book* result;
+ Book* _tmp0_ = NULL;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->_book;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = _tmp0_;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 9897 "ui.c"
+}
+
+
+static gpointer _book_ref0 (gpointer self) {
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return self ? book_ref (self) : NULL;
+#line 9904 "ui.c"
+}
+
+
+static void user_interface_set_book (UserInterface* self, Book* value) {
+ Book* _tmp0_ = NULL;
+ Book* _tmp1_ = NULL;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = value;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = _book_ref0 (_tmp0_);
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _book_unref0 (self->priv->_book);
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->_book = _tmp1_;
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_notify ((GObject *) self, "book");
+#line 9923 "ui.c"
+}
+
+
+Page* user_interface_get_selected_page (UserInterface* self) {
+ Page* result;
+ BookView* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+#line 167 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->book_view;
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = book_view_get_selected_page (_tmp0_);
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = _tmp2_;
+#line 169 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 9944 "ui.c"
+}
+
+
+void user_interface_set_selected_page (UserInterface* self, Page* value) {
+ BookView* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->book_view;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = value;
+#line 173 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ book_view_set_selected_page (_tmp0_, _tmp1_);
+#line 171 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_notify ((GObject *) self, "selected-page");
+#line 9961 "ui.c"
+}
+
+
+const gchar* user_interface_get_default_file_name (UserInterface* self) {
+ const gchar* result;
+ const gchar* _tmp0_ = NULL;
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->_default_file_name;
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = _tmp0_;
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 9976 "ui.c"
+}
+
+
+void user_interface_set_default_file_name (UserInterface* self, const gchar* value) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = value;
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (self->priv->_default_file_name);
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->_default_file_name = _tmp1_;
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_notify ((GObject *) self, "default-file-name");
+#line 9995 "ui.c"
+}
+
+
+gboolean user_interface_get_scanning (UserInterface* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 192 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 192 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->scanning_;
+#line 192 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = _tmp0_;
+#line 192 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 10010 "ui.c"
+}
+
+
+void user_interface_set_scanning (UserInterface* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+ GtkMenuItem* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GtkMenuItem* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GtkToolButton* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GtkButton* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ GtkButton* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 193 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 195 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = value;
+#line 195 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->scanning_ = _tmp0_;
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = self->priv->page_delete_menuitem;
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = value;
+#line 196 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_sensitive ((GtkWidget*) _tmp1_, !_tmp2_);
+#line 197 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->stop_scan_menuitem;
+#line 197 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = value;
+#line 197 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_sensitive ((GtkWidget*) _tmp3_, _tmp4_);
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = self->priv->stop_toolbutton;
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = value;
+#line 198 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_sensitive ((GtkWidget*) _tmp5_, _tmp6_);
+#line 199 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = self->priv->scan_button;
+#line 199 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = value;
+#line 199 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp7_, !_tmp8_);
+#line 200 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = self->priv->stop_button;
+#line 200 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = value;
+#line 200 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp9_, _tmp10_);
+#line 193 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_notify ((GObject *) self, "scanning");
+#line 10064 "ui.c"
+}
+
+
+gint user_interface_get_brightness (UserInterface* self) {
+ gint result;
+ GtkAdjustment* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->brightness_adjustment;
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_adjustment_get_value (_tmp0_);
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = (gint) _tmp2_;
+#line 212 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 10085 "ui.c"
+}
+
+
+void user_interface_set_brightness (UserInterface* self, gint value) {
+ GtkAdjustment* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 213 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 213 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->brightness_adjustment;
+#line 213 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = value;
+#line 213 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_adjustment_set_value (_tmp0_, (gdouble) _tmp1_);
+#line 213 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_notify ((GObject *) self, "brightness");
+#line 10102 "ui.c"
+}
+
+
+gint user_interface_get_contrast (UserInterface* self) {
+ gint result;
+ GtkAdjustment* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->contrast_adjustment;
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_adjustment_get_value (_tmp0_);
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = (gint) _tmp2_;
+#line 218 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 10123 "ui.c"
+}
+
+
+void user_interface_set_contrast (UserInterface* self, gint value) {
+ GtkAdjustment* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 219 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 219 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->contrast_adjustment;
+#line 219 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = value;
+#line 219 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_adjustment_set_value (_tmp0_, (gdouble) _tmp1_);
+#line 219 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_notify ((GObject *) self, "contrast");
+#line 10140 "ui.c"
+}
+
+
+gint user_interface_get_quality (UserInterface* self) {
+ gint result;
+ GtkAdjustment* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, 0);
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->quality_adjustment;
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_adjustment_get_value (_tmp0_);
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = (gint) _tmp2_;
+#line 224 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 10161 "ui.c"
+}
+
+
+void user_interface_set_quality (UserInterface* self, gint value) {
+ GtkAdjustment* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->quality_adjustment;
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = value;
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_adjustment_set_value (_tmp0_, (gdouble) _tmp1_);
+#line 225 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_notify ((GObject *) self, "quality");
+#line 10178 "ui.c"
+}
+
+
+gchar* user_interface_get_selected_device (UserInterface* self) {
+ gchar* result;
+ GtkTreeIter iter = {0};
+ GtkComboBox* _tmp0_ = NULL;
+ GtkTreeIter _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+#line 230 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 234 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->device_combo;
+#line 234 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = gtk_combo_box_get_active_iter (_tmp0_, &_tmp1_);
+#line 234 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp1_;
+#line 234 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_tmp2_) {
+#line 10198 "ui.c"
+ gchar* device = NULL;
+ GtkListStore* _tmp3_ = NULL;
+ GtkTreeIter _tmp4_ = {0};
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->device_model;
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = iter;
+#line 237 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_tree_model_get ((GtkTreeModel*) _tmp3_, &_tmp4_, 0, &device, -1, -1);
+#line 238 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = device;
+#line 238 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 10212 "ui.c"
+ }
+#line 241 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = NULL;
+#line 241 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 10218 "ui.c"
+}
+
+
+void user_interface_set_selected_device (UserInterface* self, const gchar* value) {
+ GtkTreeIter iter = {0};
+ const gchar* _tmp0_ = NULL;
+ GtkTreeIter _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ GtkComboBox* _tmp3_ = NULL;
+ GtkTreeIter _tmp4_ = {0};
+#line 244 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = value;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = user_interface_find_scan_device (self, _tmp0_, &_tmp1_);
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ iter = _tmp1_;
+#line 247 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (!_tmp2_) {
+#line 248 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return;
+#line 10241 "ui.c"
+ }
+#line 250 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->device_combo;
+#line 250 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = iter;
+#line 250 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_combo_box_set_active_iter (_tmp3_, &_tmp4_);
+#line 251 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->user_selected_device = TRUE;
+#line 244 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_notify ((GObject *) self, "selected-device");
+#line 10253 "ui.c"
+}
+
+
+static gboolean user_interface_get_shell_shows_menubar (UserInterface* self) {
+ gboolean result;
+ gboolean shell_shows_menubar = FALSE;
+ GtkSettings* _tmp0_ = NULL;
+#line 1665 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1668 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = gtk_settings_get_default ();
+#line 1668 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_get ((GObject*) _tmp0_, "gtk-shell-shows-menubar", &shell_shows_menubar, NULL);
+#line 1669 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = shell_shows_menubar;
+#line 1669 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 10271 "ui.c"
+}
+
+
+static gchar* user_interface_get_state_filename (UserInterface* self) {
+ gchar* result;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1873 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1873 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = g_get_user_cache_dir ();
+#line 1873 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = g_build_filename (_tmp0_, "simple-scan", "state", NULL);
+#line 1873 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = _tmp1_;
+#line 1873 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 10289 "ui.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__STRING_SCAN_OPTIONS (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__STRING_SCAN_OPTIONS) (gpointer data1, const char* arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__STRING_SCAN_OPTIONS callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ data1 = closure->data;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 10308 "ui.c"
+ } else {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ data2 = closure->data;
+#line 10314 "ui.c"
+ }
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ callback = (GMarshalFunc_VOID__STRING_SCAN_OPTIONS) (marshal_data ? marshal_data : cc->callback);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ callback (data1, g_value_get_string (param_values + 1), value_get_scan_options (param_values + 2), data2);
+#line 10320 "ui.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__STRING_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__STRING_INT) (gpointer data1, const char* arg_1, gint arg_2, gpointer data2);
+ register GMarshalFunc_VOID__STRING_INT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ data1 = closure->data;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 10339 "ui.c"
+ } else {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ data2 = closure->data;
+#line 10345 "ui.c"
+ }
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ callback = (GMarshalFunc_VOID__STRING_INT) (marshal_data ? marshal_data : cc->callback);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ callback (data1, g_value_get_string (param_values + 1), g_value_get_int (param_values + 2), data2);
+#line 10351 "ui.c"
+}
+
+
+static void user_interface_class_init (UserInterfaceClass * klass) {
+ gint UserInterface_private_offset;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_parent_class = g_type_class_peek_parent (klass);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_type_class_add_private (klass, sizeof (UserInterfacePrivate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_user_interface_get_property;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_user_interface_set_property;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ G_OBJECT_CLASS (klass)->finalize = user_interface_finalize;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), USER_INTERFACE_BOOK, param_spec_book ("book", "book", "book", TYPE_BOOK, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), USER_INTERFACE_SELECTED_PAGE, param_spec_page ("selected-page", "selected-page", "selected-page", TYPE_PAGE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), USER_INTERFACE_DEFAULT_FILE_NAME, g_param_spec_string ("default-file-name", "default-file-name", "default-file-name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), USER_INTERFACE_SCANNING, g_param_spec_boolean ("scanning", "scanning", "scanning", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), USER_INTERFACE_BRIGHTNESS, g_param_spec_int ("brightness", "brightness", "brightness", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), USER_INTERFACE_CONTRAST, g_param_spec_int ("contrast", "contrast", "contrast", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), USER_INTERFACE_QUALITY, g_param_spec_int ("quality", "quality", "quality", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), USER_INTERFACE_SELECTED_DEVICE, g_param_spec_string ("selected-device", "selected-device", "selected-device", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ UserInterface_private_offset = g_type_class_get_instance_private_offset (klass);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/org/gnome/SimpleScan/simple-scan.ui");
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_new ("start_scan", TYPE_USER_INTERFACE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_SCAN_OPTIONS, G_TYPE_NONE, 2, G_TYPE_STRING, TYPE_SCAN_OPTIONS);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_new ("stop_scan", TYPE_USER_INTERFACE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_new ("email", TYPE_USER_INTERFACE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_INT, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "menubar", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, menubar));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "toolbar", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, toolbar));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "page_menu", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, page_menu));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "main_vbox", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, main_vbox));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "custom_crop_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, custom_crop_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "a4_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, a4_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "a5_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, a5_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "a6_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, a6_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "letter_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, letter_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "legal_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, legal_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "four_by_six_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, four_by_six_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "no_crop_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, no_crop_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "page_move_left_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, page_move_left_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "page_move_right_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, page_move_right_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "page_delete_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, page_delete_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "crop_rotate_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, crop_rotate_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "save_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, save_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "save_as_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, save_as_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "copy_to_clipboard_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, copy_to_clipboard_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "save_button", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, save_button));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "save_toolbutton", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, save_toolbutton));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "stop_scan_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, stop_scan_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "stop_toolbutton", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, stop_toolbutton));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "crop_button", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, crop_button));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "crop_toolbutton", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, crop_toolbutton));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "stop_button", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, stop_button));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "scan_button", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, scan_button));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "text_button_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, text_button_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "text_button_hb_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, text_button_hb_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "text_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, text_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "photo_button_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, photo_button_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "photo_button_hb_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, photo_button_hb_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "photo_menuitem", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, photo_menuitem));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "authorize_dialog", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, authorize_dialog));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "authorize_label", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, authorize_label));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "username_entry", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, username_entry));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "password_entry", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, password_entry));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "preferences_dialog", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, preferences_dialog));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "device_combo", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, device_combo));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "text_dpi_combo", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, text_dpi_combo));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "photo_dpi_combo", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, photo_dpi_combo));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "page_side_combo", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, page_side_combo));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "paper_size_combo", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, paper_size_combo));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "brightness_scale", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, brightness_scale));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "contrast_scale", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, contrast_scale));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "quality_scale", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, quality_scale));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "device_model", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, device_model));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "text_dpi_model", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, text_dpi_model));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "photo_dpi_model", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, photo_dpi_model));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "page_side_model", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, page_side_model));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "paper_size_model", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, paper_size_model));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "brightness_adjustment", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, brightness_adjustment));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "contrast_adjustment", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, contrast_adjustment));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "quality_adjustment", FALSE, UserInterface_private_offset + G_STRUCT_OFFSET (UserInterfacePrivate, quality_adjustment));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "device_combo_changed_cb", G_CALLBACK(_user_interface_device_combo_changed_cb_gtk_combo_box_changed));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "new_button_clicked_cb", G_CALLBACK(_user_interface_new_button_clicked_cb_gtk_button_clicked));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "text_menuitem_toggled_cb", G_CALLBACK(_user_interface_text_menuitem_toggled_cb_gtk_check_menu_item_toggled));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "photo_menuitem_toggled_cb", G_CALLBACK(_user_interface_photo_menuitem_toggled_cb_gtk_check_menu_item_toggled));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "scan_button_clicked_cb", G_CALLBACK(_user_interface_scan_button_clicked_cb_gtk_menu_item_activate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "stop_scan_button_clicked_cb", G_CALLBACK(_user_interface_stop_scan_button_clicked_cb_gtk_button_clicked));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "continuous_scan_button_clicked_cb", G_CALLBACK(_user_interface_continuous_scan_button_clicked_cb_gtk_menu_item_activate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "preferences_button_clicked_cb", G_CALLBACK(_user_interface_preferences_button_clicked_cb_gtk_menu_item_activate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "preferences_dialog_delete_event_cb", G_CALLBACK(_user_interface_preferences_dialog_delete_event_cb_gtk_widget_delete_event));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "preferences_dialog_response_cb", G_CALLBACK(_user_interface_preferences_dialog_response_cb_gtk_dialog_response));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "rotate_left_button_clicked_cb", G_CALLBACK(_user_interface_rotate_left_button_clicked_cb_gtk_button_clicked));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "rotate_right_button_clicked_cb", G_CALLBACK(_user_interface_rotate_right_button_clicked_cb_gtk_button_clicked));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "no_crop_menuitem_toggled_cb", G_CALLBACK(_user_interface_no_crop_menuitem_toggled_cb_gtk_check_menu_item_toggled));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "custom_crop_menuitem_toggled_cb", G_CALLBACK(_user_interface_custom_crop_menuitem_toggled_cb_gtk_check_menu_item_toggled));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "crop_button_toggled_cb", G_CALLBACK(_user_interface_crop_button_toggled_cb_gtk_toggle_button_toggled));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "crop_toolbutton_toggled_cb", G_CALLBACK(_user_interface_crop_toolbutton_toggled_cb_gtk_toggle_tool_button_toggled));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "four_by_six_menuitem_toggled_cb", G_CALLBACK(_user_interface_four_by_six_menuitem_toggled_cb_gtk_check_menu_item_toggled));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "legal_menuitem_toggled_cb", G_CALLBACK(_user_interface_legal_menuitem_toggled_cb_gtk_check_menu_item_toggled));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "letter_menuitem_toggled_cb", G_CALLBACK(_user_interface_letter_menuitem_toggled_cb_gtk_check_menu_item_toggled));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "a6_menuitem_toggled_cb", G_CALLBACK(_user_interface_a6_menuitem_toggled_cb_gtk_check_menu_item_toggled));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "a5_menuitem_toggled_cb", G_CALLBACK(_user_interface_a5_menuitem_toggled_cb_gtk_check_menu_item_toggled));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "a4_menuitem_toggled_cb", G_CALLBACK(_user_interface_a4_menuitem_toggled_cb_gtk_check_menu_item_toggled));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "crop_rotate_menuitem_activate_cb", G_CALLBACK(_user_interface_crop_rotate_menuitem_activate_cb_gtk_menu_item_activate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "page_move_left_menuitem_activate_cb", G_CALLBACK(_user_interface_page_move_left_menuitem_activate_cb_gtk_menu_item_activate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "page_move_right_menuitem_activate_cb", G_CALLBACK(_user_interface_page_move_right_menuitem_activate_cb_gtk_menu_item_activate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "page_delete_menuitem_activate_cb", G_CALLBACK(_user_interface_page_delete_menuitem_activate_cb_gtk_menu_item_activate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "reorder_menuitem_activate_cb", G_CALLBACK(_user_interface_reorder_menuitem_activate_cb_gtk_menu_item_activate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "save_file_button_clicked_cb", G_CALLBACK(_user_interface_save_file_button_clicked_cb_gtk_button_clicked));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "copy_to_clipboard_button_clicked_cb", G_CALLBACK(_user_interface_copy_to_clipboard_button_clicked_cb_gtk_menu_item_activate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "save_as_file_button_clicked_cb", G_CALLBACK(_user_interface_save_as_file_button_clicked_cb_gtk_menu_item_activate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "email_button_clicked_cb", G_CALLBACK(_user_interface_email_button_clicked_cb_gtk_menu_item_activate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "print_button_clicked_cb", G_CALLBACK(_user_interface_print_button_clicked_cb_gtk_menu_item_activate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "help_contents_menuitem_activate_cb", G_CALLBACK(_user_interface_help_contents_menuitem_activate_cb_gtk_menu_item_activate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "about_menuitem_activate_cb", G_CALLBACK(_user_interface_about_menuitem_activate_cb_gtk_menu_item_activate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "quit_menuitem_activate_cb", G_CALLBACK(_user_interface_quit_menuitem_activate_cb_gtk_menu_item_activate));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "simple_scan_window_configure_event_cb", G_CALLBACK(_user_interface_simple_scan_window_configure_event_cb_gtk_widget_configure_event));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "simple_scan_window_window_state_event_cb", G_CALLBACK(_user_interface_simple_scan_window_window_state_event_cb_gtk_widget_window_state_event));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "window_delete_event_cb", G_CALLBACK(_user_interface_window_delete_event_cb_gtk_widget_delete_event));
+#line 10577 "ui.c"
+}
+
+
+static void user_interface_instance_init (UserInterface * self) {
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv = USER_INTERFACE_GET_PRIVATE (self);
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->book_uri = NULL;
+#line 186 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = g_strdup ("photo");
+#line 186 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->document_hint = _tmp0_;
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = _ ("Scanned Document.pdf");
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->_default_file_name = _tmp2_;
+#line 189 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->scanning_ = FALSE;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_init_template (GTK_WIDGET (self));
+#line 10603 "ui.c"
+}
+
+
+static void user_interface_finalize (GObject* obj) {
+ UserInterface * self;
+ Book* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ Book* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ Book* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_USER_INTERFACE, UserInterface);
+#line 286 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->_book;
+#line 286 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_parse_name ("page-added", TYPE_BOOK, &_tmp1_, NULL, FALSE);
+#line 286 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _user_interface_page_added_cb_book_page_added, self);
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = self->priv->_book;
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_parse_name ("reordered", TYPE_BOOK, &_tmp3_, NULL, FALSE);
+#line 287 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _user_interface_reordered_cb_book_reordered, self);
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = self->priv->_book;
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_parse_name ("page-removed", TYPE_BOOK, &_tmp5_, NULL, FALSE);
+#line 288 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _user_interface_page_removed_cb_book_page_removed, self);
+#line 33 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->settings);
+#line 36 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->menubar);
+#line 38 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->toolbar);
+#line 40 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->page_menu);
+#line 42 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->main_vbox);
+#line 43 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->info_bar);
+#line 44 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->info_bar_image);
+#line 45 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->info_bar_label);
+#line 46 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->info_bar_close_button);
+#line 47 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->info_bar_change_scanner_button);
+#line 49 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->custom_crop_menuitem);
+#line 51 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->a4_menuitem);
+#line 53 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->a5_menuitem);
+#line 55 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->a6_menuitem);
+#line 57 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->letter_menuitem);
+#line 59 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->legal_menuitem);
+#line 61 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->four_by_six_menuitem);
+#line 63 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->no_crop_menuitem);
+#line 65 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->page_move_left_menuitem);
+#line 67 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->page_move_right_menuitem);
+#line 69 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->page_delete_menuitem);
+#line 71 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->crop_rotate_menuitem);
+#line 73 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->save_menuitem);
+#line 75 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->save_as_menuitem);
+#line 77 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->copy_to_clipboard_menuitem);
+#line 79 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->save_button);
+#line 81 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->save_toolbutton);
+#line 83 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->stop_scan_menuitem);
+#line 85 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->stop_toolbutton);
+#line 87 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->crop_button);
+#line 89 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->crop_toolbutton);
+#line 91 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->stop_button);
+#line 93 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->scan_button);
+#line 96 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->text_button_menuitem);
+#line 98 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->text_button_hb_menuitem);
+#line 100 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->text_menuitem);
+#line 102 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->photo_button_menuitem);
+#line 104 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->photo_button_hb_menuitem);
+#line 106 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->photo_menuitem);
+#line 109 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->authorize_dialog);
+#line 111 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->authorize_label);
+#line 113 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->username_entry);
+#line 115 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->password_entry);
+#line 118 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->preferences_dialog);
+#line 120 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->device_combo);
+#line 122 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->text_dpi_combo);
+#line 124 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->photo_dpi_combo);
+#line 126 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->page_side_combo);
+#line 128 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->paper_size_combo);
+#line 130 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->brightness_scale);
+#line 132 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->contrast_scale);
+#line 134 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->quality_scale);
+#line 136 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->device_model);
+#line 138 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->text_dpi_model);
+#line 140 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->photo_dpi_model);
+#line 142 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->page_side_model);
+#line 144 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->paper_size_model);
+#line 146 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->brightness_adjustment);
+#line 148 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->contrast_adjustment);
+#line 150 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->quality_adjustment);
+#line 154 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->save_dialog);
+#line 155 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->progress_dialog);
+#line 158 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (self->priv->error_title);
+#line 159 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (self->priv->error_text);
+#line 162 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _book_unref0 (self->priv->_book);
+#line 163 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (self->priv->book_uri);
+#line 177 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _autosave_manager_unref0 (self->priv->autosave_manager);
+#line 179 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->book_view);
+#line 186 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (self->priv->document_hint);
+#line 188 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (self->priv->_default_file_name);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ G_OBJECT_CLASS (user_interface_parent_class)->finalize (obj);
+#line 10777 "ui.c"
+}
+
+
+GType user_interface_get_type (void) {
+ static volatile gsize user_interface_type_id__volatile = 0;
+ if (g_once_init_enter (&user_interface_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (UserInterfaceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) user_interface_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (UserInterface), 0, (GInstanceInitFunc) user_interface_instance_init, NULL };
+ GType user_interface_type_id;
+ user_interface_type_id = g_type_register_static (GTK_TYPE_APPLICATION_WINDOW, "UserInterface", &g_define_type_info, 0);
+ g_once_init_leave (&user_interface_type_id__volatile, user_interface_type_id);
+ }
+ return user_interface_type_id__volatile;
+}
+
+
+static void _vala_user_interface_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ UserInterface * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_USER_INTERFACE, UserInterface);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ switch (property_id) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_BOOK:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ value_set_book (value, user_interface_get_book (self));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_SELECTED_PAGE:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ value_set_page (value, user_interface_get_selected_page (self));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_DEFAULT_FILE_NAME:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_value_set_string (value, user_interface_get_default_file_name (self));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_SCANNING:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_value_set_boolean (value, user_interface_get_scanning (self));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_BRIGHTNESS:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_value_set_int (value, user_interface_get_brightness (self));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_CONTRAST:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_value_set_int (value, user_interface_get_contrast (self));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_QUALITY:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_value_set_int (value, user_interface_get_quality (self));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_SELECTED_DEVICE:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_value_take_string (value, user_interface_get_selected_device (self));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 10846 "ui.c"
+ default:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 10852 "ui.c"
+ }
+}
+
+
+static void _vala_user_interface_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ UserInterface * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_USER_INTERFACE, UserInterface);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ switch (property_id) {
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_BOOK:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_book (self, value_get_book (value));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_SELECTED_PAGE:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_selected_page (self, value_get_page (value));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_DEFAULT_FILE_NAME:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_default_file_name (self, g_value_get_string (value));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_SCANNING:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_scanning (self, g_value_get_boolean (value));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_BRIGHTNESS:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_brightness (self, g_value_get_int (value));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_CONTRAST:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_contrast (self, g_value_get_int (value));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_QUALITY:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_quality (self, g_value_get_int (value));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case USER_INTERFACE_SELECTED_DEVICE:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ user_interface_set_selected_device (self, g_value_get_string (value));
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 10910 "ui.c"
+ default:
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 14 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 10916 "ui.c"
+ }
+}
+
+
+ProgressBarDialog* progress_bar_dialog_construct (GType object_type, GtkApplicationWindow* parent, const gchar* title) {
+ ProgressBarDialog * self = NULL;
+ GtkProgressBar* _tmp0_ = NULL;
+ GtkBox* hbox = NULL;
+ GtkBox* _tmp1_ = NULL;
+ GtkBox* vbox = NULL;
+ GtkBox* _tmp2_ = NULL;
+ GtkProgressBar* _tmp3_ = NULL;
+ GtkProgressBar* _tmp4_ = NULL;
+ GtkProgressBar* _tmp5_ = NULL;
+ GtkProgressBar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ GtkApplicationWindow* _tmp8_ = NULL;
+ GtkProgressBar* _tmp9_ = NULL;
+#line 2064 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (parent != NULL, NULL);
+#line 2064 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (title != NULL, NULL);
+#line 2064 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = (ProgressBarDialog*) g_object_new (object_type, NULL);
+#line 2066 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = (GtkProgressBar*) gtk_progress_bar_new ();
+#line 2066 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp0_);
+#line 2066 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->bar);
+#line 2066 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->bar = _tmp0_;
+#line 2067 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
+#line 2067 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp1_);
+#line 2067 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ hbox = _tmp1_;
+#line 2068 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
+#line 2068 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_ref_sink (_tmp2_);
+#line 2068 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ vbox = _tmp2_;
+#line 2069 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_hexpand ((GtkWidget*) hbox, TRUE);
+#line 2071 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = self->priv->bar;
+#line 2071 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_progress_bar_set_text (_tmp3_, "");
+#line 2072 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = self->priv->bar;
+#line 2072 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_progress_bar_set_show_text (_tmp4_, TRUE);
+#line 2073 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = self->priv->bar;
+#line 2073 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_size_request ((GtkWidget*) _tmp5_, 225, 25);
+#line 2074 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_size_request ((GtkWidget*) self, 250, 50);
+#line 2076 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = self->priv->bar;
+#line 2076 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_box_pack_start (vbox, (GtkWidget*) _tmp6_, TRUE, FALSE, (guint) 0);
+#line 2077 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_box_pack_start (hbox, (GtkWidget*) vbox, TRUE, FALSE, (guint) 0);
+#line 2078 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_container_add ((GtkContainer*) self, (GtkWidget*) hbox);
+#line 2079 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = title;
+#line 2079 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_set_title ((GtkWindow*) self, _tmp7_);
+#line 2081 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = parent;
+#line 2081 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_set_transient_for ((GtkWindow*) self, (GtkWindow*) _tmp8_);
+#line 2082 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_set_position ((GtkWindow*) self, GTK_WIN_POS_CENTER_ON_PARENT);
+#line 2083 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_set_modal ((GtkWindow*) self, TRUE);
+#line 2084 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_window_set_resizable ((GtkWindow*) self, FALSE);
+#line 2086 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) hbox, TRUE);
+#line 2087 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) vbox, TRUE);
+#line 2088 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = self->priv->bar;
+#line 2088 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_widget_set_visible ((GtkWidget*) _tmp9_, TRUE);
+#line 2064 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (vbox);
+#line 2064 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (hbox);
+#line 2064 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return self;
+#line 11013 "ui.c"
+}
+
+
+ProgressBarDialog* progress_bar_dialog_new (GtkApplicationWindow* parent, const gchar* title) {
+#line 2064 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return progress_bar_dialog_construct (TYPE_PROGRESS_BAR_DIALOG, parent, title);
+#line 11020 "ui.c"
+}
+
+
+gdouble progress_bar_dialog_get_fraction (ProgressBarDialog* self) {
+ gdouble result;
+ GtkProgressBar* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+#line 2054 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, 0.0);
+#line 2054 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->bar;
+#line 2054 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_progress_bar_get_fraction (_tmp0_);
+#line 2054 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 2054 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = _tmp2_;
+#line 2054 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 11041 "ui.c"
+}
+
+
+void progress_bar_dialog_set_fraction (ProgressBarDialog* self, gdouble value) {
+ GtkProgressBar* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+#line 2055 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 2055 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->bar;
+#line 2055 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = value;
+#line 2055 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_progress_bar_set_fraction (_tmp0_, _tmp1_);
+#line 2055 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_notify ((GObject *) self, "fraction");
+#line 11058 "ui.c"
+}
+
+
+const gchar* progress_bar_dialog_get_message (ProgressBarDialog* self) {
+ const gchar* result;
+ GtkProgressBar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 2060 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 2060 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->bar;
+#line 2060 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_progress_bar_get_text (_tmp0_);
+#line 2060 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = _tmp1_;
+#line 2060 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = _tmp2_;
+#line 2060 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 11079 "ui.c"
+}
+
+
+void progress_bar_dialog_set_message (ProgressBarDialog* self, const gchar* value) {
+ GtkProgressBar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 2061 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_if_fail (self != NULL);
+#line 2061 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = self->priv->bar;
+#line 2061 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = value;
+#line 2061 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ gtk_progress_bar_set_text (_tmp0_, _tmp1_);
+#line 2061 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_notify ((GObject *) self, "message");
+#line 11096 "ui.c"
+}
+
+
+static void progress_bar_dialog_class_init (ProgressBarDialogClass * klass) {
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ progress_bar_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_type_class_add_private (klass, sizeof (ProgressBarDialogPrivate));
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_progress_bar_dialog_get_property;
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_progress_bar_dialog_set_property;
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ G_OBJECT_CLASS (klass)->finalize = progress_bar_dialog_finalize;
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), PROGRESS_BAR_DIALOG_FRACTION, g_param_spec_double ("fraction", "fraction", "fraction", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), PROGRESS_BAR_DIALOG_MESSAGE, g_param_spec_string ("message", "message", "message", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+#line 11115 "ui.c"
+}
+
+
+static void progress_bar_dialog_instance_init (ProgressBarDialog * self) {
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv = PROGRESS_BAR_DIALOG_GET_PRIVATE (self);
+#line 11122 "ui.c"
+}
+
+
+static void progress_bar_dialog_finalize (GObject* obj) {
+ ProgressBarDialog * self;
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PROGRESS_BAR_DIALOG, ProgressBarDialog);
+#line 2050 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_object_unref0 (self->priv->bar);
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ G_OBJECT_CLASS (progress_bar_dialog_parent_class)->finalize (obj);
+#line 11134 "ui.c"
+}
+
+
+GType progress_bar_dialog_get_type (void) {
+ static volatile gsize progress_bar_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&progress_bar_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ProgressBarDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) progress_bar_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProgressBarDialog), 0, (GInstanceInitFunc) progress_bar_dialog_instance_init, NULL };
+ GType progress_bar_dialog_type_id;
+ progress_bar_dialog_type_id = g_type_register_static (GTK_TYPE_WINDOW, "ProgressBarDialog", &g_define_type_info, 0);
+ g_once_init_leave (&progress_bar_dialog_type_id__volatile, progress_bar_dialog_type_id);
+ }
+ return progress_bar_dialog_type_id__volatile;
+}
+
+
+static void _vala_progress_bar_dialog_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ ProgressBarDialog * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_PROGRESS_BAR_DIALOG, ProgressBarDialog);
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ switch (property_id) {
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case PROGRESS_BAR_DIALOG_FRACTION:
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_value_set_double (value, progress_bar_dialog_get_fraction (self));
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case PROGRESS_BAR_DIALOG_MESSAGE:
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_value_set_string (value, progress_bar_dialog_get_message (self));
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 11167 "ui.c"
+ default:
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 11173 "ui.c"
+ }
+}
+
+
+static void _vala_progress_bar_dialog_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ ProgressBarDialog * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_PROGRESS_BAR_DIALOG, ProgressBarDialog);
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ switch (property_id) {
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case PROGRESS_BAR_DIALOG_FRACTION:
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ progress_bar_dialog_set_fraction (self, g_value_get_double (value));
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ case PROGRESS_BAR_DIALOG_MESSAGE:
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ progress_bar_dialog_set_message (self, g_value_get_string (value));
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 11195 "ui.c"
+ default:
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 2048 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ break;
+#line 11201 "ui.c"
+ }
+}
+
+
+gchar* get_temporary_filename (const gchar* prefix, const gchar* extension) {
+ gchar* result = NULL;
+ gchar* filename = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* path = NULL;
+ GError * _inner_error_ = NULL;
+#line 2093 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (prefix != NULL, NULL);
+#line 2093 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (extension != NULL, NULL);
+#line 2098 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = prefix;
+#line 2098 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = extension;
+#line 2098 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = g_strdup_printf ("%sXXXXXX.%s", _tmp0_, _tmp1_);
+#line 2098 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ filename = _tmp2_;
+#line 11226 "ui.c"
+ {
+ gint fd = 0;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 2102 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = filename;
+#line 2102 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = g_file_open_tmp (_tmp3_, &_tmp4_, &_inner_error_);
+#line 2102 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (path);
+#line 2102 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ path = _tmp4_;
+#line 2102 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ fd = _tmp5_;
+#line 2102 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 11245 "ui.c"
+ goto __catch26_g_error;
+ }
+#line 2103 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = fd;
+#line 2103 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ close (_tmp6_);
+#line 11252 "ui.c"
+ }
+ goto __finally26;
+ __catch26_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 2100 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ e = _inner_error_;
+#line 2100 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _inner_error_ = NULL;
+#line 2107 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = e;
+#line 2107 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = _tmp7_->message;
+#line 2107 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_warning ("ui.vala:2107: Error saving email attachment: %s", _tmp8_);
+#line 2108 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = NULL;
+#line 2108 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_error_free0 (e);
+#line 2108 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (path);
+#line 2108 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (filename);
+#line 2108 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 11280 "ui.c"
+ }
+ __finally26:
+#line 2100 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (_inner_error_ != NULL) {
+#line 2100 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (path);
+#line 2100 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (filename);
+#line 2100 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2100 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_clear_error (&_inner_error_);
+#line 2100 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return NULL;
+#line 11295 "ui.c"
+ }
+#line 2111 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = path;
+#line 2111 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (filename);
+#line 2111 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 11303 "ui.c"
+}
+
+
+PageIcon* page_icon_construct (GType object_type, const gchar* text, gdouble r, gdouble g, gdouble b) {
+ PageIcon * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+ gdouble _tmp4_ = 0.0;
+#line 2122 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (text != NULL, NULL);
+#line 2122 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = (PageIcon*) g_object_new (object_type, NULL);
+#line 2124 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = text;
+#line 2124 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 2124 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (self->priv->text);
+#line 2124 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->text = _tmp1_;
+#line 2125 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = r;
+#line 2125 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->r = _tmp2_;
+#line 2126 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = g;
+#line 2126 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->g = _tmp3_;
+#line 2127 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = b;
+#line 2127 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv->b = _tmp4_;
+#line 2122 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return self;
+#line 11340 "ui.c"
+}
+
+
+PageIcon* page_icon_new (const gchar* text, gdouble r, gdouble g, gdouble b) {
+#line 2122 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return page_icon_construct (TYPE_PAGE_ICON, text, r, g, b);
+#line 11347 "ui.c"
+}
+
+
+static void page_icon_real_get_preferred_width (GtkWidget* base, gint* minimum_width, gint* natural_width) {
+ PageIcon * self;
+ gint _vala_minimum_width = 0;
+ gint _vala_natural_width = 0;
+#line 2130 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = (PageIcon*) base;
+#line 2132 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _vala_natural_width = PAGE_ICON_MINIMUM_WIDTH;
+#line 2132 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _vala_minimum_width = _vala_natural_width;
+#line 2130 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (minimum_width) {
+#line 2130 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ *minimum_width = _vala_minimum_width;
+#line 11365 "ui.c"
+ }
+#line 2130 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (natural_width) {
+#line 2130 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ *natural_width = _vala_natural_width;
+#line 11371 "ui.c"
+ }
+}
+
+
+static void page_icon_real_get_preferred_height (GtkWidget* base, gint* minimum_height, gint* natural_height) {
+ PageIcon * self;
+ gint _vala_minimum_height = 0;
+ gint _vala_natural_height = 0;
+ gdouble _tmp0_ = 0.0;
+#line 2135 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = (PageIcon*) base;
+#line 2137 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = round (PAGE_ICON_MINIMUM_WIDTH * G_SQRT2);
+#line 2137 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _vala_natural_height = (gint) _tmp0_;
+#line 2137 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _vala_minimum_height = _vala_natural_height;
+#line 2135 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (minimum_height) {
+#line 2135 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ *minimum_height = _vala_minimum_height;
+#line 11393 "ui.c"
+ }
+#line 2135 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (natural_height) {
+#line 2135 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ *natural_height = _vala_natural_height;
+#line 11399 "ui.c"
+ }
+}
+
+
+static void page_icon_real_get_preferred_height_for_width (GtkWidget* base, gint width, gint* minimum_height, gint* natural_height) {
+ PageIcon * self;
+ gint _vala_minimum_height = 0;
+ gint _vala_natural_height = 0;
+ gint _tmp0_ = 0;
+#line 2140 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = (PageIcon*) base;
+#line 2142 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = width;
+#line 2142 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _vala_natural_height = (gint) (_tmp0_ * G_SQRT2);
+#line 2142 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _vala_minimum_height = _vala_natural_height;
+#line 2140 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (minimum_height) {
+#line 2140 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ *minimum_height = _vala_minimum_height;
+#line 11421 "ui.c"
+ }
+#line 2140 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (natural_height) {
+#line 2140 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ *natural_height = _vala_natural_height;
+#line 11427 "ui.c"
+ }
+}
+
+
+static void page_icon_real_get_preferred_width_for_height (GtkWidget* base, gint height, gint* minimum_width, gint* natural_width) {
+ PageIcon * self;
+ gint _vala_minimum_width = 0;
+ gint _vala_natural_width = 0;
+ gint _tmp0_ = 0;
+#line 2145 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = (PageIcon*) base;
+#line 2147 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = height;
+#line 2147 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _vala_natural_width = (gint) (_tmp0_ / G_SQRT2);
+#line 2147 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _vala_minimum_width = _vala_natural_width;
+#line 2145 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (minimum_width) {
+#line 2145 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ *minimum_width = _vala_minimum_width;
+#line 11449 "ui.c"
+ }
+#line 2145 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if (natural_width) {
+#line 2145 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ *natural_width = _vala_natural_width;
+#line 11455 "ui.c"
+ }
+}
+
+
+static gboolean page_icon_real_draw (GtkWidget* base, cairo_t* c) {
+ PageIcon * self;
+ gboolean result = FALSE;
+ gint w = 0;
+ gint _tmp0_ = 0;
+ gint h = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ cairo_t* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ cairo_t* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ cairo_t* _tmp16_ = NULL;
+ gdouble _tmp17_ = 0.0;
+ gdouble _tmp18_ = 0.0;
+ gdouble _tmp19_ = 0.0;
+ cairo_t* _tmp20_ = NULL;
+ cairo_t* _tmp21_ = NULL;
+ cairo_t* _tmp22_ = NULL;
+ cairo_t* _tmp23_ = NULL;
+ cairo_text_extents_t extents = {0};
+ cairo_t* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ cairo_text_extents_t _tmp26_ = {0};
+ cairo_t* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ cairo_text_extents_t _tmp29_ = {0};
+ gdouble _tmp30_ = 0.0;
+ gint _tmp31_ = 0;
+ cairo_text_extents_t _tmp32_ = {0};
+ gdouble _tmp33_ = 0.0;
+ cairo_t* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+#line 2150 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = (PageIcon*) base;
+#line 2150 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_return_val_if_fail (c != NULL, FALSE);
+#line 2152 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp0_ = gtk_widget_get_allocated_width ((GtkWidget*) self);
+#line 2152 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ w = _tmp0_;
+#line 2153 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp1_ = gtk_widget_get_allocated_height ((GtkWidget*) self);
+#line 2153 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ h = _tmp1_;
+#line 2154 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp2_ = w;
+#line 2154 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp3_ = h;
+#line 2154 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ if ((_tmp2_ * G_SQRT2) > ((gdouble) _tmp3_)) {
+#line 11516 "ui.c"
+ gint _tmp4_ = 0;
+ gdouble _tmp5_ = 0.0;
+#line 2155 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp4_ = h;
+#line 2155 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp5_ = round (_tmp4_ / G_SQRT2);
+#line 2155 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ w = (gint) _tmp5_;
+#line 11525 "ui.c"
+ } else {
+ gint _tmp6_ = 0;
+ gdouble _tmp7_ = 0.0;
+#line 2157 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp6_ = w;
+#line 2157 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp7_ = round (_tmp6_ * G_SQRT2);
+#line 2157 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ h = (gint) _tmp7_;
+#line 11535 "ui.c"
+ }
+#line 2159 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp8_ = c;
+#line 2159 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp9_ = gtk_widget_get_allocated_width ((GtkWidget*) self);
+#line 2159 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp10_ = w;
+#line 2159 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp11_ = gtk_widget_get_allocated_height ((GtkWidget*) self);
+#line 2159 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp12_ = h;
+#line 2159 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ cairo_translate (_tmp8_, (gdouble) ((_tmp9_ - _tmp10_) / 2), (gdouble) ((_tmp11_ - _tmp12_) / 2));
+#line 2161 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp13_ = c;
+#line 2161 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp14_ = w;
+#line 2161 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp15_ = h;
+#line 2161 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ cairo_rectangle (_tmp13_, 0.5, 0.5, (gdouble) (_tmp14_ - 1), (gdouble) (_tmp15_ - 1));
+#line 2163 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp16_ = c;
+#line 2163 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp17_ = self->priv->r;
+#line 2163 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp18_ = self->priv->g;
+#line 2163 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp19_ = self->priv->b;
+#line 2163 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ cairo_set_source_rgb (_tmp16_, _tmp17_, _tmp18_, _tmp19_);
+#line 2164 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp20_ = c;
+#line 2164 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ cairo_fill_preserve (_tmp20_);
+#line 2166 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp21_ = c;
+#line 2166 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ cairo_set_line_width (_tmp21_, 1.0);
+#line 2167 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp22_ = c;
+#line 2167 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ cairo_set_source_rgb (_tmp22_, 0.0, 0.0, 0.0);
+#line 2168 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp23_ = c;
+#line 2168 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ cairo_stroke (_tmp23_);
+#line 2171 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp24_ = c;
+#line 2171 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp25_ = self->priv->text;
+#line 2171 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ cairo_text_extents (_tmp24_, _tmp25_, &_tmp26_);
+#line 2171 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ extents = _tmp26_;
+#line 2172 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp27_ = c;
+#line 2172 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp28_ = w;
+#line 2172 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp29_ = extents;
+#line 2172 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp30_ = _tmp29_.width;
+#line 2172 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp31_ = h;
+#line 2172 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp32_ = extents;
+#line 2172 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp33_ = _tmp32_.height;
+#line 2172 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ cairo_translate (_tmp27_, ((_tmp28_ - _tmp30_) * 0.5) - 0.5, ((_tmp31_ + _tmp33_) * 0.5) - 0.5);
+#line 2173 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp34_ = c;
+#line 2173 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _tmp35_ = self->priv->text;
+#line 2173 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ cairo_show_text (_tmp34_, _tmp35_);
+#line 2175 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ result = TRUE;
+#line 2175 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ return result;
+#line 11617 "ui.c"
+}
+
+
+static void page_icon_class_init (PageIconClass * klass) {
+#line 2114 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ page_icon_parent_class = g_type_class_peek_parent (klass);
+#line 2114 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ g_type_class_add_private (klass, sizeof (PageIconPrivate));
+#line 2114 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ GTK_WIDGET_CLASS (klass)->get_preferred_width = page_icon_real_get_preferred_width;
+#line 2114 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ GTK_WIDGET_CLASS (klass)->get_preferred_height = page_icon_real_get_preferred_height;
+#line 2114 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ GTK_WIDGET_CLASS (klass)->get_preferred_height_for_width = page_icon_real_get_preferred_height_for_width;
+#line 2114 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ GTK_WIDGET_CLASS (klass)->get_preferred_width_for_height = page_icon_real_get_preferred_width_for_height;
+#line 2114 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ GTK_WIDGET_CLASS (klass)->draw = page_icon_real_draw;
+#line 2114 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ G_OBJECT_CLASS (klass)->finalize = page_icon_finalize;
+#line 11638 "ui.c"
+}
+
+
+static void page_icon_instance_init (PageIcon * self) {
+#line 2114 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self->priv = PAGE_ICON_GET_PRIVATE (self);
+#line 11645 "ui.c"
+}
+
+
+static void page_icon_finalize (GObject* obj) {
+ PageIcon * self;
+#line 2114 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PAGE_ICON, PageIcon);
+#line 2116 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ _g_free0 (self->priv->text);
+#line 2114 "/home/bob/bzr/simple-scan/trunk/src/ui.vala"
+ G_OBJECT_CLASS (page_icon_parent_class)->finalize (obj);
+#line 11657 "ui.c"
+}
+
+
+GType page_icon_get_type (void) {
+ static volatile gsize page_icon_type_id__volatile = 0;
+ if (g_once_init_enter (&page_icon_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PageIconClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) page_icon_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PageIcon), 0, (GInstanceInitFunc) page_icon_instance_init, NULL };
+ GType page_icon_type_id;
+ page_icon_type_id = g_type_register_static (GTK_TYPE_DRAWING_AREA, "PageIcon", &g_define_type_info, 0);
+ g_once_init_leave (&page_icon_type_id__volatile, page_icon_type_id);
+ }
+ return page_icon_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/ui.vala b/src/ui.vala
new file mode 100644
index 0000000..2117a9a
--- /dev/null
+++ b/src/ui.vala
@@ -0,0 +1,2177 @@
+/*
+ * Copyright (C) 2009-2011 Canonical Ltd.
+ * Author: Robert Ancell <robert.ancell@canonical.com>,
+ * Eduard Gotwig <g@ox.io>
+ *
+ * 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 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+[GtkTemplate (ui = "/org/gnome/SimpleScan/simple-scan.ui")]
+public class UserInterface : Gtk.ApplicationWindow
+{
+ private const int DEFAULT_TEXT_DPI = 150;
+ private const int DEFAULT_PHOTO_DPI = 300;
+
+ private const GLib.ActionEntry[] action_entries =
+ {
+ { "new_document", new_document_activate_cb },
+ { "reorder", reorder_document_activate_cb },
+ { "save", save_document_activate_cb },
+ { "save_as", save_as_document_activate_cb },
+ { "email", email_document_activate_cb },
+ { "print", print_document_activate_cb },
+ { "preferences", preferences_activate_cb },
+ { "help", help_contents_activate_cb },
+ { "about", about_activate_cb },
+ { "quit", quit_activate_cb }
+ };
+
+ private Settings settings;
+
+ [GtkChild]
+ private Gtk.MenuBar menubar;
+ [GtkChild]
+ private Gtk.Toolbar toolbar;
+ [GtkChild]
+ private Gtk.Menu page_menu;
+ [GtkChild]
+ private Gtk.Box main_vbox;
+ private Gtk.InfoBar info_bar;
+ private Gtk.Image info_bar_image;
+ private Gtk.Label info_bar_label;
+ private Gtk.Button info_bar_close_button;
+ private Gtk.Button info_bar_change_scanner_button;
+ [GtkChild]
+ private Gtk.RadioMenuItem custom_crop_menuitem;
+ [GtkChild]
+ private Gtk.RadioMenuItem a4_menuitem;
+ [GtkChild]
+ private Gtk.RadioMenuItem a5_menuitem;
+ [GtkChild]
+ private Gtk.RadioMenuItem a6_menuitem;
+ [GtkChild]
+ private Gtk.RadioMenuItem letter_menuitem;
+ [GtkChild]
+ private Gtk.RadioMenuItem legal_menuitem;
+ [GtkChild]
+ private Gtk.RadioMenuItem four_by_six_menuitem;
+ [GtkChild]
+ private Gtk.RadioMenuItem no_crop_menuitem;
+ [GtkChild]
+ private Gtk.MenuItem page_move_left_menuitem;
+ [GtkChild]
+ private Gtk.MenuItem page_move_right_menuitem;
+ [GtkChild]
+ private Gtk.MenuItem page_delete_menuitem;
+ [GtkChild]
+ private Gtk.MenuItem crop_rotate_menuitem;
+ [GtkChild]
+ private Gtk.MenuItem save_menuitem;
+ [GtkChild]
+ private Gtk.MenuItem save_as_menuitem;
+ [GtkChild]
+ private Gtk.MenuItem copy_to_clipboard_menuitem;
+ [GtkChild]
+ private Gtk.Button save_button;
+ [GtkChild]
+ private Gtk.ToolButton save_toolbutton;
+ [GtkChild]
+ private Gtk.MenuItem stop_scan_menuitem;
+ [GtkChild]
+ private Gtk.ToolButton stop_toolbutton;
+ [GtkChild]
+ private Gtk.ToggleButton crop_button;
+ [GtkChild]
+ private Gtk.ToggleToolButton crop_toolbutton;
+ [GtkChild]
+ private Gtk.Button stop_button;
+ [GtkChild]
+ private Gtk.Button scan_button;
+
+ [GtkChild]
+ private Gtk.RadioMenuItem text_button_menuitem;
+ [GtkChild]
+ private Gtk.RadioMenuItem text_button_hb_menuitem;
+ [GtkChild]
+ private Gtk.RadioMenuItem text_menuitem;
+ [GtkChild]
+ private Gtk.RadioMenuItem photo_button_menuitem;
+ [GtkChild]
+ private Gtk.RadioMenuItem photo_button_hb_menuitem;
+ [GtkChild]
+ private Gtk.RadioMenuItem photo_menuitem;
+
+ [GtkChild]
+ private Gtk.Dialog authorize_dialog;
+ [GtkChild]
+ private Gtk.Label authorize_label;
+ [GtkChild]
+ private Gtk.Entry username_entry;
+ [GtkChild]
+ private Gtk.Entry password_entry;
+
+ [GtkChild]
+ private Gtk.Dialog preferences_dialog;
+ [GtkChild]
+ private Gtk.ComboBox device_combo;
+ [GtkChild]
+ private Gtk.ComboBox text_dpi_combo;
+ [GtkChild]
+ private Gtk.ComboBox photo_dpi_combo;
+ [GtkChild]
+ private Gtk.ComboBox page_side_combo;
+ [GtkChild]
+ private Gtk.ComboBox paper_size_combo;
+ [GtkChild]
+ private Gtk.Scale brightness_scale;
+ [GtkChild]
+ private Gtk.Scale contrast_scale;
+ [GtkChild]
+ private Gtk.Scale quality_scale;
+ [GtkChild]
+ private Gtk.ListStore device_model;
+ [GtkChild]
+ private Gtk.ListStore text_dpi_model;
+ [GtkChild]
+ private Gtk.ListStore photo_dpi_model;
+ [GtkChild]
+ private Gtk.ListStore page_side_model;
+ [GtkChild]
+ private Gtk.ListStore paper_size_model;
+ [GtkChild]
+ private Gtk.Adjustment brightness_adjustment;
+ [GtkChild]
+ private Gtk.Adjustment contrast_adjustment;
+ [GtkChild]
+ private Gtk.Adjustment quality_adjustment;
+ private bool setting_devices;
+ private bool user_selected_device;
+
+ private Gtk.FileChooserDialog? save_dialog;
+ private ProgressBarDialog progress_dialog;
+
+ private bool have_error;
+ private string error_title;
+ private string error_text;
+ private bool error_change_scanner_hint;
+
+ public Book book { get; private set; }
+ private string? book_uri = null;
+
+ public Page selected_page
+ {
+ get
+ {
+ return book_view.selected_page;
+ }
+ set
+ {
+ book_view.selected_page = value;
+ }
+ }
+
+ private AutosaveManager autosave_manager;
+
+ private BookView book_view;
+ private bool updating_page_menu;
+ private int default_page_width;
+ private int default_page_height;
+ private int default_page_dpi;
+ private ScanDirection default_page_scan_direction;
+
+ private string document_hint = "photo";
+
+ public string default_file_name { get; set; default = _("Scanned Document.pdf"); }
+ private bool scanning_ = false;
+ public bool scanning
+ {
+ get { return scanning_; }
+ set
+ {
+ scanning_ = value;
+ page_delete_menuitem.sensitive = !value;
+ stop_scan_menuitem.sensitive = value;
+ stop_toolbutton.sensitive = value;
+ scan_button.visible = !value;
+ stop_button.visible = value;
+ }
+ }
+
+ private int window_width;
+ private int window_height;
+ private bool window_is_maximized;
+
+ private uint save_state_timeout;
+
+ public int brightness
+ {
+ get { return (int) brightness_adjustment.value; }
+ set { brightness_adjustment.value = value; }
+ }
+
+ public int contrast
+ {
+ get { return (int) contrast_adjustment.value; }
+ set { contrast_adjustment.value = value; }
+ }
+
+ public int quality
+ {
+ get { return (int) quality_adjustment.value; }
+ set { quality_adjustment.value = value; }
+ }
+
+ public string? selected_device
+ {
+ owned get
+ {
+ Gtk.TreeIter iter;
+
+ if (device_combo.get_active_iter (out iter))
+ {
+ string device;
+ device_model.get (iter, 0, out device, -1);
+ return device;
+ }
+
+ return null;
+ }
+
+ set
+ {
+ Gtk.TreeIter iter;
+ if (!find_scan_device (value, out iter))
+ return;
+
+ device_combo.set_active_iter (iter);
+ user_selected_device = true;
+ }
+ }
+
+ public signal void start_scan (string? device, ScanOptions options);
+ public signal void stop_scan ();
+ public signal void email (string profile, int quality);
+
+ public UserInterface ()
+ {
+ settings = new Settings ("org.gnome.SimpleScan");
+
+ book = new Book ();
+ book.page_added.connect (page_added_cb);
+ book.reordered.connect (reordered_cb);
+ book.page_removed.connect (page_removed_cb);
+
+ load ();
+
+ autosave_manager = new AutosaveManager ();
+ autosave_manager.book = book;
+ autosave_manager.load ();
+
+ if (book.n_pages == 0)
+ {
+ add_default_page ();
+ book.needs_saving = false;
+ }
+ else
+ book_view.selected_page = book.get_page (0);
+ book.needs_saving_changed.connect (needs_saving_cb);
+ }
+
+ ~UserInterface ()
+ {
+ book.page_added.disconnect (page_added_cb);
+ book.reordered.disconnect (reordered_cb);
+ book.page_removed.disconnect (page_removed_cb);
+ }
+
+ private bool find_scan_device (string device, out Gtk.TreeIter iter)
+ {
+ bool have_iter = false;
+
+ if (device_model.get_iter_first (out iter))
+ {
+ do
+ {
+ string d;
+ device_model.get (iter, 0, out d, -1);
+ if (d == device)
+ have_iter = true;
+ } while (!have_iter && device_model.iter_next (ref iter));
+ }
+
+ return have_iter;
+ }
+
+ private void show_error_dialog (string error_title, string error_text)
+ {
+ var dialog = new Gtk.MessageDialog (this,
+ Gtk.DialogFlags.MODAL,
+ Gtk.MessageType.WARNING,
+ Gtk.ButtonsType.NONE,
+ "%s", error_title);
+ dialog.add_button (_("_Close"), 0);
+ dialog.format_secondary_text ("%s", error_text);
+ dialog.destroy ();
+ }
+
+ public void authorize (string resource, out string username, out string password)
+ {
+ /* Label in authorization dialog. '%s' is replaced with the name of the resource requesting authorization */
+ var description = _("Username and password required to access '%s'").printf (resource);
+
+ username_entry.text = "";
+ password_entry.text = "";
+ authorize_label.set_text (description);
+
+ authorize_dialog.visible = true;
+ authorize_dialog.run ();
+ authorize_dialog.visible = false;
+
+ username = username_entry.text;
+ password = password_entry.text;
+ }
+
+ [GtkCallback]
+ private void device_combo_changed_cb (Gtk.Widget widget)
+ {
+ if (setting_devices)
+ return;
+ user_selected_device = true;
+ if (selected_device != null)
+ settings.set_string ("selected-device", selected_device);
+ }
+
+ private void update_info_bar ()
+ {
+ Gtk.MessageType type;
+ string title, text, image_id;
+ bool show_close_button = false;
+ bool show_change_scanner_button = false;
+
+ if (have_error)
+ {
+ type = Gtk.MessageType.ERROR;
+ image_id = "dialog-error";
+ title = error_title;
+ text = error_text;
+ show_close_button = true;
+ show_change_scanner_button = error_change_scanner_hint;
+ }
+ else if (device_model.iter_n_children (null) == 0)
+ {
+ type = Gtk.MessageType.WARNING;
+ image_id = "dialog-warning";
+ /* Warning displayed when no scanners are detected */
+ title = _("No scanners detected");
+ /* Hint to user on why there are no scanners detected */
+ text = _("Please check your scanner is connected and powered on");
+ }
+ else
+ {
+ info_bar.visible = false;
+ return;
+ }
+
+ info_bar.message_type = type;
+ info_bar_image.set_from_icon_name (image_id, Gtk.IconSize.DIALOG);
+ var message = "<big><b>%s</b></big>\n\n%s".printf (title, text);
+ info_bar_label.set_markup (message);
+ info_bar_close_button.visible = show_close_button;
+ info_bar_change_scanner_button.visible = show_change_scanner_button;
+ info_bar.visible = true;
+ }
+
+ public void set_scan_devices (List<ScanDevice> devices)
+ {
+ bool have_selection = false;
+ int index;
+ Gtk.TreeIter iter;
+
+ setting_devices = true;
+
+ /* If the user hasn't chosen a scanner choose the best available one */
+ if (user_selected_device)
+ have_selection = device_combo.active >= 0;
+
+ /* Add new devices */
+ index = 0;
+ foreach (var device in devices)
+ {
+ int n_delete = -1;
+
+ /* Find if already exists */
+ if (device_model.iter_nth_child (out iter, null, index))
+ {
+ int i = 0;
+ do
+ {
+ string name;
+ bool matched;
+
+ device_model.get (iter, 0, out name, -1);
+ matched = name == device.name;
+
+ if (matched)
+ {
+ n_delete = i;
+ break;
+ }
+ i++;
+ } while (device_model.iter_next (ref iter));
+ }
+
+ /* If exists, remove elements up to this one */
+ if (n_delete >= 0)
+ {
+ int i;
+
+ /* Update label */
+ device_model.set (iter, 1, device.label, -1);
+
+ for (i = 0; i < n_delete; i++)
+ {
+ device_model.iter_nth_child (out iter, null, index);
+ device_model.remove (iter);
+ }
+ }
+ else
+ {
+ device_model.insert (out iter, index);
+ device_model.set (iter, 0, device.name, 1, device.label, -1);
+ }
+ index++;
+ }
+
+ /* Remove any remaining devices */
+ while (device_model.iter_nth_child (out iter, null, index))
+ device_model.remove (iter);
+
+ /* Select the first available device */
+ if (!have_selection && devices != null)
+ device_combo.set_active (0);
+
+ setting_devices = false;
+
+ update_info_bar ();
+ }
+
+ private void add_default_page ()
+ {
+ var page = new Page (default_page_width,
+ default_page_height,
+ default_page_dpi,
+ default_page_scan_direction);
+ book.append_page (page);
+ book_view.selected_page = page;
+ }
+
+ private void on_file_type_changed (Gtk.TreeSelection selection)
+ {
+ var extension = get_selected_extension (selection);
+ var path = save_dialog.get_filename ();
+ var filename = Path.get_basename (path);
+
+ /* Replace extension */
+ var extension_index = filename.last_index_of_char ('.');
+ if (extension_index >= 0)
+ filename = filename.slice (0, extension_index);
+ filename = filename + extension;
+ save_dialog.set_current_name (filename);
+ }
+
+ private string get_selected_extension (Gtk.TreeSelection selection)
+ {
+ Gtk.TreeModel model;
+ Gtk.TreeIter iter;
+ string extension = "";
+
+ if (selection.get_selected (out model, out iter))
+ model.get (iter, 1, out extension, -1);
+ return extension;
+ }
+
+ private string choose_file_location ()
+ {
+ /* Get directory to save to */
+ string? directory = null;
+ directory = settings.get_string ("save-directory");
+
+ if (directory == null || directory == "")
+ directory = Environment.get_user_special_dir (UserDirectory.DOCUMENTS);
+
+ save_dialog = new Gtk.FileChooserDialog (/* Save dialog: Dialog title */
+ _("Save As..."),
+ this,
+ Gtk.FileChooserAction.SAVE,
+ _("_Cancel"), Gtk.ResponseType.CANCEL,
+ _("_Save"), Gtk.ResponseType.ACCEPT,
+ null);
+ save_dialog.do_overwrite_confirmation = true;
+ save_dialog.local_only = false;
+ save_dialog.set_current_folder (directory);
+ save_dialog.set_current_name (default_file_name);
+
+ /* Filter to only show images by default */
+ var filter = new Gtk.FileFilter ();
+ filter.set_filter_name (/* Save dialog: Filter name to show only image files */
+ _("Image Files"));
+ filter.add_pixbuf_formats ();
+ filter.add_mime_type ("application/pdf");
+ save_dialog.add_filter (filter);
+ filter = new Gtk.FileFilter ();
+ filter.set_filter_name (/* Save dialog: Filter name to show all files */
+ _("All Files"));
+ filter.add_pattern ("*");
+ save_dialog.add_filter (filter);
+
+ var expander = new Gtk.Expander.with_mnemonic (/* */
+ _("Select File _Type"));
+ expander.spacing = 5;
+ save_dialog.set_extra_widget (expander);
+
+ string default_extension = "";
+ var index = default_file_name.last_index_of_char ('.');
+ if (index >= 0)
+ default_extension = default_file_name.substring (index);
+
+ var file_type_store = new Gtk.ListStore (2, typeof (string), typeof (string));
+ Gtk.TreeIter iter;
+ file_type_store.append (out iter);
+ file_type_store.set (iter,
+ /* Save dialog: Label for saving in PDF format */
+ 0, _("PDF (multi-page document)"),
+ 1, ".pdf",
+ -1);
+ file_type_store.append (out iter);
+ file_type_store.set (iter,
+ /* Save dialog: Label for saving in JPEG format */
+ 0, _("JPEG (compressed)"),
+ 1, ".jpg",
+ -1);
+ file_type_store.append (out iter);
+ file_type_store.set (iter,
+ /* Save dialog: Label for saving in PNG format */
+ 0, _("PNG (lossless)"),
+ 1, ".png",
+ -1);
+
+ var file_type_view = new Gtk.TreeView.with_model (file_type_store);
+ file_type_view.headers_visible = false;
+ file_type_view.rules_hint = true;
+ var column = new Gtk.TreeViewColumn.with_attributes ("",
+ new Gtk.CellRendererText (),
+ "text", 0, null);
+ file_type_view.append_column (column);
+ expander.add (file_type_view);
+
+ if (file_type_store.get_iter_first (out iter))
+ {
+ do
+ {
+ string e;
+ file_type_store.get (iter, 1, out e, -1);
+ if (default_extension == e)
+ file_type_view.get_selection ().select_iter (iter);
+ } while (file_type_store.iter_next (ref iter));
+ }
+ file_type_view.get_selection ().changed.connect (on_file_type_changed);
+
+ expander.show_all ();
+
+ var response = save_dialog.run ();
+
+ string? uri = null;
+ if (response == Gtk.ResponseType.ACCEPT)
+ {
+ var selection = file_type_view.get_selection ();
+ var extension = get_selected_extension (selection);
+
+ var path = save_dialog.get_filename ();
+ var filename = Path.get_basename (path);
+
+ var extension_index = filename.last_index_of_char ('.');
+ if (extension_index < 0)
+ path += extension;
+
+ uri = File.new_for_path (path).get_uri ();
+ }
+
+ settings.set_string ("save-directory", save_dialog.get_current_folder ());
+
+ file_type_view.get_selection ().changed.disconnect (on_file_type_changed);
+ save_dialog.destroy ();
+ save_dialog = null;
+
+ return uri;
+ }
+
+ private bool save_document (bool force_choose_location)
+ {
+ string? uri;
+ if (book_uri != null && !force_choose_location)
+ uri = book_uri;
+ else
+ uri = choose_file_location ();
+ if (uri == null)
+ return false;
+
+ var file = File.new_for_uri (uri);
+
+ debug ("Saving to '%s'", uri);
+
+ var uri_lower = uri.down ();
+ string format = "jpeg";
+ if (uri_lower.has_suffix (".pdf"))
+ format = "pdf";
+ else if (uri_lower.has_suffix (".ps"))
+ format = "ps";
+ else if (uri_lower.has_suffix (".png"))
+ format = "png";
+ else if (uri_lower.has_suffix (".tif") || uri_lower.has_suffix (".tiff"))
+ format = "tiff";
+
+ show_progress_dialog ();
+ try
+ {
+ book.save (format, quality, file);
+ }
+ catch (Error e)
+ {
+ hide_progress_dialog ();
+ warning ("Error saving file: %s", e.message);
+ show_error (/* Title of error dialog when save failed */
+ _("Failed to save file"),
+ e.message,
+ false);
+ return false;
+ }
+
+ book_uri = uri;
+ book.needs_saving = false;
+ return true;
+ }
+
+ private bool prompt_to_save (string title, string discard_label)
+ {
+ if (!book.needs_saving)
+ return true;
+
+ var dialog = new Gtk.MessageDialog (this,
+ Gtk.DialogFlags.MODAL,
+ Gtk.MessageType.WARNING,
+ Gtk.ButtonsType.NONE,
+ "%s", title);
+ dialog.format_secondary_text ("%s",
+ /* Text in dialog warning when a document is about to be lost*/
+ _("If you don't save, changes will be permanently lost."));
+ dialog.add_button (discard_label, Gtk.ResponseType.NO);
+ dialog.add_button (_("_Cancel"), Gtk.ResponseType.CANCEL);
+ dialog.add_button (_("_Save"), Gtk.ResponseType.YES);
+
+ var response = dialog.run ();
+ dialog.destroy ();
+
+ switch (response)
+ {
+ case Gtk.ResponseType.YES:
+ if (save_document (false))
+ return true;
+ else
+ return false;
+ case Gtk.ResponseType.CANCEL:
+ return false;
+ case Gtk.ResponseType.NO:
+ default:
+ return true;
+ }
+ }
+
+ private void clear_document ()
+ {
+ book.clear ();
+ add_default_page ();
+ book_uri = null;
+ book.needs_saving = false;
+ save_as_menuitem.sensitive = false;
+ copy_to_clipboard_menuitem.sensitive = false;
+ }
+
+ private void new_document ()
+ {
+ if (!prompt_to_save (/* Text in dialog warning when a document is about to be lost */
+ _("Save current document?"),
+ /* Button in dialog to create new document and discard unsaved document */
+ _("Discard Changes")))
+ return;
+
+ if (scanning)
+ stop_scan ();
+ clear_document ();
+ }
+
+ [GtkCallback]
+ private void new_button_clicked_cb (Gtk.Widget widget)
+ {
+ new_document();
+ }
+
+ public void new_document_activate_cb ()
+ {
+ new_document();
+ }
+
+ private void set_document_hint (string document_hint, bool save = false)
+ {
+ this.document_hint = document_hint;
+
+ if (document_hint == "text")
+ {
+ text_button_menuitem.active = true;
+ text_button_hb_menuitem.active = true;
+ text_menuitem.active = true;
+ }
+ else if (document_hint == "photo")
+ {
+ photo_button_menuitem.active = true;
+ photo_button_hb_menuitem.active = true;
+ photo_menuitem.active = true;
+ }
+
+ if (save)
+ settings.set_string ("document-type", document_hint);
+ }
+
+ [GtkCallback]
+ private void text_menuitem_toggled_cb (Gtk.CheckMenuItem widget)
+ {
+ if (widget.active)
+ set_document_hint ("text", true);
+ }
+
+ [GtkCallback]
+ private void photo_menuitem_toggled_cb (Gtk.CheckMenuItem widget)
+ {
+ if (widget.active)
+ set_document_hint ("photo", true);
+ }
+
+ private void set_page_side (ScanType page_side)
+ {
+ Gtk.TreeIter iter;
+
+ if (page_side_model.get_iter_first (out iter))
+ {
+ do
+ {
+ int s;
+ page_side_model.get (iter, 0, out s, -1);
+ if (s == page_side)
+ {
+ page_side_combo.set_active_iter (iter);
+ return;
+ }
+ } while (page_side_model.iter_next (ref iter));
+ }
+ }
+
+ private void set_paper_size (int width, int height)
+ {
+ Gtk.TreeIter iter;
+ bool have_iter;
+
+ for (have_iter = paper_size_model.get_iter_first (out iter);
+ have_iter;
+ have_iter = paper_size_model.iter_next (ref iter))
+ {
+ int w, h;
+ paper_size_model.get (iter, 0, out w, 1, out h, -1);
+ if (w == width && h == height)
+ break;
+ }
+
+ if (!have_iter)
+ have_iter = paper_size_model.get_iter_first (out iter);
+ if (have_iter)
+ paper_size_combo.set_active_iter (iter);
+ }
+
+ private int get_text_dpi ()
+ {
+ Gtk.TreeIter iter;
+ int dpi = DEFAULT_TEXT_DPI;
+
+ if (text_dpi_combo.get_active_iter (out iter))
+ text_dpi_model.get (iter, 0, out dpi, -1);
+
+ return dpi;
+ }
+
+ private int get_photo_dpi ()
+ {
+ Gtk.TreeIter iter;
+ int dpi = DEFAULT_PHOTO_DPI;
+
+ if (photo_dpi_combo.get_active_iter (out iter))
+ photo_dpi_model.get (iter, 0, out dpi, -1);
+
+ return dpi;
+ }
+
+ private ScanType get_page_side ()
+ {
+ Gtk.TreeIter iter;
+ int page_side = ScanType.ADF_BOTH;
+
+ if (page_side_combo.get_active_iter (out iter))
+ page_side_model.get (iter, 0, out page_side, -1);
+
+ return (ScanType) page_side;
+ }
+
+ private bool get_paper_size (out int width, out int height)
+ {
+ Gtk.TreeIter iter;
+
+ width = height = 0;
+ if (paper_size_combo.get_active_iter (out iter))
+ {
+ paper_size_model.get (iter, 0, ref width, 1, ref height, -1);
+ return true;
+ }
+
+ return false;
+ }
+
+ private ScanOptions make_scan_options ()
+ {
+ var options = new ScanOptions ();
+ if (document_hint == "text")
+ {
+ options.scan_mode = ScanMode.GRAY;
+ options.dpi = get_text_dpi ();
+ options.depth = 2;
+ }
+ else
+ {
+ options.scan_mode = ScanMode.COLOR;
+ options.dpi = get_photo_dpi ();
+ options.depth = 8;
+ }
+ get_paper_size (out options.paper_width, out options.paper_height);
+ options.brightness = brightness;
+ options.contrast = contrast;
+
+ return options;
+ }
+
+ [GtkCallback]
+ private void scan_button_clicked_cb (Gtk.Widget widget)
+ {
+ var options = make_scan_options ();
+ options.type = ScanType.SINGLE;
+ start_scan (selected_device, options);
+ }
+
+ [GtkCallback]
+ private void stop_scan_button_clicked_cb (Gtk.Widget widget)
+ {
+ stop_scan ();
+ }
+
+ [GtkCallback]
+ private void continuous_scan_button_clicked_cb (Gtk.Widget widget)
+ {
+ if (scanning)
+ stop_scan ();
+ else
+ {
+ var options = make_scan_options ();
+ options.type = get_page_side ();
+ start_scan (selected_device, options);
+ }
+ }
+
+ [GtkCallback]
+ private void preferences_button_clicked_cb (Gtk.Widget widget)
+ {
+ preferences_dialog.present ();
+ }
+
+ public void preferences_activate_cb ()
+ {
+ preferences_dialog.present ();
+ }
+
+ [GtkCallback]
+ private bool preferences_dialog_delete_event_cb (Gtk.Widget widget, Gdk.EventAny event)
+ {
+ return true;
+ }
+
+ [GtkCallback]
+ private void preferences_dialog_response_cb (Gtk.Widget widget, int response_id)
+ {
+ preferences_dialog.visible = false;
+ }
+
+ private void update_page_menu ()
+ {
+ var page = book_view.selected_page;
+ if (page == null)
+ {
+ page_move_left_menuitem.sensitive = false;
+ page_move_right_menuitem.sensitive = false;
+ }
+ else
+ {
+ var index = book.get_page_index (page);
+ page_move_left_menuitem.sensitive = index > 0;
+ page_move_right_menuitem.sensitive = index < book.n_pages - 1;
+ }
+ }
+
+ private void page_selected_cb (BookView view, Page? page)
+ {
+ if (page == null)
+ return;
+
+ updating_page_menu = true;
+
+ update_page_menu ();
+
+ var menuitem = no_crop_menuitem;
+ if (page.has_crop)
+ {
+ var crop_name = page.crop_name;
+ if (crop_name != null)
+ {
+ if (crop_name == "A4")
+ menuitem = a4_menuitem;
+ else if (crop_name == "A5")
+ menuitem = a5_menuitem;
+ else if (crop_name == "A6")
+ menuitem = a6_menuitem;
+ else if (crop_name == "letter")
+ menuitem = letter_menuitem;
+ else if (crop_name == "legal")
+ menuitem = legal_menuitem;
+ else if (crop_name == "4x6")
+ menuitem = four_by_six_menuitem;
+ }
+ else
+ menuitem = custom_crop_menuitem;
+ }
+
+ menuitem.active = true;
+ crop_button.active = page.has_crop;
+ crop_toolbutton.active = page.has_crop;
+
+ updating_page_menu = false;
+ }
+
+ private void show_page_cb (BookView view, Page page)
+ {
+ var path = get_temporary_filename ("scanned-page", "tiff");
+ if (path == null)
+ return;
+ var file = File.new_for_path (path);
+
+ try
+ {
+ page.save ("tiff", quality, file);
+ }
+ catch (Error e)
+ {
+ show_error_dialog (/* Error message display when unable to save image for preview */
+ _("Unable to save image for preview"),
+ e.message);
+ return;
+ }
+
+ try
+ {
+ Gtk.show_uri (screen, file.get_uri (), Gtk.get_current_event_time ());
+ }
+ catch (Error e)
+ {
+ show_error_dialog (/* Error message display when unable to preview image */
+ _("Unable to open image preview application"),
+ e.message);
+ }
+ }
+
+ private void show_page_menu_cb (BookView view)
+ {
+ page_menu.popup (null, null, null, 3, Gtk.get_current_event_time ());
+ }
+
+ [GtkCallback]
+ private void rotate_left_button_clicked_cb (Gtk.Widget widget)
+ {
+ if (updating_page_menu)
+ return;
+ var page = book_view.selected_page;
+ if (page != null)
+ page.rotate_left ();
+ }
+
+ [GtkCallback]
+ private void rotate_right_button_clicked_cb (Gtk.Widget widget)
+ {
+ if (updating_page_menu)
+ return;
+ var page = book_view.selected_page;
+ if (page != null)
+ page.rotate_right ();
+ }
+
+ private void set_crop (string? crop_name)
+ {
+ crop_rotate_menuitem.sensitive = crop_name != null;
+
+ if (updating_page_menu)
+ return;
+
+ var page = book_view.selected_page;
+ if (page == null)
+ {
+ warning ("Trying to set crop but no selected page");
+ return;
+ }
+
+ if (crop_name == null)
+ page.set_no_crop ();
+ else if (crop_name == "custom")
+ {
+ var width = page.width;
+ var height = page.height;
+ var crop_width = (int) (width * 0.8 + 0.5);
+ var crop_height = (int) (height * 0.8 + 0.5);
+ page.set_custom_crop (crop_width, crop_height);
+ page.move_crop ((width - crop_width) / 2, (height - crop_height) / 2);
+ }
+ else
+ page.set_named_crop (crop_name);
+ }
+
+ [GtkCallback]
+ private void no_crop_menuitem_toggled_cb (Gtk.CheckMenuItem widget)
+ {
+ if (widget.active)
+ set_crop (null);
+ }
+
+ [GtkCallback]
+ private void custom_crop_menuitem_toggled_cb (Gtk.CheckMenuItem widget)
+ {
+ if (widget.active)
+ set_crop ("custom");
+ }
+
+ [GtkCallback]
+ private void crop_button_toggled_cb (Gtk.ToggleButton widget)
+ {
+ if (updating_page_menu)
+ return;
+
+ if (widget.active)
+ custom_crop_menuitem.active = true;
+ else
+ no_crop_menuitem.active = true;
+ }
+
+ [GtkCallback]
+ private void crop_toolbutton_toggled_cb (Gtk.ToggleToolButton widget)
+ {
+ if (updating_page_menu)
+ return;
+
+ if (widget.active)
+ custom_crop_menuitem.active = true;
+ else
+ no_crop_menuitem.active = true;
+ }
+
+ [GtkCallback]
+ private void four_by_six_menuitem_toggled_cb (Gtk.CheckMenuItem widget)
+ {
+ if (widget.active)
+ set_crop ("4x6");
+ }
+
+ [GtkCallback]
+ private void legal_menuitem_toggled_cb (Gtk.CheckMenuItem widget)
+ {
+ if (widget.active)
+ set_crop ("legal");
+ }
+
+ [GtkCallback]
+ private void letter_menuitem_toggled_cb (Gtk.CheckMenuItem widget)
+ {
+ if (widget.active)
+ set_crop ("letter");
+ }
+
+ [GtkCallback]
+ private void a6_menuitem_toggled_cb (Gtk.CheckMenuItem widget)
+ {
+ if (widget.active)
+ set_crop ("A6");
+ }
+
+ [GtkCallback]
+ private void a5_menuitem_toggled_cb (Gtk.CheckMenuItem widget)
+ {
+ if (widget.active)
+ set_crop ("A5");
+ }
+
+ [GtkCallback]
+ private void a4_menuitem_toggled_cb (Gtk.CheckMenuItem widget)
+ {
+ if (widget.active)
+ set_crop ("A4");
+ }
+
+ [GtkCallback]
+ private void crop_rotate_menuitem_activate_cb (Gtk.Widget widget)
+ {
+ var page = book_view.selected_page;
+ if (page == null)
+ return;
+ page.rotate_crop ();
+ }
+
+ [GtkCallback]
+ private void page_move_left_menuitem_activate_cb (Gtk.Widget widget)
+ {
+ var page = book_view.selected_page;
+ var index = book.get_page_index (page);
+ if (index > 0)
+ book.move_page (page, index - 1);
+ }
+
+ [GtkCallback]
+ private void page_move_right_menuitem_activate_cb (Gtk.Widget widget)
+ {
+ var page = book_view.selected_page;
+ var index = book.get_page_index (page);
+ if (index < book.n_pages - 1)
+ book.move_page (page, book.get_page_index (page) + 1);
+ }
+
+ [GtkCallback]
+ private void page_delete_menuitem_activate_cb (Gtk.Widget widget)
+ {
+ book_view.book.delete_page (book_view.selected_page);
+ }
+
+ private void reorder_document ()
+ {
+ var dialog = new Gtk.Window ();
+ dialog.type_hint = Gdk.WindowTypeHint.DIALOG;
+ dialog.modal = true;
+ dialog.border_width = 12;
+ /* Title of dialog to reorder pages */
+ dialog.title = _("Reorder Pages");
+ dialog.set_transient_for (this);
+ dialog.key_press_event.connect ((e) =>
+ {
+ if (e.state == 0 && e.keyval == Gdk.Key.Escape)
+ {
+ dialog.destroy ();
+ return true;
+ }
+
+ return false;
+ });
+ dialog.visible = true;
+
+ var g = new Gtk.Grid ();
+ g.row_homogeneous = true;
+ g.row_spacing = 6;
+ g.column_homogeneous = true;
+ g.column_spacing = 6;
+ g.visible = true;
+ dialog.add (g);
+
+ /* Label on button for combining sides in reordering dialog */
+ var b = make_reorder_button (_("Combine sides"), "F1F2F3B1B2B3-F1B1F2B2F3B3");
+ b.clicked.connect (() =>
+ {
+ book.combine_sides ();
+ dialog.destroy ();
+ });
+ b.visible = true;
+ g.attach (b, 0, 0, 1, 1);
+
+ /* Label on button for combining sides in reverse order in reordering dialog */
+ b = make_reorder_button (_("Combine sides (reverse)"), "F1F2F3B3B2B1-F1B1F2B2F3B3");
+ b.clicked.connect (() =>
+ {
+ book.combine_sides_reverse ();
+ dialog.destroy ();
+ });
+ b.visible = true;
+ g.attach (b, 1, 0, 1, 1);
+
+ /* Label on button for reversing in reordering dialog */
+ b = make_reorder_button (_("Reverse"), "C1C2C3C4C5C6-C6C5C4C3C2C1");
+ b.clicked.connect (() =>
+ {
+ book.reverse ();
+ dialog.destroy ();
+ });
+ b.visible = true;
+ g.attach (b, 0, 2, 1, 1);
+
+ /* Label on button for cancelling page reordering dialog */
+ b = make_reorder_button (_("Keep unchanged"), "C1C2C3C4C5C6-C1C2C3C4C5C6");
+ b.clicked.connect (() =>
+ {
+ dialog.destroy ();
+ });
+ b.visible = true;
+ g.attach (b, 1, 2, 1, 1);
+
+ dialog.present ();
+ }
+
+ public void reorder_document_activate_cb ()
+ {
+ reorder_document ();
+ }
+
+ [GtkCallback]
+ private void reorder_menuitem_activate_cb (Gtk.Widget widget)
+ {
+ reorder_document ();
+ }
+
+ private Gtk.Button make_reorder_button (string text, string items)
+ {
+ var b = new Gtk.Button ();
+
+ var vbox = new Gtk.Box (Gtk.Orientation.VERTICAL, 6);
+ vbox.visible = true;
+ b.add (vbox);
+
+ var label = new Gtk.Label (text);
+ label.visible = true;
+ vbox.pack_start (label, true, true, 0);
+
+ var rb = make_reorder_box (items);
+ rb.visible = true;
+ vbox.pack_start (rb, true, true, 0);
+
+ return b;
+ }
+
+ private Gtk.Box make_reorder_box (string items)
+ {
+ var box = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6);
+ box.visible = true;
+
+ Gtk.Box? page_box = null;
+ for (var i = 0; items[i] != '\0'; i++)
+ {
+ if (items[i] == '-')
+ {
+ var a = new Gtk.Arrow (Gtk.ArrowType.RIGHT, Gtk.ShadowType.NONE);
+ a.visible = true;
+ box.pack_start (a, false, false, 0);
+ page_box = null;
+ continue;
+ }
+
+ /* First character describes side */
+ var side = items[i];
+ i++;
+ if (items[i] == '\0')
+ break;
+
+ if (page_box == null)
+ {
+ page_box = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 3);
+ page_box.visible = true;
+ box.pack_start (page_box, false, false, 0);
+ }
+
+ /* Get colours for each page (from Tango palette) */
+ var r = 1.0;
+ var g = 1.0;
+ var b = 1.0;
+ switch (side)
+ {
+ case 'F':
+ /* Plum */
+ r = 0x75 / 255.0;
+ g = 0x50 / 255.0;
+ b = 0x7B / 255.0;
+ break;
+ case 'B':
+ /* Orange */
+ r = 0xF5 / 255.0;
+ g = 0x79 / 255.0;
+ b = 0.0;
+ break;
+ case 'C':
+ /* Butter to Scarlet Red */
+ var p = (items[i] - '1') / 5.0;
+ r = (0xED / 255.0) * (1 - p) + 0xCC * p;
+ g = (0xD4 / 255.0) * (1 - p);
+ b = 0;
+ break;
+ }
+
+ /* Mix with white to look more paper like */
+ r = r + (1.0 - r) * 0.7;
+ g = g + (1.0 - g) * 0.7;
+ b = b + (1.0 - b) * 0.7;
+
+ var icon = new PageIcon ("%c".printf (items[i]), r, g, b);
+ icon.visible = true;
+ page_box.pack_start (icon, false, false, 0);
+ }
+
+ return box;
+ }
+
+ [GtkCallback]
+ private void save_file_button_clicked_cb (Gtk.Widget widget)
+ {
+ save_document (false);
+ }
+
+ public void save_document_activate_cb ()
+ {
+ save_document (false);
+ }
+
+ [GtkCallback]
+ private void copy_to_clipboard_button_clicked_cb (Gtk.Widget widget)
+ {
+ var page = book_view.selected_page;
+ if (page != null)
+ page.copy_to_clipboard (this);
+ }
+
+ [GtkCallback]
+ private void save_as_file_button_clicked_cb (Gtk.Widget widget)
+ {
+ save_document (true);
+ }
+
+ public void save_as_document_activate_cb ()
+ {
+ save_document (true);
+ }
+
+ private void draw_page (Gtk.PrintOperation operation,
+ Gtk.PrintContext print_context,
+ int page_number)
+ {
+ var context = print_context.get_cairo_context ();
+ var page = book.get_page (page_number);
+
+ /* Rotate to same aspect */
+ bool is_landscape = false;
+ if (print_context.get_width () > print_context.get_height ())
+ is_landscape = true;
+ if (page.is_landscape != is_landscape)
+ {
+ context.translate (print_context.get_width (), 0);
+ context.rotate (Math.PI_2);
+ }
+
+ context.scale (print_context.get_dpi_x () / page.dpi,
+ print_context.get_dpi_y () / page.dpi);
+
+ var image = page.get_image (true);
+ Gdk.cairo_set_source_pixbuf (context, image, 0, 0);
+ context.paint ();
+ }
+
+ [GtkCallback]
+ private void email_button_clicked_cb (Gtk.Widget widget)
+ {
+ email (document_hint, quality);
+ }
+
+ public void email_document_activate_cb ()
+ {
+ email (document_hint, quality);
+ }
+
+ private void print_document ()
+ {
+ var print = new Gtk.PrintOperation ();
+ print.n_pages = (int) book.n_pages;
+ print.draw_page.connect (draw_page);
+
+ try
+ {
+ print.run (Gtk.PrintOperationAction.PRINT_DIALOG, this);
+ }
+ catch (Error e)
+ {
+ warning ("Error printing: %s", e.message);
+ }
+
+ print.draw_page.disconnect (draw_page);
+ }
+
+ [GtkCallback]
+ private void print_button_clicked_cb (Gtk.Widget widget)
+ {
+ print_document ();
+ }
+
+ public void print_document_activate_cb ()
+ {
+ print_document ();
+ }
+
+ private void launch_help ()
+ {
+ try
+ {
+ Gtk.show_uri (screen, "help:simple-scan", Gtk.get_current_event_time ());
+ }
+ catch (Error e)
+ {
+ show_error_dialog (/* Error message displayed when unable to launch help browser */
+ _("Unable to open help file"),
+ e.message);
+ }
+ }
+
+ [GtkCallback]
+ private void help_contents_menuitem_activate_cb (Gtk.Widget widget)
+ {
+ launch_help ();
+ }
+
+ public void help_contents_activate_cb ()
+ {
+ launch_help ();
+ }
+
+ private void show_about ()
+ {
+ string[] authors = { "Robert Ancell <robert.ancell@canonical.com>" };
+
+ /* The license this software is under (GPL3+) */
+ string license = _("This program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see <http://www.gnu.org/licenses/>.");
+
+ /* Title of about dialog */
+ string title = _("About Simple Scan");
+
+ /* Description of program */
+ string description = _("Simple document scanning tool");
+
+ Gtk.show_about_dialog (this,
+ "title", title,
+ "program-name", "Simple Scan",
+ "version", VERSION,
+ "comments", description,
+ "logo-icon-name", "scanner",
+ "authors", authors,
+ "translator-credits", _("translator-credits"),
+ "website", "https://launchpad.net/simple-scan",
+ "copyright", "Copyright © 2009-2011 Canonical Ltd.",
+ "license", license,
+ "wrap-license", true,
+ null);
+ }
+
+ [GtkCallback]
+ private void about_menuitem_activate_cb (Gtk.Widget widget)
+ {
+ show_about ();
+ }
+
+ public void about_activate_cb ()
+ {
+ show_about ();
+ }
+
+ private bool on_quit ()
+ {
+ if (!prompt_to_save (/* Text in dialog warning when a document is about to be lost */
+ _("Save document before quitting?"),
+ /* Button in dialog to quit and discard unsaved document */
+ _("Quit without Saving")))
+ return false;
+
+ destroy ();
+
+ if (save_state_timeout != 0)
+ save_state (true);
+
+ autosave_manager.cleanup ();
+
+ return true;
+ }
+
+ [GtkCallback]
+ private void quit_menuitem_activate_cb (Gtk.Widget widget)
+ {
+ on_quit ();
+ }
+
+ public void quit_activate_cb ()
+ {
+ on_quit ();
+ }
+
+ [GtkCallback]
+ private bool simple_scan_window_configure_event_cb (Gtk.Widget widget, Gdk.EventConfigure event)
+ {
+ if (!window_is_maximized)
+ {
+ window_width = event.width;
+ window_height = event.height;
+ save_state ();
+ }
+
+ return false;
+ }
+
+ private void info_bar_response_cb (Gtk.InfoBar widget, int response_id)
+ {
+ if (response_id == 1)
+ {
+ device_combo.grab_focus ();
+ preferences_dialog.present ();
+ }
+ else
+ {
+ have_error = false;
+ error_title = null;
+ error_text = null;
+ update_info_bar ();
+ }
+ }
+
+ [GtkCallback]
+ private bool simple_scan_window_window_state_event_cb (Gtk.Widget widget, Gdk.EventWindowState event)
+ {
+ if ((event.changed_mask & Gdk.WindowState.MAXIMIZED) != 0)
+ {
+ window_is_maximized = (event.new_window_state & Gdk.WindowState.MAXIMIZED) != 0;
+ save_state ();
+ }
+ return false;
+ }
+
+ [GtkCallback]
+ private bool window_delete_event_cb (Gtk.Widget widget, Gdk.EventAny event)
+ {
+ return !on_quit ();
+ }
+
+ private void page_size_changed_cb (Page page)
+ {
+ default_page_width = page.width;
+ default_page_height = page.height;
+ default_page_dpi = page.dpi;
+ save_state ();
+ }
+
+ private void page_scan_direction_changed_cb (Page page)
+ {
+ default_page_scan_direction = page.scan_direction;
+ save_state ();
+ }
+
+ private void page_added_cb (Book book, Page page)
+ {
+ page_size_changed_cb (page);
+ default_page_scan_direction = page.scan_direction;
+ page.size_changed.connect (page_size_changed_cb);
+ page.scan_direction_changed.connect (page_scan_direction_changed_cb);
+
+ update_page_menu ();
+ }
+
+ private void reordered_cb (Book book)
+ {
+ update_page_menu ();
+ }
+
+ private void page_removed_cb (Book book, Page page)
+ {
+ page.size_changed.disconnect (page_size_changed_cb);
+ page.scan_direction_changed.disconnect (page_scan_direction_changed_cb);
+
+ /* If this is the last page add a new blank one */
+ if (book.n_pages == 1)
+ add_default_page ();
+
+ update_page_menu ();
+ }
+
+ private void set_dpi_combo (Gtk.ComboBox combo, int default_dpi, int current_dpi)
+ {
+ var renderer = new Gtk.CellRendererText ();
+ combo.pack_start (renderer, true);
+ combo.add_attribute (renderer, "text", 1);
+
+ var model = combo.model as Gtk.ListStore;
+ int[] scan_resolutions = {75, 150, 300, 600, 1200, 2400};
+ foreach (var dpi in scan_resolutions)
+ {
+ string label;
+ if (dpi == default_dpi)
+ /* Preferences dialog: Label for default resolution in resolution list */
+ label = _("%d dpi (default)").printf (dpi);
+ else if (dpi == 75)
+ /* Preferences dialog: Label for minimum resolution in resolution list */
+ label = _("%d dpi (draft)").printf (dpi);
+ else if (dpi == 1200)
+ /* Preferences dialog: Label for maximum resolution in resolution list */
+ label = _("%d dpi (high resolution)").printf (dpi);
+ else
+ /* Preferences dialog: Label for resolution value in resolution list (dpi = dots per inch) */
+ label = _("%d dpi").printf (dpi);
+
+ Gtk.TreeIter iter;
+ model.append (out iter);
+ model.set (iter, 0, dpi, 1, label, -1);
+
+ if (dpi == current_dpi)
+ combo.set_active_iter (iter);
+ }
+ }
+
+ private void needs_saving_cb (Book book)
+ {
+ save_menuitem.sensitive = book.needs_saving;
+ save_button.sensitive = book.needs_saving;
+ save_toolbutton.sensitive = book.needs_saving;
+ if (book.needs_saving)
+ save_as_menuitem.sensitive = true;
+ copy_to_clipboard_menuitem.sensitive = true;
+ }
+
+ private bool shell_shows_menubar
+ {
+ get
+ {
+ bool shell_shows_menubar;
+ Gtk.Settings.get_default ().get ("gtk-shell-shows-menubar", out shell_shows_menubar);
+ return shell_shows_menubar;
+ }
+ }
+
+ private void load ()
+ {
+ Gtk.IconTheme.get_default ().append_search_path (ICON_DIR);
+
+ Gtk.Window.set_default_icon_name ("scanner");
+
+ var app = Application.get_default () as Gtk.Application;
+
+ if (!shell_shows_menubar)
+ {
+ app.add_action_entries (action_entries, this);
+
+ var appmenu = new Menu ();
+ var section = new Menu ();
+ appmenu.append_section (null, section);
+ section.append (_("New Document"), "app.new_document");
+
+ section = new Menu ();
+ appmenu.append_section (null, section);
+ var menu = new Menu ();
+ section.append_submenu (_("Document"), menu);
+ menu.append (_("Reorder Pages"), "app.reorder");
+ menu.append (_("Save"), "app.save");
+ menu.append (_("Save As..."), "app.save_as");
+ menu.append (_("Email..."), "app.email");
+ menu.append (_("Print..."), "app.print");
+
+ section = new Menu ();
+ appmenu.append_section (null, section);
+ section.append (_("Preferences"), "app.preferences");
+
+ section = new Menu ();
+ appmenu.append_section (null, section);
+ section.append (_("Help"), "app.help");
+ section.append (_("About"), "app.about");
+ section.append (_("Quit"), "app.quit");
+
+ app.app_menu = appmenu;
+
+ app.add_accelerator ("<Ctrl>N", "app.new_document", null);
+ app.add_accelerator ("<Ctrl>S", "app.save", null);
+ app.add_accelerator ("<Shift><Ctrl>S", "app.save_as", null);
+ app.add_accelerator ("<Ctrl>E", "app.email", null);
+ app.add_accelerator ("<Ctrl>P", "app.print", null);
+ app.add_accelerator ("F1", "app.help", null);
+ app.add_accelerator ("<Ctrl>Q", "app.quit", null);
+ }
+ else
+ {
+ set_titlebar (null);
+ menubar.visible = true;
+ toolbar.visible = true;
+ }
+ app.add_window (this);
+
+ /* Add InfoBar (not supported in Glade) */
+ info_bar = new Gtk.InfoBar ();
+ info_bar.response.connect (info_bar_response_cb);
+ main_vbox.pack_start (info_bar, false, true, 0);
+ var hbox = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 12);
+ var content_area = info_bar.get_content_area () as Gtk.Container;
+ content_area.add (hbox);
+ hbox.visible = true;
+
+ info_bar_image = new Gtk.Image.from_icon_name ("dialog-warning", Gtk.IconSize.DIALOG);
+ hbox.pack_start (info_bar_image, false, true, 0);
+ info_bar_image.visible = true;
+
+ info_bar_label = new Gtk.Label (null);
+ info_bar_label.set_alignment (0.0f, 0.5f);
+ hbox.pack_start (info_bar_label, true, true, 0);
+ info_bar_label.visible = true;
+
+ info_bar_close_button = info_bar.add_button (_("_Close"), Gtk.ResponseType.CLOSE) as Gtk.Button;
+ info_bar_change_scanner_button = info_bar.add_button (/* Button in error infobar to open preferences dialog and change scanner */
+ _("Change _Scanner"), 1) as Gtk.Button;
+
+ Gtk.TreeIter iter;
+ paper_size_model.append (out iter);
+ paper_size_model.set (iter, 0, 0, 1, 0, 2,
+ /* Combo box value for automatic paper size */
+ _("Automatic"), -1);
+ paper_size_model.append (out iter);
+ paper_size_model.set (iter, 0, 1050, 1, 1480, 2, "A6", -1);
+ paper_size_model.append (out iter);
+ paper_size_model.set (iter, 0, 1480, 1, 2100, 2, "A5", -1);
+ paper_size_model.append (out iter);
+ paper_size_model.set (iter, 0, 2100, 1, 2970, 2, "A4", -1);
+ paper_size_model.append (out iter);
+ paper_size_model.set (iter, 0, 2159, 1, 2794, 2, "Letter", -1);
+ paper_size_model.append (out iter);
+ paper_size_model.set (iter, 0, 2159, 1, 3556, 2, "Legal", -1);
+ paper_size_model.append (out iter);
+ paper_size_model.set (iter, 0, 1016, 1, 1524, 2, "4×6", -1);
+
+ var dpi = settings.get_int ("text-dpi");
+ if (dpi <= 0)
+ dpi = DEFAULT_TEXT_DPI;
+ set_dpi_combo (text_dpi_combo, DEFAULT_TEXT_DPI, dpi);
+ text_dpi_combo.changed.connect (() => { settings.set_int ("text-dpi", get_text_dpi ()); });
+ dpi = settings.get_int ("photo-dpi");
+ if (dpi <= 0)
+ dpi = DEFAULT_PHOTO_DPI;
+ set_dpi_combo (photo_dpi_combo, DEFAULT_PHOTO_DPI, dpi);
+ photo_dpi_combo.changed.connect (() => { settings.set_int ("photo-dpi", get_photo_dpi ()); });
+
+ var renderer = new Gtk.CellRendererText ();
+ device_combo.pack_start (renderer, true);
+ device_combo.add_attribute (renderer, "text", 1);
+
+ renderer = new Gtk.CellRendererText ();
+ page_side_combo.pack_start (renderer, true);
+ page_side_combo.add_attribute (renderer, "text", 1);
+ set_page_side ((ScanType) settings.get_enum ("page-side"));
+ page_side_combo.changed.connect (() => { settings.set_enum ("page-side", get_page_side ()); });
+
+ renderer = new Gtk.CellRendererText ();
+ paper_size_combo.pack_start (renderer, true);
+ paper_size_combo.add_attribute (renderer, "text", 2);
+ var paper_width = settings.get_int ("paper-width");
+ var paper_height = settings.get_int ("paper-height");
+ set_paper_size (paper_width, paper_height);
+ paper_size_combo.changed.connect (() =>
+ {
+ int w, h;
+ get_paper_size (out w, out h);
+ settings.set_int ("paper-width", w);
+ settings.set_int ("paper-height", h);
+ });
+
+ var lower = brightness_adjustment.lower;
+ var darker_label = "<small>%s</small>".printf (_("Darker"));
+ var upper = brightness_adjustment.upper;
+ var lighter_label = "<small>%s</small>".printf (_("Lighter"));
+ brightness_scale.add_mark (lower, Gtk.PositionType.BOTTOM, darker_label);
+ brightness_scale.add_mark (0, Gtk.PositionType.BOTTOM, null);
+ brightness_scale.add_mark (upper, Gtk.PositionType.BOTTOM, lighter_label);
+ brightness = settings.get_int ("brightness");
+ brightness_adjustment.value_changed.connect (() => { settings.set_int ("brightness", brightness); });
+
+ lower = contrast_adjustment.lower;
+ var less_label = "<small>%s</small>".printf (_("Less"));
+ upper = contrast_adjustment.upper;
+ var more_label = "<small>%s</small>".printf (_("More"));
+ contrast_scale.add_mark (lower, Gtk.PositionType.BOTTOM, less_label);
+ contrast_scale.add_mark (0, Gtk.PositionType.BOTTOM, null);
+ contrast_scale.add_mark (upper, Gtk.PositionType.BOTTOM, more_label);
+ contrast = settings.get_int ("contrast");
+ contrast_adjustment.value_changed.connect (() => { settings.set_int ("contrast", contrast); });
+
+ lower = quality_adjustment.lower;
+ var minimum_label = "<small>%s</small>".printf (_("Minimum"));
+ upper = quality_adjustment.upper;
+ var maximum_label = "<small>%s</small>".printf (_("Maximum"));
+ quality_scale.add_mark (lower, Gtk.PositionType.BOTTOM, minimum_label);
+ quality_scale.add_mark (75, Gtk.PositionType.BOTTOM, null);
+ quality_scale.add_mark (upper, Gtk.PositionType.BOTTOM, maximum_label);
+ quality = settings.get_int ("jpeg-quality");
+ quality_adjustment.value_changed.connect (() => { settings.set_int ("jpeg-quality", quality); });
+
+ var device = settings.get_string ("selected-device");
+ if (device != null)
+ {
+ if (find_scan_device (device, out iter))
+ device_combo.set_active_iter (iter);
+ }
+
+ var document_type = settings.get_string ("document-type");
+ if (document_type != null)
+ set_document_hint (document_type);
+
+ book_view = new BookView (book);
+ book_view.border_width = 18;
+ main_vbox.pack_end (book_view, true, true, 0);
+ book_view.page_selected.connect (page_selected_cb);
+ book_view.show_page.connect (show_page_cb);
+ book_view.show_menu.connect (show_page_menu_cb);
+ book_view.visible = true;
+
+ authorize_dialog.transient_for = this;
+ preferences_dialog.transient_for = this;
+
+ /* Load previous state */
+ load_state ();
+
+ /* Restore window size */
+ debug ("Restoring window to %dx%d pixels", window_width, window_height);
+ set_default_size (window_width, window_height);
+ if (window_is_maximized)
+ {
+ debug ("Restoring window to maximized");
+ maximize ();
+ }
+
+ progress_dialog = new ProgressBarDialog (this, _("Saving document..."));
+ book.saving.connect (book_saving_cb);
+ }
+
+ private string state_filename
+ {
+ owned get { return Path.build_filename (Environment.get_user_cache_dir (), "simple-scan", "state"); }
+ }
+
+ private void load_state ()
+ {
+ debug ("Loading state from %s", state_filename);
+
+ var f = new KeyFile ();
+ try
+ {
+ f.load_from_file (state_filename, KeyFileFlags.NONE);
+ }
+ catch (Error e)
+ {
+ if (!(e is FileError.NOENT))
+ warning ("Failed to load state: %s", e.message);
+ }
+ window_width = state_get_integer (f, "window", "width", 600);
+ if (window_width <= 0)
+ window_width = 600;
+ window_height = state_get_integer (f, "window", "height", 400);
+ if (window_height <= 0)
+ window_height = 400;
+ window_is_maximized = state_get_boolean (f, "window", "is-maximized");
+ default_page_width = state_get_integer (f, "last-page", "width", 595);
+ default_page_height = state_get_integer (f, "last-page", "height", 842);
+ default_page_dpi = state_get_integer (f, "last-page", "dpi", 72);
+ switch (state_get_string (f, "last-page", "scan-direction", "top-to-bottom"))
+ {
+ default:
+ case "top-to-bottom":
+ default_page_scan_direction = ScanDirection.TOP_TO_BOTTOM;
+ break;
+ case "bottom-to-top":
+ default_page_scan_direction = ScanDirection.BOTTOM_TO_TOP;
+ break;
+ case "left-to-right":
+ default_page_scan_direction = ScanDirection.LEFT_TO_RIGHT;
+ break;
+ case "right-to-left":
+ default_page_scan_direction = ScanDirection.RIGHT_TO_LEFT;
+ break;
+ }
+ }
+
+ private int state_get_integer (KeyFile f, string group_name, string key, int default = 0)
+ {
+ try
+ {
+ return f.get_integer (group_name, key);
+ }
+ catch
+ {
+ return default;
+ }
+ }
+
+ private bool state_get_boolean (KeyFile f, string group_name, string key, bool default = false)
+ {
+ try
+ {
+ return f.get_boolean (group_name, key);
+ }
+ catch
+ {
+ return default;
+ }
+ }
+
+ private string state_get_string (KeyFile f, string group_name, string key, string default = "")
+ {
+ try
+ {
+ return f.get_string (group_name, key);
+ }
+ catch
+ {
+ return default;
+ }
+ }
+
+ private void save_state (bool force = false)
+ {
+ if (!force)
+ {
+ if (save_state_timeout != 0)
+ Source.remove (save_state_timeout);
+ save_state_timeout = Timeout.add (100, () =>
+ {
+ save_state (true);
+ save_state_timeout = 0;
+ return false;
+ });
+ return;
+ }
+
+ debug ("Saving state to %s", state_filename);
+
+ var f = new KeyFile ();
+ f.set_integer ("window", "width", window_width);
+ f.set_integer ("window", "height", window_height);
+ f.set_boolean ("window", "is-maximized", window_is_maximized);
+ f.set_integer ("last-page", "width", default_page_width);
+ f.set_integer ("last-page", "height", default_page_height);
+ f.set_integer ("last-page", "dpi", default_page_dpi);
+ switch (default_page_scan_direction)
+ {
+ case ScanDirection.TOP_TO_BOTTOM:
+ f.set_value ("last-page", "scan-direction", "top-to-bottom");
+ break;
+ case ScanDirection.BOTTOM_TO_TOP:
+ f.set_value ("last-page", "scan-direction", "bottom-to-top");
+ break;
+ case ScanDirection.LEFT_TO_RIGHT:
+ f.set_value ("last-page", "scan-direction", "left-to-right");
+ break;
+ case ScanDirection.RIGHT_TO_LEFT:
+ f.set_value ("last-page", "scan-direction", "right-to-left");
+ break;
+ }
+ try
+ {
+ FileUtils.set_contents (state_filename, f.to_data ());
+ }
+ catch (Error e)
+ {
+ warning ("Failed to write state: %s", e.message);
+ }
+ }
+
+ private void book_saving_cb (int page_number)
+ {
+ /* Prevent GUI from freezing */
+ while (Gtk.events_pending ())
+ Gtk.main_iteration ();
+
+ var total = (int) book.n_pages;
+ var fraction = (page_number + 1.0) / total;
+ var complete = fraction == 1.0;
+ if (complete)
+ Timeout.add (500, () => {
+ progress_dialog.visible = false;
+ return false;
+ });
+ var message = _("Saving page %d out of %d").printf (page_number + 1, total);
+
+ progress_dialog.fraction = fraction;
+ progress_dialog.message = message;
+ }
+
+ public void show_progress_dialog ()
+ {
+ progress_dialog.visible = true;
+ }
+
+ public void hide_progress_dialog ()
+ {
+ progress_dialog.visible = false;
+ }
+
+ public void show_error (string error_title, string error_text, bool change_scanner_hint)
+ {
+ have_error = true;
+ this.error_title = error_title;
+ this.error_text = error_text;
+ error_change_scanner_hint = change_scanner_hint;
+ update_info_bar ();
+ }
+
+ public void start ()
+ {
+ visible = true;
+ }
+}
+
+private class ProgressBarDialog : Gtk.Window
+{
+ private Gtk.ProgressBar bar;
+
+ public double fraction
+ {
+ get { return bar.fraction; }
+ set { bar.fraction = value; }
+ }
+
+ public string message
+ {
+ get { return bar.text; }
+ set { bar.text = value; }
+ }
+
+ public ProgressBarDialog (Gtk.ApplicationWindow parent, string title)
+ {
+ bar = new Gtk.ProgressBar ();
+ var hbox = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 5);
+ var vbox = new Gtk.Box (Gtk.Orientation.VERTICAL, 5);
+ hbox.hexpand = true;
+
+ bar.text = "";
+ bar.show_text = true;
+ bar.set_size_request (225, 25);
+ set_size_request (250, 50);
+
+ vbox.pack_start (bar, true, false, 0);
+ hbox.pack_start (vbox, true, false, 0);
+ add (hbox);
+ this.title = title;
+
+ transient_for = parent;
+ set_position (Gtk.WindowPosition.CENTER_ON_PARENT);
+ modal = true;
+ resizable = false;
+
+ hbox.visible = true;
+ vbox.visible = true;
+ bar.visible = true;
+ }
+}
+
+// FIXME: Duplicated from simple-scan.vala
+private string? get_temporary_filename (string prefix, string extension)
+{
+ /* NOTE: I'm not sure if this is a 100% safe strategy to use g_file_open_tmp(), close and
+ * use the filename but it appears to work in practise */
+
+ var filename = "%sXXXXXX.%s".printf (prefix, extension);
+ string path;
+ try
+ {
+ var fd = FileUtils.open_tmp (filename, out path);
+ Posix.close (fd);
+ }
+ catch (Error e)
+ {
+ warning ("Error saving email attachment: %s", e.message);
+ return null;
+ }
+
+ return path;
+}
+
+private class PageIcon : Gtk.DrawingArea
+{
+ private string text;
+ private double r;
+ private double g;
+ private double b;
+ private const int MINIMUM_WIDTH = 20;
+
+ public PageIcon (string text, double r = 1.0, double g = 1.0, double b = 1.0)
+ {
+ this.text = text;
+ this.r = r;
+ this.g = g;
+ this.b = b;
+ }
+
+ public override void get_preferred_width (out int minimum_width, out int natural_width)
+ {
+ minimum_width = natural_width = MINIMUM_WIDTH;
+ }
+
+ public override void get_preferred_height (out int minimum_height, out int natural_height)
+ {
+ minimum_height = natural_height = (int) Math.round (MINIMUM_WIDTH * Math.SQRT2);
+ }
+
+ public override void get_preferred_height_for_width (int width, out int minimum_height, out int natural_height)
+ {
+ minimum_height = natural_height = (int) (width * Math.SQRT2);
+ }
+
+ public override void get_preferred_width_for_height (int height, out int minimum_width, out int natural_width)
+ {
+ minimum_width = natural_width = (int) (height / Math.SQRT2);
+ }
+
+ public override bool draw (Cairo.Context c)
+ {
+ var w = get_allocated_width ();
+ var h = get_allocated_height ();
+ if (w * Math.SQRT2 > h)
+ w = (int) Math.round (h / Math.SQRT2);
+ else
+ h = (int) Math.round (w * Math.SQRT2);
+
+ c.translate ((get_allocated_width () - w) / 2, (get_allocated_height () - h) / 2);
+
+ c.rectangle (0.5, 0.5, w - 1, h - 1);
+
+ c.set_source_rgb (r, g, b);
+ c.fill_preserve ();
+
+ c.set_line_width (1.0);
+ c.set_source_rgb (0.0, 0.0, 0.0);
+ c.stroke ();
+
+ Cairo.TextExtents extents;
+ c.text_extents (text, out extents);
+ c.translate ((w - extents.width) * 0.5 - 0.5, (h + extents.height) * 0.5 - 0.5);
+ c.show_text (text);
+
+ return true;
+ }
+}