aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnne Nicolas <ennael@mageia.org>2011-05-04 21:14:55 +0000
committerAnne Nicolas <ennael@mageia.org>2011-05-04 21:14:55 +0000
commitb9231d4b3b5e5b808544157179e6e2ff101830eb (patch)
treeb1e3297e979313bd33bbf8fd6556c765fb61df2e
downloadusbdumper-b9231d4b3b5e5b808544157179e6e2ff101830eb.tar
usbdumper-b9231d4b3b5e5b808544157179e6e2ff101830eb.tar.gz
usbdumper-b9231d4b3b5e5b808544157179e6e2ff101830eb.tar.bz2
usbdumper-b9231d4b3b5e5b808544157179e6e2ff101830eb.tar.xz
usbdumper-b9231d4b3b5e5b808544157179e6e2ff101830eb.zip
update files for usbdumper
-rw-r--r--AUTHORS28
-rw-r--r--LICENSE.txt342
-rw-r--r--Makefile19
-rw-r--r--README.txt39
-rwxr-xr-xbuild_linux.sh23
-rw-r--r--build_windows.bat2
-rw-r--r--data/mageia-liveusb.pngbin0 -> 18939 bytes
-rwxr-xr-xdata/makeself.sh3
-rw-r--r--data/mandriva-seed.desktop16
-rw-r--r--data/refresh.pngbin0 -> 912 bytes
-rw-r--r--data/resources.qrc8
-rwxr-xr-xdata/run.sh12
-rw-r--r--data/view-refresh.pngbin0 -> 931 bytes
-rwxr-xr-xdata/xdg-su523
-rw-r--r--liveusb/__init__.py49
-rwxr-xr-xliveusb/creator.py309
-rwxr-xr-xliveusb/gui.py270
-rw-r--r--liveusb/linux_dialog.py77
-rw-r--r--liveusb/resources_rc.py2087
-rw-r--r--liveusb/windows_dialog.py80
-rwxr-xr-xmandriva-seed50
-rw-r--r--po/ChangeLog17
-rw-r--r--po/POTFILES.in6
-rw-r--r--po/app.fil5
-rw-r--r--po/ca.po324
-rw-r--r--po/cs.po348
-rw-r--r--po/de.po306
-rw-r--r--po/el.po257
-rw-r--r--po/es.po325
-rw-r--r--po/et.po260
-rw-r--r--po/fr.po358
-rw-r--r--po/gr.po269
-rw-r--r--po/hu.po310
-rw-r--r--po/it.po268
-rw-r--r--po/liveusb-creator.pot277
-rw-r--r--po/mki18n.py453
-rw-r--r--po/ms.po207
-rw-r--r--po/nl.po295
-rw-r--r--po/pl.po361
-rw-r--r--po/pt.po312
-rw-r--r--po/pt_BR.po294
-rw-r--r--po/ro.po294
-rw-r--r--po/sk.po354
-rw-r--r--po/sr.po351
-rw-r--r--po/sr@latin.po352
-rw-r--r--po/th.po314
-rw-r--r--po/tr.po259
-rw-r--r--po/zh_CN.po336
-rw-r--r--po/zh_TW.po291
-rw-r--r--setup.py91
-rw-r--r--tools/dd.exebin0 -> 342016 bytes
-rw-r--r--tools/dd.exe.manifest12
-rwxr-xr-xtools/dd.sh23
53 files changed, 11866 insertions, 0 deletions
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..8b96a4b
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,28 @@
+Developers
+==========
+Luke Macken <lmacken@redhat.com> (liveusb modules, PyQt interface, etc)
+Kushal Das <kushal@fedoraproject.org> (Initial PyQt interface)
+Kevin Kofler <kkofler@fedoraproject.org> (KDE integration)
+Aurelien Lefebvre <alefebvre@mandriva.com>
+Luis Medinas <luis.medinas@caixamagica.pt> (Windows fixes)
+
+
+Translators
+===========
+Igor Pires Soares - Brazilian Portuguese
+Domingo Becker - Spanish
+Sharuzzaman Ahmat Raslan - Malay
+Marcus Nitzschke - German
+Fabian Affolter - German
+Piotr Drąg - Polish
+Valter Fukuoka - Portuguese
+Adam Pribyl - Czech
+Nikos Charonitakis - Greek
+Ondrej Sulek - Slovak
+Xavier Conde - Catalan
+PabloMartin-Gomez - French
+Milos Komarcevic - Serbian
+Sainrysec - Chinese
+Mario Santagiuliana - Italian
+Manuel da Costa Gouveia - Portuguese
+
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..57e438a
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,342 @@
+
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) 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
+this service 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 make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. 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.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+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
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the 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 a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE 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.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: 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
+convey 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) 19yy <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 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision 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, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This 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 Library General
+Public License instead of this License.
+
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..21cb119
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,19 @@
+PKGNAME=liveusb-creator
+NAME=usbdumper
+VERSION=$(shell date +%Y%m%d)
+
+all: mo
+
+mo:
+ cd po; for po in `ls *.po`; do cp $$po liveusb-creator_$$po; done
+ cd po; python mki18n.py -v --domain=liveusb-creator -m
+ rm po/liveusb-creator_*.po*
+
+clean:
+ rm -f *.py{c,o} */*.py{c,o} */*/*.py{c,o}
+ rm -fr po/${PKGNAME}*.po{,.new} po/locale
+ rm -fr build
+
+dist:
+ @git archive --prefix=$(NAME)-$(VERSION)/ HEAD | bzip2 -9 -c >../$(NAME)-$(VERSION).tar.bz2;
+
diff --git a/README.txt b/README.txt
new file mode 100644
index 0000000..1287196
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,39 @@
+==========
+usbdumper
+==========
+
+A cross-platform tool for easily dump hybrid iso on
+flash drives based on mandriva-seed.
+
+==============
+Recommendation
+==============
+
+Build the Windows binary on Windows XP.
+
+License
+-------
+
+usbdumper is licensed under the GPLv2.
+
+This tool is distributed with the following open source software::
+
+ Python
+ http://python.org
+
+ PyQt4
+ http://wiki.python.org/moin/PyQt4
+
+ dd for Windows
+ http://www.chrysocome.net/dd
+ dd is owned and copyright by Chrysocome and John Newbigin.
+ It is made available under the terms of the GPLv2
+
+ Python WMI for Windows
+ http://timgolden.me.uk/python/wmi/
+
+ Py2Eexe
+ http://www.py2exe.org/
+
+ Python for Windows Extensions
+ http://pywin32.sourceforge.net/
diff --git a/build_linux.sh b/build_linux.sh
new file mode 100755
index 0000000..3521c07
--- /dev/null
+++ b/build_linux.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+for DIR in "./build/" "./build/i586/" "./build/x86_64/" "./build/tools/"
+do
+ (! [ -d $DIR ] ) && mkdir $DIR
+done
+
+cp -af tools/dd.sh build/tools/dd.sh
+cp -af data/run.sh build/
+cp -af data/makeself.sh build/
+cp -af data/xdg-su build/
+cp -af LICENSE.txt build/
+
+make -f Makefile
+mv -f po/locale/ build/
+
+ARCH="i586"
+if [ `uname -m` == "x86_64" ]; then
+ ARCH="x86_64"
+fi
+
+cxfreeze usbdumper --target-dir=build/$ARCH/ --include-modules=PyQt4,dbus,sip,encodings.utf_8,encodings.ascii
+cp -a bindata/$ARCH/* build/$ARCH/
diff --git a/build_windows.bat b/build_windows.bat
new file mode 100644
index 0000000..1b2cc58
--- /dev/null
+++ b/build_windows.bat
@@ -0,0 +1,2 @@
+set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Qt\2010.02.1\qt\bin;C:\Qt\2010.02.1\mingw\bin;
+c:\Python26\python.exe -OO setup.py py2exe
diff --git a/data/mageia-liveusb.png b/data/mageia-liveusb.png
new file mode 100644
index 0000000..423aa0d
--- /dev/null
+++ b/data/mageia-liveusb.png
Binary files differ
diff --git a/data/makeself.sh b/data/makeself.sh
new file mode 100755
index 0000000..50ff4be
--- /dev/null
+++ b/data/makeself.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+makeself --bzip2 ./ usbdumper.sh usbdumper ./run.sh
diff --git a/data/mandriva-seed.desktop b/data/mandriva-seed.desktop
new file mode 100644
index 0000000..f890376
--- /dev/null
+++ b/data/mandriva-seed.desktop
@@ -0,0 +1,16 @@
+[Desktop Entry]
+Name=Live USB Creator
+Name[pt]=Criador Live USB
+GenericName=Live USB Creator
+GenericName[pt]=Criador Live USB
+Comment=Create a bootable Live USB from a Mageia Live ISO image
+Comment[pt]=Cria um dispositivo USB para arrancar com uma imagem Live
+da Mageia
+Exec=usbdumper
+Icon=mageia-liveusb.png
+Terminal=false
+MultipleArgs=false
+Type=Application
+StartupNotify=true
+Encoding=UTF-8
+Categories=QT;X-MandrivaLinux-CrossDesktop;Settings;
diff --git a/data/refresh.png b/data/refresh.png
new file mode 100644
index 0000000..3fd71d6
--- /dev/null
+++ b/data/refresh.png
Binary files differ
diff --git a/data/resources.qrc b/data/resources.qrc
new file mode 100644
index 0000000..70d59d0
--- /dev/null
+++ b/data/resources.qrc
@@ -0,0 +1,8 @@
+<RCC>
+ <qresource>
+ <file>mageia-liveusb.png</file>
+ </qresource>
+ <qresource>
+ <file>refresh.png</file>
+ </qresource>
+</RCC>
diff --git a/data/run.sh b/data/run.sh
new file mode 100755
index 0000000..68a8f4c
--- /dev/null
+++ b/data/run.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+ARCH="i586"
+if [ `uname -m` = "x86_64" ]; then
+ ARCH="x86_64"
+fi
+
+if [ `whoami` = "root" ]; then
+ ./$ARCH/usbdumper
+else
+ ./xdg-su -u root -c ./$ARCH/usbdumper
+fi
diff --git a/data/view-refresh.png b/data/view-refresh.png
new file mode 100644
index 0000000..86b6f82
--- /dev/null
+++ b/data/view-refresh.png
Binary files differ
diff --git a/data/xdg-su b/data/xdg-su
new file mode 100755
index 0000000..2389405
--- /dev/null
+++ b/data/xdg-su
@@ -0,0 +1,523 @@
+#!/bin/sh
+#---------------------------------------------
+# xdg-su
+#
+# Utility script to run a command as an alternate user, generally
+# the root user, with a graphical prompt for the root
+# password if needed
+#
+# Refer to the usage() function below for usage.
+#
+# Copyright 2006, Jeremy White <jwhite@codeweavers.com>
+# Copyright 2006, Kevin Krammer <kevin.krammer@gmx.at>
+# Copyright 2009, Aurelien Lefebvre <alefebvre@mandriva.com>
+#
+# LICENSE:
+#
+# 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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+#
+#---------------------------------------------
+
+distrib=`test -f /etc/lsb-release &&
+ cat /etc/lsb-release |
+ grep "DISTRIB_ID" |
+ sed 's/DISTRIB_ID=\([A-Za-z]\+\)/\1/'`
+if [ -z $distrib ]; then
+ distrib="Unknown"
+fi
+
+
+manualpage()
+{
+cat << _MANUALPAGE
+Name
+
+xdg-su - run a GUI program as root after prompting for the root password
+
+Synopsis
+
+xdg-su [-u user] -c command
+
+xdg-su { --help | --manual | --version }
+
+Description
+
+xdg-su provides a graphical dialog that prompts the user for a password to run
+command as user or as root if no user was specified.
+
+xdg-su is for use inside a desktop session only.
+
+xdg-su discards any stdout and stderr output from command.
+
+Options
+
+-u user
+ run command as user. The default is to run as root.
+--help
+ Show command synopsis.
+--manual
+ Show this manualpage.
+--version
+ Show the xdg-utils version information.
+
+Exit Codes
+
+An exit code of 0 indicates success while a non-zero exit code indicates
+failure. The following failure codes can be returned:
+
+1
+ Error in command line syntax.
+2
+ One of the files passed on the command line did not exist.
+3
+ A required tool could not be found.
+4
+ The action failed.
+
+See Also
+
+su(1)
+
+Examples
+
+xdg-su -u root -c "/opt/shinythings/bin/install-GUI --install fast"
+
+Runs the /opt/shinythings/bin/install-GUI command with root permissions.
+
+_MANUALPAGE
+}
+
+usage()
+{
+cat << _USAGE
+xdg-su - run a GUI program as root after prompting for the root password
+
+Synopsis
+
+xdg-su [-u user] -c command
+
+xdg-su { --help | --manual | --version }
+
+_USAGE
+}
+
+#@xdg-utils-common@
+
+#----------------------------------------------------------------------------
+# Common utility functions included in all XDG wrapper scripts
+#----------------------------------------------------------------------------
+
+DEBUG()
+{
+ [ ${XDG_UTILS_DEBUG_LEVEL-0} -lt $1 ] && return 0;
+ shift
+ echo "$@" >&2
+}
+
+#-------------------------------------------------------------
+# Exit script on successfully completing the desired operation
+
+exit_success()
+{
+ if [ $# -gt 0 ]; then
+ echo "$@"
+ echo
+ fi
+
+ exit 0
+}
+
+
+#-----------------------------------------
+# Exit script on malformed arguments, not enough arguments
+# or missing required option.
+# prints usage information
+
+exit_failure_syntax()
+{
+ if [ $# -gt 0 ]; then
+ echo "xdg-su: $@" >&2
+ echo "Try 'xdg-su --help' for more information." >&2
+ else
+ usage
+ echo "Use 'man xdg-su' or 'xdg-su --manual' for additional info."
+ fi
+
+ exit 1
+}
+
+#-------------------------------------------------------------
+# Exit script on missing file specified on command line
+
+exit_failure_file_missing()
+{
+ if [ $# -gt 0 ]; then
+ echo "xdg-su: $@" >&2
+ fi
+
+ exit 2
+}
+
+#-------------------------------------------------------------
+# Exit script on failure to locate necessary tool applications
+
+exit_failure_operation_impossible()
+{
+ if [ $# -gt 0 ]; then
+ echo "xdg-su: $@" >&2
+ fi
+
+ exit 3
+}
+
+#-------------------------------------------------------------
+# Exit script on failure returned by a tool application
+
+exit_failure_operation_failed()
+{
+ if [ $# -gt 0 ]; then
+ echo "xdg-su: $@" >&2
+ fi
+
+ exit 4
+}
+
+#------------------------------------------------------------
+# Exit script on insufficient permission to read a specified file
+
+exit_failure_file_permission_read()
+{
+ if [ $# -gt 0 ]; then
+ echo "xdg-su: $@" >&2
+ fi
+
+ exit 5
+}
+
+#------------------------------------------------------------
+# Exit script on insufficient permission to read a specified file
+
+exit_failure_file_permission_write()
+{
+ if [ $# -gt 0 ]; then
+ echo "xdg-su: $@" >&2
+ fi
+
+ exit 6
+}
+
+check_input_file()
+{
+ if [ ! -e "$1" ]; then
+ exit_failure_file_missing "file '$1' does not exist"
+ fi
+ if [ ! -r "$1" ]; then
+ exit_failure_file_permission_read "no permission to read file '$1'"
+ fi
+}
+
+check_vendor_prefix()
+{
+ file=`basename "$1"`
+ case "$file" in
+ [a-zA-Z]*-*)
+ return
+ ;;
+ esac
+
+ echo "xdg-su: filename '$file' does not have a proper vendor prefix" >&2
+ echo 'A vendor prefix consists of alpha characters ([a-zA-Z]) and is terminated' >&2
+ echo 'with a dash ("-"). An example filename is '"'example-$file'" >&2
+ echo "Use --novendor to override or 'xdg-su --manual' for additional info." >&2
+ exit 1
+}
+
+check_output_file()
+{
+ # if the file exists, check if it is writeable
+ # if it does not exists, check if we are allowed to write on the directory
+ if [ -e "$1" ]; then
+ if [ ! -w "$1" ]; then
+ exit_failure_file_permission_write "no permission to write to file '$1'"
+ fi
+ else
+ DIR=`dirname "$1"`
+ if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
+ exit_failure_file_permission_write "no permission to create file '$1'"
+ fi
+ fi
+}
+
+#----------------------------------------
+# Checks for shared commands, e.g. --help
+
+check_common_commands()
+{
+ while [ $# -gt 0 ] ; do
+ parm="$1"
+ shift
+
+ case "$parm" in
+ --help)
+ usage
+ echo "Use 'man xdg-su' or 'xdg-su --manual' for additional info."
+ exit_success
+ ;;
+
+ --manual)
+ manualpage
+ exit_success
+ ;;
+
+ --version)
+ echo "xdg-su 1.0beta2"
+ exit_success
+ ;;
+ esac
+ done
+}
+
+check_common_commands "$@"
+if [ ${XDG_UTILS_DEBUG_LEVEL-0} -lt 1 ]; then
+ # Be silent
+ xdg_redirect_output=" > /dev/null 2> /dev/null"
+else
+ # All output to stderr
+ xdg_redirect_output=" >&2"
+fi
+
+#--------------------------------------
+# Checks for known desktop environments
+# set variable DE to the desktop environments name, lowercase
+
+detectDE()
+{
+ if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
+ elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
+ elif xprop -root _DT_SAVE_MODE | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
+ fi
+}
+
+#----------------------------------------------------------------------------
+
+
+
+su_kde()
+{
+ if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
+ KDESU=`kde4-config --locate kdesu --path exe 2>/dev/null`
+ else
+ KDESU=`which kdesu 2>/dev/null`
+ if [ $? -ne 0 -a $distrib = "Ubuntu" ] ; then
+ KDESU=`which kdesudo 2>/dev/null`
+ fi
+ fi
+ if [ $? -eq 0 ] ; then
+ if [ -z "$user" ] ; then
+ if [ $distrib = "Ubuntu" ]; then
+ /usr/bin/kdesudo "$cmd"
+ else
+ $KDESU -c "$cmd"
+ fi
+ else
+ if [ $distrib = "Ubuntu" ]; then
+ /usr/bin/kdesudo -u "$user" "$cmd"
+ else
+ $KDESU -u "$user" -c "$cmd"
+ fi
+ fi
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ else
+ exit_failure_operation_failed
+ fi
+ else
+ su_generic
+ fi
+}
+
+su_gnome()
+{
+ GSU=`which gnomesu 2>/dev/null`
+ if [ $? -ne 0 ] ; then
+ GSU=`which xsu 2>/dev/null`
+ fi
+ if [ $? -eq 0 ] ; then
+ if [ -z "$user" ] ; then
+ $GSU -c "$cmd"
+ else
+ $GSU -u "$user" -c "$cmd"
+ fi
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ else
+ exit_failure_operation_failed
+ fi
+ else
+ su_generic
+ fi
+}
+
+sudo_gnome()
+{
+ GSU=`which gksudo 2>/dev/null`
+ if [ $? -eq 0 ] ; then
+ if [ -z "$user" ] ; then
+ $GSU "$cmd"
+ else
+ $GSU -u "$user" "$cmd"
+ fi
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ else
+ exit_failure_operation_failed
+ fi
+ else
+ su_generic
+ fi
+}
+
+sudo_kde()
+{
+ GSU=`which kdesudo 2>/dev/null`
+ if [ $? -eq 0 ] ; then
+ if [ -z "$user" ] ; then
+ $GSU "$cmd"
+ else
+ $GSU -u "$user" "$cmd"
+ fi
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ else
+ exit_failure_operation_failed
+ fi
+ else
+ su_generic
+ fi
+}
+
+su_generic()
+{
+
+ QUOTE=1
+ TERMINAL=""
+ [ -z "$TERMINAL" ] && TERMINAL=`which xterm 2> /dev/null` && QUOTE=0
+ [ -z "$TERMINAL" ] && TERMINAL=`which gnome-terminal 2> /dev/null`
+ #[ -z "$TERMINAL" ] && TERMINAL=`which konsole 2> /dev/null`
+ [ -z "$TERMINAL" ] && TERMINAL=`which aterm 2> /dev/null` && QUOTE=0
+ [ -z "$TERMINAL" ] && TERMINAL=`which Eterm 2> /dev/null`
+ [ -z "$TERMINAL" ] && TERMINAL=`which kterm 2> /dev/null` && QUOTE=0
+ [ -z "$TERMINAL" ] && TERMINAL=`which lxterminal 2> /dev/null`
+
+ if [ $distrib = "Ubuntu" ]; then
+ if [ $QUOTE -eq 1 ]; then
+ $TERMINAL -e "sudo $cmd"
+ else
+ $TERMINAL -e sudo "$cmd"
+ fi
+ else
+ if [ $QUOTE -eq 1 ]; then
+ $TERMINAL -e "su -c \"$cmd\""
+ else
+ $TERMINAL -e su -c "$cmd"
+ fi
+ fi
+
+ if [ $? -eq 0 ]; then
+ exit_success
+ else
+ exit_failure_operation_failed
+ fi
+}
+
+[ x"$1" != x"" ] || exit_failure_syntax
+
+user=
+cmd=
+while [ $# -gt 0 ] ; do
+ parm="$1"
+ shift
+
+ case "$parm" in
+ -u)
+ if [ -z "$1" ] ; then
+ exit_failure_syntax "user argument missing for -u"
+ fi
+ user="$1"
+ shift
+ ;;
+
+ -c)
+ if [ -z "$1" ] ; then
+ exit_failure_syntax "command argument missing for -c"
+ fi
+ cmd="$1"
+ shift
+ ;;
+
+ -*)
+ exit_failure_syntax "unexpected option '$parm'"
+ ;;
+
+ *)
+ exit_failure_syntax "unexpected argument '$parm'"
+ ;;
+ esac
+done
+
+if [ -z "${cmd}" ] ; then
+ exit_failure_syntax "command missing"
+fi
+
+detectDE
+
+if [ x"$DE" = x"" ]; then
+ DE=generic
+fi
+
+case "$DE" in
+ kde)
+ if [ $distrib = "Ubuntu" ]; then
+ sudo_kde
+ else
+ su_kde
+ fi
+ ;;
+
+ gnome)
+ if [ $distrib = "Ubuntu" ]; then
+ sudo_gnome
+ else
+ su_gnome
+ fi
+ ;;
+
+ generic)
+ su_generic
+ ;;
+
+ *)
+ [ x"$user" = x"" ] && user=root
+ exit_failure_operation_impossible "no graphical method available for invoking '$cmd' as '$user'"
+ ;;
+esac
diff --git a/liveusb/__init__.py b/liveusb/__init__.py
new file mode 100644
index 0000000..6ebcc25
--- /dev/null
+++ b/liveusb/__init__.py
@@ -0,0 +1,49 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright © 2008 Red Hat, Inc. All rights reserved.
+# Copyright © 2009 Mandriva. All rights reserved.
+#
+# This copyrighted material is made available to anyone wishing to use, modify,
+# copy, or redistribute it subject to the terms and conditions of the GNU
+# General Public License v.2. This program is distributed in the hope that it
+# will be useful, but WITHOUT ANY WARRANTY expressed or implied, including the
+# implied warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU General Public License for more details. You should have
+# received a copy of the GNU General Public License along with this program; if
+# not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
+# Floor, Boston, MA 02110-1301, USA. Any Red Hat trademarks that are
+# incorporated in the source code or documentation are not subject to the GNU
+# General Public License and may only be used or replicated with the express
+# permission of Red Hat, Inc.
+#
+# Author(s): Luke Macken <lmacken@redhat.com>
+# Aurelien Lefebvre <alefebvre@mandriva.com>
+
+import os
+import sys
+import gettext
+
+if os.path.exists('locale'):
+ translation = gettext.translation('liveusb-creator', 'locale', fallback=True)
+else:
+ translation = gettext.translation('liveusb-creator', '/usr/share/locale',
+ fallback=True)
+_ = translation.ugettext
+
+def utf8_gettext(string):
+ " Translate string, converting it to a UTF-8 encoded bytestring "
+ return _(string).encode('utf8')
+
+from liveusb.creator import LiveUSBError
+
+if sys.platform == "win32":
+ from liveusb.creator import WindowsLiveUSBCreator as LiveUSBCreator
+ from liveusb.windows_dialog import Ui_Dialog as LiveUSBInterface
+else:
+ if os.getuid() != 0:
+ print >> sys.stderr, _("You must run this application as root")
+ sys.exit(1)
+ from liveusb.creator import LinuxLiveUSBCreator as LiveUSBCreator
+ from liveusb.linux_dialog import Ui_Dialog as LiveUSBInterface
+
+__all__ = ("LiveUSBCreator", "LiveUSBError", "LiveUSBDialog", "_", "utf8_gettext")
diff --git a/liveusb/creator.py b/liveusb/creator.py
new file mode 100755
index 0000000..0e19734
--- /dev/null
+++ b/liveusb/creator.py
@@ -0,0 +1,309 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright © 2008 Red Hat, Inc. All rights reserved.
+# Copyright © 2009 Mandriva. All rights reserved.
+#
+# This copyrighted material is made available to anyone wishing to use, modify,
+# copy, or redistribute it subject to the terms and conditions of the GNU
+# General Public License v.2. This program is distributed in the hope that it
+# will be useful, but WITHOUT ANY WARRANTY expressed or implied, including the
+# implied warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU General Public License for more details. You should have
+# received a copy of the GNU General Public License along with this program; if
+# not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
+# Floor, Boston, MA 02110-1301, USA. Any Red Hat trademarks that are
+# incorporated in the source code or documentation are not subject to the GNU
+# General Public License and may only be used or replicated with the express
+# permission of Red Hat, Inc.
+#
+# Author(s): Luke Macken <lmacken@redhat.com>
+# Aurelien Lefebvre <alefebvre@mandriva.com>
+# Luis Medinas <luis.medinas@caixamagica.pt>
+
+import subprocess
+import logging
+import os
+import re
+import signal
+
+from datetime import datetime
+from stat import ST_SIZE
+from threading import Thread
+from time import sleep
+
+from liveusb import _
+
+class LiveUSBError(Exception):
+ _message = ""
+ def __init__(self, message): self._message = message
+ def _get_message(self): return self._message
+ def _set_message(self, message): self._message = message
+ message = property(_get_message, _set_message)
+
+class LiveUSBCreator(object):
+ """ An OS-independent parent class for Live USB Creators """
+
+ iso = None
+ drives = {}
+ pids = []
+ isosize = 0
+ log = None
+ drive = None
+
+ def __init__(self, opts):
+ self.opts = opts
+ self._setup_logger()
+
+ def _setup_logger(self):
+ self.log = logging.getLogger(__name__)
+ level = logging.INFO
+ if self.opts.verbose:
+ level = logging.DEBUG
+ self.log.setLevel(level)
+ self.handler = logging.StreamHandler()
+ self.handler.setLevel(level)
+ formatter = logging.Formatter("[%(module)s:%(lineno)s] %(message)s")
+ self.handler.setFormatter(formatter)
+ self.log.addHandler(self.handler)
+
+ def detect_removable_drives(self):
+ """ This method should populate self.drives with removable devices """
+ raise NotImplementedError
+
+ def terminate(self):
+ """ Terminate any subprocesses that we have spawned """
+ raise NotImplementedError
+
+ def set_iso(self, iso):
+ """ Select the given ISO """
+ self.iso = self._to_unicode(iso)
+ self.isosize = os.stat(self.iso)[ST_SIZE]
+
+ def _to_unicode(self, obj, encoding='utf-8'):
+ if hasattr(obj, 'toUtf8'): # PyQt4.QtCore.QString
+ obj = str(obj.toUtf8())
+ #if isinstance(obj, basestring):
+ # if not isinstance(obj, unicode):
+ # obj = unicode(obj, encoding, 'replace')
+ return obj
+
+ def _test_hybrid_1(self, iso):
+ hybrid = False
+ for i in range(0,512):
+ if not iso.read(1) == '\x00':
+ hybrid = True
+ if hybrid:
+ break
+ return hybrid
+
+ def _test_hybrid_2(self, iso):
+ hybrid = False
+ iso.seek(0x1fe)
+ if iso.read(1) == '\x55':
+ iso.seek(0x1ff)
+ if iso.read(1) == '\xaa':
+ hybrid = True
+ return hybrid
+
+ def _test_hybrid_3(self, iso):
+ hybrid = True
+ iso.seek(0x200)
+ for i in range(0x200,0x8000):
+ if iso.read(1) != '\x00':
+ hybrid = False
+ break
+ return hybrid
+
+ def is_hybrid(self, iso):
+ isofile = open(iso, "rb")
+ hybrid = self._test_hybrid_1(isofile) and self._test_hybrid_2(isofile) and self._test_hybrid_3(isofile)
+ isofile.close()
+ return hybrid
+
+class LinuxLiveUSBCreator(LiveUSBCreator):
+
+ bus = None # the dbus.SystemBus
+ hal = None # the org.freedesktop.Hal.Manager dbus.Interface
+
+ def detect_removable_drives(self):
+ """ Detect all removable USB storage devices using HAL via D-Bus """
+ import dbus
+ self.drives = {}
+ self.bus = dbus.SystemBus()
+ hal_obj = self.bus.get_object("org.freedesktop.Hal",
+ "/org/freedesktop/Hal/Manager")
+ self.hal = dbus.Interface(hal_obj, "org.freedesktop.Hal.Manager")
+
+ devices = []
+ devices = self.hal.FindDeviceByCapability("storage")
+
+ for device in devices:
+ try:
+ dev = self._get_device(device)
+ if dev.GetProperty("storage.bus") == "usb":
+ self._add_device(dev)
+ except dbus.exceptions.DBusException:
+ pass
+
+ if not len(self.drives):
+ raise LiveUSBError(_("Unable to find any USB drives"))
+
+ def _add_device(self, dev, parent=None):
+ model = None
+ capacity = None
+ try:
+ model = dev.GetProperty('storage.model')
+ capacity = str(dev.GetProperty('storage.removable.media_size'))
+ except Exception:
+ pass
+
+ self.drives[dev.GetProperty('block.device')] = {
+ 'name' : dev.GetProperty('block.device'),
+ 'model' : model,
+ 'capacity' : capacity
+ }
+
+ def _get_device(self, udi):
+ """ Return a dbus Interface to a specific HAL device UDI """
+ import dbus
+ dev_obj = self.bus.get_object("org.freedesktop.Hal", udi)
+ return dbus.Interface(dev_obj, "org.freedesktop.Hal.Device")
+
+ def build_disk(self, progress_thread):
+
+ isosize = float(self.isosize)
+ pattern = "^([0-9]+) bytes .*"
+ patternCompiled = re.compile(pattern)
+
+ pidPattern = "^DDPID=([0-9]+).*"
+ pidPatternCompiled = re.compile(pidPattern)
+
+ drive_infos = self.drives[self.drive]
+ if drive_infos.has_key("capacity") and drive_infos["capacity"]:
+ self.log.debug("Iso size = %s" % str(isosize))
+ self.log.debug("Device capacity = %s " % str(drive_infos['capacity']))
+ if int(drive_infos['capacity']) < int(isosize):
+ raise LiveUSBError(_("Selected iso is too large for the selected device"))
+
+ dd = '/usr/sbin/liveusb-dd.sh "' + self.iso + '" "' + self.drive + '"'
+ self.log.debug(dd)
+ p = subprocess.Popen(dd,
+ shell=True,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ env={"LC_ALL": "C"})
+
+ ppid = p.pid
+ ddpid = None
+
+ self.pids.append(ppid)
+
+ # Updating progress bar by parsing /bin/dd output
+ while True:
+ line = p.stdout.readline()
+ if not line:
+ break
+
+ if not ddpid:
+ pidm = re.findall(pidPatternCompiled, line)
+ if len(pidm) > 0:
+ ddpid = int(pidm[0])
+ self.pids.append(ddpid)
+
+ m = re.findall(patternCompiled, line)
+ if len(m) > 0:
+ current = float(m[0])
+ progress = (current/isosize)*100
+ progress = round(progress, 2)
+ progress_thread.update(progress)
+
+ self.pids.remove(ppid)
+ self.pids.remove(ddpid)
+
+ def terminate(self):
+ for pid in self.pids:
+ try:
+ os.kill(pid, signal.SIGHUP)
+ self.log.debug("Killed process %d" % pid)
+ except OSError:
+ pass
+
+class WindowsLiveUSBCreator(LiveUSBCreator):
+
+ def detect_removable_drives(self):
+ import win32file, win32api, pywintypes, wmi
+ self.drives = {}
+
+ c = wmi.WMI()
+
+ for physical_disk in c.Win32_DiskDrive ():
+ if physical_disk.InterfaceType == "USB":
+ if len(physical_disk.Capabilities):
+ for objElem in physical_disk.Capabilities:
+ if objElem == 7:
+ self.drives[physical_disk.DeviceID] = {
+ 'name' : physical_disk.DeviceID,
+ 'model' : physical_disk.Model,
+ 'device' : physical_disk.DeviceID,
+ 'capacity': physical_disk.Size
+ }
+ break
+ if not len(self.drives):
+ raise LiveUSBError(_("There isn't any removable drive available"))
+
+ def _get_device(self, drive):
+ if not self.drives[drive]:
+ return None
+ return self.drives[drive]['device']
+
+ def build_disk(self, progress_thread):
+
+ isosize = float(self.isosize)
+ pattern = "^([0-9,]+).*"
+ patternCompiled = re.compile(pattern)
+
+# f = subprocess.Popen(['format', self.drive, '/q', '/y', '/fs:fat32'], shell=True)
+# self.log.debug("Formating %s" % self.drive)
+# f.wait()
+# self.log.debug("Done, exit code: %d" % f.wait())
+
+ dd = os.path.join("tools", "dd.exe")
+ dd += " bs=8M" + " if=\"%s\" of=%s --progress" % (self.iso, self._get_device(self.drive))
+ self.log.debug(dd)
+ p = subprocess.Popen(dd,
+ shell=True,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ universal_newlines=True)
+
+ ppid = p.pid
+
+ self.pids.append(ppid)
+
+ # Updating progress bar by parsing /bin/dd output
+ while True:
+ line = p.stdout.readline()
+ if not line:
+ break
+
+ m = re.findall(patternCompiled, line)
+ if len(m) > 0:
+ current = float(re.sub(",", "", m[0]))
+ progress = (current/isosize)*100
+ progress = round(progress, 2)
+ progress_thread.update(progress)
+
+ self.pids.remove(ppid)
+
+ def terminate(self):
+ """ Terminate any subprocesses that we have spawned """
+ import win32api, win32con, pywintypes
+ for pid in self.pids:
+ try:
+ handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE,
+ False, pid)
+ self.log.debug("Terminating process %s" % pid)
+ win32api.TerminateProcess(handle, -2)
+ win32api.CloseHandle(handle)
+ except pywintypes.error:
+ pass
diff --git a/liveusb/gui.py b/liveusb/gui.py
new file mode 100755
index 0000000..9de97e5
--- /dev/null
+++ b/liveusb/gui.py
@@ -0,0 +1,270 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright © 2008 Red Hat, Inc. All rights reserved.
+# Copyright © 2008 Kushal Das <kushal@fedoraproject.org>
+# Copyright © 2009 Mandriva. All rights reserved.
+#
+# This copyrighted material is made available to anyone wishing to use, modify,
+# copy, or redistribute it subject to the terms and conditions of the GNU
+# General Public License v.2. This program is distributed in the hope that it
+# will be useful, but WITHOUT ANY WARRANTY expressed or implied, including the
+# implied warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU General Public License for more details. You should have
+# received a copy of the GNU General Public License along with this program; if
+# not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
+# Floor, Boston, MA 02110-1301, USA. Any Red Hat trademarks that are
+# incorporated in the source code or documentation are not subject to the GNU
+# General Public License and may only be used or replicated with the express
+# permission of Red Hat, Inc.
+#
+# Author(s): Luke Macken <lmacken@redhat.com>
+# Kushal Das <kushal@fedoraproject.org>
+# Aurelien Lefebvre <alefebvre@mandriva.com>
+
+import os
+import sys
+import logging
+
+from datetime import datetime
+from PyQt4 import QtCore, QtGui
+
+from liveusb import LiveUSBCreator, LiveUSBError, LiveUSBInterface, _
+try:
+ import dbus.mainloop.qt
+ dbus.mainloop.qt.DBusQtMainLoop(set_as_default=True)
+except:
+ pass
+
+
+class LiveUSBApp(QtGui.QApplication):
+ """ Main application class """
+ def __init__(self, opts, args):
+ QtGui.QApplication.__init__(self, args)
+ self.mywindow = LiveUSBDialog(opts)
+ self.mywindow.show()
+ try:
+ self.exec_()
+ finally:
+ self.mywindow.terminate()
+
+
+
+class ProgressThread(QtCore.QThread):
+
+ def set_data(self):
+ self.emit(QtCore.SIGNAL("maxprogress(int)"), 100)
+ self.emit(QtCore.SIGNAL("progress(int)"), 0)
+
+ def run(self):
+ return
+
+ def update(self, value):
+ # Never update to 100%
+ if value > 99:
+ tunned_value = 99
+ else:
+ tunned_value = value
+ self.emit(QtCore.SIGNAL("progress(int)"), tunned_value)
+
+ def terminate(self):
+ self.emit(QtCore.SIGNAL("progress(int)"), 100)
+ QtCore.QThread.terminate(self)
+
+
+class LiveUSBThread(QtCore.QThread):
+
+ def __init__(self, live, progress, parent=None):
+ QtCore.QThread.__init__(self, parent)
+ self.progress = progress
+ self.parent = parent
+ self.live = live
+
+ def status(self, text):
+ self.emit(QtCore.SIGNAL("status(PyQt_PyObject)"), text)
+
+ def run(self):
+ handler = LiveUSBLogHandler(self.status)
+ self.live.log.addHandler(handler)
+ now = datetime.now()
+ try:
+ if not self.live.drive:
+ raise Exception("No drive selected")
+ if not self.live.iso:
+ raise Exception("No ISO selected")
+
+ # Setup the progress bar
+ self.progress.set_data()
+ self.progress.start()
+
+ self.live.build_disk(self.progress)
+
+ duration = str(datetime.now() - now).split('.')[0]
+ self.status(_("Complete! (%s)" % duration))
+ self.progress.terminate()
+
+ except LiveUSBError, e:
+ self.status(e.message)
+
+ except Exception, e:
+ self.status(_("LiveUSB creation failed!"))
+
+ def __del__(self):
+ self.wait()
+
+
+class LiveUSBLogHandler(logging.Handler):
+
+ def __init__(self, cb):
+ logging.Handler.__init__(self)
+ self.cb = cb
+
+ def emit(self, record):
+ if record.levelname in ('INFO', 'ERROR'):
+ self.cb(record.msg)
+
+
+class LiveUSBDialog(QtGui.QDialog, LiveUSBInterface):
+ """ Our main dialog class """
+
+ def __init__(self, opts):
+ self.in_process = False
+ QtGui.QDialog.__init__(self)
+ LiveUSBInterface.__init__(self)
+ self.opts = opts
+ self.setupUi(self)
+ self.live = LiveUSBCreator(opts=opts)
+ self.populate_devices()
+ self.progress_thread = ProgressThread()
+ self.live_thread = LiveUSBThread(live=self.live,
+ progress=self.progress_thread,
+ parent=self)
+ self.connect_slots()
+ self.confirmed = False
+
+ # Intercept all liveusb INFO log messages, and display them in the gui
+ self.handler = LiveUSBLogHandler(lambda x: self.textEdit.append(x))
+ self.live.log.addHandler(self.handler)
+ if not self.opts.verbose:
+ self.live.log.removeHandler(self.live.handler)
+
+ def populate_devices(self, *args, **kw):
+ if self.in_process:
+ return
+ self.driveBox.clear()
+ self.textEdit.clear()
+ try:
+ self.live.detect_removable_drives()
+ for device, info in self.live.drives.items():
+ driveInfo = info['name']
+ if info.has_key('model') and info['model']:
+ driveInfo += " - %s" % info['model']
+ if info.has_key('capacity') and info['capacity']:
+ driveInfo += " (%s Mb)" % str(int(info['capacity'])/1000000)
+ self.driveBox.addItem(driveInfo)
+ self.check_startbutton_state()
+ except LiveUSBError, e:
+ self.textEdit.setPlainText(e.message)
+ self.check_startbutton_state()
+
+ def connect_slots(self):
+ self.connect(self.isoBttn, QtCore.SIGNAL("clicked()"), self.selectfile)
+ self.connect(self.startButton, QtCore.SIGNAL("clicked()"), self.begin)
+ self.connect(self.live_thread, QtCore.SIGNAL("status(PyQt_PyObject)"),
+ self.status)
+ self.connect(self.live_thread, QtCore.SIGNAL("finished()"),
+ lambda: self.enable_widgets(True))
+ self.connect(self.live_thread, QtCore.SIGNAL("terminated()"),
+ lambda: self.enable_widgets(True))
+ self.connect(self.live_thread, QtCore.SIGNAL("progress(int)"),
+ self.progress)
+ self.connect(self.live_thread, QtCore.SIGNAL("maxprogress(int)"),
+ self.maxprogress)
+ self.connect(self.progress_thread, QtCore.SIGNAL("progress(int)"),
+ self.progress)
+ self.connect(self.progress_thread, QtCore.SIGNAL("maxprogress(int)"),
+ self.maxprogress)
+ if hasattr(self, 'refreshDevicesButton'):
+ self.connect(self.refreshDevicesButton, QtCore.SIGNAL("clicked()"),
+ self.populate_devices)
+
+ # If we have access to HAL & DBus, intercept some useful signals
+ if hasattr(self.live, 'hal'):
+ self.live.hal.connect_to_signal('DeviceAdded',
+ self.populate_devices)
+ self.live.hal.connect_to_signal('DeviceRemoved',
+ self.populate_devices)
+
+ def progress(self, value):
+ self.progressBar.setValue(value)
+
+ def maxprogress(self, value):
+ self.progressBar.setMaximum(value)
+
+ def status(self, text):
+ if isinstance(text, Exception):
+ text = text.message
+ self.textEdit.append(text)
+
+ def enable_widgets(self, enabled=True):
+ if(enabled == False):
+ self.startButton.setEnabled(enabled)
+ else:
+ self.check_startbutton_state()
+ self.driveBox.setEnabled(enabled)
+ self.isoBttn.setEnabled(enabled)
+ if hasattr(self, 'refreshDevicesButton'):
+ self.refreshDevicesButton.setEnabled(enabled)
+ self.in_process = not enabled
+
+ def get_selected_drive(self):
+ return str(self.driveBox.currentText()).split()[0]
+
+ def begin(self):
+ """ Begin the liveusb creation process.
+
+ This method is called when the "Create LiveUSB" button is clicked.
+ """
+
+ r = QtGui.QMessageBox.warning(self, _("Warning"), _("All the data on the USB stick are going to be eaten"), QtGui.QMessageBox.Ok | QtGui.QMessageBox.Cancel);
+ if(r == QtGui.QMessageBox.Cancel):
+ return;
+
+ self.enable_widgets(False)
+ self.live.drive = self.get_selected_drive()
+
+
+ # Remove the log handler, because our live thread will register its own
+ self.live.log.removeHandler(self.handler)
+
+ self.live_thread.start()
+
+ def selectfile(self):
+ isofile = QtGui.QFileDialog.getOpenFileName(self, _("Select Live ISO"),
+ "..", "ISO (*.iso)" )
+ if isofile:
+ try:
+ self.live.set_iso(isofile)
+
+ except Exception, e:
+ self.live.log.error(e.message.encode('utf8'))
+ self.status(_("Unable to encode the filename of your livecd. "
+ "You may have better luck if you move your ISO "
+ "to the root of your drive (ie: C:\)"))
+
+
+ if not self.live.is_hybrid(self.live.iso):
+ self.status(_("The selected iso isn't hybrid"))
+ self.live.iso = None
+ else:
+ self.status("Iso " + _("selected"))
+ self.check_startbutton_state()
+
+ def check_startbutton_state(self):
+ if self.live.drives != {} and self.live.iso:
+ self.startButton.setEnabled(True)
+ else:
+ self.startButton.setEnabled(False)
+
+ def terminate(self):
+ """ Terminate any processes that we have spawned """
+ self.live.terminate()
diff --git a/liveusb/linux_dialog.py b/liveusb/linux_dialog.py
new file mode 100644
index 0000000..ddf6f11
--- /dev/null
+++ b/liveusb/linux_dialog.py
@@ -0,0 +1,77 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'data/liveusb-creator-linux.ui'
+#
+# Created: Mon Dec 29 19:22:24 2008
+# by: PyQt4 UI code generator 4.4.3
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore, QtGui
+from liveusb import utf8_gettext as _
+
+class Ui_Dialog(object):
+ def setupUi(self, Dialog):
+ Dialog.setObjectName("Dialog")
+ Dialog.resize(430, 388)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(Dialog.sizePolicy().hasHeightForWidth())
+ Dialog.setSizePolicy(sizePolicy)
+ self.startButton = QtGui.QPushButton(Dialog)
+ self.startButton.setEnabled(True)
+ self.startButton.setGeometry(QtCore.QRect(112, 348, 209, 34))
+ self.startButton.setObjectName("startButton")
+ self.textEdit = QtGui.QTextEdit(Dialog)
+ self.textEdit.setGeometry(QtCore.QRect(8, 200, 409, 111))
+ font = QtGui.QFont()
+ font.setPointSize(8)
+ self.textEdit.setFont(font)
+ self.textEdit.setReadOnly(True)
+ self.textEdit.setObjectName("textEdit")
+ self.progressBar = QtGui.QProgressBar(Dialog)
+ self.progressBar.setGeometry(QtCore.QRect(10, 320, 405, 23))
+ self.progressBar.setProperty("value", QtCore.QVariant(0))
+ self.progressBar.setTextVisible(True)
+ self.progressBar.setObjectName("progressBar")
+ self.groupBox = QtGui.QGroupBox(Dialog)
+ self.groupBox.setGeometry(QtCore.QRect(12, 80, 161, 51))
+ font = QtGui.QFont()
+ font.setPointSize(8)
+ self.groupBox.setFont(font)
+ self.groupBox.setObjectName("groupBox")
+ self.isoBttn = QtGui.QPushButton(self.groupBox)
+ self.isoBttn.setGeometry(QtCore.QRect(11, 18, 141, 25))
+ self.isoBttn.setObjectName("isoBttn")
+ self.groupBox_2 = QtGui.QGroupBox(Dialog)
+ #self.groupBox_2.setGeometry(QtCore.QRect(10, 140, 201, 51))
+ self.groupBox_2.setGeometry(QtCore.QRect(10, 140, 261, 51))
+ font = QtGui.QFont()
+ font.setPointSize(8)
+ self.groupBox_2.setFont(font)
+ self.groupBox_2.setObjectName("groupBox_2")
+ self.driveBox = QtGui.QComboBox(self.groupBox_2)
+ #self.driveBox.setGeometry(QtCore.QRect(10, 20, 181, 25))
+ self.driveBox.setGeometry(QtCore.QRect(10, 20, 241, 25))
+ self.driveBox.setEditable(False)
+ self.driveBox.setInsertPolicy(QtGui.QComboBox.InsertAtTop)
+ self.driveBox.setDuplicatesEnabled(False)
+ self.driveBox.setObjectName("driveBox")
+ self.label = QtGui.QLabel(Dialog)
+ self.label.setGeometry(QtCore.QRect(0, 0, 431, 72))
+ self.label.setPixmap(QtGui.QPixmap(":/mageia-liveusb.png"))
+ self.label.setObjectName("label")
+
+ self.retranslateUi(Dialog)
+ QtCore.QMetaObject.connectSlotsByName(Dialog)
+
+ def retranslateUi(self, Dialog):
+ Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "usbdumper", None, QtGui.QApplication.UnicodeUTF8))
+ self.startButton.setText(QtGui.QApplication.translate("Dialog", _("Create Live USB"), None, QtGui.QApplication.UnicodeUTF8))
+ self.groupBox.setTitle(QtGui.QApplication.translate("Dialog", _("Use existing Live CD"), None, QtGui.QApplication.UnicodeUTF8))
+ self.isoBttn.setText(QtGui.QApplication.translate("Dialog", _("Browse"), None, QtGui.QApplication.UnicodeUTF8))
+ self.isoBttn.setShortcut(QtGui.QApplication.translate("Dialog", "Alt+B", None, QtGui.QApplication.UnicodeUTF8))
+ self.groupBox_2.setTitle(QtGui.QApplication.translate("Dialog", _("Target Device"), None, QtGui.QApplication.UnicodeUTF8))
+
+import resources_rc
diff --git a/liveusb/resources_rc.py b/liveusb/resources_rc.py
new file mode 100644
index 0000000..a1ee2ae
--- /dev/null
+++ b/liveusb/resources_rc.py
@@ -0,0 +1,2087 @@
+# -*- coding: utf-8 -*-
+
+# Resource object code
+#
+# Created: ven. avr. 3 16:57:44 2009
+# by: The Resource Compiler for PyQt (Qt v4.4.1)
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore
+
+qt_resource_data = "\
+\x00\x00\x7c\x30\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x01\xae\x00\x00\x00\x48\x08\x06\x00\x00\x00\xae\x9f\x11\xb1\
+\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
+\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\
+\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x04\x03\
+\x0e\x16\x2f\xa3\x07\x4b\xed\x00\x00\x20\x00\x49\x44\x41\x54\x78\
+\xda\xb4\xbd\x77\xb4\x65\xe7\x55\x27\xf8\xdb\xe7\x9e\x1b\xdf\x7d\
+\x39\x56\x4e\xaa\x52\x49\x55\x2a\x95\x2c\x95\x54\xca\xc1\x92\x25\
+\x5b\x96\x25\x8c\x31\x16\x36\xb6\x19\x4c\x18\x30\x34\xdd\x34\xcc\
+\x5a\xd3\x0c\x0b\x7a\x4d\xf7\xb0\xda\x0c\x30\x03\x83\x6d\xda\x18\
+\xb0\x9c\x01\x83\x83\xb0\xdd\xc8\x72\x92\x6d\x2c\x95\xad\x52\x28\
+\x59\xa5\x52\xe5\xf0\xea\xe5\x78\xd3\xb9\xe7\x7c\x7b\xfe\x38\xf7\
+\x9c\xf3\xc5\xfb\x9e\x68\xf3\xbc\xca\xaa\x70\xef\x89\xdf\xb7\xc3\
+\x6f\xff\xf6\x6f\xd3\x81\xff\xf0\x03\x7e\xeb\xe1\x6b\x00\x00\xe4\
+\x01\x00\xc0\xc9\xff\x11\x40\x00\x98\xe3\xbf\x07\x21\xfb\xe1\xec\
+\xcf\x04\xea\x7c\x49\xfb\x21\xe9\x3b\x6c\xff\x88\xfa\x71\xee\x7c\
+\x94\x90\x7d\x3a\xfe\x7d\x72\x0d\xd4\xf9\x3f\xd6\x2e\x25\xbb\x48\
+\xfb\x79\x98\x59\xbb\x30\x36\xee\x83\x39\xfb\xb6\x72\x7c\x96\xcf\
+\xc5\xb0\x9d\x48\xfe\x7b\xe5\xf3\xda\xc5\xb0\xf6\x1b\xd6\xfe\x95\
+\xa5\x2f\xca\x9f\x65\xb2\x9c\x53\xb9\x5e\x72\x1c\xc3\x7c\x01\x2c\
+\x7d\x8e\x99\x00\xe2\xce\x3f\xcb\x9f\x21\xf3\xaa\xd8\x7c\x16\xc9\
+\x93\x64\xce\x6e\x96\x3b\xeb\x06\x0c\x08\x65\x41\x49\xe7\x4d\x1f\
+\xba\x74\x06\x96\xaf\x3e\x7b\x47\xc6\xf3\xd7\xee\xc3\x38\x85\xb6\
+\x66\x99\xd5\xef\xb0\xf6\x22\x58\x59\x9b\xea\x7b\x64\xed\x80\x4c\
+\xfa\x77\xb5\xf7\xee\x78\xaf\xd9\xf1\xb2\xeb\x65\x56\x56\xa2\xb6\
+\x3e\x58\x79\xc7\xc9\x32\x65\xd6\xd7\x54\x72\x42\xca\xee\x0d\xea\
+\x85\x30\x91\xb4\x1e\x58\x5b\x7f\xac\x2c\x0f\xd6\xae\x97\xb8\xcb\
+\x7e\xd0\xb6\x51\x72\x2c\x62\xf9\x6d\x5b\x36\x81\xfe\x0e\x88\x6d\
+\x1f\x89\x9f\x2d\x99\xcf\xd6\x7c\xfb\xfa\x5e\xd4\xf6\x14\x1b\x97\
+\x6b\x1e\xc3\xf6\x4c\x41\x9a\xdd\xb0\x9d\x43\x5e\x24\x64\x59\x43\
+\x5d\xac\x1e\x4b\xb6\x8c\xd9\xfa\x7d\xf9\xf0\x24\x19\x2b\xc3\x0e\
+\x91\x69\x60\xb2\xdf\x52\xfa\x9c\xed\x0f\x89\xb5\xbb\x76\x1d\x8b\
+\xd6\x78\xd8\xe6\x7e\x25\x75\x9b\xdb\x9e\x90\xd5\x60\x67\x4b\xa3\
+\x73\x6e\x52\x8c\x34\x7c\xd9\x96\x0b\x69\x13\x90\xb1\x98\xd5\x87\
+\x4b\x60\x30\x13\x28\x75\x37\xb2\x5f\xe0\xd4\xa1\x99\x0e\x43\x7f\
+\xd2\xd2\x26\xd5\xbc\x23\x03\x20\xe2\xec\x7a\x28\xb9\x09\x8b\x77\
+\x92\x8c\x25\xd9\x9e\x29\x41\xb1\xfe\x6b\x2d\x47\x18\x57\x1d\x9b\
+\x69\xc2\x7a\x1d\x31\x19\x17\xc3\x70\x3c\x8a\x2e\x67\x75\x6c\x15\
+\x63\x83\x91\xea\x3a\xcd\x55\x68\xbe\xa4\xf4\xbe\x52\x67\xd3\xb1\
+\xca\xfa\xf1\x49\xda\x80\x44\x6a\x20\x91\x9e\x86\x58\xdd\x1f\xfa\
+\x7e\xd6\x36\x37\xb1\xb9\x25\x18\xdd\xde\x9d\xfc\xa2\xe5\x93\x4b\
+\xeb\x51\xfe\x36\x65\x6b\x2b\x0d\x76\x38\xfe\x2a\x21\x76\xa8\x2c\
+\x1d\x2f\x3d\x85\x16\x21\xa4\x7f\xd2\x36\x8e\xfe\x8e\xe2\xe7\xc7\
+\x9a\x21\x52\xa3\x2c\x52\xc2\x33\x69\x9f\x18\x0e\x3b\x39\x5e\xbc\
+\x5f\x59\x90\xb6\x6b\xa4\xfd\x42\x9d\xe3\x93\xfc\xae\xb4\x87\xc7\
+\xb6\xb7\xce\xe9\xde\x26\xc7\xb3\x8e\x0f\x4d\x66\xc4\x45\xf6\x1d\
+\x93\x1e\x9b\xd8\xee\x51\x5c\x4b\x9c\x09\xee\xc8\x97\xad\x31\xb3\
+\x7d\x9f\x70\xba\x3c\xd8\xb9\x93\x64\xa3\xdb\x79\x17\xc4\xb0\xbd\
+\x5e\xee\xb2\x7f\x48\x3e\x46\xba\x1e\xd9\xf0\xcc\x04\xca\x96\x94\
+\x61\xd5\xd5\x75\xe1\x72\x12\x46\xb0\xce\x6e\xd3\xc5\x5a\xce\x90\
+\xda\x50\xed\xb3\x36\x1b\xe2\x76\x62\xe4\xf8\xac\xfd\x62\xac\xf7\
+\xc3\x6e\x2b\x66\x7b\xf8\x69\x40\x4c\x76\x33\xe6\xeb\x6b\x32\xd9\
+\x03\xe9\x5a\xd2\xbd\x34\x31\xec\x79\x09\x94\x0d\x87\x8e\x71\x20\
+\x82\x35\x72\x57\x8d\x8f\xdd\xfb\xa7\xcb\x96\xb4\xd0\x94\xa1\x99\
+\x00\x2d\xb5\xb3\x3a\x0b\xd2\x32\x2b\xdb\x5a\x22\x98\x4b\x9e\xb5\
+\x8d\x48\x59\x06\xa4\x3c\x68\x92\x22\x63\xb2\x06\x42\xb6\xd7\x4d\
+\x64\x31\x34\x7a\xd8\xaa\xd9\x6a\xc5\x98\xb2\x6b\x33\xb3\xf1\x3d\
+\xf5\x9c\x99\x23\x62\x96\x0c\x77\x1a\x00\xe8\x6f\x98\xa0\x7b\x18\
+\xf9\x8e\x93\xe0\x22\x8d\xbc\xe5\x05\x17\xef\x1e\x35\x22\x4f\xef\
+\x5b\x0a\x7d\x48\x8d\x2e\xd9\x92\x66\xca\x0e\xda\x78\x76\xd2\xcd\
+\x2a\x0b\x5f\xf2\xa8\x69\xf4\xdd\x71\x56\x82\xc9\xcc\x28\xba\x04\
+\x17\xe6\x39\x33\x03\xa5\x18\x7d\x69\xcd\xb3\x65\x3d\x7a\x60\x44\
+\xd9\xa3\x01\xb1\xea\x7a\x8d\xa0\x2c\x8d\x29\xb5\xcd\xad\xa6\x96\
+\xe6\x35\x12\x5b\xd7\x40\xb6\x66\x63\x37\xce\xe4\xca\x4a\xcc\xfd\
+\x4b\xce\x2c\x85\x0c\x47\x64\x09\xa9\x8c\xf7\xe8\xb8\x6b\x03\x25\
+\x20\xdb\xfb\x90\x1e\xb8\x60\x75\xfb\x53\x17\xb3\x9a\x3e\x1b\x2d\
+\xd9\x21\xe9\x7a\xc8\x9a\xff\x5b\x9e\x49\x7a\x71\xac\xda\x41\xd9\
+\xe0\x90\x25\xd8\x49\xce\xc4\x7a\x28\x4d\xd6\x20\x81\x2c\x6b\xd5\
+\x1d\x14\x74\xee\x84\xdd\x2e\x47\xf7\x88\x6e\xf7\xc4\xca\x73\xb1\
+\x5d\x04\x2b\xa1\xcb\x7a\x82\x73\x8b\x27\xb6\x7d\xde\xc8\x16\x49\
+\xce\xb8\x38\x8b\x3e\xf4\x05\xc3\xae\x1c\x2e\xd9\x6c\xa6\x8b\x97\
+\x8f\x23\xd8\x11\x1b\xb1\xb9\x80\xed\x46\x8c\x2c\xf7\x16\xaf\x34\
+\xa1\xf8\x76\xfb\x12\xb3\x3a\x0b\xf9\xac\x04\x78\x3a\xb4\x41\x00\
+\x09\xb2\x64\x6a\xd2\xbf\x33\x5b\xb2\x64\x52\x17\x1a\xec\x59\x07\
+\x03\x70\xad\x53\xf9\x43\xfa\x12\x67\x4b\xbe\x98\xfa\x2e\x56\x23\
+\x34\xb6\xec\x72\x25\x6d\x97\x23\x6f\xb2\x84\x98\x8a\xe3\x89\x23\
+\x52\xe1\xc4\x82\x19\x06\xc8\x47\x7a\x36\x4d\x96\xb8\x80\xa1\x86\
+\xa3\xd2\x75\xb1\x3b\x3a\xb7\xc1\x57\xe0\x24\x1b\xcc\xb2\x89\x74\
+\x2b\xc9\x01\x4b\x07\x0e\x4f\x6e\xc6\xb3\x05\x6e\x96\x95\xe9\x78\
+\xab\xa9\xf1\x97\xd7\x53\x1c\x73\x90\x61\xa4\xf5\x3b\xf5\x8c\xf5\
+\x41\x2a\xbc\xa3\x04\x8f\x6c\x71\x16\x6a\xb4\x9a\xac\x85\xd8\x4e\
+\x92\x25\x6b\xc8\xae\x8a\x3b\xde\x8d\xb2\xbc\xa0\xbb\x91\xa6\x04\
+\x41\x51\x37\x23\xb1\x03\xc1\x20\x3b\x8c\x45\x16\x67\xe5\x74\x96\
+\xf6\x28\x21\x79\xd9\x19\xfc\xc9\xa4\x64\x26\x7a\xf4\xc1\x52\x66\
+\xeb\x4c\xfd\xac\x58\x25\x65\xa7\x21\x3b\xc4\xa2\x5e\xa2\x74\x77\
+\x8e\x98\x5a\x0f\x61\xb3\xc0\xc5\xe6\xd8\xec\xce\xdc\xc8\x68\xc8\
+\x12\xbb\x31\xac\xa8\x96\xd5\xfb\x77\x41\x32\xad\xe8\x0f\xaf\x01\
+\x0a\x91\x9a\xa4\x90\xf5\x11\xb3\x96\x50\x38\xb2\x0a\x62\xeb\xe5\
+\xfb\xe8\x2c\x46\x26\x21\xe5\x0d\xda\xb5\x59\x33\x44\x72\xd4\x6d\
+\x6c\x5b\x54\xab\xd3\xa4\x5b\x45\xdd\xe0\xba\xe7\x95\xb1\x69\xb2\
+\x19\x59\x62\xcb\xbd\xb2\x33\x95\x26\x39\x5b\x24\xdb\x75\x75\x8f\
+\x38\x5d\xf1\x05\xa7\x91\x70\x27\x8a\xd7\x96\x56\xfa\xfc\xc9\x5e\
+\xb3\xd2\x5c\x8e\xf5\x42\x88\x2c\xd0\x0c\xa3\xab\x83\xd6\x13\x77\
+\x03\x37\xb6\xbd\x52\x76\xfb\x14\xea\x06\x91\xca\x3b\x98\x5c\xbe\
+\x8d\x94\xac\x81\x58\x82\x7f\xb5\x85\x24\x9b\x52\xfd\x5a\x6c\xf5\
+\x3e\xdd\xc8\xad\xb9\x3d\x3d\x35\x83\x27\x3d\xcb\xd7\xe1\x56\xe5\
+\x5d\x90\xe4\x44\x2c\x1f\x92\x50\xe2\xc4\xe0\x91\x81\x88\x91\xf2\
+\xc6\x75\x04\x29\xf9\x2c\xeb\x17\x26\x45\x05\xae\xfa\x89\x61\xef\
+\x95\x22\x0f\x69\xf7\xa9\x5d\xaf\x7e\x37\x9a\x41\x30\x22\x6f\x62\
+\x0b\x1c\xc9\x1a\xb2\x4b\x0e\x80\x5e\x37\xa6\x7a\x36\x95\x05\x60\
+\xa4\xc3\x48\xd2\x09\x88\xac\x95\x83\xae\xf9\x1c\xe9\xd9\x5f\xba\
+\xc1\x84\xf2\x20\x5d\xf0\x9c\x9c\xe8\x12\xb9\xef\x8e\xd8\x76\x7b\
+\x6a\xe6\xca\x5a\x80\xa5\xa2\x3b\xac\xc4\xee\x19\xb2\xd3\x1d\xb6\
+\x33\x30\x1f\x32\xaa\x3d\xf6\x62\xa5\xe4\x03\xd4\xca\xb9\x35\x49\
+\xb3\x39\x00\xcb\x73\x20\x0b\xca\x46\x96\x4c\x86\x0c\xd0\x49\x4f\
+\x4b\xb8\xf3\xbe\xfc\x38\xf8\x64\x75\xfd\x69\xd0\x02\x69\xce\x27\
+\x89\x31\x85\x6d\x0d\x5a\xe0\x3e\xeb\xcd\xb0\xdd\x2b\x6a\x75\x7c\
+\xc5\xd9\x64\xf7\xde\x89\x40\x05\x75\x5d\x91\x7a\x36\x27\x5b\x3f\
+\x72\x15\xf5\xa5\x9a\x01\xeb\x38\x8d\x06\x3b\x32\x9b\xc6\x4b\x85\
+\x34\xd4\x40\x80\x6c\x86\x46\xb6\x01\x92\x23\x96\xb3\x16\x66\x1d\
+\xeb\x27\xcb\x22\xe1\x6c\xa3\xb1\x59\xeb\x60\x87\x83\x92\x3d\x81\
+\x1a\x42\xb0\x52\x82\xd0\xe1\x4c\xd2\x5c\xad\x1a\xe5\xb3\x5a\x9d\
+\x48\xa3\x2e\xce\xa0\x68\xa5\x6e\x24\xfb\x09\x36\xcc\x23\xeb\x65\
+\x2d\xd9\xd5\x4b\x9b\x90\x35\x98\x24\x7d\x98\x4c\x96\xc7\xdd\x79\
+\x87\x82\x0d\x83\x9f\x9e\x9d\xd8\x40\x02\xd8\x92\x99\x58\xb7\xab\
+\xa7\x60\x95\xd9\x51\x1c\x10\xb9\xd5\x71\x6a\xb8\x4b\x1a\xf4\x93\
+\xdd\x80\x33\x6c\xd7\x6b\xd6\x10\x48\x37\x96\x1a\x7a\x20\xd7\xf3\
+\x52\x43\x29\xd9\x1e\xd7\x9e\x96\x42\x0d\x1b\x55\x48\x75\x30\x5a\
+\x46\x40\x2e\x52\x8b\xad\xf8\x4f\x66\xd1\xc4\x0e\x5f\x76\x83\xf8\
+\xd4\xfb\x25\x36\xc0\x47\xc3\xee\xb3\x25\xd1\x75\x9e\x49\x7e\x48\
+\x99\xd1\xb4\x67\x76\xb6\x42\x89\x25\x9b\x21\x47\xe5\x8e\xac\x8f\
+\x94\xed\x08\x0f\xd9\xea\xb6\xb6\x73\xd9\xef\x8e\x25\x1e\x44\xea\
+\xc5\x88\x55\x53\x6e\x09\xc0\x08\x6b\x94\xdd\x95\xe7\xa5\x05\xbc\
+\x30\x9d\xad\xaf\x2c\x3b\x5e\x2b\x65\xd4\x8e\xaf\x31\xfd\x6c\x1e\
+\x5d\x48\x0f\x47\x7d\xc0\xac\x7d\x81\x8d\x82\x75\x7a\x4d\x92\x01\
+\x11\xcc\xd6\x64\x5a\x67\xa9\x59\xef\xc1\x45\x2f\x22\xcb\xa2\x61\
+\xb2\x3e\x60\x85\xf9\x28\xd5\xde\xba\x91\x0a\x94\x28\x85\xbb\x7c\
+\x3e\x31\x99\x94\xa1\x21\x19\x9b\x4c\x86\x21\x2c\x59\x8a\x65\xe5\
+\x64\x91\x37\x77\x07\xbb\x88\xad\x0b\xdc\x81\xd4\x49\xaf\xd7\x0e\
+\xd1\x30\xcc\xc5\x0a\x23\x47\x85\x0a\x75\x24\x91\x39\x43\x81\xb2\
+\xba\xf8\x79\x2d\xc8\x22\x47\xf0\x49\x5d\xd7\x2e\xbc\xec\xbc\x0c\
+\xfd\x7d\xaa\x99\x8d\x61\x94\xe5\x6c\xca\xc0\xc6\xd8\xf2\xac\xd9\
+\x6a\xdb\x00\x82\xd0\xc8\x24\x96\xaa\x02\xb8\xe3\x0c\xad\x50\xa9\
+\x52\xcb\x72\xa4\x07\xd2\x33\x25\xa5\x5e\xa6\xc3\xa2\x6c\xa4\x5d\
+\xe4\x32\xff\x72\xd2\x94\x04\x6a\xc4\xd6\xd2\x35\x5b\x83\xc0\x6e\
+\x39\x32\x69\xd1\x77\x16\x71\xc3\xb8\x22\xed\x9a\x93\x6b\x60\x32\
+\x8a\x04\x70\x86\x81\x30\x60\x2a\x62\x5a\xc3\xd1\x10\x74\x60\x58\
+\xb1\x48\xa4\x05\x66\x44\xce\x40\x1f\x6c\x54\x26\xdc\xcf\x4a\xd9\
+\x6f\x16\x4b\xaf\x07\x6b\xa4\xad\x0d\x2b\x2b\x07\x46\x7d\x5d\x2e\
+\x31\x29\xe1\x2d\xb1\xf3\x1d\x92\x51\x94\x61\xbb\xd3\x22\x13\xbd\
+\x73\x03\x67\x6a\xc8\xea\x27\x7f\x27\xe4\x88\xdf\x49\x6f\xd7\x48\
+\x0a\xa9\xb3\x32\xc9\x0b\x66\x4e\x9d\x19\x5f\x96\x36\x59\xd7\x62\
+\xac\x8e\xeb\x77\xc2\x61\xa1\x3d\x04\x9d\x4c\x60\x0b\x24\x98\x45\
+\x66\x36\x95\xb4\xd5\x06\x10\x3b\x70\x7b\xcd\x40\xa9\xa9\xac\x9d\
+\xd5\xc5\xb6\x05\xa7\xf7\x18\x30\x9b\x5b\x91\x6c\x11\x49\xc6\x8a\
+\x20\x8e\x89\x06\xfa\xbd\xaa\x05\x5c\x4e\x99\x61\xea\x75\xd9\x59\
+\x54\xeb\x2b\x47\xdb\x03\x1b\x32\x6a\x44\x5d\x60\x3d\x65\x9b\x99\
+\xf5\x43\xf3\x45\xb2\x15\x6a\xe9\x1e\x4e\x93\x3b\xb8\xb1\x6d\x09\
+\x99\x8d\xa6\x45\x89\x6a\x26\x66\x46\xfb\xee\x14\x3a\xb1\xa1\x26\
+\x2f\x95\xb5\xba\x97\x27\x31\x78\x19\xb6\x0d\xcd\x56\x86\xa3\xfe\
+\x88\xd8\xf6\xdc\xc9\x05\x2a\x91\x03\x9a\x25\x33\xb0\xb0\xf3\xa3\
+\x1c\x51\xb1\xa5\xdd\x24\x39\x06\x9b\xfb\x97\x35\x78\xc8\x1e\x28\
+\xb3\xb5\x14\xec\x7c\x11\x4c\x3a\xf8\x6e\x25\xcf\x98\x81\xb4\xbe\
+\x5f\xd9\x01\x53\xa8\xd7\x9b\x05\x74\x6c\xf9\xa8\x5a\x93\xb3\xd5\
+\xf9\xe4\x10\x82\x60\xd9\x9b\xa4\x87\x3a\x56\x8e\xa9\x35\xad\x51\
+\xcb\x6d\x2e\xd8\xd6\x1d\x5c\xa9\xc8\x9b\x25\xb2\x65\xdd\x7e\x6a\
+\xf9\x19\x39\x4a\x0d\xec\xc0\xb9\x95\x00\xce\x5e\x16\xe8\x40\x85\
+\x64\xc5\x2a\xed\x97\x29\x6d\x42\x9b\x81\x66\xee\x52\x70\xd1\xf1\
+\x5a\xcd\x1c\x69\x86\x98\xe5\x62\x50\xc2\xde\xb2\xd4\xd6\x74\x46\
+\x8e\x3b\x73\xb4\xf4\x3e\x18\x54\x51\x4b\x44\x61\x45\x00\x28\xe3\
+\x7d\xbb\x3e\xa3\x6f\x14\xb6\x05\x18\x2c\x31\xf9\xd6\x72\x16\xa4\
+\xc2\x62\x06\x64\x42\x56\xcf\x69\xa5\x9a\xb3\x2b\x8f\xd1\x6a\x19\
+\xd6\x8c\x4d\xdd\x66\x19\xbb\x50\x42\xe1\x29\x33\xc8\xa9\xa1\xb6\
+\x51\xd7\x98\xd7\x66\x5b\xea\xb0\x81\x33\xd8\x50\x37\x35\x9b\x7b\
+\x41\x22\x27\xa8\x70\x2e\x14\xe7\x95\xa5\xc9\x24\xb4\x4c\x41\xaa\
+\xd5\x11\x69\xfd\x85\xba\x21\x61\x33\xbb\x55\x58\x81\x56\xd6\xa4\
+\xa3\x9e\xab\x78\x53\x36\xb0\x98\x98\x1d\x2a\x23\x45\x6b\x38\x6c\
+\x52\x1f\xb6\x92\xc5\x91\xda\x1b\xd6\x1d\xd2\xb4\x27\x4b\x4a\x5d\
+\x8b\x55\x27\xd8\xb5\x56\xea\x5c\xfa\x64\x14\x02\x55\x38\x5a\xa2\
+\xd5\xa4\xef\x85\xd6\x1d\x7a\x29\x06\xdd\x6a\xf4\xb9\x6b\x6b\x49\
+\xb2\x16\x99\x2d\x7b\xa6\x03\x9d\x10\xe9\x6d\x15\xdc\x05\xf8\x5b\
+\x03\xef\x62\xb3\x2e\x25\x3b\x0a\x96\xf6\x16\x75\xf6\x69\x46\xf1\
+\x22\x18\x6c\x09\x1b\x2e\x8f\x6e\xac\x4c\x86\x91\x0e\x5b\x1f\x2d\
+\x19\xf5\x4c\x32\xea\xb3\x16\x1b\xa6\xa1\x4e\xea\xbd\x33\xbc\x6c\
+\x15\x71\xda\xdc\xa8\x47\x7e\x8a\x0d\x67\x4e\x33\xac\xe4\x33\x82\
+\x59\x89\xc4\x58\x82\xe6\x58\x72\x42\x31\x84\xc0\xe9\x3b\x4b\xcf\
+\x97\x1c\x13\xd9\x35\xa8\xf5\x81\xec\x64\x42\x4a\x3d\x43\x11\xa1\
+\x56\x6f\xe2\xbe\x7d\x84\xdf\x7c\xb0\x98\x2d\x1e\xeb\xff\xa4\x6b\
+\xeb\x94\xbb\x12\xc8\x48\xa0\xd3\xd7\xc3\xdc\xa9\xdc\x09\xe5\x46\
+\x8c\xef\xeb\x66\xa6\x4b\x6e\xaf\x73\x13\x58\x0e\xe3\x89\xdc\x5f\
+\x58\x03\x2a\x20\x25\xdf\xec\x1c\x2b\xbd\x9c\xec\xcf\xf1\x39\x79\
+\xcd\x8d\x0b\xa9\x2d\x98\xb4\xbf\x27\xe9\xd8\x59\xd1\xab\xd3\x9f\
+\x42\x72\x3b\x71\xb6\xda\x62\x86\x9f\xdc\x14\x4b\x9d\x5b\xd6\x36\
+\x8b\xf6\x0c\xc8\xa8\xe0\xb9\x0b\x0d\xe4\xa8\x39\xa4\xf7\xac\xd7\
+\x47\x13\xbc\x83\xf4\xf2\x2a\x67\x24\x03\x4a\x9e\x2e\x65\x50\x22\
+\xc1\x52\xf4\xce\xf2\x27\x1d\x9e\x57\x6e\x4d\x7a\x35\xdd\x43\x05\
+\xfd\x18\x64\xf4\x1f\x19\x97\xcb\xa4\xc0\x30\xe8\x56\x3b\x40\xb7\
+\x3a\x46\x92\xcf\x78\xd2\x7b\x24\xc9\x60\x90\xf9\x82\x48\xa6\xd3\
+\xdb\x0a\x32\x6c\x18\x34\x52\xbf\xac\x7e\x9b\x65\x58\xd2\x51\x63\
+\x21\xc3\xae\x69\xdf\x63\x85\x95\x6c\x3e\x77\x86\xf3\x92\xe5\xdb\
+\x93\x2e\x3d\x5d\x0b\xe4\xfa\x02\x2b\x8e\x9e\xac\xbb\x0a\x4a\x8d\
+\x30\x83\x4d\x75\xd8\x68\xad\x35\x22\xd9\xcf\x35\x62\x5b\xfd\x16\
+\x49\x07\x35\x49\xdb\xeb\x0c\xb3\x27\x44\x7b\x5c\x76\x57\xab\x39\
+\x0c\x09\xba\xe7\x35\x5b\x94\x6c\x46\x4f\x3d\x8b\xdc\x7b\x29\x7f\
+\xd6\xb7\xe6\x23\x7a\x63\x27\xd9\x0a\x58\x9a\xd7\x94\xa1\xba\x0e\
+\x16\x20\xc8\x12\xe1\xea\x88\xba\xd1\x36\xc5\x56\xc7\xce\x72\x66\
+\xd2\x81\xfe\x9a\x2b\x4d\x8c\x94\x9a\xb8\x73\x5f\x7f\x7c\x3e\x89\
+\xad\xb8\x76\x05\x94\xed\x0e\xdf\xf1\x84\x53\x18\x85\xcc\x8c\x93\
+\x5d\x41\xc6\xba\x50\x7c\x72\x76\xe1\xcb\x51\xb0\x9d\xb1\x9e\x35\
+\x78\xcb\x11\x57\x7a\x8d\x6c\x76\xae\xdb\x53\x2b\x32\xeb\x1e\x6c\
+\x84\xb5\x96\x1d\xc5\x96\x2c\x5f\x25\x88\xc8\x10\x27\x4b\x86\x29\
+\xab\x33\xb1\x14\x91\xea\x0a\x29\x52\x45\x42\x07\xdb\xd9\x2c\x74\
+\x93\x15\x67\x55\x15\x04\xd8\x55\x40\x5f\xa3\xa2\x2f\xc3\x88\x8a\
+\x52\x0c\x59\x7a\x75\xd8\xec\x5f\x52\x9e\x11\x9b\xb5\x10\xa5\xef\
+\x27\xdd\x5b\x64\xa5\xe1\x48\x3d\x10\xd6\xe6\x5a\xb2\xec\x37\xeb\
+\x56\x53\x1c\x8a\x8d\x47\x96\xd5\x5b\x99\xc8\x54\x40\x49\xf9\xf7\
+\x16\xdb\x83\xb5\xd4\x1a\xdc\x9b\x93\x9d\x10\xb1\x85\xf2\x61\x39\
+\x27\xaf\xa3\xdb\x9f\x8d\x2c\xa7\x3b\xfc\xcc\xce\x5b\xa1\xac\xf1\
+\x5c\xf2\xa6\x86\x73\x45\x16\xe3\x92\xb5\x2e\xaa\xee\x2b\xd6\x02\
+\xd4\xe4\x9e\x48\x49\x96\x48\x09\x31\x8c\x1a\xb5\xb4\xf9\xcd\x02\
+\x00\x19\xa5\x11\x35\x10\x96\xec\xc9\x1a\x36\x4c\x06\x66\xa8\x8b\
+\xe5\x63\x62\xc9\x81\x62\x3d\x9e\xda\x40\x9b\x93\x93\xf8\x66\xf1\
+\x39\x59\x6f\xb2\xc4\x0d\x77\x85\x66\x94\xfe\x2d\x82\x02\x63\xe9\
+\x78\x3d\x69\xe5\x0b\x27\xbc\xca\x8e\x7e\xa0\xce\x17\x5b\xad\x00\
+\x8d\xda\x0a\xde\xf7\xd6\x89\xf4\xeb\x13\xfd\x1e\x2e\x2f\x09\x6b\
+\x5d\x1a\xf6\x92\x89\xf9\x10\xa9\x3b\x86\xc1\x16\x69\x29\x57\xa3\
+\xb1\x13\xbb\xa7\x6e\x88\x08\x29\x31\x82\xa3\x3f\xdb\x0d\x59\x30\
+\x2c\xbd\x7d\xd4\x3d\xc4\xb7\x1a\x47\x47\xe1\x55\xa6\xd2\xb3\x9e\
+\x1b\xe9\x7c\xfa\x2e\xe7\x27\xf3\x3d\xdb\x24\x90\x48\x87\xac\xb4\
+\x9a\x4a\x12\x24\x31\xc1\xda\x2a\xa1\x23\x3c\xce\xf7\xa4\xbf\x24\
+\xd2\x32\x32\xd6\x21\x51\x29\x72\xb6\xd4\x63\x58\x91\xeb\x90\xae\
+\x95\x61\x08\x9b\xa5\xbf\x63\xc7\xa6\xee\x38\x74\xbd\x96\x4d\xd2\
+\xf9\xd9\x62\x8a\xb3\x6b\x21\xc7\xbb\x66\x25\xc3\x8a\x7f\x2b\x24\
+\x54\x47\x56\xbe\x61\x4b\xd6\xef\xa8\xc7\x1a\x4d\x8b\x0e\xc3\xe7\
+\x7a\x5f\x6c\x1a\x62\xb3\x3b\xb3\x1b\x7d\x50\x75\x44\xc4\xeb\x27\
+\x71\x19\x30\xb4\x8d\xc4\x65\x83\xf4\x39\x0b\x9a\x49\x03\x1f\x8d\
+\x36\x28\xb2\x64\x38\x8a\x0d\xa4\x34\x93\x63\xce\x32\x50\x37\xb0\
+\x63\x6f\x58\x86\x55\xa0\x01\xdd\xba\x91\xcd\x4a\x32\xdb\x63\x34\
+\x1b\x1d\xc9\x7a\x45\xba\xf2\x85\xb5\xd7\xd8\xa6\x21\x46\x6e\x91\
+\x0b\xa4\x8e\xcb\xf4\x6e\x09\x59\x83\xe4\xbe\x11\x57\x51\x54\x66\
+\xe0\x31\x77\x49\xc3\xd9\x78\x18\x66\x11\x52\xc5\xa9\x13\x03\x2e\
+\x33\xe4\xa2\x50\x60\x79\xa9\x8e\x07\xaf\x2b\x63\x62\xb8\x98\x7e\
+\xb5\xbf\xcc\x98\x5c\x74\x3b\x05\xd1\x45\x13\xcb\x5d\xcb\x82\xb3\
+\xe8\xe9\xea\x05\x73\xa8\x02\x19\xb5\x26\xe3\xc5\x11\xdc\x91\xa2\
+\xb3\x79\x4f\x8e\x1a\x58\x2b\xe2\x92\x22\x05\x04\xb9\x59\x99\x2c\
+\x52\x3a\xae\x1a\x5b\xb2\xf9\xf5\xc2\xaa\x41\x27\x65\x2b\xee\xaf\
+\x7c\x9e\xad\xb9\x6d\x82\xca\xe9\xd5\x86\xf8\xef\x49\xd6\x0d\xd4\
+\x72\x10\x8f\x34\xa6\x26\xab\x11\xf7\x1a\x0e\x3b\x0b\x16\x78\x0d\
+\xc3\x98\xd5\xac\x84\xcc\x76\x83\x76\xfb\xd4\x25\x6c\xb7\x4b\x64\
+\x76\xcd\xf4\xcc\x77\x07\xa5\xf8\x47\xa4\x9f\xdb\x56\x00\x77\xb5\
+\x54\x93\x25\x8b\xf7\xf4\x46\x17\x25\xc9\xd3\xfd\x58\x4a\x4d\x57\
+\x68\xff\x6c\x8d\xd8\x74\x6e\x26\xb3\xf5\x65\x38\x6a\x2f\x66\xbb\
+\x88\x62\xec\x5d\x88\x0e\xf4\x5e\x30\x59\x31\xc6\x81\xb1\xb1\x3d\
+\x8e\x31\x82\x77\x40\xd1\x82\x24\x66\x05\x94\x73\xbd\xd2\xa4\x5e\
+\xc6\x6c\x27\x89\x93\x64\xf1\xe3\xf2\x0a\x19\xf5\x6f\x72\xd5\xee\
+\xf5\x80\x8f\xe0\xe8\x09\xed\xd6\x24\x40\x46\xe6\xae\xef\x7f\x39\
+\x8c\xeb\xd6\x35\x49\x4a\xa8\x67\x69\x9a\x66\x87\x7d\x25\x35\x30\
+\x43\x8a\xa9\xc5\x3f\xbe\x8a\x00\x5a\x98\x79\xec\xb0\xc4\xc4\x9a\
+\x3c\x8f\x59\xdb\x63\xd8\x17\x13\x77\xab\xe7\x25\xcc\x41\xb6\x67\
+\x62\x2c\x80\x46\xbd\x89\xfe\x5c\x0b\x8f\xdc\xb9\x5d\xf9\xea\x86\
+\x7e\xc2\x8f\x26\xd9\x5d\xd7\x5c\x0f\x54\xc1\x6b\xa0\x1a\xbc\xc6\
+\xef\xb9\x7b\x6d\x95\x74\xe4\xcb\x8a\x1f\x77\x8b\x83\xd6\x57\xd0\
+\xb0\x22\xc6\x36\x46\x95\xb5\xd8\xef\x28\xe9\xeb\x81\xb9\x43\x41\
+\x98\xb4\xf5\xe1\x7c\xfe\xda\x62\x75\x49\xca\xa8\xb5\x23\x56\x88\
+\x15\x0a\x4b\x53\xe8\x0f\xda\x11\x61\x90\x2d\xca\xa3\xee\x5b\x90\
+\x32\xd8\xd4\xd3\x6a\x9e\x1a\x06\x68\x51\x53\x90\xd4\x60\x24\xe4\
+\x21\x6b\xfd\x90\x38\x73\xb2\x0c\x91\x33\xae\xd6\x08\x4b\x64\x9a\
+\x6b\x05\xa2\x67\x36\x93\x6f\x23\x9e\xb0\x67\xa8\x36\x45\x03\x45\
+\x09\x81\xd9\x11\xa2\xbe\x96\x45\xac\x7e\x88\x69\x5d\xe0\x87\x99\
+\xb9\x29\xb5\x26\x53\xa8\x56\x25\x13\xb3\xc3\xf8\x93\x2a\x6b\xa7\
+\x1c\xc6\x64\x06\x0a\x6d\x2f\x65\xc4\x20\x72\x0b\x0c\x27\x59\x94\
+\x14\x91\xb0\x8d\xc5\x65\x38\x2c\x8d\x9c\x25\x21\x82\x36\xa8\x8e\
+\x09\x5d\x1f\xbc\xe1\x94\xa5\x3e\x50\x1b\xc3\x94\xbb\x59\x19\x53\
+\x79\xcc\xd2\x6c\xc0\xee\x96\x15\x67\xa6\x00\x6b\x61\x25\x95\x7c\
+\xe2\x75\x53\x7c\x4c\xcb\x2e\xb4\xb2\x87\x30\x65\xed\xec\x0d\xc8\
+\xda\x62\x53\xb0\x52\x87\x05\x69\x07\x21\x16\xe6\x57\xf0\x7b\x8f\
+\x8e\x1a\x57\xb6\x61\xc0\x53\x3b\xdf\xb1\x9e\x0d\x63\xb5\xa0\x9a\
+\x44\x16\xdb\x37\xa4\x2d\x07\x76\x61\x92\x3a\x8b\xc7\x0a\xa1\x68\
+\x8c\x1e\x4b\x73\xa9\x82\x8d\xeb\x1d\xa9\x86\xb3\x71\x45\x7d\xae\
+\x88\x11\x0e\x35\x12\x98\x74\x5e\x79\xc7\xb0\x6c\x40\xd5\xc5\x68\
+\xed\x39\x92\x17\x2b\xb3\x64\xa0\xe4\x07\xaf\xd5\xf8\xba\x6b\xdc\
+\x2a\xf5\x38\x39\x32\x77\x81\xf4\xa4\xab\x22\xb0\x69\xc0\xe4\x9e\
+\x3d\x82\x63\x63\xb2\x59\xc3\x55\xb3\x1c\x4d\x89\x43\xeb\x8d\x56\
+\x9c\x9e\xf4\x3d\x0f\xaa\xe8\xf5\xda\x32\x29\x0e\xfc\x9b\xc9\x5a\
+\xe3\x32\x12\x0c\x5e\x0b\x84\x22\x03\x35\x51\x9e\xa3\xa3\xde\xc8\
+\x86\xc8\x20\x99\xc8\x8c\x01\xe7\x5a\xc4\x7a\xa5\x17\xa0\x8a\xb4\
+\x58\x04\xba\x49\x27\x6e\x98\xa2\xad\xb6\x1a\x8a\x1a\xd3\x77\x05\
+\x58\x1c\xba\x15\x2a\x65\xda\x59\x1e\xa6\xb5\x4c\x13\xd9\x0b\xa3\
+\xac\xc9\x8a\x29\x4d\xe1\xa4\x35\x08\x9b\xeb\xdd\xfc\x27\xcb\xda\
+\x75\xb8\x28\x96\x58\xad\x56\xd5\x98\x74\x74\x41\x37\x3b\xbb\x8e\
+\x51\x21\x5a\x51\x5e\xf7\x03\xc9\x33\xf6\x6d\xdd\xff\x69\x1a\x4f\
+\x26\xfe\x0c\x07\x51\x43\xc8\x11\xa0\x04\x2d\x16\x0b\x84\x56\x9b\
+\x0d\xd5\x88\xb5\x6a\x30\x6c\x59\x1d\x22\x12\x58\x5d\xae\xe1\x8d\
+\x07\x4b\xb8\x62\x4b\x8f\x71\xcf\xa5\x82\x56\x27\x31\x1a\x01\x68\
+\x4d\x8f\x96\x9a\x2a\x49\x6f\xce\x22\x8b\x09\x85\xc2\xaf\x27\x16\
+\x6c\xc3\x83\xec\x63\x08\xd4\x8f\x38\x36\x33\x03\x5e\x47\xa4\xd6\
+\x54\xb0\xb0\x6b\x37\x90\xa5\x03\x98\xad\x0d\x7f\xf6\xee\x26\x53\
+\xe5\xc0\x55\x18\x64\x8d\x2c\xa2\x6f\x1e\x59\xe5\x22\x53\x96\xb7\
+\xb6\x0c\xb0\x5b\x59\xc2\xd4\x07\xe4\x14\xd2\x06\x4b\x9a\x79\xba\
+\xc2\x03\xe9\x04\x16\x87\xd2\x45\xba\x2f\x4d\x5a\xb4\xde\x03\x07\
+\xaf\xa3\x62\xc1\x5a\x84\xa5\x44\x6a\xeb\xc0\x2a\x2d\xf6\x89\x19\
+\xa6\xe8\x2a\x99\xaa\x24\x06\x6a\xe8\xaa\x5d\x10\xc3\xa5\x03\xe7\
+\x22\x48\xc9\x82\xbf\x69\xd3\xb3\x44\xb0\x51\x33\x2e\xd8\x44\xdb\
+\x94\xd7\xcf\x8e\x5a\x2e\xaf\x35\x5f\x81\xd5\x9d\xc7\xb6\x4d\x63\
+\xbd\x7f\x76\xe8\xe3\x39\xb2\x16\x2b\xb7\x3f\xcb\xcc\x9c\xf5\x64\
+\xcd\x71\x2a\x84\x61\x9b\xfa\x83\x91\xdf\x91\x3d\x19\xd0\xe2\x98\
+\xac\xce\xcb\xb0\x09\xc4\x59\x45\xad\x88\xac\x50\x88\x6d\x5a\x87\
+\x8d\x2c\xa7\xf4\xa4\xd9\xa6\x62\x48\x24\x25\xd6\xe0\xec\xae\x7c\
+\x1c\x6b\xfb\xc8\x6b\x69\x8c\x90\x32\x2e\xc1\x7a\x77\xb5\x8e\xcf\
+\xb9\x0a\x52\x76\x89\xfe\x48\x44\x88\x42\x81\x43\xbb\x0b\xf8\xd1\
+\x05\x06\x04\x1b\x19\xaf\x55\x4c\x54\x4b\x7b\x75\x86\x46\xb3\xd1\
+\x42\x2e\xa8\xe1\x9d\x6f\xd8\x65\xbd\xa5\xdd\x1b\xf2\x00\xc2\x6c\
+\xe6\x11\x63\x1d\xce\x8a\xba\xa4\xd1\xec\x74\x6d\xeb\x42\x0a\xc9\
+\x3e\x4b\x47\xc7\x52\x15\x6d\x43\xdb\x5c\x31\xed\x6b\xf2\x33\x72\
+\xdf\x89\xd9\xc5\xae\x37\x04\xda\x2e\xda\xed\xe7\xe5\x2c\xcf\x2d\
+\xe0\xab\x18\x7a\xd2\xe1\x5e\x55\x31\x9c\x2d\x32\x34\x6a\xa6\x62\
+\x66\x99\x7a\xef\x4e\xaa\x99\xab\x8f\xf5\x90\x19\x5e\x44\x4a\x6b\
+\x86\xe2\xfe\x1c\x4c\x9d\xee\x52\x41\x66\x26\x6b\xd4\x6c\x0c\x81\
+\x3a\xca\xd4\x2d\x28\x81\x8b\x58\xcd\x32\xf4\x4e\x01\x2b\x84\x4c\
+\xce\x20\x42\x3d\xa5\x99\x1f\x74\x43\xcb\x55\x51\x5e\x36\x32\x16\
+\x5e\x47\xb1\x90\x61\xaa\xf0\x5b\xca\x84\x6b\x03\x20\x9a\xca\x3a\
+\x94\xe0\xc4\xdc\x9b\x04\x87\xc6\xa4\xf1\x7c\x08\x86\x62\x91\x91\
+\x51\xda\x37\x84\xf9\xde\xd9\x69\x98\x93\x36\x11\x9d\x92\x2e\xa4\
+\x67\x4d\x6e\x5f\xa8\xcd\x42\x94\x38\xe9\x8e\xbe\xbf\x75\x8d\x68\
+\x72\xd9\x57\x74\x69\x74\xe6\xac\x66\x59\xcd\x87\x68\x84\x39\x84\
+\xf0\xd2\x7a\x57\x37\xd0\xc9\xdc\xcd\x6a\x30\x28\xf7\x54\x2a\x25\
+\x14\xc5\x33\x92\x22\x95\xc7\x92\xb3\xf4\x32\xe3\x96\x0d\xd4\x63\
+\xa9\x99\x2b\x89\xea\xf4\x01\x76\x72\xff\x55\xf6\x1d\x46\xd0\x0e\
+\x21\x82\x16\x7e\xea\xb6\x22\x4e\x4f\xb5\xd1\x6c\x73\xa7\xd7\x4b\
+\xee\x97\x82\x02\x81\xc8\x9d\x56\xc9\x71\x44\x3a\xe8\x30\xbe\x99\
+\x76\xd0\xc6\xd2\xc2\x2a\x7e\xe9\xcd\xa3\x5d\x97\xfc\x40\x8f\x74\
+\x1e\x6d\xe3\xc6\x47\x15\x5a\x5f\x96\x64\xd0\x58\xa4\x4b\x52\xa4\
+\x1d\x5d\xac\x1c\x4f\x3e\x82\x7c\xcd\xac\x48\x9b\x48\x47\x66\xad\
+\x47\x4e\x7e\xa6\xc8\x16\x39\x88\x21\x48\x28\x9f\x51\x0c\x87\xce\
+\xb8\x94\x37\xa3\xb3\x61\x48\xdd\xd6\xd4\x81\xa0\xc8\x3e\x65\x21\
+\x6d\x56\xa4\x0e\x1c\xa3\xb6\x51\x71\xca\x9c\x52\x5a\x61\xa4\xdf\
+\xe8\x76\x5b\xc9\xfa\x3b\x8d\x87\x24\x4b\xdf\x90\xc6\x69\x33\x4a\
+\x5c\xf6\x86\x9b\x74\xbd\x52\xc6\x26\x94\xa9\xe4\x9e\x34\x5d\x43\
+\x86\x38\x0c\x51\x4f\x66\x67\x7b\x4e\x1a\x75\x68\xcd\x53\xce\xa1\
+\xa9\x66\x45\xd1\x12\xdb\x79\xea\x73\x27\x82\xde\xaf\x45\x89\x82\
+\x3b\x69\x4c\x49\x67\x0c\x2b\xbd\x7b\xc3\xb9\xb2\x89\xa6\x52\x56\
+\x5b\x21\xb5\x63\x2d\x0b\x8e\xd8\xda\x62\x87\x14\xc3\x94\x4f\x29\
+\xbd\xbc\xac\x27\x8b\x90\xb5\x12\x92\xea\x58\x08\xda\xe2\x53\x7b\
+\x10\x49\x3a\x92\x75\x70\x00\x65\x23\x69\x88\x2d\xb1\x15\x59\x1a\
+\xb5\xb4\xc9\x15\xdd\xa0\x39\xb2\x08\xbc\x31\xb4\xc5\x4e\xf2\x1e\
+\xd0\x84\xc9\x93\xbe\xc6\xa4\xcf\xae\x43\x90\x90\xcb\xb1\x90\x32\
+\x55\xea\xc6\xfc\xd3\xdb\x59\xe4\x2d\x4e\xf6\x8a\xa2\xb3\x45\x4d\
+\x79\x4f\xda\x5b\xb7\x35\x6b\x71\xf6\xd9\x81\x62\x1b\xef\x3f\x78\
+\x12\xbf\x72\xf0\x0c\xca\xb9\xd0\xb2\xe2\x39\x73\x4a\xf6\xdb\x50\
+\xe8\xfd\x89\x46\xa6\xdc\x97\x27\xcb\x17\x90\x23\x78\x91\xe7\xfc\
+\xf9\xb2\x51\xb4\x26\xef\x72\xef\x0b\xdb\xfa\x3d\xb2\x28\xa7\x1d\
+\x84\x08\x5b\x0d\xbc\xf7\x81\x41\x3c\x77\xb2\x85\x99\x65\x20\xef\
+\xcb\x11\x70\x82\x91\x1a\xdd\x78\x88\xc7\x94\xb0\xda\xcb\xd2\xf9\
+\x9a\x60\x81\xd5\xd5\x06\x6e\xbb\xd2\xc7\xc1\x3d\x7d\x5d\x1d\x57\
+\x7f\x99\x31\x5f\xe3\x35\x4b\x5b\x6c\x09\xf7\xd3\x67\xc0\xb0\xce\
+\x60\x61\x23\x7a\x92\x72\x08\x5b\xdf\x90\x7c\x9e\x78\x22\xa0\x19\
+\x27\x69\x6c\x21\xa1\xcb\xf3\xb0\x04\x10\xb1\x5e\xed\x32\xb3\x1a\
+\xa3\xdd\xc6\x82\xc9\x25\x91\x1c\x59\xa2\x5a\x1b\x10\x49\x9c\x85\
+\x80\xba\x3c\x8e\xda\x67\x42\xd6\x72\x9e\xda\x3b\x92\x65\xd2\xd4\
+\xa9\xaf\xb1\x25\x9b\x27\x3d\x2b\x77\xe8\x16\xae\xa9\x7c\xa7\x13\
+\x4e\xc8\x0d\xb1\x3b\x8f\xa7\xd5\x69\xe4\x63\x67\x52\x4d\x9c\xb6\
+\x32\xc8\x92\x61\x44\x6c\x3f\x9f\x42\x9a\xb0\xc0\x8d\x6c\xd3\x90\
+\x64\x23\x9b\xa6\xc4\xc1\x09\x60\x1d\x9a\xf8\x1a\x39\xb5\x4b\xc1\
+\x9e\x49\xa9\xf7\xc8\x77\x9f\x23\x60\xa0\x2c\x50\xf0\x19\x79\x8f\
+\xd1\x8e\x08\xb5\x00\x58\x69\x72\x3c\xdf\xcc\x31\x27\xce\x45\x66\
+\x63\x0b\x8a\xdf\x35\xbf\x73\xcd\xcf\x73\x4a\xdb\xbb\x7a\x52\x5c\
+\xb3\x9b\x68\xed\x55\xb1\xc6\x64\x5f\x26\x77\x2c\x23\x67\x79\xa4\
+\x65\x70\x6a\xea\x2c\xec\x04\x06\x3d\xc3\xeb\x3a\x0a\x85\x9c\xdc\
+\x04\x86\x99\xad\xeb\xb5\xda\xbe\x42\x80\xf7\x5c\x7d\x16\x77\xdf\
+\x7d\x37\xe6\x17\x16\x21\xf8\x18\xfe\xe6\xd8\x16\xac\x04\xbe\x03\
+\xbd\x82\x55\x75\x9e\x64\x78\x96\xd4\x41\xc5\xea\x00\x35\x15\xfe\
+\x23\xad\x0d\x8a\x3a\x76\xcb\x87\x9e\xf6\xb2\x46\xb8\x50\xe8\xac\
+\x32\xbc\x23\x94\x0b\x16\xa1\xc0\xf2\x52\x0d\x6f\xb9\xb9\x82\x5a\
+\x53\xe0\x87\xa7\xda\x28\x96\x4b\x10\xcc\x08\xc3\x10\x03\x65\xc6\
+\xdd\xd7\x55\x40\x04\x5c\x9c\x13\x58\x6d\x08\xd4\x5a\x84\x0b\x73\
+\x2a\x3d\x53\x48\x8d\x76\xc9\xfd\x34\x1b\x2d\xf8\x41\x0d\x3f\x73\
+\xef\xd6\x35\x11\xd0\x89\x7e\x0f\x27\x67\xa2\xee\x8b\x9f\xb4\x56\
+\x46\xdb\xc8\x77\x0d\x12\x65\x6d\x72\xaf\xd2\x5b\x43\xea\xdc\x31\
+\x6b\xa8\xca\x0e\x9a\xa4\x83\x6a\x67\x4a\x3f\xb2\xd2\x16\xa4\xb3\
+\xc0\x5c\x9a\x5e\x6e\xab\x6e\x8e\x8b\xd0\x21\x5c\x76\xad\x79\xa7\
+\x2e\x53\x97\xfa\x32\xb3\x3a\xac\x90\x61\x1d\x5a\xa9\xb7\x4f\x65\
+\x7e\x83\x14\x54\x80\xac\xa5\x37\x53\x37\xd2\x83\x65\x6a\x36\x59\
+\x0a\x09\x46\x7a\xa4\x6a\xc6\x91\xbd\x6c\x27\xf1\x69\xc8\xc1\xec\
+\xd5\x46\xdc\x90\x75\x78\x88\xb1\x61\x75\x25\x77\xbd\x8e\x68\x18\
+\x06\xd2\x47\xd4\xdb\xe5\xb5\x9c\xef\x88\xed\x6b\x83\x01\xf4\x16\
+\x05\x76\x8f\x32\xae\x1c\x13\xd8\x36\x2c\x50\xc9\x27\x4e\xd9\x83\
+\x9f\xf3\x11\x84\x6d\xe4\x08\x88\x84\xc0\x4a\xe0\xe3\xd5\x29\x81\
+\x13\xd3\x39\x1c\x9f\x26\x04\xa1\xce\xbc\xb4\x14\xb1\x89\x1c\xf5\
+\x0e\x72\x8c\x98\x27\x58\xa3\x2e\x72\x41\xa0\x6c\xc2\x53\x7a\x9e\
+\x92\x12\x7a\xc8\x0a\x81\x9b\x04\x5a\x6d\x36\x18\x6b\xa3\x8e\x98\
+\xb5\x3a\x91\xf9\xda\x95\x59\x66\x56\x29\x28\x72\x70\x1f\xec\x98\
+\xb6\x8b\x17\xcb\x5d\x6b\xc6\x66\x53\x77\x02\x67\x57\x0a\x21\xde\
+\xb3\xef\x3c\xee\xbb\xfb\x16\x30\x33\xfa\x7a\xab\xb8\xf1\xc0\x15\
+\xc8\xd1\x09\xfc\xd5\xb1\xcd\x58\x09\xf2\x92\xe3\x64\x15\xe3\xd4\
+\xf6\x30\xd6\xe6\x7f\xd8\x2b\xee\x89\x38\x81\x46\x26\xf0\xb5\x4b\
+\x86\xe9\xc8\x1c\x23\x0a\xe4\x67\x11\x31\x56\x57\x6b\xd8\xbb\x11\
+\xb8\xe1\xea\x7e\x7c\xe8\x0b\x73\x28\x14\x8b\xf1\xf0\xc1\x48\xa0\
+\xb6\xd2\xc0\xf2\xcc\x0a\x86\xee\xd8\x81\x72\x29\x87\x4d\xa3\x31\
+\x9c\x93\xeb\xfc\x5a\xa9\x47\x58\xad\x33\xce\xcf\x46\x68\x0b\x60\
+\x7a\x89\x31\xb5\xc4\x68\x04\x8c\x20\x68\x23\x1f\x36\xf0\xfe\x9f\
+\x9a\x40\xb5\xe2\xaf\xe9\xb8\x06\x7b\xcc\x12\x68\xba\x68\xd3\x91\
+\x3b\xaa\x66\x9c\x4b\x6f\x5f\xc9\x6d\x88\xdd\x6e\x46\x13\x97\x65\
+\xe6\xb5\x23\x78\x27\x7d\xd4\x1e\xc0\x90\xa5\x48\x6d\x32\xa1\x1c\
+\x34\x2d\xd8\xeb\x0d\x69\x24\x23\xed\x4a\x79\xce\x22\x69\xad\xb2\
+\x36\xda\xac\xbd\x26\x43\x16\xed\x6e\x32\x9e\x4f\xe6\x23\xcd\x82\
+\xb9\x7d\x0f\x92\x46\xbc\xe4\x75\x34\x95\x4b\xf3\x9a\xc8\x54\x33\
+\x67\x82\x63\x2e\x91\xa5\xb8\x28\x67\xae\xdc\x65\xee\x95\x73\xaf\
+\xb2\xa5\xde\x43\xaa\x13\x26\xd3\x50\x79\x69\x86\x4f\xee\x23\xba\
+\xd8\x83\x50\xd9\x63\xa4\x4f\x83\x66\x4b\x64\xdc\xf9\xb9\x62\x54\
+\xe0\xf6\x5d\x11\xb6\x0e\x45\xe8\xe9\xa9\x62\xe3\x50\x1f\xaa\x3d\
+\x65\x14\xf2\x3e\xfc\x5c\x2e\x5e\x2f\x9e\x07\xf2\x62\x02\x8c\x10\
+\x02\x41\x10\xe1\x86\xd5\x1a\xce\x4d\xcf\xa3\x51\x6f\xe0\xa5\xcb\
+\x84\x6f\xbc\x92\xc3\xe4\x72\x87\x24\xa3\x34\x5c\x91\xd5\xa9\xd2\
+\x1a\x75\x66\x75\xfe\x16\xeb\xc5\x79\x77\x96\xe9\x60\x7e\xa2\xcb\
+\xd8\x1c\xc5\xe9\xca\xd7\xc8\x1a\x94\xa5\x41\x1d\xa4\xcd\x61\x4e\
+\xe1\x31\x6d\x42\x05\xdb\xcb\xde\xd6\x98\x97\xac\x98\x8e\xae\x90\
+\x49\x1a\x5e\xc2\x56\x04\x3c\xb5\xeb\x64\x9f\xbc\x55\xf6\x42\xbc\
+\xe7\xaa\x73\x78\xc3\x5d\x87\x91\xf7\x7d\xd4\x6a\x35\x08\x21\x50\
+\xad\xf6\x60\xdf\xee\xad\xf8\x79\x3a\x8b\xc7\x8e\x6d\xc1\x6c\xb3\
+\x00\x1b\x2b\xdb\x76\x37\x6c\xd4\x1f\x4c\xb1\x75\xb6\x1d\xcb\x42\
+\x46\xf4\xd3\x8b\x66\xfb\xbc\x0d\xb6\x0d\x95\xee\xf4\x59\x25\xd7\
+\xd1\x6c\xb4\xd0\x5a\xad\xe1\x91\xb7\x6f\xc3\x33\x3f\x5a\xc5\x52\
+\xe0\x23\x9f\xf7\xd2\xfa\x94\x10\x11\x2e\x5d\x5a\xc5\x07\x1f\x7b\
+\x19\xbf\xfe\xbe\x7d\x31\xbc\xd2\x81\x38\x04\x01\xd5\x4a\x0e\x03\
+\x55\x60\xc7\x44\x1e\x79\x0f\xc8\xe7\x80\xbc\x07\x04\x6d\x81\x99\
+\xc5\x3c\xb6\x8f\x0f\xac\x9b\x73\xb2\x69\x30\x07\xe6\xd0\x01\x8d\
+\xd8\x7f\xcf\xae\x7f\xef\x12\x04\xd9\x9c\x0f\x5b\x37\xc1\x1a\xe0\
+\x0d\x77\xa1\x7d\x38\xd9\x39\x6c\x40\x2c\x6c\xdb\x76\xce\x9e\x32\
+\xb6\x94\xe5\x4d\xa5\x02\x39\x04\xd3\x19\x86\x19\x6b\x4b\x62\xbb\
+\xd9\x64\x11\x94\x62\x1d\xa5\xe3\xb1\xac\xd9\x4c\x87\xad\x27\x67\
+\x60\xce\xa1\x95\x1d\xf6\xaa\xa2\x82\xcf\x16\xe8\x89\xed\x94\x0f\
+\x9b\x0a\xbc\x59\xed\x60\x87\x1a\x14\x29\x32\x64\x89\x2a\x06\xeb\
+\x72\xf2\x80\x03\x4e\xa1\xac\x54\x9f\xb4\x04\xd8\x9a\xa0\x65\xd1\
+\x5f\xa7\x3f\xcf\xd4\x8c\xb3\xf9\x74\x5d\xb4\xe1\x6c\x0c\x61\x6d\
+\xa1\x6d\x19\x8c\xf0\x96\x6b\xda\x18\xeb\xcb\x61\xd7\xe6\x09\x8c\
+\x0c\xf4\xc1\xf7\x73\x10\xcc\x08\x82\x10\x41\x3b\x42\xbd\xd9\x06\
+\x33\xa3\x52\x2e\xa2\x90\xf7\x53\xe3\x5c\x2c\xe6\x31\x56\x1c\xc0\
+\xd8\x70\x3f\xda\x61\x84\xed\x9b\x17\xb1\x7f\xe3\x34\x4e\xce\x10\
+\xfe\xe1\x28\x61\xbe\x4e\xee\x52\x9d\x2d\x42\x77\x69\x96\x59\x36\
+\xb6\xf9\x51\xc9\x89\xa4\xe2\xc9\x56\xaa\xa8\x35\xe8\x21\x05\xf3\
+\xd6\x83\x2a\xb2\x40\x81\xb2\x33\x93\x42\x35\x4e\xd8\x89\x64\x04\
+\x97\xb4\x1e\xcf\x65\xac\x65\x9b\x74\x59\x56\x4a\x80\x32\x09\x5b\
+\x83\xe8\x2d\xf1\x20\x69\xae\xab\x90\x13\x78\xf7\xfe\x8b\x78\xc3\
+\x9d\x37\xa0\x54\x2c\x60\x75\x75\x15\x42\x08\x44\x51\xd4\x71\x5e\
+\x15\x6c\xdf\x3c\x86\x77\xd3\x79\x7c\xfc\xa5\x4d\x98\xae\x97\xcc\
+\x77\xe6\x7a\xb6\x6c\x9b\x9e\xe0\x80\x01\xd8\xc6\x2c\x89\x7f\x9f\
+\x9b\xb8\xe5\x97\x7e\x6f\xfb\xf8\xa0\x1d\xa3\x24\xdd\x98\xc5\x99\
+\x8a\xac\x51\x26\x42\x81\xc5\x85\x65\x3c\x78\xb8\x0f\xdb\x37\xf7\
+\xe0\x4b\xff\xb2\x8a\x90\xf2\x0a\xb4\x01\x10\xc2\x28\xc4\xa9\x53\
+\x73\x68\x36\xdb\xb8\x72\xf7\x90\x95\x5d\xe4\x75\x20\xa1\xe4\xf5\
+\x16\xf3\x84\xa1\x6a\x0e\xaf\xe5\xa7\x5c\xf0\xf0\xdd\x57\x43\xb4\
+\x23\xb8\x64\x2a\x9c\xd0\xf8\x5a\x3f\xf6\x89\x4b\xb6\x9a\x94\xb4\
+\xa6\xa5\xb9\x40\x6e\x89\x1c\x0b\x99\x82\xf5\x8a\xa9\xad\x5d\x52\
+\x6b\x5e\xb4\xc5\xaa\xac\x61\xc8\x96\xa9\x33\x5d\x45\xaf\x8d\x11\
+\x4a\xea\x35\x92\xac\xcb\xe6\xca\x1c\xe5\x52\x36\x59\x6a\x1d\xa4\
+\x7f\x8c\xd4\xe9\xd7\x0e\x82\x02\x3b\x20\x25\x22\x97\x54\x6b\x26\
+\x00\xac\xca\xd8\x50\xba\xee\xe4\x67\xc4\xb6\x63\x28\x30\x88\x5d\
+\xca\x8a\x74\x2e\x08\x25\x05\x7d\x15\x43\x49\x89\x12\x4c\x70\xb1\
+\x55\x15\x42\x05\x75\xc9\x20\x64\xb2\x82\x21\x0a\x4c\xee\xe7\x21\
+\xc1\x6d\x79\x8f\xf1\xf0\x81\x36\x1e\xb8\x3a\xc2\xc1\xdd\x1b\xb0\
+\x77\xc7\x66\xf4\xf6\x54\xd0\x0a\xda\x58\x5c\xae\x63\x61\x71\x15\
+\xab\xf5\x26\x1a\xcd\x00\x41\x3b\x44\x3b\x8c\x50\xc8\xfb\xc8\xe7\
+\x3c\x08\xd1\xe9\x01\x17\x02\x42\xc4\x2b\xd2\x23\x0f\x7d\x3d\x15\
+\x6c\x1a\x1f\xc1\x60\x0f\x61\xff\xd8\x2a\x84\x60\x9c\x99\x27\xeb\
+\x63\xb5\xf1\x60\xf5\xa0\x22\x2b\x91\x72\x57\x1d\x75\x99\xa8\xc1\
+\x56\x72\x8e\xb4\xdc\x6c\x2d\x23\x16\xb6\x83\x29\x40\xed\xae\x47\
+\x90\x3c\x0b\x86\xc8\x34\xa6\x5a\x8d\x87\xac\x4c\x09\x75\x3d\x65\
+\x6b\xd3\x31\xc2\x84\xb2\x35\xab\x32\x17\xc9\x0a\xcd\x11\xb1\x51\
+\x2a\xcf\x91\xc0\x7b\xf6\x5f\xc0\x7d\xb7\xee\xc7\x40\x7f\x1f\x56\
+\x56\x56\x10\x45\x51\xea\xb4\x92\xff\x16\x0a\x79\x14\x7c\x0f\xdb\
+\x4b\x97\x70\x6e\xa5\x82\xd5\x20\x6f\x87\x60\x1c\x7b\x9c\xc8\x12\
+\x28\x92\x6d\x51\xe8\x83\xc1\xe2\x5f\xb1\xe3\x9a\x18\x5a\xbf\x05\
+\xd7\x0e\xde\xa8\x35\x20\xea\xab\x78\xe7\x9b\x37\xe3\xd2\x4c\x80\
+\x23\xa7\x42\xe4\x28\xa7\xec\x89\x5c\x2e\x87\x7c\xde\x47\x24\x18\
+\xcf\xbd\x30\x85\xde\x6a\x1e\x5b\x37\xf7\xea\x43\x50\x41\x14\xeb\
+\x53\x27\x1b\xd5\xeb\xfc\xa2\xd7\xe0\xb8\xf2\x3e\xa1\x5a\x04\x5e\
+\xb8\x10\x75\x8d\xda\x53\x55\x7b\x21\x70\xc5\x84\x0f\x8f\x08\x8d\
+\x20\x86\x3b\xa2\x30\xc2\x5d\x57\x17\x30\xbd\xc2\x08\x23\x57\x15\
+\x73\x3d\xf5\x5b\xfb\x87\x58\x49\xd1\xba\xa4\x65\xac\x43\x69\xee\
+\x8f\x39\x82\x67\xac\x81\x5d\x29\xcf\x88\x0d\xe5\x3d\x32\x0c\x89\
+\x9d\xb8\x4e\x4a\xa9\xc2\x68\x8b\x31\x98\x46\x6b\x4b\x61\x53\x97\
+\x62\xb4\x35\x57\xd4\x18\x6e\xd6\x96\xa6\x64\xf6\x19\xe9\x8e\xc5\
+\x32\x85\x5b\xbf\x74\x99\x02\xd5\xb5\x10\x4e\x56\x58\x96\xe0\x2a\
+\xac\xa3\x8b\x11\x77\x8c\xd6\x21\xbd\xf7\xc8\xcc\xa6\x0c\xd6\x27\
+\x59\xb0\x5d\xe9\x80\xc3\x3d\x02\xef\xbb\x25\xc0\x81\x6d\x15\xbc\
+\xee\xaa\x5d\xe8\xaf\xf6\xa0\x56\x6f\x61\x76\x7e\x19\x2b\xb5\x26\
+\xda\x61\xa4\x06\x99\x9e\x07\x22\x42\xa9\xe8\xc3\xf7\x73\x29\x04\
+\x2c\xb3\x90\x45\x02\x75\x12\x61\xa0\xb7\x07\x23\x83\x03\xe8\x2b\
+\x2c\x63\xc7\x60\x84\x17\x2f\x79\x88\x84\x0b\xda\x8d\x89\x29\x32\
+\xe8\xa6\xc0\x83\x04\xd3\x9b\x63\x3d\x83\x15\xc8\xfe\x48\xf5\xe9\
+\x07\xae\xa8\xd5\xc6\x88\x94\x03\x13\x8d\xdd\x6a\x0e\x8d\x4c\xee\
+\x8d\xd4\xa0\x64\xad\xcd\x6a\x98\x1c\xd2\x16\x82\xeb\x2b\xa4\xc2\
+\x0a\x5d\xd8\x4c\xc9\x23\x7d\xd7\x55\x17\x70\xef\xe1\x3d\x18\x1e\
+\x1a\x4c\x9d\x56\x1c\x8c\x08\xc3\x79\xe5\x72\x1e\x5a\x8d\x1a\xf6\
+\xf4\x2f\xe0\xe2\x6a\x05\x4b\x41\x01\xca\xb4\x0c\xed\x99\xb9\x95\
+\x37\x5c\x5b\x48\x23\xd0\x75\x32\x54\x4a\x32\xae\x6d\xe3\x43\x70\
+\x37\xe8\xea\xdf\xcf\x52\xdb\xb0\x1d\x61\x71\x6e\x09\xf7\xde\xd8\
+\x8f\xcd\x1b\x7a\xf0\xdd\x63\x75\xcc\xd7\x73\x50\xd5\x80\xe3\x17\
+\x95\xcb\x79\xf0\xf3\x3e\x84\x10\x78\xf6\x85\xcb\xd8\x7b\xc5\x20\
+\xfa\xfa\x8a\xd6\x0d\x49\xa0\xd4\x61\x25\xce\xeb\xb5\xfc\x6c\x1e\
+\xca\xe1\xd0\x8e\x1c\x4a\x9d\xc4\x6f\x7e\x55\x6f\x25\x8e\x4d\x67\
+\xd8\x0e\x51\x5f\x6d\xe0\x4d\xd7\x95\x71\xf7\xbe\x22\x9e\x3a\x1e\
+\xa0\x59\x6b\x61\xeb\x80\xc0\x2f\xde\xd7\x8f\xa7\x8e\x07\x68\x04\
+\xec\xb6\x2c\x36\xad\x42\xa9\xa3\xdd\xa8\xbd\x38\xe1\x10\x29\x8b\
+\xa3\xae\x15\x55\xed\xe4\xdd\x65\x00\xd6\x74\x5c\x64\xcf\x62\xba\
+\xa9\xdd\x9b\xf4\x6a\x36\x05\xd2\xb5\xf1\x13\x56\xc5\x6a\x98\x8e\
+\xc0\xda\x3b\x46\xb6\x70\x97\x1c\x69\xa4\x7d\x23\x90\x72\x98\x4e\
+\xc6\xa5\x1f\x4f\xb2\x8c\x36\xaa\xbf\xad\xc6\x49\xb6\x6c\xcb\xf8\
+\x07\x4d\x20\x98\x5c\x61\x80\xcd\xc9\xd9\xdf\xb1\x5e\xbf\x23\x89\
+\xa8\x10\xf7\x87\x91\x5a\x1f\x21\xfb\xa0\x94\x24\x2e\x9f\xe8\x0b\
+\xf1\xf3\xb7\x04\xd8\xb7\x73\x02\x7b\xb6\x6d\x84\x10\x02\xd3\x73\
+\xcb\x58\xa9\x35\x20\x84\x4d\xe1\x3e\x33\xc0\xa5\x62\x01\x7e\xce\
+\x53\x5b\x38\x14\x34\x9d\x20\x3a\x90\x6e\x21\xef\x63\x62\x78\x08\
+\x3e\x9a\xd8\x33\xd2\xc0\x0b\x17\x3d\xb4\x23\x6d\x94\x8c\xa2\x06\
+\xa3\x75\x5a\xc9\x46\x5f\x0f\xa6\xf5\x35\xca\x6a\x98\x64\xf5\x37\
+\x96\x76\x00\x79\x53\x6f\x2a\x9f\xc6\x86\xca\x39\xcc\xb5\x26\xba\
+\x78\x35\x52\x06\x16\x98\x6d\x26\x5a\x3b\x80\xe3\x38\xac\x74\xb3\
+\x68\xb9\x1d\xaf\xe9\xa7\xd6\xf6\xb5\xd6\x68\x4c\x6a\x89\x20\xc6\
+\x3b\xae\xbc\x88\xfb\x0e\xed\xc0\xd8\xe8\x30\xfe\xfc\xcf\xff\x1c\
+\xad\x56\x0b\x1b\x36\x6c\xe8\xea\xbc\x0a\x85\x02\x66\xa6\x26\xb1\
+\x7f\xac\x81\xd9\x66\x09\xf3\xcd\x82\xd6\x96\x60\xc2\xba\x46\x66\
+\x4d\x16\x1f\x6b\x1c\x43\x0d\xba\x62\xc7\x35\x36\xa8\x2c\x6c\x43\
+\xcc\xde\xc1\x00\xa9\xd7\x9b\xa8\x2d\x2c\xe1\xdd\x6f\xdd\x0e\x00\
+\x78\xf2\x68\x1d\x11\xe7\x54\x34\x29\x79\xa1\x1e\xe0\xe7\x7d\xe4\
+\x3c\x0f\x8d\x7a\x80\x67\x7e\x70\x11\x87\x0f\x6d\x40\x3e\x9f\x53\
+\x9d\x6a\x92\x69\x75\x36\xa5\x07\xc0\xf3\x5e\x5b\xd6\x05\x00\x95\
+\xa2\x87\xdd\x13\x3e\x6e\xda\x95\xc7\x9d\x7b\xf3\xd8\x32\x44\xa8\
+\x96\x19\x6d\x11\xd3\x76\x01\xa0\x1d\x86\x58\x5a\x5c\xc1\xb3\x72\
+\xd1\xe4\x33\x00\x00\x20\x00\x49\x44\x41\x54\x3f\x5a\xc2\xdb\xef\
+\x1c\x02\x41\xe0\xc8\x4b\xf3\xf8\x8d\xb7\x8c\xe0\xc5\xf3\x01\x8e\
+\x9c\x89\xd6\xf0\x9a\x6c\x8d\x5e\x75\x68\xca\x98\xaa\x0d\x97\xda\
+\x80\x4d\xb8\x12\x6e\xa5\x80\x2e\xbc\x8f\xb5\x02\x38\x76\xd5\x5f\
+\xd6\x81\xb1\xb3\x6b\x7b\xe8\xc8\x26\xd9\x0d\x3c\x29\x05\x64\x42\
+\xb7\x00\x4c\x0f\x39\x09\xba\x23\x62\x6d\x7c\x8a\xdb\x91\x77\x59\
+\xca\x59\xa0\xc5\xdd\x2f\x83\x5c\x50\x12\xd1\xda\x3d\x34\xd6\xbe\
+\x23\x49\xb3\xce\x6a\x9d\xd4\xf9\x52\xbc\x06\x53\x9b\x34\x38\x97\
+\xe4\x41\x56\x16\x77\x30\x56\x15\xf8\x5f\x6e\x6e\xe2\xc0\xae\x2d\
+\xd8\x38\x36\x84\x5a\xa3\x89\xe9\xb9\x65\x84\x51\xd4\x05\x74\x21\
+\x90\xe7\xc1\x23\x42\xb1\x90\x47\x2e\xe7\x29\x24\x25\x36\x60\x80\
+\xd8\x00\x88\x8e\x02\xcc\x50\x7f\x1f\x88\xdb\xd8\x3d\xdc\xc4\x33\
+\xe7\x08\x51\xd4\x25\x8b\x97\x7f\xe7\xd8\x6e\x64\x71\xca\xa6\x63\
+\x93\xf9\xde\xb6\x2a\x4f\x76\x94\xe1\xe2\x24\xde\xbe\xe3\x83\xb8\
+\x69\xec\x6b\xb8\xb2\xff\x39\x6c\x2c\x9f\xc4\xf9\xda\x1e\x04\xa2\
+\xd4\x1d\x02\x58\xc3\x85\x50\x97\x78\x93\xd8\x06\x8e\x6a\xc9\x12\
+\xc9\x10\xa9\x16\x1c\x49\x13\x9f\x09\x48\x67\xe8\xb1\xcd\xb7\x13\
+\x40\x2c\x40\x51\x0b\xf0\x7c\x10\x18\x3f\xb1\x7b\x12\xf7\x5d\xbf\
+\x09\xdb\xb6\x6e\xc2\x87\x3e\xf4\x21\x2c\x2e\x2e\xe2\xe2\xc5\x8b\
+\x18\x1e\x1e\xc6\xc0\xc0\x00\xc2\x30\x34\x9c\x96\x10\x71\xca\xdc\
+\xdb\xdb\x8b\x17\x9f\x3f\x8a\x3b\xae\x2c\xe0\xe8\xf4\x00\x02\x61\
+\x1f\x32\x16\xbf\x06\x09\xc5\xe1\x2c\xf8\x82\x85\x47\x61\x45\x1e\
+\x3a\x9f\x4d\x33\x2e\x75\x00\xa4\xc5\x10\x93\x7a\x10\x11\x09\xac\
+\x2c\xae\xe2\xaa\xad\x79\x5c\xbd\x7b\x00\xcd\x40\xe0\xfb\xc7\xdb\
+\x20\x4a\x35\x62\xcc\x00\xda\x8b\xb3\x2e\x10\x61\x79\xa9\x81\x63\
+\x2f\x4d\xe3\xe6\x1b\x37\xaa\x18\x72\x02\x0f\x12\xc5\x4e\x4b\xca\
+\xbc\xfe\xb5\x3f\x79\x9f\x30\x31\x90\xc3\xd5\x9b\xf2\xb8\x6d\x4f\
+\x01\x87\x76\xfa\xd8\xd8\x4f\xa8\x14\x3d\xac\xd6\x42\x5c\xbc\xbc\
+\x8c\x88\x3d\x3c\x74\x63\x1f\x10\x85\xb8\x7e\x4f\x15\x7f\xf1\xc4\
+\x0a\x42\xca\x99\xf6\x43\x6e\x6a\xb5\xb1\x56\x78\x7d\x8b\x99\xb1\
+\x36\x52\xa8\xa9\xd6\x1a\x85\x29\x86\x39\xb8\x4e\x6d\xa7\xca\xa2\
+\x57\xb7\x12\x08\xb4\x71\x0d\xf6\x6b\x64\x68\x65\x37\xac\xd5\xc8\
+\xe9\x36\x0f\xb6\x28\x59\xc6\xe5\x8d\x85\x4b\x0c\x6b\x83\xb5\xee\
+\xc5\xd2\xee\x58\x29\xca\xee\x58\x7b\x76\xe4\x6a\x76\x87\x6a\x87\
+\x25\xc9\x61\xfc\xed\x19\xa4\xc5\xf8\x92\xe6\xac\xad\x53\x7a\xbb\
+\xe7\x5b\xec\x98\x85\x48\xfa\x3a\x5c\x47\x53\x6a\xb9\xc0\xf8\x85\
+\x5b\x9b\xb8\x66\xe7\x66\x8c\x8f\x0c\x62\x71\xb9\x8e\xf9\xc5\xd5\
+\x35\xd7\x6e\x02\x13\x92\xe7\xa1\x58\xf4\x91\xcb\x79\xca\x80\x02\
+\x33\x90\xcb\x9e\x8d\xe8\xe0\x88\xfd\xd5\x2a\xc2\xb0\x81\x6d\xfd\
+\x6d\x3c\x73\x56\x8b\xc7\x89\x1d\x5a\x7f\x5d\xfa\xd3\xd8\x9e\x84\
+\xc9\x19\x1a\x59\xde\x85\xfe\x64\x0a\xd4\xc0\xa3\x3b\xff\x5f\x0c\
+\x15\x67\xd3\xef\x0e\x14\xe7\xb1\x7f\xf0\x19\x2c\x04\xc3\x98\x6b\
+\x6d\xb0\xe3\xf4\x44\xce\x37\xc7\xd0\x33\x71\x4b\x04\x24\xa1\x00\
+\x4a\x1e\x48\x7a\xad\x39\xdb\x07\x44\x59\x25\x4b\x76\x0a\x32\x44\
+\x69\x13\xbf\x29\x37\xcf\x62\xd7\xdc\x63\xd8\xca\xc7\xe0\xaf\x1c\
+\xc7\xad\x7b\x07\xf0\xc0\x0d\x13\xb8\x7a\xef\x6e\x3c\xfb\xec\xb3\
+\x78\xfe\xf9\xe7\x53\xc7\x34\x36\x36\x86\x89\x89\x09\x04\x41\x60\
+\x64\x5c\x51\x27\xb8\x99\x9c\x9c\x44\x2b\x14\x58\xc4\x38\x8e\x4e\
+\xf7\xbb\x55\x56\xf4\x18\x95\xd8\x39\xf1\x88\xbb\xc0\x26\xcc\x40\
+\x6e\xe2\x96\x5f\xfe\xbd\xad\x63\x83\xf6\xc2\x7f\x97\x1a\x44\xd0\
+\x0a\x30\x3f\xbd\x84\xb7\xdc\xb3\x01\xfd\x7d\x05\x5c\x9a\x09\xf0\
+\xea\xa4\xc8\x26\x0b\xdb\x44\xb8\x01\x78\x39\x0f\xf9\x82\x0f\x22\
+\xe0\xd2\xe4\x0a\x2e\x5e\x5a\xc2\xc1\x6b\xc6\xe2\x7f\x93\x6a\x5a\
+\xb1\x03\xa3\x0e\x61\x03\xc8\xfd\x2b\xb2\xae\x6e\xd9\xd8\x96\x61\
+\x1f\x07\xb7\x15\xf0\xc6\x1b\xfa\x70\xef\x0d\x83\x98\x9e\x6f\x82\
+\x08\x98\x9c\x6b\x41\xb0\x87\xc1\x5e\x1f\xbb\xc6\x73\xd8\x3d\x96\
+\x43\xa5\xe0\x61\x6a\x39\xb2\xd6\x41\xf4\xea\x95\xa5\x1b\x49\x79\
+\xb2\xfa\x7c\xb2\x64\x6c\x41\x36\x6a\x7b\x1d\xfa\x5d\xeb\x50\xdb\
+\xee\x96\x75\x71\xd7\x3f\xc8\xd4\x74\x7b\xe3\xa6\x9d\x48\xc5\x16\
+\xb6\x1b\x19\xfe\x85\xc8\x92\x49\xd8\x70\x6f\x36\x5d\x0a\x75\x81\
+\x38\xb3\x09\xb8\x40\xb7\xf9\x63\xa4\xa9\x3e\x38\x37\x89\xd1\x8c\
+\x42\x6b\x95\xe5\xb4\x91\xe3\x9c\x1a\x17\x67\xbd\x9a\xd4\xac\x2b\
+\x91\xa6\x4a\x2c\x18\x1b\x85\x7d\x77\x36\xc1\x5d\x6b\x5f\x26\x56\
+\x46\x00\x7e\xf6\xc6\x16\xf6\xef\x18\xc6\x96\x89\x51\x2c\xad\xd4\
+\xb1\xb8\x5c\x5b\x47\x89\x9b\xd4\x8c\x2b\xef\xc3\xf3\xe2\x60\x95\
+\x25\x47\x4c\x52\x6d\x96\x24\xf9\x9e\x98\xc0\x11\xef\x84\xfe\x6a\
+\x15\x61\x6b\x15\x3e\x45\x38\x31\xe3\x01\xca\x44\x2b\xea\x82\x10\
+\xbb\x01\x3e\x03\x82\x77\xf5\x6d\x38\x76\xc4\x8d\xa3\x4f\xe0\x8a\
+\xbe\x63\xa8\x96\xf2\x78\xf8\x27\x3e\x82\x03\xd7\xfd\x02\x66\xa7\
+\xbf\x8b\x66\x7d\x06\x7b\xfb\x9f\x43\xc5\xab\xe1\x6c\x6d\x37\x52\
+\xb1\x31\x49\x73\xd1\x09\xe3\x11\x6b\x2a\x31\x64\x8d\x5a\x89\x6c\
+\xbb\xc7\x91\xf9\x6b\xd6\xda\x0c\x42\x6d\x56\x8a\x50\x6c\x5d\xc4\
+\x9e\xfa\x17\x71\xff\xbd\x77\x60\xfb\xb6\xcd\x28\xf1\x2a\xe6\xce\
+\x3d\x87\xb7\x3e\xf2\x30\x96\x96\x96\xd0\xd7\xd7\x87\xa1\xa1\x21\
+\x9c\x39\x73\x06\x7b\xf7\xee\xc5\xa1\x43\x87\xd0\x6a\xb5\x30\x3b\
+\x3b\x8b\x7c\x3e\x0f\x66\x56\x9c\xd6\xd4\xd4\x14\x2e\x5d\x9e\x06\
+\xf5\x6d\xc7\x27\x7e\xb4\x09\x22\x11\xb7\xec\x52\x53\x24\x47\x69\
+\xb6\xbb\x81\x57\x43\xcf\xdc\xc4\x2d\xbf\xfc\x7b\x5b\x46\x07\x2c\
+\x4c\x70\x6d\xcc\x80\xb6\x21\xea\x2b\x0d\x88\x66\x0d\x0f\xde\xbb\
+\x05\x00\xf0\xea\xc5\x16\x2e\xcd\xf3\x1a\x17\xc0\x9d\x88\x2d\x87\
+\x7c\x3e\x0f\x00\x38\x75\x72\x0e\xd5\x9e\x98\xac\x91\x65\x5b\x1d\
+\x88\x90\xfe\xe7\x6a\x5d\xeb\xfd\xa9\x96\x73\xb8\x7a\x7b\x0f\x8e\
+\x9e\x98\xc6\xe7\x9e\x5a\xc0\x83\x87\x47\xd0\x5b\x02\x86\x2a\x84\
+\xe1\xaa\x87\x50\x00\x27\xa6\x23\x73\x65\x90\x23\x4b\xed\x86\xb3\
+\xc1\xc9\xba\x5f\x1f\x7d\x5e\x76\x83\xf2\x08\x70\xa9\xc0\x64\x13\
+\xc7\x65\xcd\x81\xae\xe7\x67\x4d\xc7\xc7\x6a\x44\x68\x73\xdb\x76\
+\x19\x0f\xc3\xce\xaf\x95\xfb\xc0\xd6\x94\x29\x83\x85\x89\x8a\x84\
+\x7e\x50\x62\xb3\x11\x98\x0c\xc0\xd2\x92\x38\x29\xc2\xbc\xa4\xcd\
+\x21\xea\xee\xc0\x94\x33\x19\x3d\x6b\x36\x87\x49\x56\xc6\xbc\x8d\
+\x7a\x40\x9a\x14\x94\x8d\x8d\x87\xb5\x4d\x3a\x6e\xd8\xda\xc6\x2d\
+\xbb\x8a\xb8\x7a\xe7\x26\xd4\x1a\x2d\x2c\x2c\xad\xae\x6b\x4d\x24\
+\x0e\x2b\xcd\xb8\xf2\x3e\x72\x9e\x3d\x6b\x24\x48\x6c\x4a\x02\x58\
+\x64\x12\x71\x22\x8a\xd7\x6f\x7f\x6f\x05\x3d\xde\x02\x8e\x4f\x11\
+\x96\x9b\x9d\x77\xc9\x36\x62\x89\x96\x9d\x58\x0c\xb6\x5c\x03\xd3\
+\x59\xa3\xac\x08\x34\xe9\xc8\x42\xb6\x03\x1f\xd8\xf4\x29\x94\x72\
+\x4d\xdc\x7e\xf8\x61\xf4\x8e\xde\x0b\x22\x1f\xdb\x77\x3e\x80\x52\
+\x6e\x09\x97\x2e\xbf\x82\x0d\x95\x73\xd8\xd1\xfb\x23\x9c\x59\xb9\
+\x12\x2d\x51\x56\xd7\x18\x39\xea\x50\x0e\x48\x4c\xfb\x67\x38\x22\
+\x39\x73\xed\x70\x97\xf7\xcb\x30\x56\x6c\x12\x10\x14\x83\x29\xec\
+\x5e\xf9\x1c\xee\xbb\xe7\x76\x04\x41\x80\x76\xbb\x8d\xfe\xfe\x3e\
+\x44\x51\x84\x2f\x7f\xf9\xcb\xb8\xe6\x9a\x6b\x90\xcb\xe5\xd0\xd7\
+\xd7\x87\x6d\xdb\xb6\xe1\x8a\x2b\xae\x40\x18\x86\x98\x9c\x9c\xc4\
+\x13\x4f\x3c\x91\x66\x60\x89\xd3\x9a\x9b\x9b\xc3\xf9\x8b\x93\xc8\
+\xf5\x6e\xc1\x63\x2f\x6d\x41\xc4\x5e\x97\x70\x82\x4c\xb0\xa4\xf3\
+\x3f\xd6\xa5\xac\xba\x6b\x56\x81\x88\xb3\x8c\x2b\x65\x03\xe9\xcc\
+\x18\x63\x8c\x01\x20\xa2\x08\xcb\x8b\x35\x6c\x1e\x21\x1c\xb8\x7a\
+\x18\x00\x70\x7e\xaa\x8d\xcb\x8b\xa2\xbb\x20\x28\x32\x44\xc7\xf7\
+\x7d\xe4\x7c\x0f\xa1\x10\xf8\xfe\xf7\xcf\x63\xdf\x55\xc3\x18\xec\
+\x2f\x4a\x4e\xcb\x4e\xd4\xa0\x7f\x03\xe7\x35\x39\xdb\xc2\xc7\xbe\
+\x7a\x19\xf7\x5c\x3f\x86\x6b\x77\x56\xb1\x65\xac\x84\xff\xf0\xc1\
+\xd3\xf8\xea\x0f\x16\xf1\xbd\x13\x2d\x9c\x59\x88\x99\x91\x7a\x0d\
+\xc9\x26\x67\xe3\x12\x62\xd0\x07\x4d\x1a\x30\x1c\x12\xe2\x2e\xb9\
+\xe5\xb7\xd6\x41\xb4\x70\x49\xd0\xa8\xb0\x8a\x4d\x04\xd6\xf2\xba\
+\xc8\x8c\x9c\x18\x7a\x63\x72\xb6\x51\x44\x24\x10\xb4\x02\xbc\xed\
+\x50\x09\xf7\x5f\x53\xc4\xcd\x57\xe4\x71\xf3\xee\x02\x36\x0f\xfb\
+\x38\x76\x31\xb4\xb7\x27\x48\x9b\x5d\xaf\xad\xb2\x10\x08\x1a\x2d\
+\xbc\xfd\xc6\x12\x7e\xeb\xa1\x41\x3c\x7c\x7d\x05\xb3\xcb\x11\xce\
+\xcf\x47\x92\x51\x62\x68\x65\x1c\xc5\x71\x30\x39\x8a\xf8\x6c\x77\
+\xa4\x80\x3d\x42\xb7\xd1\xdb\xf5\x2d\x68\x4c\x3f\xb7\x9d\x83\xcd\
+\x0d\xaa\x38\xd0\x44\xbf\x90\x75\x64\x74\x2d\xe8\x8f\x8d\x88\x3c\
+\x29\x70\xeb\x13\x6c\x2b\x05\x81\x47\xaf\x6f\xe1\xe0\x95\xdb\x40\
+\x04\xcc\xcc\xaf\xac\x6f\x89\x49\xa4\x8c\x04\x2e\xcc\xa7\x19\x97\
+\x3e\xc2\x24\xb3\xe4\xf2\xd0\xc6\xb8\x51\x99\x53\x84\xc1\x23\x42\
+\xde\xf7\x31\x56\x59\xc5\xf7\x4e\x7b\x99\x4c\x96\x45\x4b\x38\xb5\
+\x70\x8e\x46\x6f\xee\x32\xef\x8d\xc8\xe2\xda\x35\x74\x77\xa2\x74\
+\x0e\x87\x46\xbf\x81\x82\x0f\x5c\x77\xc3\xaf\xc3\xf3\xfb\xd0\x98\
+\x79\x0c\x7e\x65\x3f\x86\xc7\x6f\xc3\x96\x0d\x1b\x71\xee\xfc\x33\
+\x28\x7b\x0b\xd8\x3f\xf8\x34\xe6\x5b\x63\x98\x6f\x8d\xab\x5a\x88\
+\x04\x27\x79\x84\x18\xd6\x3a\xa6\x41\xf8\x24\xfb\xf8\x13\x52\x2a\
+\x12\xac\x20\x11\x64\xa9\xb9\xca\x7f\x95\x6f\xcf\x63\xcf\xca\xdf\
+\xe1\xfe\xd7\xdf\x8e\x76\xbb\xad\x90\x2d\xaa\xd5\x2a\x82\x20\xc0\
+\xb7\xbe\xf5\x2d\x5c\x7d\xf5\xd5\xf0\x7d\x1f\xf9\x7c\x3e\x26\xe9\
+\x4c\x4f\xe3\x6b\x5f\xfb\x1a\x82\x20\xc0\xd4\xd4\x14\x86\x87\x87\
+\x31\x34\x34\x84\xf9\xf9\x79\x9c\x3b\x7f\x01\xf9\xde\x8d\xf8\xd8\
+\x4b\xdb\xd0\x16\x39\xcb\xc2\x24\x93\x4b\x46\x1a\xa2\x4d\xb0\xd7\
+\xbb\x5d\xeb\x9b\xb3\xa2\x80\x81\x16\x65\xe2\xb9\xe6\x2c\x54\xc1\
+\x71\x63\x70\xab\xd1\xc4\xc4\x58\x39\xa6\xbc\x4a\x7a\x6d\x8a\x71\
+\x77\xcc\x9f\x62\xc4\xe3\x12\x4a\xd5\x12\x86\xc7\x06\xd0\x3f\xd2\
+\x87\x3f\xfe\xe0\xb3\x58\xa9\xb5\x21\x44\x7c\x8e\x48\x74\x7e\x31\
+\x10\x76\xfe\x1b\xf1\x8f\xdb\x61\x35\xf1\x07\x8f\x9d\xc2\xcf\xfc\
+\xfe\xf3\xa8\x96\x62\x66\xd4\xef\x7e\xe4\x24\xea\x2d\x81\xf7\xff\
+\xe4\x16\x0c\x8d\x0e\xa0\xd2\x5b\x01\x13\xa1\xd5\x6a\xe3\x0d\xfb\
+\x7c\xdc\xbf\xcf\xc7\xfd\xfb\xf2\x78\x60\x7f\x01\x87\x77\xe6\xd3\
+\x0d\x23\xa4\x39\x86\x86\x98\x6e\xe7\x57\x14\x0a\xb4\x9a\x6d\x3c\
+\xb0\xdf\xc7\xfd\xfb\x7d\x3c\xb0\xdf\xc7\x1b\xaf\xc9\xe3\xf0\xce\
+\x82\x54\xd8\xee\x3c\x77\x56\x9f\xa3\xe2\x30\xd9\xfd\x4b\xa5\xb8\
+\xb3\xd6\x44\x9b\x88\xd3\x92\x7a\x9c\xe4\x7f\xcc\xca\xbb\x4f\xff\
+\x5d\x64\xf2\xc4\xf2\xfd\x41\xfa\xbc\x00\x10\x04\x01\x16\xa6\x17\
+\x31\xd1\xc7\xb8\x7a\x4b\x11\x57\x6d\x2e\x62\xef\xa6\x02\x36\x0f\
+\x7a\xb1\x30\x31\xc1\x22\x36\xcc\x10\x9d\x5f\xfa\xc2\x6d\xd6\x9b\
+\xe8\x47\x0d\x0f\xde\x90\xe9\x53\xbe\xef\xee\x2a\x46\x7a\x3d\x03\
+\x2a\xeb\xda\x23\xa7\x09\xb8\x3a\xc5\x81\x75\x8c\x95\x1c\xc8\xac\
+\x6d\xce\x97\xed\x33\xd0\x6a\x16\x14\xaf\x7b\x4e\xad\x8f\x4a\x0a\
+\x50\xac\x98\x6b\xba\xa8\xa5\xce\x68\x55\x28\x67\x55\x53\x40\xf6\
+\x03\x77\xef\x0e\xb0\x79\x7c\x08\xe5\x52\x01\x73\x8b\xab\xe6\x40\
+\xd0\xee\xde\x4b\xa2\x73\x5b\xdc\x2a\x5b\x32\xfc\x44\x46\x8e\x59\
+\x91\x54\x4b\xae\xbd\xbf\x5a\xc5\x70\x9f\x8f\x03\x9b\x84\xfa\x36\
+\xb4\xe3\xc7\xe2\xba\xdd\x27\xac\xcb\x83\x46\x75\x12\x4f\x31\x57\
+\x47\x31\x57\x43\x31\x57\x43\x8f\xbf\x82\xfe\xc2\xac\xf4\x6b\x0e\
+\x07\x87\xbe\x03\x00\x18\x1f\x19\x87\x5f\xde\x83\x76\xed\x28\x9a\
+\x33\x9f\xc2\xca\xa9\x5f\x47\x14\x5c\xc0\xc0\xd8\xbd\x78\xcb\x5b\
+\xfe\x0c\xe3\xa3\x9b\x50\xca\x35\xf1\xc8\xd6\xbf\xc2\x1d\x13\x5f\
+\xcc\xe0\x4d\x4a\xb5\x98\xdd\x35\xd1\xb4\x79\x9e\x61\x6d\x12\x93\
+\xd7\xa4\x74\x1c\x36\xd6\x5e\x26\x54\xcb\x6b\x00\x3e\x7e\xb8\x84\
+\x5d\x0b\x9f\xc6\x03\xaf\xbf\x03\x41\x10\xa4\x75\xaa\x64\xef\x46\
+\x51\x84\xf1\xf1\x71\x0c\x0d\x0d\xe1\xc3\x1f\xfe\x30\xe6\xe7\xe7\
+\x53\xa7\xc6\xcc\x69\xd0\x4e\x44\x18\x19\x19\xc1\xe2\xe2\x22\xce\
+\x5f\xb8\x88\x62\xff\x06\x3c\xf6\xd2\x56\x04\x51\xa6\xab\x69\xc7\
+\x6b\xb3\xeb\x56\xc8\x4f\x96\xc9\xe5\x04\x6d\x24\x8c\x9d\xc9\xa4\
+\x8b\xec\xda\x61\x19\x79\x50\x24\x33\x23\x6c\xb7\xd1\x6a\x04\xd8\
+\x38\x51\xd5\x0c\xaa\xa5\x2d\x97\xdd\x78\x27\x79\x39\xf4\xf4\xf5\
+\x60\x70\x74\x00\x8d\x5a\x0b\x67\xce\xaf\xa0\x6f\xef\x10\x22\x06\
+\x72\x9c\x38\x2b\x86\xc7\x84\x48\x00\x21\x65\x52\x51\xff\xb3\x0e\
+\xeb\x6f\xbe\x7a\x09\xdf\x79\xa5\x85\x7c\xde\xc7\xd0\x70\x05\x3f\
+\x79\xd7\x38\xfe\xfb\x3f\x5d\x46\x33\x02\xfe\xe8\xef\x2e\xe2\x0f\
+\xde\xb7\x1d\x47\xce\x31\x4e\x4c\x45\x68\x34\x9a\x58\x9e\x5b\xc6\
+\xc3\x37\x8c\x18\xc7\x3a\x3e\xb5\x82\xb9\x55\xd1\x65\x72\x72\x67\
+\x23\x0b\x46\xb3\xde\xc4\x96\xfe\xc8\x38\xce\xcb\x97\xda\xf8\xde\
+\xc9\x40\x0b\xd7\x44\x56\x07\x93\x0f\x9c\xd4\x9e\x48\x26\x5f\x58\
+\xd0\x26\x45\x5b\x8f\x1d\x9a\x6f\x5d\xd3\x32\xd8\xe8\x78\xdc\x91\
+\x42\x56\x2b\x5e\xf1\xbb\x0f\x82\x58\xaf\x32\x0c\x42\x33\xc3\x83\
+\x29\x77\x63\xcc\x5b\x93\x65\x74\x22\x81\x66\xad\x09\x14\x1a\xc6\
+\xa5\x95\xf2\xb6\xcb\x26\x2b\x53\x33\x9d\xfb\xc4\x9a\x92\x00\x4b\
+\x75\x09\xd6\xa6\x14\xcb\xe4\x1b\x52\x29\xe5\xae\xc1\x94\x72\xb6\
+\x41\xda\x7d\x0a\xa7\x88\xb1\x8c\x6a\x48\x39\xb6\x47\xf2\xeb\x97\
+\x94\x35\x74\x58\x5a\x9d\x94\x48\x2c\xb7\xa1\x40\x31\x7e\xc9\xe7\
+\x2b\x45\x81\x6b\x37\x46\xd8\x3c\x36\x8c\x7a\xa3\x85\x40\x7b\x57\
+\x6b\x66\x5c\x92\xf3\xd2\x15\x5a\xe4\x66\x57\xd2\x52\x06\x21\xad\
+\x81\x24\x10\x4b\x27\x27\x00\xd8\x34\x32\x84\x37\xed\x9b\xc1\xf3\
+\x17\xbd\x4c\xf7\x93\xe3\x20\x8b\x3a\x11\xb3\xaa\x4e\x65\x91\xbf\
+\xd2\x32\x6e\x06\xb0\xa1\x74\x1a\x37\x8d\x7e\x15\x5b\x2a\xc7\xe1\
+\x7b\xd1\xba\xee\x73\x78\x78\x37\x38\x5a\x41\x7b\xf5\x68\x6c\xef\
+\x9a\xa7\xb1\xfc\xea\xaf\xa2\xb2\xf1\xfd\x28\xf4\x1e\xc6\x5d\xf7\
+\xfc\x37\xbc\xf4\xdc\x9f\xe2\x85\x97\xff\x05\x37\x8d\x7e\x1d\x23\
+\xc5\x29\x7c\xf1\xfc\xbb\xd0\x16\xa5\xb4\xd9\x99\x5c\x73\x5d\x20\
+\x35\x45\x3b\x68\x0c\x6c\x81\x6d\xc8\x08\x86\x6c\x79\xb8\xf6\x37\
+\x44\xc8\xb5\x97\xb1\x6b\xe1\x53\x78\xf3\xfd\x77\xa1\xd5\x6a\xa6\
+\x4e\xeb\xf2\xe5\xcb\x08\x82\x00\xbd\xbd\xbd\xa8\x54\x2a\x60\x66\
+\x8c\x8c\x8c\xa0\xdd\x6e\xe3\xa3\x1f\xfd\x28\x1e\x7d\xf4\x51\x0c\
+\x0e\x0e\xa2\xbf\xbf\x1f\xf7\xdd\x77\x1f\x8e\x1c\x39\x82\xfd\xfb\
+\xf7\x23\x8a\x22\x9c\x39\x7b\x0e\xf9\x9e\x61\xfc\xf5\xb1\xcd\x68\
+\x44\x7e\xd6\x17\xc9\x2c\xe9\x8a\x66\x75\x36\x9b\x2c\x1b\x9b\xa0\
+\xb2\x5a\xc6\x60\xa9\x06\x6c\xa8\xbf\x50\x27\xe3\xea\x44\xcf\x49\
+\xe4\x9b\x66\x10\xcc\x10\x2c\xd4\x48\x9c\x81\xb0\x1d\xa1\xd5\x0a\
+\xb0\x79\x53\x55\x8b\xa0\x25\xfd\x33\x56\xa3\x2a\x96\x17\xad\xf4\
+\xa5\x5c\xde\x47\xa9\xa7\x84\x42\x39\xdf\xe9\xf9\xe8\x64\x5c\x2c\
+\x65\x5e\xcc\x69\xc6\x15\x75\x32\xb2\x7f\x75\x86\xf5\xf1\x53\xf8\
+\xc5\xff\xe7\x34\x9e\x9f\xca\x63\x78\x62\x08\x85\x62\x01\xbb\x36\
+\x96\x31\xb3\x14\xe2\x87\xe7\x81\x4a\x5f\x0f\x9e\x3d\xb1\x8c\xbf\
+\x7d\x6a\x01\x83\x3d\xf1\x35\x07\xcd\x00\x0b\x53\x8b\xd6\x63\xbe\
+\xe9\x40\x41\x7b\x21\xac\x66\x30\x9d\x7b\x6f\xb7\x23\x2c\x2d\xac\
+\xe2\x27\x0f\x9b\xea\xf6\x29\xf6\xaf\x3c\xeb\xec\x59\xb0\xbe\xe1\
+\x21\x8d\x4a\x91\xb2\xb0\x74\x14\x0d\x67\x63\x58\xe4\x11\x2a\xc9\
+\x3b\x95\xc7\xd0\x28\x34\x35\x25\x5d\xa4\x2c\xa3\x82\xfa\xfe\xe5\
+\x13\x65\x87\x61\x80\xe3\xe6\x6d\x36\x15\x49\x8d\x6b\x4d\x08\x3c\
+\x8c\xb8\x58\x2f\x04\x2b\x37\x11\xb1\x40\x24\x04\x9e\x7e\x69\x1e\
+\x3f\x3a\xbd\x9c\x1e\xea\xc5\xb3\x0d\x9c\x9b\x09\x1d\xb0\x99\x34\
+\x76\x42\x26\x07\x31\x99\x35\x06\x7d\x80\x18\x91\xad\x42\xa3\xc2\
+\x54\x4c\xf6\xba\x3e\x67\xe6\x48\x91\xdc\x81\xf6\x4c\xa9\x0b\x23\
+\x51\x26\x56\xa4\xb2\x5a\xf6\x0c\x83\xb3\xb0\x5e\xed\x45\x4a\x47\
+\xaf\x20\xad\x2d\x11\xa9\x79\xf7\x75\x9b\x43\x8c\x0c\xf5\x21\x9f\
+\xf7\xb1\x52\x6b\xbe\x26\xa7\x25\x67\x0c\xf5\x46\x1d\xb3\x8b\x0b\
+\x58\x5c\x59\x46\xbd\xd1\x40\xbb\xdd\x86\x4c\x65\x93\x47\x59\x24\
+\xcf\x21\x85\x08\xb5\x8c\x0b\xcc\xa8\x94\xcb\xe8\x2d\x11\x76\x8c\
+\x08\x05\xed\x4a\x72\x8d\xb4\xaf\x87\x49\xea\x1f\x64\x6b\x04\x94\
+\xc4\x18\x57\xf4\x3e\x87\xb7\x6f\xff\x13\xec\xa8\xbe\xb4\x2e\xa7\
+\x45\x94\x43\xb9\xd4\x83\x91\x91\x6d\x88\xda\xf3\x68\xd5\x5f\x45\
+\x5b\x30\xda\x82\x11\x84\x75\x2c\x9e\xfb\x00\x56\x2e\x7d\x08\x42\
+\xd4\xb1\xf7\x9a\xf7\xe1\xb6\xc3\x8f\x00\x20\xec\xea\x7b\x09\xef\
+\xdc\xf5\xa7\xe8\xcb\x2f\xa4\xeb\x8e\x5d\x24\x7d\xcb\xec\x34\x07\
+\xdf\x26\x0d\xa2\x98\xc8\x5e\x32\x57\xb2\x3b\xe8\x70\x0b\x72\x51\
+\x1d\x3b\xe7\x3f\x81\x37\xbf\xe1\x0e\x04\x41\x2b\xa5\xb4\xbf\xf2\
+\xca\x2b\xb8\x70\xe1\x02\xce\x9e\x3d\x8b\x4b\x97\x2e\xa1\x56\xab\
+\xa5\xd9\xd5\xd8\xd8\x18\x06\x07\x07\xf1\xf1\x8f\x7f\x1c\x97\x2f\
+\x5f\x4e\x7b\xb5\xee\xb8\xe3\x0e\xf4\xf6\xf6\xe2\xcc\x99\xb3\xf0\
+\x4b\xfd\xf8\xd8\x4b\x5b\xb1\xda\x2e\xac\x83\x0a\xa6\x67\x89\x2e\
+\x29\xe0\xac\xa6\x42\x9a\xf0\x81\x41\xc6\x62\x4e\x32\x2e\xa1\xa6\
+\xf7\x46\xbd\x4f\x56\x4e\x06\xa2\x48\x20\x68\xb5\x51\x2a\xe5\xd5\
+\xf9\xbb\xcc\xc6\x84\x99\x6c\x7a\x9a\x3e\x2e\x1e\x69\x74\x2a\x04\
+\xa3\xbf\xb7\x80\xdd\xbb\x06\x53\xa7\x95\x93\xff\x2b\x80\x88\x00\
+\x4f\x00\x89\xc9\xf2\x68\xfd\x84\x8d\xc9\xd9\x26\xfe\xe6\x2b\x97\
+\xf0\x9d\xe3\x2d\xf4\x0e\x54\x31\xb2\xa9\x17\x79\x3f\x0f\x86\x40\
+\xe0\x05\x78\x65\x2a\xc0\x7f\xfa\xf4\x2c\x7a\xaa\xe5\xb8\xf8\xec\
+\xe5\xf0\xf7\xff\xb2\x82\x9e\xfe\x0a\x7c\xdf\x87\x08\x19\xad\x56\
+\xdb\x7a\xec\x5b\xf7\x14\xf1\xf8\x73\x2d\xcc\xd5\x84\x85\xfc\x90\
+\x28\x9a\xc7\xd9\xd6\xce\x21\xe0\x3a\xeb\x58\x16\x96\x84\x72\x65\
+\x21\x4f\x59\x45\x8c\x81\xd7\xe8\xb0\x99\x8c\xb5\x9c\x45\xc4\x0a\
+\xac\x65\x53\xa8\xe5\x75\xe8\x39\xaa\x22\xa4\x0c\x76\xe2\xd4\x2c\
+\x38\x53\xf0\xb5\x48\xd5\xa0\xe3\x6c\xd3\x39\x63\x39\x0f\xc5\x72\
+\x09\xd5\x81\x2a\xfe\xd7\x3f\x38\x8a\xbb\x6e\x18\x45\xa5\x5a\xc1\
+\x91\x4b\x84\x72\xb5\x62\x50\xff\x8d\x54\x48\x92\x04\x24\x7d\x60\
+\x9e\x42\x66\x91\x93\x29\x35\xd3\x4a\x55\xe1\x48\xd7\x7f\x94\x05\
+\x40\x4d\xd9\x78\x45\x75\x30\x9d\x28\x0c\x23\x82\x66\xcb\x7a\x91\
+\xeb\x87\x6c\xc9\x26\x94\x81\x8a\x04\x07\xba\xa1\x12\x0f\xe4\x66\
+\x88\xeb\x37\x87\xd8\x38\x32\x88\xa0\x1d\x22\x68\xaf\x3f\xdb\x4a\
+\x0c\xce\xc2\xca\x12\xea\xed\x00\xf9\x5c\x0e\x4c\x05\xcc\xd6\x04\
+\xbc\xd5\x65\x14\x7c\x81\x9c\xe7\x61\xb0\xda\x87\x4a\xa5\x92\xf6\
+\x11\xc9\x75\xad\x74\xcd\x58\x32\x2e\x30\x63\xb0\xaf\x82\x9b\xb6\
+\xd7\x70\x6a\x46\xca\xa2\xf5\x01\xa0\x5a\x26\xa7\x4f\x20\x4e\xea\
+\x9a\x05\xaa\xe1\xde\x89\x4f\xc1\x23\xc6\xf8\x70\x15\xfb\xf6\xde\
+\x89\x4a\xef\x6e\x10\xe5\x40\x5e\xa1\x43\x34\x29\xc5\x35\x75\xaf\
+\x08\x90\x2a\x2d\x17\x85\xf3\x08\x82\x19\x84\x42\x2d\x96\xac\xcc\
+\x7d\x05\xcd\xfa\x2b\xe8\x9d\x78\x37\xc6\x36\xdc\x8a\xd7\xdf\xd9\
+\x8b\xa7\xbe\xf7\x19\x8c\x62\x12\xef\xd8\xf9\x67\xf8\xec\xe9\x5f\
+\xc6\x62\x30\xaa\xb1\x23\x6d\xe3\x64\xc9\x49\x93\x62\x5b\xc3\x2e\
+\x59\x86\xd4\xea\x4e\x50\x5a\xdf\x9e\x68\x62\xc7\xec\xc7\xf1\x96\
+\xfb\xef\x40\x14\xb6\xd3\xba\xd6\x89\x13\x27\xb0\xb8\xb8\x88\x20\
+\x08\xc0\xcc\x98\x99\x99\x01\x33\x63\xeb\xd6\xad\xe9\xbb\x1a\x1d\
+\x1d\x45\x14\x45\xf8\xcc\x67\x3e\x83\x47\x1e\x79\x04\x63\x63\x63\
+\x68\x36\x9b\xb8\x74\x69\x12\x5e\xa1\x07\x7f\xfd\xd2\x56\x2c\x07\
+\x79\x93\x7f\x4e\x9a\xf4\x1b\xc9\x53\xba\x49\x0d\x92\x59\x9e\xd2\
+\x4e\x06\x0e\x44\x52\x6f\x9a\xed\xc7\x87\xbe\x81\x78\x0d\x9e\x59\
+\x47\x8f\x2c\x0a\xa3\xb4\xe6\x45\x49\x34\x6f\x54\x27\xb5\x71\x20\
+\x16\x51\xb0\x76\x18\xa2\x59\x6f\xe2\xf6\x9b\x26\xe2\x81\x8d\x52\
+\xc6\x95\x38\x2f\x4f\x82\x0c\x3d\xce\x90\xaf\xe4\x97\x0b\x3a\x4c\
+\x1c\xd6\x53\xc7\x5b\xe8\xed\xef\xc1\xc8\xc6\x6a\xcc\x66\xf4\xb2\
+\x6b\x28\x76\xb2\xbd\x5c\xde\x07\x79\x1e\x0a\x95\x22\x72\x85\xb8\
+\xd7\xcc\x23\x2f\x1b\xaa\xd9\xe5\xe7\xc1\x6b\x0b\xf8\xeb\xa7\x1a\
+\x46\x4d\x24\x19\x6d\x10\x06\x11\x56\x97\xeb\x78\xd7\x4f\x8f\xbb\
+\x03\x12\x5d\xec\x55\xd2\x24\x13\x82\x51\xf6\x19\x5b\x86\x7d\xc9\
+\x8e\x78\xb8\xb0\x10\xa2\x1e\xd8\x8a\xd1\xb2\xb7\xb2\xb0\x1a\x99\
+\x11\x09\x60\xcb\x90\x87\x72\x81\xd2\xbe\xb9\xb9\x3a\x63\x76\xc5\
+\xa2\xc3\xe3\x98\xe1\xc3\x02\x28\x15\x04\xb6\x0e\xc5\xd8\x5d\x50\
+\x2d\xa2\xa7\x65\x6f\xd2\x64\xe3\x78\x2a\x93\x85\x99\x21\x22\xc6\
+\x55\x9b\xf2\x20\x8f\xf0\xf2\x64\x1b\xa5\x4a\x11\xc3\x13\xc3\xa8\
+\xad\x56\xf0\xf4\x39\xa0\xd2\x0b\x94\x7b\x4a\xea\x68\x0f\x5e\x83\
+\x07\xa9\xcb\x91\x50\x17\xe2\x5d\xba\x96\x19\xc3\x3d\x1e\x46\xab\
+\xb9\xf8\x88\x9d\x56\x8c\x73\xb3\x11\x6a\x2d\x69\x44\xa9\x63\x42\
+\x89\x32\xa0\x52\x1d\x1b\x60\x57\x39\x77\x90\x78\x48\xaa\x09\x11\
+\x69\xc6\x59\x82\x24\x19\x26\x29\xc8\x36\xdd\x77\xb0\x12\xa1\xaf\
+\xc4\xa8\x94\x4b\x58\xad\xbf\xf6\x6c\xeb\xd2\xec\x1c\x4a\xe5\x02\
+\xea\xd1\x08\x96\x6b\x9e\xf1\xb9\x91\x9e\x08\x41\xb8\x80\x9e\x7a\
+\x03\xe3\xa3\xa3\x99\x8a\x8c\x44\xcc\x70\x65\x5c\x0c\xa0\x5a\xa9\
+\xe0\xaa\xf1\x9a\x1a\x00\xda\x3a\x32\xa4\xe7\x6a\x9f\xf4\x4c\xb8\
+\xba\xff\x08\xca\x7e\x1d\xd5\x72\x0e\xd7\x5f\xff\x4e\xf8\xf9\x21\
+\x69\xfd\x47\x60\x6e\x03\xa2\x09\x16\xcd\xce\x5a\x6e\x03\x1c\xc6\
+\x21\xa4\x08\x20\xa2\x15\x34\xea\xe7\xac\xc1\x40\x7b\xf5\x24\x5a\
+\x67\xfe\x08\x7d\xe3\x6f\x47\x4f\x75\x33\xee\xb8\xe5\x51\x7c\xe7\
+\xfb\x9f\x05\xb0\x80\x47\x77\xfe\x19\x3e\x7b\xea\x97\x31\x1b\x6c\
+\xb0\x32\x46\x48\xdb\xe4\x09\xdc\x2f\xdf\x87\x2e\x16\xcc\x6c\xd7\
+\x73\x53\x89\x1a\xd2\x39\x44\x80\x6d\x33\x9f\xc0\x43\x6f\xb8\x05\
+\x2c\x22\xb4\x5a\x2d\x30\x33\x4e\x9e\x3c\x89\x85\x85\x85\xd4\x89\
+\x25\x28\xca\xd4\xd4\x14\x84\x10\xd8\xb3\x67\x0f\xea\xf5\x7a\xea\
+\xbc\xda\xed\x36\x3e\xf7\xb9\xcf\xe1\xa1\x87\x1e\x82\xef\xfb\x88\
+\x90\xc3\xc7\x5f\xde\x8a\x85\x66\x11\xda\xbc\x07\xfb\xf6\x63\x0b\
+\xae\xa9\xcb\x8b\xb0\x39\x51\xa7\x3b\xc1\x8c\x4c\xc7\x65\x14\x56\
+\x2d\x92\xf3\xa9\xd1\xe8\x6c\xaa\x64\x43\x6d\x1c\x29\xe0\xe8\xe9\
+\x36\x5c\x9a\x43\x82\x58\xab\xbf\xc4\x7f\x0e\x9a\x01\x28\x0a\xf0\
+\xba\x83\xe3\x12\x44\xd9\x21\x33\x74\x9c\x96\xc7\x71\xb6\xe5\x75\
+\x06\xf7\x41\x64\x0c\xc3\x5c\x67\xac\xaf\xee\xbc\x56\x1b\x21\xfe\
+\xdd\x87\xce\x82\x8a\x65\x0c\x6f\xa8\xa2\x50\xf0\x01\xcf\x53\xb2\
+\x43\x20\x56\xf3\xe8\x3c\x86\xce\xfd\x78\xf0\xf3\xa4\x31\x00\xb9\
+\xeb\xc8\x8a\x5b\xf7\x94\xf0\xc5\xa3\x2d\xcc\xae\x46\x4a\x66\x1a\
+\x27\x9c\x71\xb6\xb5\x6b\x18\x78\xdd\xde\xfe\x2e\xd6\x21\x1e\xc2\
+\x97\x44\x90\xed\x50\x60\xb0\x20\xf0\xf0\x0d\x3d\xb8\x7a\x4b\x11\
+\x63\xfd\xf6\x91\x2e\x33\xcb\x11\xbe\x7b\xa2\x85\x2f\x3c\xdb\x52\
+\x83\x8b\x48\xa0\x1d\xb4\xf1\xce\x5b\x7b\xb1\x6d\x34\x13\x3d\x9e\
+\x59\x8e\xb0\x52\x0f\x71\xe3\x15\x65\x8c\x0d\xe4\xad\xc7\xfb\xf4\
+\xf7\xea\x78\xf6\x5c\x60\x54\x61\x92\xcc\x29\x0c\x42\xdc\xba\x3b\
+\x8f\x07\xae\xab\x62\xc7\x78\x51\x3b\xc2\xb8\xc3\x31\xc7\x51\x77\
+\x3b\x08\xf0\xb3\xb7\xf6\x61\xdb\x58\x5e\xca\x31\x18\x53\x0b\x6d\
+\xdc\x73\xa0\x37\xfd\xce\x7b\x3e\x3c\x03\xc1\x8c\x1d\x1b\xca\x78\
+\xcf\x5d\x13\x9d\x08\x39\x66\xb3\x7d\xe2\xbb\x35\x9c\x99\x6a\xa1\
+\x40\x11\x7e\xf3\xa1\x61\x89\x39\x46\x78\x79\x32\xc4\x3f\xfe\xa0\
+\x6e\xc0\x06\xf1\xc8\x8d\x00\xef\xbe\xbd\x0f\xdb\xc7\x0a\x31\x6a\
+\xe1\x79\xf8\xaf\x9f\x5f\x82\x60\x81\x28\x0c\x71\xe5\xb8\x8f\x3b\
+\xaf\x2a\xe3\xf0\x95\x3d\xe8\x29\xd9\xc5\x9d\x4f\x4f\x07\xf8\xf2\
+\x73\x75\x7c\xe3\xe5\x46\x47\x64\xd7\xd2\xd4\x4d\xb6\xbc\xc7\x42\
+\x82\xb2\x8c\xcc\x32\xcc\x30\x19\x09\xa2\x6a\x0b\xd6\x12\x49\x96\
+\x12\x86\xed\x43\x11\xaa\xbd\x55\x00\x40\x2b\x68\xbf\xa6\xec\x7d\
+\x6a\x61\x01\xc5\x72\x19\xe7\x97\xfb\x52\x8d\x41\xfd\x8c\x33\xb5\
+\x1c\x56\x9a\xfd\xd8\xd4\xb7\x80\x99\x85\x79\x8c\x0e\x0d\x2b\x93\
+\xd2\x6d\x19\x97\xfc\xfb\x82\x9f\x47\xce\x03\x26\xfa\x19\x97\x97\
+\x29\xce\x54\x59\xce\x5c\xcd\xb3\xea\x53\x0a\x92\x67\xb2\x7f\xe0\
+\xbb\x31\x5c\xb8\x63\x2f\x04\x33\x56\x16\xbf\x87\xd5\xf9\x6f\xc6\
+\x0e\xeb\xc7\xf0\xd3\x0e\x16\xd0\xba\xf0\x51\xf4\x8d\xdc\x8f\x7c\
+\x69\x2b\x6e\x3a\xf4\x66\x3c\x73\xe4\x71\xa0\xbe\x82\x9f\xda\xf9\
+\x17\x78\xec\xc4\xbf\x47\x2d\xea\xb3\x40\x61\x6a\x9a\x64\xcb\x91\
+\x9d\x2a\xf4\xce\xb1\x45\x94\xc9\x89\x45\x21\xb6\xcc\x7c\x0a\x0f\
+\xdf\x77\x23\x72\x04\xd4\xea\x0d\x30\x33\x4e\x9d\x3a\x85\xb9\xb9\
+\x39\xb4\xdb\xed\x8c\x50\xd5\x61\x16\x32\x73\x0a\x0b\x1e\x3c\x78\
+\x10\x73\x73\x73\x29\x6c\x18\x45\x11\x3e\xff\xf9\xcf\xe3\xfa\x1b\
+\x6f\xc6\xd7\x97\x6e\xc4\x6c\xa3\x08\x07\x2c\xa7\xbc\x27\x19\x89\
+\xcb\x32\x61\x43\xb6\xde\xe4\x3d\x48\x33\x0e\xf5\x8c\x52\x46\x4c\
+\xfc\x14\xc6\xd1\xaf\xc2\x14\x8a\x4f\xb3\x00\x75\xdc\xbd\x5c\x83\
+\xb1\x25\xc0\xc2\x08\x25\x39\x4d\xc7\x23\xac\x2e\xd7\x70\xd3\xc1\
+\xa1\xd4\x61\x25\x59\x57\xe2\xb4\xe4\xdf\x7b\xa2\xe3\xe5\xbd\x6c\
+\xbe\x16\x4b\xa2\x09\xb2\xf3\xfa\xfa\xf3\x2b\x28\x0e\x0e\xa0\x50\
+\x88\x23\x78\x3d\xfa\x61\x2b\xc2\x64\x51\x5d\x4e\xea\x30\x6b\x2c\
+\xe4\xb7\x1f\x2a\xe1\xff\x7b\xb2\x66\x70\xd0\xc2\x20\xc4\xea\x52\
+\x1d\xef\x7a\x74\xbc\x3b\xac\x27\x0d\x95\x8b\x42\x81\xda\x72\x0d\
+\xf7\x5e\x57\xc2\x5d\xfb\x7b\xba\x7e\x6f\xb4\x2f\x87\x87\xaf\xaf\
+\xe0\xba\x6d\x05\xfc\xb7\xc7\x97\x51\x0f\xe2\xeb\x6d\x05\x6d\x2c\
+\xcf\x2e\x61\x43\x5f\x15\x57\x6f\x29\xae\x7b\x43\x8e\xf6\xe5\xf0\
+\x6b\xf7\xf7\xe2\x23\xdf\x58\xc5\x77\x4e\xb4\x14\x13\x11\x85\x21\
+\xbc\x76\x0b\xbf\xfd\xd0\x10\x0e\xec\xe8\x79\x6d\xb0\x25\x03\xed\
+\x56\x1b\x4b\x33\x4b\xd8\xd0\xd7\x8b\x7d\x5b\xd4\xcc\x4c\xff\xb3\
+\x88\x80\xda\x4a\x1d\x91\x17\x61\xff\xb6\x09\x95\x9c\xe1\xd7\xd0\
+\x6a\x05\x98\x9a\x5a\xc4\xfc\x42\x19\xb7\x5f\x9b\x45\xd3\x57\x6f\
+\x2e\xe2\xab\x2f\x34\x50\x6f\xa9\x0e\xa5\x59\x6f\xa2\x1c\xd5\xf0\
+\xe6\x1b\x36\xa7\x9f\xfd\xc6\xb1\x38\xba\x17\xed\x10\xab\x0b\x2b\
+\xf8\x89\x37\x6d\xc4\x75\xbb\xbb\x4f\xd8\xde\x31\x56\xc0\xaf\xdc\
+\x57\xc0\xd5\x1b\x0b\xf8\xe0\xd7\x96\x95\x60\x8c\xb5\x0c\x27\x0d\
+\xf6\x3a\x1b\x96\x89\xb5\x0d\xce\xc8\xfa\xd0\x54\x36\x68\x5a\x65\
+\xb3\x84\x9f\x6c\xcb\xd0\xe4\xec\x9a\x38\x33\xe4\x94\xcd\x3c\xda\
+\xd8\x1f\x61\xb0\x5a\x86\x10\xb1\xce\xe8\x7a\x7f\x5a\xed\x00\xb9\
+\x1c\xe1\xe2\x72\x6f\x5c\x5f\x76\x91\x4d\x18\x68\x85\xc0\xe4\xca\
+\x00\x82\xf6\x2c\x06\xfb\x07\xe0\x91\xb7\x26\x44\x28\x67\xa2\x5e\
+\x2e\x87\x4d\xfd\x02\x97\x97\x8c\xc2\x9e\x09\xac\xc9\xc3\x8d\xa5\
+\xb6\x9d\x92\x57\xc3\x70\x71\x12\x00\xd0\xd3\x3b\x8c\x20\x98\xc5\
+\xc2\xdc\x37\xc1\xa2\x85\x1f\xef\x4f\x0b\xb3\xd3\x5f\x42\x6f\xff\
+\x61\x14\xca\xdb\x70\xf0\xda\x5b\x71\xe4\xd9\x6f\x02\x58\xc2\x4f\
+\x6c\xfb\x28\x3e\x79\xea\xd7\x10\xc1\x73\x64\xf7\x6c\x19\x52\x0f\
+\xa3\x62\x0b\x76\xba\x34\xc3\xa1\x13\x47\xd8\x34\xf7\xb7\x78\xe4\
+\x9e\xeb\x50\xcc\xfb\x58\x59\x59\x01\x33\xe3\xdc\xb9\x73\x98\x99\
+\x99\x49\x9d\x96\x9c\x6d\xc9\x7f\x9e\x9c\x9c\x84\x10\x02\x37\xdd\
+\x74\x13\x2e\x5c\xb8\x00\x00\xa9\xf3\xfa\xce\x77\x9e\xc2\xe2\x86\
+\xed\x40\x69\x9b\xa3\x2c\x21\x0d\x7c\x84\xaa\x0a\x9b\xbd\x26\x36\
+\xdf\x1d\xe9\xfa\x06\xd2\xfd\x13\xdb\x92\xd6\xc4\xdc\x9b\xbd\x49\
+\x32\x55\x5a\xd1\x0e\x17\x72\xfd\x5c\x25\x5e\x6c\x1a\x2b\x76\x0c\
+\xbc\xf4\x79\xf9\x33\x5a\x21\x9f\x19\x68\x36\x02\x20\x6c\xe1\xda\
+\x03\xe3\x29\xf5\x5e\x48\x59\x97\xe8\xd0\xe0\x85\x44\x8d\x8f\x98\
+\x11\x0a\x20\xec\xd0\xe4\x43\x01\xb4\x3b\xff\x95\xfd\x6f\xc0\x3e\
+\x8a\xc5\x7c\x3a\xbc\x8d\x95\x63\xb3\x46\x28\xd1\x48\x08\x16\x82\
+\xc5\x5a\x70\xe1\xeb\x76\x14\xb1\x67\xdc\xef\x3c\x97\x0e\xa5\x5d\
+\x30\x9a\xf5\x16\x76\x8d\x12\xae\xdf\x3b\xd0\x1d\x81\x95\xae\x29\
+\x6a\x87\xa8\x2f\xd5\xd0\xd0\x8a\xe7\x97\x66\x1a\x78\xe6\xd8\x3c\
+\x9e\x39\x36\x8f\x95\x9a\x1a\x39\x6e\x1d\xf1\xf1\xd3\x87\x2b\x69\
+\x48\x21\xda\x11\x56\x2d\x0c\x3f\xf9\xe7\x99\x63\xf3\x78\xfa\xd8\
+\x3c\x2e\x4e\x9b\xcc\xbd\x9f\xb9\xb9\xa2\xbc\xaf\x76\xd0\x46\x54\
+\xaf\xe1\x77\x7e\x72\xd8\xea\xb4\x9e\x3e\x36\x87\xa7\x5f\x9c\xc3\
+\xc5\xe9\xba\xf3\x7c\x61\x10\xa2\xb6\xb8\x8a\x70\x1d\xb5\x95\x28\
+\x8a\x10\xd4\x5b\xa8\xd9\x1a\x63\x3b\xec\x93\xa0\x15\xe0\xef\xff\
+\xf9\xac\xf1\xcf\xb7\xed\x2e\x2a\x75\x91\x28\x8c\xd0\x58\xad\xe1\
+\xf6\xbd\x65\xe5\x73\x4f\xbe\x50\x03\x03\x08\xda\x21\x56\xe6\x97\
+\x8c\x67\xf5\xa3\x53\x4b\xf8\xfe\x0b\xb3\xf8\xfe\x0b\x33\xc6\x39\
+\xee\xda\x57\xc1\x9d\x7b\x4b\xce\x2c\x8b\x52\x72\x85\xda\xa4\x4e\
+\x5a\x29\x5d\x6b\x20\x51\xcb\xc1\x1e\x1c\xf3\xdf\x58\x93\x1b\x20\
+\xb5\xa8\x9f\xaa\x88\xa8\x8b\x76\xbc\x0f\x28\x15\x0a\x08\xa3\x68\
+\xfd\xa3\x7c\x88\x30\xbf\x52\x43\x8b\x07\x10\x29\xcd\x88\x6d\x2c\
+\xae\xce\xe3\xf2\xdc\x2c\x56\xeb\x0b\x32\x43\x05\xf5\x90\xc0\x5e\
+\x05\x17\xa7\x2e\xaf\x0b\x22\x94\xeb\xac\x95\xa2\x8f\x91\xaa\xb0\
+\x30\x15\x92\x3e\x32\xfd\x19\x68\x61\x39\x01\xfd\x85\xf9\x8e\xda\
+\x4e\x0e\xe4\x11\xea\xf5\x33\x68\x87\x4d\x84\x82\x7f\xfc\xbf\xa2\
+\x08\x0b\xf3\xdf\xc1\xea\xf2\x8b\x00\xda\xb8\x7a\xef\xd5\x20\x0f\
+\xd8\xd0\x73\x0e\xd7\x0f\x7f\x2b\x9b\x72\x60\x11\x8f\x96\x08\xe0\
+\xca\xfb\x4a\x29\xe1\x8a\xe6\xab\xfa\xbe\xd9\xa8\x65\x47\x98\x98\
+\xf9\x7b\xbc\xe5\x8e\xab\xd0\x53\x29\x62\x65\x65\x05\x42\x08\x5c\
+\xbc\x78\x11\x93\x93\x93\x06\x3c\x28\x67\x5b\xba\xf3\x3a\x7f\xfe\
+\x3c\x4a\xa5\x52\xfa\x77\x63\x63\x63\xe8\x29\x15\x30\xb2\xf4\x4d\
+\xe7\x24\x65\x9b\xae\xae\xad\x5a\x6b\xea\x6e\xb9\x64\xd4\x32\x06\
+\x17\x19\xf2\x70\x29\x39\xc3\x16\xc9\x90\x65\xcf\x70\x3a\xd8\x8e\
+\x01\xd4\x1b\x6d\x54\xca\xf9\xf4\xb2\x86\xaa\x1e\xe6\x56\x84\x3d\
+\x85\xd4\xd2\xb7\x28\x6c\xa3\xbe\xb2\x8a\x43\xd7\x0e\x1b\xbd\x48\
+\x86\xf3\xf2\xe2\x17\xe9\x89\xce\xf5\x7b\x09\xac\xd6\x69\x88\x96\
+\xce\x91\xf7\x3a\x84\x0d\x1b\xb3\x4b\x71\xf6\xec\x28\x91\x48\x85\
+\x54\x56\xc7\x09\x46\x6c\x8e\x59\x91\x59\x72\x0f\x1e\x2c\xe1\xf8\
+\x97\x57\xd3\x63\x88\x76\x88\xfa\x72\x0d\x0f\x3f\x3c\xba\xae\x8c\
+\x24\x59\xc6\x42\x30\xda\x61\x08\x66\xc6\xa5\x99\x26\x3e\xfd\xc4\
+\x25\x7c\xe7\xc5\x45\xcc\x2c\x87\x60\xc1\x68\x07\x71\x5d\xf0\x17\
+\x1f\xde\x86\x5f\x79\xfb\x15\xe9\x31\x6e\xbf\xb2\x84\x4f\x7d\xaf\
+\x86\x7a\xc0\x10\x1c\x41\x44\x26\xc3\x6f\xa5\x1e\xe2\x8f\x3f\x7d\
+\x0a\xdf\x79\x71\x19\xb5\x66\x84\x30\x08\xd0\xa8\x35\xf0\x47\xbf\
+\x71\x00\xaf\xbf\x29\xcb\x6c\x2a\x45\x0f\x57\x4e\xe4\xf0\xf2\x64\
+\x08\x11\xc5\x4e\xf0\x67\x6e\xae\xe0\x8a\x4d\x15\xe5\x78\x5f\x7c\
+\xea\x32\xfe\xf4\x73\xe7\x51\x6b\x44\x68\xb7\x02\x34\x56\x1b\xf8\
+\xcb\xdf\xbd\x01\x37\xee\x1f\x36\x58\x85\x82\x63\xb6\xa0\xad\x6f\
+\xe8\xe5\x33\x2b\xf8\xd4\x57\xcf\x63\xbe\x01\x0c\x8e\x27\x24\x1d\
+\x36\x8a\xe3\x09\xfc\xea\xe5\x73\x28\x96\x8b\xf8\xfa\x0f\x2f\xe3\
+\xe2\x54\x1d\x9b\xc6\xb3\xeb\x7a\xe0\xda\x32\xbe\xf2\x42\xe6\x8c\
+\xdb\xad\x36\x6a\x4b\x35\x3c\x78\xcb\x76\x09\xfa\x0a\x70\x7c\xaa\
+\x8d\x9c\x9f\x87\x08\x23\xb4\x83\x78\x7e\xcd\x33\xc7\xe6\xf0\xa5\
+\xa7\x2e\xe3\xdb\x2f\x2c\xa2\xd6\x8a\x37\x77\xd0\x68\xa1\x48\x11\
+\xfe\xcb\xfb\xaf\xc5\x7d\x37\x6f\x4c\x8f\xf1\xb6\x9b\xaa\xf8\xe6\
+\xcb\x0d\x6d\x79\xb1\x65\x84\x3a\x6b\x06\x87\x53\x43\xcc\xd2\x80\
+\x4d\xbd\x4d\x81\x94\x3a\x8e\xad\x8e\x40\x4a\x9d\xcb\xed\x7d\xe2\
+\xff\xf4\x14\x18\xb9\x9c\x87\x28\x12\x58\xef\x0f\x33\x90\xcb\x31\
+\xe6\x9a\x39\x29\xb3\x8a\x70\x62\x72\x01\x8f\x3f\x17\xff\xbb\x4f\
+\x21\x7e\xfa\xf0\x3c\x46\x07\x86\xd3\xeb\xae\x87\x3d\x08\xc3\x29\
+\x27\x44\x68\xcb\xb8\x98\x19\x05\xdf\xc7\x60\x05\xf6\x66\x78\x76\
+\xcd\xa7\x53\xa3\xf2\x72\x2e\x0e\x76\x7c\x9f\xd0\x6c\xcd\x21\x0c\
+\x97\xd1\x16\xeb\xbf\xe7\x7f\xcd\xcf\xe2\xd2\xf3\xa8\x44\x0d\xf8\
+\x7e\x1f\xb6\x6e\xec\xc1\xd9\x0b\x35\xdc\x30\xf2\x4d\x3c\x33\x7b\
+\x27\x1c\xaa\x92\x0a\x0c\xe8\xee\x9d\x96\xc9\x3c\xf6\x81\x20\x2c\
+\x18\x1b\xe6\xbf\x88\xb7\xdc\xba\x0b\x83\xfd\xd5\xb4\x0f\xeb\xf2\
+\xe5\xcb\xb8\x78\xf1\x22\xaa\xd5\x2a\x0e\x1d\x3a\x84\x27\x9f\x7c\
+\x12\x8d\x46\x0c\x1d\xee\xdb\xb7\x0f\xfb\xf6\xed\xc3\x27\x3f\xf9\
+\x49\x95\xed\x0d\xa0\x50\x28\x28\x8e\xad\xdd\x6e\x23\x68\xb7\x11\
+\x56\xaa\x6a\x86\xaf\xb3\x46\x6c\x6b\xd1\x32\x2d\x1d\x5d\x78\x85\
+\x2a\xe1\x43\xcb\xd3\xa4\x35\xe1\x41\xce\x86\x20\x53\xdb\x85\xc2\
+\x75\x93\x6b\x15\x20\x82\xe7\xe7\x70\xee\xfc\xb2\x62\x98\x36\x0c\
+\xe5\x14\x4c\xdb\x68\x68\x4d\x33\x11\x81\x66\xbd\x85\xa2\x17\xe1\
+\xc0\x81\x71\xc5\x01\x08\xc9\x79\x45\xda\x2f\x39\xcb\x0a\x3b\x34\
+\xd5\x50\x30\x42\x06\xda\x91\x9e\x79\x91\xd2\xb0\x27\x3a\x4d\xb2\
+\x22\x8d\xf4\x5c\xff\x53\x1d\xb5\xec\x98\xb2\x73\x03\x9f\x7b\xf2\
+\x62\xfa\xfb\xa4\x49\xfa\x8a\x89\x02\xae\x98\xc8\xa5\xe7\x69\x36\
+\x03\x54\x72\x6d\xdc\x76\x70\x38\xa5\xf7\x7f\xff\xc5\x79\x2b\xaa\
+\xcd\x32\x48\xe4\x01\x85\x62\x01\x5f\x7f\x61\x05\xef\xfd\xc3\x57\
+\xf0\x8d\x57\x43\xa0\x6f\x08\x13\xdb\x37\x60\x62\xc7\x06\x4c\x6c\
+\x9f\xc0\xe0\xf8\x20\x3e\xfc\x8f\x67\x8c\x63\xed\xdd\x90\xef\x2a\
+\x43\x75\x72\xb2\x89\x23\x17\x3d\x54\x27\x46\x30\xb1\x63\x02\x63\
+\x5b\xc7\x51\x1d\xea\xc3\x27\xbe\x72\xde\xf8\xec\x50\x4f\x5c\x13\
+\x6c\x36\xdb\xa8\x70\x1d\x6f\xbf\x5b\x85\xec\x7e\x78\x62\x19\x1f\
+\x7a\x62\x09\xd5\xf1\x51\x8c\xef\xdc\x80\xe1\x4d\xa3\x28\xf7\x56\
+\x60\x8f\xc9\xe4\x56\x08\xf3\xba\x7e\xfb\x23\xa7\xf1\x2f\x67\x05\
+\xce\x2c\xfb\x38\x3e\x25\x64\x6f\x6e\xfd\xc9\xf9\x79\x94\xaa\x65\
+\x94\x2a\x25\xfc\xc3\xd7\x2f\x68\x70\xa7\x1f\x3f\x87\x0e\x91\x28\
+\x68\x36\x71\xe8\x8a\x32\x36\x8d\x65\x19\xd7\x17\x9f\x59\x06\x79\
+\x31\xf9\xc2\xcb\xe5\x50\xaa\x96\xf1\x07\x9f\x3e\x87\xdf\xfe\xe8\
+\x59\x3c\x7d\xc1\x43\x75\x62\x1c\xe3\xdb\x37\x62\xc3\x8e\x4d\x18\
+\xdf\xbe\x11\x28\x55\xf0\xb1\x2f\x9d\x56\xce\x33\xd6\xef\x9b\xc4\
+\x08\x59\xea\x89\x33\xc8\x8f\x3a\xd0\x47\xa2\xc8\x27\xb9\x9e\x54\
+\xae\x2a\x1d\xa2\x2a\x4d\x59\xb1\x37\x53\x67\x1d\xd5\x2c\xf5\x31\
+\xb3\x75\x66\x73\xb6\x09\xf2\x39\x01\x22\x4a\x55\xbd\xd7\x93\x6d\
+\x45\x51\x08\x2f\x97\x43\x28\x29\xb8\xb7\xc3\x55\x3c\x79\x8c\xd3\
+\x24\x2b\x14\xc0\x91\xd3\x21\x72\x08\xd2\x6b\x6c\xb4\x18\x3e\xad\
+\x4d\xca\x48\x03\x67\xce\x9c\x79\xa5\x60\x13\x42\xce\x72\x57\x72\
+\x93\x1e\x63\x87\xe5\x05\x29\xd4\xd4\x6c\xce\xa1\xd5\x5a\x44\x18\
+\xf1\xbf\xf1\xaf\x08\x8d\xfa\x14\x9a\xcd\x39\xf8\xf9\x18\x0d\xe9\
+\xc9\x2f\x23\x9f\x6b\xc1\x86\xfd\x65\xda\xa4\x76\x89\xa8\xec\xef\
+\xb3\xdc\x3d\xcb\xca\xb4\x4c\x7a\xfe\xcb\x78\xf0\xd0\x06\x8c\x8f\
+\x0e\xa5\x4e\x6b\x7a\x7a\x1a\xe7\xce\x9d\x43\xbb\xdd\xc6\x81\x03\
+\x07\x70\xed\xb5\xd7\xa2\x50\x28\xc4\xc1\x41\xa1\x80\x43\x87\x0e\
+\xa5\x93\x8d\x13\x07\x05\x00\x1b\x37\x6e\xc4\x86\x0d\x1b\xb0\xba\
+\xba\x9a\x3a\xad\x73\xe7\xcf\x23\xf2\x7a\x30\x3d\x70\x9f\x0a\x5f\
+\x3a\x58\xf0\xe4\x1c\xbe\xa9\x47\xea\xa6\x44\xa0\x2a\x30\xcc\xea\
+\x73\x52\x59\x85\x92\xc9\x64\x75\x84\x80\x6d\xfc\x06\x23\xa6\x2a\
+\xfb\x05\x1f\x17\x2e\x2c\xe3\xca\xdd\xc3\x69\x3f\xce\x15\x9b\x8b\
+\x78\xfe\x4c\x60\x46\x42\x9a\xbe\x56\xd8\x8e\xb0\xba\xb4\x8a\x37\
+\xdc\x91\x39\x2d\xc1\x31\x81\x43\x80\x20\x20\xb3\x09\xe3\xb1\xe8\
+\x2f\x1d\x9f\x47\x6f\x8f\x8f\xdd\xdb\xfb\xc0\x22\xa3\xc1\x0b\x6d\
+\x24\xb7\xdc\xc8\xc6\x52\xdf\x08\x91\xd4\x08\xab\xf6\x9b\x76\x99\
+\x46\xcc\x4a\xfd\xa9\x2d\x90\x8a\xfe\x4e\xce\x07\xf8\xdc\x93\x17\
+\xf1\xd0\x5d\x9b\x94\x1e\xa5\xfb\x0f\x94\xf1\xca\xff\x58\x46\x14\
+\x46\xa8\xaf\x36\xf0\xde\x3b\xc7\x10\x8a\x8c\xba\xff\xa1\xcf\x9d\
+\xc2\x0d\xfb\x86\x4c\x26\x64\xda\xec\xca\x20\x2f\x87\xca\x40\x15\
+\x41\x3b\xc4\x44\x9f\x87\xbb\xaf\xe9\xc5\xbe\x2d\x45\x6c\x1f\x2b\
+\xa4\x24\x8d\xd5\x46\x84\x97\xcf\x2c\x1b\x57\xbd\x79\xd0\xc3\x91\
+\x33\xaa\x92\x87\x42\x23\xcd\xe7\xd0\x37\xd2\x9f\xd6\xfd\xf2\xa5\
+\x02\x5a\x41\x1b\xaf\x5e\x9c\x33\xe2\xd8\xe1\x2a\x75\x60\xb6\x3a\
+\x6e\xde\x5d\x36\x2e\xf7\x2b\x47\xeb\xe8\x1f\xe9\x47\xce\xcf\xa5\
+\x0b\x2c\x5f\xcc\x5b\x9b\x54\x44\x97\xc9\xe4\x00\x50\x1c\x1a\x44\
+\xc5\xf7\x00\xe4\xe0\xe5\x3c\x88\x30\x94\x60\x67\x58\xd7\x54\xbe\
+\x54\x40\xb9\xb7\x8c\x2f\x7c\xeb\x12\xde\xff\x8e\x3d\xca\x67\x1e\
+\x38\x50\xc6\x4b\x97\x02\x84\x41\x88\xfa\x52\x1d\x6f\xbc\x5f\x55\
+\xf5\xfe\xd6\xf1\x26\x88\xf2\x80\x88\x7b\x09\x7b\x87\xfb\x11\x44\
+\x11\x76\x8e\x17\x70\xf3\x9e\x1e\xdc\xb4\xa7\x07\x3b\x27\x8a\xe8\
+\x29\xc5\x35\x8a\xc9\xb9\x16\x96\x96\x5b\xce\x74\x46\xee\xdf\x32\
+\x46\x7a\x70\x46\xfb\xcd\x4a\x4f\xa4\xc2\x3f\xae\xe7\xc3\xb6\xda\
+\x07\xdb\x08\x8b\xaa\xbe\xa8\xe5\x1a\xbd\x14\x5d\x79\x0d\x1d\xfc\
+\x1e\x59\x6b\x0c\x91\x50\x5b\x0f\x62\xf9\x3a\x36\x88\x27\x6b\x65\
+\x5c\x2c\x33\x23\x3b\x6c\x4c\x52\x46\x4b\x24\x28\x0f\xad\x73\xb4\
+\x0f\x61\x35\x8c\x61\xf9\xa0\x1d\xa1\xde\x9c\x1e\xef\xea\x9a\x00\
+\x00\x20\x00\x49\x44\x41\x54\x01\x73\x64\xcd\xdc\x7f\x9c\x3f\xe4\
+\xe5\x01\x11\xa1\xdd\x9c\xc1\xf4\x4c\x00\xc0\xc3\xa5\xfa\x76\x04\
+\x51\x19\x1a\x67\x50\x22\x95\x38\xc6\x2c\x90\x9a\xa8\x53\x17\x43\
+\x35\x34\xff\x35\x3c\xf8\xba\x01\x6c\xdf\xba\x11\x97\x2e\x5d\x82\
+\x10\x02\x73\x73\x73\x38\x7b\xf6\x6c\x47\x8b\xb0\x1f\x5b\xb7\x6e\
+\xc5\x9f\xfc\xc9\x9f\xa0\x56\xab\xa1\x58\x2c\xe2\xd1\x47\x1f\xc5\
+\x93\x4f\x3e\x89\x57\x5f\x7d\x55\xc9\xb4\x86\x87\x87\x71\xf8\xf0\
+\x61\x9c\x3c\x79\x32\x6e\xbc\x0e\x43\x9c\xbf\x70\x01\xad\xc8\xc7\
+\xc5\x8d\xef\x46\xe4\xf7\xda\x65\x47\x9d\xea\xb9\xb0\xce\x2e\x65\
+\x99\x55\x93\x58\x6b\xca\x1c\x94\x9e\x71\x26\x4a\x3f\x24\xb1\x33\
+\x7c\xd9\xc3\xa7\x63\xe6\x35\x9e\x02\x29\x33\x3d\x62\x09\x90\x7c\
+\x21\x8f\x57\x4f\x2f\xe2\xf5\x77\x4b\x91\xee\x40\x1e\x1b\x06\x73\
+\xb8\x34\x1f\x19\xc5\x38\x96\x0c\x73\xa3\xde\x44\x7f\x05\xd8\xb6\
+\x6d\x20\xe3\xf9\x93\x0c\x29\xc5\x9b\x6c\x7a\xae\x81\x67\x8e\x4e\
+\xe3\x07\x2f\xcc\x62\x66\xb1\x05\x9f\x23\x0c\x54\x72\xf8\xaf\xbf\
+\x75\x08\xd5\x9e\xbc\xfa\x8e\x3b\xe2\x6e\x5e\x67\x7d\x6e\x1a\xca\
+\x83\xd1\x4a\x1f\x8e\x90\x59\x59\x82\x53\xcf\xe7\x04\x5a\x14\x9a\
+\x73\x6c\x42\xdb\x51\x4c\x00\xf1\x08\xf0\x0a\x79\xfc\xe5\x3f\x9e\
+\xc6\x1b\xef\xd8\xa4\x34\xf8\xee\x1c\x2f\x60\xe7\x58\x1e\x2f\x9e\
+\x6a\xa0\x82\x00\xf7\x1e\x1e\x4f\x1d\xd7\x0b\x27\x97\xf1\xfc\x89\
+\x15\x84\x1d\x55\x04\xdf\xb3\xa3\x94\x31\x7b\x8e\x70\xeb\x55\x15\
+\xfc\xfc\x7d\xc3\xa8\x5a\x18\x6e\xd5\x72\x0e\x37\x5c\x35\x68\x71\
+\x10\x9c\xb5\x35\x30\x5b\xf6\x44\xd2\xfc\x16\xff\x4b\x2e\xe7\xa3\
+\x50\x2c\x60\x36\x10\xe9\x33\x4a\x9b\x28\x39\x86\x2c\x9b\xb5\x26\
+\x76\x6e\x1c\x51\x9c\x0f\x33\x70\x62\x0e\xf0\x12\xa7\xa5\x49\x46\
+\x99\xce\x26\xcb\xbc\x6d\x3f\xf9\x52\xd1\x52\xed\x71\xd7\x04\xc1\
+\x40\xae\x90\x47\xa9\xb7\x82\xe9\xf9\x25\x7c\xee\x6b\xe7\xf0\xd6\
+\xd7\x6f\x4d\x3f\x72\x68\x57\x09\xc3\xd5\x15\x9c\x5f\x6e\xa3\xaf\
+\x10\xe1\x9e\x43\x63\xe9\xbf\xfd\xf3\xb3\x4b\x68\x08\x0f\x39\xaf\
+\xa3\xf7\xd6\x61\x2b\xbe\xed\x70\x2f\xde\x75\x8f\x1d\xd6\xdd\x30\
+\x5c\xc4\x86\xe1\x22\x5c\x0b\x85\xe5\x4e\x10\x25\x30\x62\x99\x33\
+\xa1\xb5\x9c\xa8\xe3\x05\x39\x35\x66\x2c\xa9\x4f\xa8\x35\xe5\x84\
+\xdd\x9f\x4e\x86\x67\x4a\xe5\x90\x98\xbb\x4e\x1b\x43\x10\x12\xc2\
+\x50\xc0\xf7\xd7\xe7\xb8\x88\x08\x7e\x2e\x07\xe2\x08\xbe\xc7\x08\
+\x3b\xce\x2a\xef\xf7\xe0\x96\x3d\x2d\x7c\xe3\xe5\x0c\xc0\xba\x6e\
+\x9b\x87\x08\x85\xd4\x28\x95\x7c\x82\x10\x6b\x38\x2c\x4b\xc6\x25\
+\x84\x88\x6b\x64\x84\x2e\xf7\x62\x26\x31\x59\xe3\x0d\x63\x25\x1c\
+\xec\x1c\x0b\xa8\x35\x17\xba\xc8\x11\xfd\x18\x7f\x44\x0b\x41\xd8\
+\x42\x7d\xb5\x80\xd5\xd5\x12\x98\x81\xef\x4c\xdf\x6f\x19\x0e\x6b\
+\xe1\x96\x10\x8c\x36\x22\xd7\x8c\x58\xf9\x67\x70\xf1\x29\x3c\xb0\
+\x2f\x87\x2b\x77\xef\xc0\xb9\x73\xe7\x20\x84\xc0\xd2\xd2\x12\x4e\
+\x9d\x3a\x95\xf6\x69\x1d\x3e\x7c\x18\xdf\xfd\xee\x77\x51\xaf\xd7\
+\x51\x2a\x95\xf0\xe8\xa3\x8f\xe2\x89\x27\x9e\xc0\xa9\x53\xa7\x30\
+\x3c\x3c\x8c\xa9\xa9\x29\x00\x40\x7f\x7f\x3f\x6e\xbb\xed\x36\x9c\
+\x3a\x75\x2a\x95\x7b\xba\x74\xe9\x12\x1a\x6d\xc2\xa5\x8d\x3f\x87\
+\x76\x7e\x48\x9a\xa9\xca\x46\xaf\x99\x32\x3d\x8b\x0d\x91\xc9\x8e\
+\x3d\x71\xc1\x83\x19\xfd\x95\x21\xeb\x3a\xb2\x55\x21\x28\x85\x0a\
+\x45\x87\x18\xc1\x4c\x19\xd4\x97\xc0\x0e\x12\xc4\x16\x2b\x3c\x00\
+\x39\x3f\x87\x52\xa5\x84\x17\x5f\x9e\x43\xbd\xd1\x56\x2e\xe5\x75\
+\xbb\xcb\x8a\xca\x42\x47\x50\x21\x35\x76\xed\x20\x42\x6d\xa9\x86\
+\x1b\xaf\x1f\xb7\xd4\x78\xe2\x5f\xdf\xff\xc1\x65\x7c\xf0\x63\x2f\
+\xe1\x8f\xfe\xea\x15\x3c\x7d\xa2\x89\xa8\xd4\x8b\x37\xdf\xbb\x13\
+\x7f\xfc\xbb\xb7\x60\xf3\xd6\x41\xfc\xef\x1f\x78\x06\xcb\xb5\xb6\
+\xa1\x65\x18\xc3\x87\xf1\x9f\x8b\x3e\x75\xee\x29\x53\xea\x90\x75\
+\xf5\x64\xb5\x06\x16\xf1\x35\x42\xd7\xd1\x83\xaa\xc3\x18\x72\x0c\
+\x47\xb6\x05\x90\x2f\xe6\x31\xdf\x60\x7c\xfe\x1b\x17\xd3\xbf\x4b\
+\xa0\xcc\x7b\xf7\x97\x50\x5f\x6e\xe0\xe1\xdb\x46\xd3\xeb\x09\x05\
+\xf0\x99\x6f\xce\x82\xf2\x39\xe5\xef\x64\x5f\xca\x1c\xb3\xe9\x5a\
+\xf5\x16\xae\x1a\x89\xf0\xef\x1e\x1a\xb3\x3a\xad\x35\x6b\x65\x52\
+\xbb\x82\xeb\x43\xe9\x3d\x53\xec\x28\x89\x28\x23\xc0\x08\xa9\x25\
+\xa1\x1d\x21\x68\xb6\x30\x3e\x5c\x4a\xe1\xce\xe4\x57\x2b\xca\x9e\
+\x23\x6b\xf7\x22\xd8\x91\xbf\xb2\x5b\x61\x4a\x56\xf3\x70\x39\x40\
+\xf9\x78\x39\xcf\x43\xb1\x52\x46\xb9\xda\x83\x7f\xfc\xc6\xc5\x74\
+\x1d\x24\x6a\x23\x77\xec\x29\xa2\x59\xab\xe3\x0d\xd7\xab\xc4\x98\
+\x6f\xbc\x54\x87\xd7\x69\x8d\x88\x44\x84\xfa\x4a\x1d\x0f\x1f\x2c\
+\x38\x9d\x56\xf7\xe7\x2d\x39\xe4\xe4\x26\x85\x25\x20\xd1\x1d\x1b\
+\x59\x07\xaa\xc4\x51\xa5\x4d\xd2\x88\xa4\xc9\xcd\xca\x94\x58\xd6\
+\xe6\x95\xe9\x18\x0d\xa5\xe5\xff\x66\xe8\x21\x8c\xa2\x35\xc4\x4c\
+\x33\xa7\x05\xc4\x93\x1c\x5a\x91\x40\x7f\x59\x26\x4c\xf8\xb8\x66\
+\x6b\x1f\x1e\x3d\x4c\x78\xf8\x75\xc0\xcf\xde\xe2\x61\xd3\xe8\x30\
+\x64\xd1\xd7\x6a\xa1\x89\x62\xbe\xd8\x1d\x22\xb4\x64\x5c\xed\x50\
+\x60\xa9\x96\x31\x21\x0d\x16\x02\x67\x8a\xf3\xa4\x81\xa3\xc9\x3f\
+\xd7\xa3\x3e\x2c\xb7\x63\xe7\xd5\x6a\xe5\xd4\x9a\xf9\xbf\xe1\xaf\
+\x46\x3d\x8f\xe5\xa5\x98\xb0\xf3\xfd\x99\x7b\x70\x76\x75\x8f\xd2\
+\x2e\xc1\xfa\xf4\x02\x5d\xf4\xc3\x3a\x0c\xd5\xbe\x07\x06\x96\x9f\
+\xc6\xbd\x57\x34\x70\xdd\x81\x7d\xa9\xd3\x5a\x59\x59\xc1\x2b\xaf\
+\xbc\x92\x3a\xad\x44\xcd\x7d\x7a\x7a\x3a\xcd\xb4\x9e\x78\xe2\x09\
+\x9c\x3c\x79\x12\x0f\x3e\xf8\x20\x7e\xf5\x57\x7f\x15\x5b\xb6\x6c\
+\x41\xb5\x5a\xc5\x2d\xb7\xdc\x82\x73\xe7\xce\xa5\x23\x4b\x2e\x5f\
+\xbe\x8c\xd5\x46\x88\x4b\x1b\xde\x8d\x20\x3f\xa2\x26\x58\x04\x4b\
+\xfd\x36\xfb\x33\xe9\xd3\xcf\xe5\x71\x06\xe6\x88\xec\x14\x08\x4d\
+\x41\xc2\x74\xb6\x1b\xa5\x53\xbd\x55\xad\x46\x89\x9c\x41\x12\x15\
+\x37\x89\xa3\x74\x96\x78\xa2\x59\xe8\xe5\x7c\x14\x2a\x65\x14\x4a\
+\x79\x1c\x7d\xee\x32\x6e\xbd\x79\x4b\xfa\xd9\x4d\xa3\x05\xec\xdf\
+\x51\xc4\xb1\xd3\x4d\xb3\x6f\x05\x8c\x66\xa3\x81\x81\x1e\x60\xfb\
+\xf6\x01\x25\x9e\x9a\x9c\x5c\xc1\xd3\x47\x2e\xe3\xcc\x85\x1a\xbc\
+\x52\x09\xc5\x72\x09\x7d\xa3\x3d\xd8\x34\x92\xc7\xfd\x37\x0d\x61\
+\xb8\x3f\x8f\xc7\xbe\x32\x89\xd3\xb3\x8c\x85\x15\xc6\xef\x7c\xe0\
+\x19\xfc\xfe\x6f\xc6\x99\x17\x77\x2e\x2e\x6e\xe9\x8a\xaf\x3c\x12\
+\x99\xd3\x35\x61\x1d\xa9\xb9\x97\xc9\xc8\xce\xf5\xa0\x27\xb1\x9f\
+\xa1\xe0\x6c\x3a\x73\x3e\x8f\x4a\x6f\x05\x7f\xf3\x85\xd3\xb8\xef\
+\xb6\x8d\x4a\x8d\x70\xfb\x78\x01\xd7\xed\x28\xe0\xee\x9b\xc6\x10\
+\x89\x38\xd5\x3d\x7e\xae\x86\x13\x93\x21\x88\x08\xed\xa8\x23\xb6\
+\x6a\x31\xde\xed\xa0\x8d\xa5\xb9\x25\xfc\xc2\xbb\x77\x19\x4b\xf7\
+\x93\x5f\x3d\x8f\xc7\xbf\x3b\x8d\x97\xcf\xae\x62\x6c\xc0\xc7\x44\
+\xbf\x8f\xbf\xfe\xfd\x9b\x4c\xa7\xe4\x58\xee\x89\x4d\x75\xf9\x83\
+\xb0\x63\x03\x3d\xca\x32\xc8\x28\x12\x08\x23\x81\x48\x70\xea\x8c\
+\x52\xa7\x44\x9e\x44\x98\xc8\x02\x9e\xa4\x3e\xc9\xc8\x20\xdd\xcc\
+\x11\x65\x02\xc2\x96\x19\x04\x2a\x64\x26\xf7\xf3\x49\x48\x51\x5c\
+\xaf\x8c\xd7\x69\xbe\x98\x47\xb9\xb7\x07\x47\x5f\xbd\x84\x73\x53\
+\x75\x6c\x1a\xab\xa4\x46\xfd\xb6\xbd\x65\xfc\xe9\xa7\x6a\x78\xe8\
+\xb6\x9d\xe9\x79\x2e\x2f\x04\xf8\xd1\x54\x84\x5c\xde\x8f\xb3\x90\
+\x66\x0b\xd1\xea\x32\x7e\xee\x81\x2b\x8c\xe7\xf1\xc1\xbf\x7b\x15\
+\x9f\xff\xd6\x24\x2e\x4c\xd5\x30\xde\xef\xe3\xee\x1b\x46\xf1\x3b\
+\xbf\x78\xad\x95\x14\xa0\xc3\xea\xd9\x7d\xb0\x31\x38\xd2\xee\x29\
+\x24\x8d\x36\xad\x92\x41\x94\x79\x3d\xd2\x48\x57\x3a\xa1\xca\x90\
+\x3f\x92\xb8\xc6\x97\x97\x81\x66\x2b\x40\xb9\xb4\xbe\xf6\x88\xa4\
+\xe6\x36\xd2\xdb\x87\xd5\xd6\x12\x16\x68\x28\x7d\xf7\xb9\x5c\x11\
+\xe3\x83\x45\xa9\xe7\x33\xbb\x9a\x82\x07\x40\xac\x60\xe3\x86\xcd\
+\xaf\x39\xe3\xaa\x07\x6d\xcc\xd5\x3b\xce\x89\xd5\x62\x3d\x93\x26\
+\xd6\xa7\x8a\x13\x66\xa0\x2d\x03\x27\x96\x0f\xe2\xfa\xe1\xaf\xa3\
+\x51\xcb\xa3\x50\x0c\xf1\x6f\xfd\xd3\xac\x17\xb0\xbc\x18\x3b\xad\
+\x57\x97\xf6\xe3\xdb\x53\x0f\xc2\x3e\x76\x5e\x6a\x53\x50\x5e\xbf\
+\xca\x30\x44\x5a\x8f\x97\xa5\xca\xe2\x54\xa4\x6f\xe5\x28\xee\xde\
+\x32\x8b\x5b\x0f\xdf\x82\xe3\xc7\x8f\xa7\x4e\xeb\xa5\x97\x5e\x4a\
+\xa5\xb7\x92\xfd\x16\x04\x01\xfa\xfb\xfb\xf1\xc8\x23\x8f\xa4\x4e\
+\x6b\xe7\xce\x9d\xd8\xb6\x6d\x1b\x66\x66\x66\xd0\x6c\x36\x71\xf8\
+\xf0\x61\x4c\x4d\x4d\x21\x0c\x43\x08\x21\x30\x33\x33\x83\xa5\xd5\
+\x26\x2e\x6f\xfc\x59\xb4\x8b\xe3\x48\x46\x28\x91\x44\x15\xa1\x0e\
+\x24\xc0\x16\x52\x9b\xad\x9d\x4a\x03\xd5\x55\x6b\xcb\x26\x23\x97\
+\x25\x1f\x24\xa3\x16\xc9\xe7\xbd\x24\x3d\x13\x80\xc4\x70\xa2\xd4\
+\xc8\x28\x2a\xe1\x89\x06\x9e\xd7\x31\x18\xd5\x1e\x3c\xfe\xd5\x93\
+\xc6\x56\xbc\x65\x7f\x15\xbb\x36\x15\x0d\xb6\x60\x18\x44\x68\x2c\
+\xd7\xf1\xba\x03\x23\x20\x02\x5a\xcd\x10\xcf\x1e\xbd\x8c\xbf\xfc\
+\x9b\x17\xf0\xa9\x2f\x9c\xc1\xa5\xe5\x1c\xaa\x63\x23\xa8\x0e\x54\
+\xb1\x75\x63\x19\x6f\xbb\x67\x14\xef\x7a\xd3\x46\xcc\x2e\x34\xf1\
+\x81\x8f\x9d\xc2\xa5\x25\xa0\x6f\xa4\x1f\x43\x1b\x87\x31\xb5\xc2\
+\xf8\x3f\xfe\xef\x2c\xf3\x12\x12\x81\x23\xf9\xaf\x60\x18\x64\x0b\
+\x68\x94\x93\x84\x82\x12\x81\x35\x9a\xbc\xda\x0c\x0d\xa1\x12\x43\
+\x90\xcb\xa1\x67\xb0\x17\x0b\x75\x81\xc7\xbf\x79\x51\x21\x6e\x44\
+\x0c\xfc\xe2\x4f\x6c\xcb\xa8\xfa\xcc\xf8\xda\x0b\x35\x50\xde\x03\
+\x83\xd3\x2c\x51\xa6\xf2\x73\x87\x71\xd7\x68\x34\x31\xde\x13\x61\
+\x6c\xa8\x94\x65\x93\x02\xf8\xd2\xbf\xcc\xe2\x63\x4f\xad\x62\x29\
+\xdf\x87\x0d\x3b\x37\xa0\xe5\x95\xf1\xec\xab\xab\xe9\x3d\x1a\x2c\
+\xc7\x0e\xc1\x46\x21\xb9\xa4\x19\x89\xaa\x4b\x99\xac\x3b\x39\xe3\
+\x4a\x35\x21\x3b\x07\xbb\x30\xdd\x48\xaf\x25\xd1\x90\x2c\x17\x54\
+\x42\x80\xdc\x38\xae\x2a\xfc\xab\xaa\xf2\xc2\xa6\x39\x29\x1b\x35\
+\xa8\xea\xfa\xca\xf5\x48\xef\x31\xa9\x07\x16\x2a\x25\x14\x2b\x25\
+\x3c\xf6\xc5\x53\xca\x7b\x18\xe9\xcb\xe3\x37\x7f\x6a\x2b\x36\x4a\
+\xa4\x8c\xcf\x3f\xbd\x04\xca\x79\x1d\x55\x6c\x81\xc6\x6a\x03\x37\
+\xee\x34\xd5\x3e\x3e\xf2\xf8\x79\xfc\xed\x91\x3a\x44\xdf\x30\xc6\
+\xb6\x6f\xc0\x8a\x28\xe0\xf8\xd9\x55\x67\x25\xd4\xa9\xe0\x8f\x78\
+\x2f\x65\x7a\x94\x92\x6a\xbb\x42\x1f\xee\x90\xe7\x29\x13\x50\xd6\
+\xeb\x22\x0e\xef\x92\x4e\xc1\x55\xa3\xd9\x4c\x73\x92\x29\xfe\x35\
+\xb9\x9c\xc3\xe2\x6a\xac\xa2\xe0\x75\xd1\x4a\x93\xe7\x5a\x91\x47\
+\xe8\xeb\xa9\xc2\x63\x60\xcb\x40\x03\xd6\x79\xd6\xd2\x69\x73\x1e\
+\xb0\xb1\x6f\x05\xa5\x7c\x19\x79\xdf\x7f\xcd\x19\x57\x14\x46\xb8\
+\xb4\x98\x78\x70\x76\x4d\x92\x84\x73\xbc\x6f\xe7\x8c\x2f\x2c\xde\
+\x0a\x66\x42\xab\x99\x47\xa3\x9e\xff\x37\x75\x5a\xf5\xd5\x62\xea\
+\xb4\x8e\x2f\x1d\xc0\xe7\x2f\xbc\x47\xad\x49\xca\xc2\xe6\xac\xcf\
+\xd3\x82\x02\x91\xd9\xea\x44\xf2\x9b\xed\x59\xfd\x11\x6e\x1f\x3b\
+\x87\x7b\xee\xba\x3d\x75\x5a\xb5\x5a\x0d\x2f\xbe\xf8\x22\xda\xed\
+\x76\x67\x84\x0c\x2b\x8c\xc0\x47\x1e\x79\x04\xbe\xef\xe3\xbe\xfb\
+\xee\xc3\x7b\xdf\xfb\x5e\x5c\x79\xe5\x95\xf8\xc8\x47\x3e\x82\xbf\
+\xf8\x8b\xbf\xc0\xbe\x7d\xfb\x30\x3f\x3f\x9f\xd2\xe5\x67\x66\x66\
+\x30\xbf\x54\xc3\xe5\xf1\x77\xa0\x59\xdc\x2c\x4d\x18\x20\x2b\x3c\
+\x9e\x75\x41\xc8\x8d\x86\xda\xd0\x38\xb3\x6c\xd7\x05\x49\x91\x42\
+\x15\x92\xca\x57\xf2\xe6\x22\xb2\xd1\xe1\xd5\x90\x57\x6f\x76\x4c\
+\x1e\x7a\xbe\x94\x47\xa5\xbf\x07\x53\x8b\xab\xf8\xe7\xaf\x9d\xc2\
+\x1b\xee\xdd\xa9\x5c\xc0\x5d\xd7\xf5\x62\xb0\x37\x87\xa3\xaf\xd6\
+\x11\xb4\xe3\x93\x87\x61\x84\xa0\xd5\xc6\x73\x2f\x4c\xe3\xf8\x89\
+\x05\xbc\x72\x7a\x05\x95\xde\x0a\xca\xd5\x3e\x0c\x0d\xe6\x41\x00\
+\x36\x8f\xe6\x71\xed\xee\x2a\x76\x6c\xaa\x60\x79\xb9\x85\xff\xfe\
+\x99\x57\x71\x79\x39\x16\xbf\xcd\x17\xe3\x05\xd8\x3b\xd4\x07\x30\
+\x30\x33\x39\x8b\xdf\xfd\xc3\x67\xf0\x9f\xff\xe3\x21\xf4\xf7\xe4\
+\x15\x79\xa8\x62\xc1\x33\x9d\x3a\x41\xc9\x10\xf4\xfa\xa1\xdc\xe9\
+\x2d\x0f\xd3\x4c\x8c\xb3\x4c\xb2\x00\x80\x52\x4f\x09\x3d\x7d\x15\
+\x7c\xf2\x4b\xa7\x71\xcf\x2d\x9b\xd4\x7a\x1d\xb2\x19\x62\x33\x0b\
+\x6d\x1c\xbb\x14\xa6\x1b\xb8\x2d\xb2\x82\x23\x90\x39\x2e\x11\x09\
+\x04\xcd\x00\x85\x62\x84\x50\xa8\x1d\xe3\x0b\xad\x1c\x06\xc6\x06\
+\x52\x88\x0b\x44\x58\x5a\x58\x89\xc9\x2b\x8c\x74\x08\x67\xf2\x3e\
+\x13\x35\xee\xc4\x49\x24\xf7\x17\x09\xdd\xd1\x65\x50\x57\x72\x2c\
+\x96\x32\xae\x58\xbb\xd1\xc3\x2b\x67\x3b\xe7\x92\x9c\xca\x35\x5b\
+\x0a\xf8\xde\xab\x4d\x03\x02\x10\x1d\x87\x9b\x66\x6e\x22\x13\xf7\
+\x05\x32\x07\x99\xbc\x1e\x4f\x6e\x69\x90\x9a\x0e\x93\x45\x1c\x69\
+\x01\x88\x48\xef\x2f\xb6\x06\xf9\x52\x01\xa5\xde\x1e\x3c\xfe\xd4\
+\x24\xfe\xfd\x7b\xf6\xc7\xb6\xbf\x73\x1f\x6f\xbc\x65\x22\xbd\x16\
+\x02\xf0\x8d\x1f\xd5\x63\x52\x46\x07\x06\x6d\xd5\x9b\x18\x1d\xe8\
+\x35\x36\xd4\x2b\xb3\x40\xff\xc8\x20\x28\xe7\x21\x0c\xda\x08\xdb\
+\x21\x3c\xbf\x6d\x85\x0a\x01\x5d\xf3\x91\x94\x0c\x52\xd5\x24\x94\
+\xa6\xad\x75\x5a\x3a\x52\xc2\x04\x49\x69\xa6\xbc\x3e\x15\x4d\x44\
+\x59\x7c\x94\x9d\x85\xf1\x4c\x4d\x3e\x83\xdd\xce\x2e\xe4\xd0\x6c\
+\xd5\x21\xc4\x10\x3c\xf2\x20\x10\x75\x75\x88\x5e\x32\x34\xd2\xf3\
+\xb0\x71\x74\x14\x53\x0b\xb3\xd8\x36\x10\x61\xaa\xd6\x83\x66\x5b\
+\xd3\x85\x64\x42\x6f\x31\xc2\x70\x79\x19\x51\x3b\xc2\xb6\x8e\xf6\
+\xdd\x5a\x19\x97\xfc\xfb\xb8\x05\x44\xe0\xe2\x52\x1e\x36\x59\xab\
+\xf4\xce\x39\x53\x58\x27\x0b\x01\x88\x00\x2c\xb5\xc7\x70\x74\xe1\
+\x76\x5c\x37\xf4\x2d\xac\x2c\x96\xd0\x6a\x14\xe0\x79\x22\xad\x77\
+\x91\xd7\x89\xe7\x25\x61\x62\xf2\xe2\x0c\xb5\x54\x0a\xed\xde\xc5\
+\x82\x90\xac\x2c\x96\xd1\x6c\xc4\x76\xe9\x85\xf9\x9b\xf0\x3f\x2e\
+\xfe\x14\x18\x9e\xa6\x76\x4e\xd2\xb4\x9a\xee\xe3\x3e\x19\x6e\xfe\
+\x43\xa5\x71\x02\xb7\xf4\x1f\xc3\x9b\xdf\xf8\x20\x9e\x7f\xfe\x79\
+\x08\x21\xd0\x68\x34\x70\xf4\xe8\xd1\x0e\xb1\x85\x52\x87\x95\xcf\
+\xe7\x91\xcf\xe7\xd1\xd7\xd7\x87\xcf\x7e\xf6\xb3\x38\x7d\xfa\xb4\
+\xc2\x20\xf4\x7d\x1f\x37\xde\x78\x23\x96\x97\x97\x53\xa7\xb5\xb0\
+\xb0\x80\xb9\xc5\x55\x4c\x8f\xbd\x15\xcd\xca\x0e\x55\x92\x0d\x90\
+\xfa\x12\x49\x99\x5c\xa0\xf3\x87\xd2\xf2\x54\x32\xa5\x80\x65\x81\
+\x0f\xd6\xa4\xa0\x74\x19\x2b\x32\x88\xf1\x44\x50\x55\x9d\x58\x1a\
+\x6b\xa2\x10\x29\x3a\xc7\x8c\xf4\xcb\x96\xce\xe1\x79\x39\x94\x7b\
+\x7b\x50\x1d\xa8\xe2\xf1\x27\x4e\xe3\xfa\xeb\x26\x30\x32\x5c\xc9\
+\x66\xd2\x00\xb8\x66\x57\x05\xbb\xb6\x94\xf0\xe2\xc9\x3a\xce\x5d\
+\x0e\x30\xdd\x24\x94\x7b\x7b\x30\xbb\xda\x86\xdf\xf6\x30\xb2\x69\
+\x04\xc5\x62\x0e\x1b\x46\x0a\xd8\x36\x51\xc2\xae\xcd\x15\x54\xca\
+\x3e\x5a\xad\x10\x5f\x7b\xea\x12\x7e\x78\x7c\x05\x7e\xb9\x8c\xea\
+\x60\x11\xb9\x94\xc9\x40\xf0\x0b\x79\x54\x87\x7a\x63\x91\xc8\xc9\
+\x39\xfc\xee\x1f\x3e\x83\xff\xf3\x3f\x1e\x42\x5f\x35\x8f\xa8\x03\
+\x19\x6e\x1a\xce\x1b\x2d\x64\xac\xee\x33\xb8\xb2\xdc\x54\x13\x12\
+\x5a\x46\x92\x64\x0c\x04\x44\x4c\xc8\x17\xf3\xa8\xf4\xf7\x62\xfa\
+\x5c\x0d\x5f\xf9\xf6\x05\xbc\xfe\xd6\xcd\x46\x04\xea\x11\xf0\xf8\
+\xd3\x8b\xc8\xf9\xd9\x20\xca\x98\x9c\x91\x6d\xbb\x48\x9e\x4d\x15\
+\x46\x88\xf2\x71\xc6\x28\x8f\x65\xea\x29\xfb\xf0\x72\xb9\xb4\x0f\
+\x9d\x3a\x50\x4a\x62\x94\xd1\x81\xd3\x22\xc9\xe0\xc7\xd9\x4a\x5c\
+\x9b\x83\x74\x0f\xba\x8a\x83\x9c\xd9\x24\x7d\x71\xb1\x33\xe1\x98\
+\x41\x5a\x2c\xe0\x5b\xcf\xce\xe0\xd7\xde\x79\x95\x72\x7b\x77\x5e\
+\xdd\x93\x39\x2e\xce\x60\x48\x19\x2a\x14\xd2\x1c\x35\xb9\xe5\x21\
+\xb9\xee\x1c\x75\xc6\x7e\x70\x07\x0e\x10\x52\xcd\x4f\x64\xd7\x25\
+\xa4\x91\x36\xa9\xd8\x7a\x07\x5e\xc9\xe5\xf3\x28\x55\x2b\x58\x9e\
+\x5b\xc4\x3f\x3e\x79\x16\x0f\xdd\x1d\x0f\x48\xcc\xc5\xbc\x9a\xf4\
+\x7b\x4f\x1c\x5d\x44\x53\xe4\xe0\xe5\xe2\xab\x89\xa2\x08\x61\x10\
+\x42\x88\x58\xbb\x51\x0e\x4a\x36\x8f\x96\x71\x72\x3e\xa1\x55\x7b\
+\x20\xcf\xb3\xb2\x25\x59\x32\xa6\x89\xac\x19\x29\x3d\x83\x92\x1e\
+\x9d\x34\x7a\x44\x8d\x2e\x33\x0f\xc7\x6c\x0e\x11\x54\x67\x7e\x6a\
+\x23\x4e\x28\xdb\xb4\x24\x39\x7f\x66\x15\x5e\x02\x80\xd9\xd5\x1c\
+\x1a\x6d\x46\xa3\xd5\x42\xc1\xcf\xc3\xe5\xb7\x88\xa8\x33\xe5\x38\
+\x99\x78\x0c\x78\xe4\x61\xd3\xe8\x38\x16\x57\x96\x90\xf7\x97\xd0\
+\x0e\x3d\x04\xa2\x00\xe6\x1c\x3c\x0a\xe1\x71\x03\x61\xd4\x46\x39\
+\x5f\xc5\xc4\xa6\x71\xb0\x10\x4a\xb0\xe2\xca\xb8\x64\xb8\xb0\xd1\
+\x6c\xe2\xd5\xd9\x5c\x5a\xc4\xd7\x9f\x03\xa7\x23\x53\xd8\x4e\x74\
+\xd0\x58\x7a\xdf\x9e\x7e\x04\xbe\x17\x62\x7f\xff\xf7\x10\xb4\x08\
+\xf1\x8a\x58\x07\xcf\xa2\xaf\x89\x4a\x35\xe8\xfe\x99\xc8\xc3\xd2\
+\x42\x19\xed\x20\xd7\x21\x62\x3c\x80\xef\xcd\xdc\x97\xc2\xe7\x24\
+\x17\x7d\x25\x7a\xa0\xb3\x6c\x4b\xdd\x73\x91\x72\xe3\x0c\x6e\x2a\
+\x1f\xc1\x4f\xbf\xed\x6d\xf8\xe1\x0f\x7f\x08\x66\x46\xab\xd5\xc2\
+\x91\x23\x47\xd2\x0c\x39\x81\x07\x47\x47\x47\xf1\xde\xf7\xbe\x17\
+\x85\x42\x01\x8f\x3d\xf6\x18\x4e\x9f\x3e\xad\x10\xa7\x3c\xcf\xc3\
+\xc1\x83\x07\xd1\x6c\x36\x53\xa7\xb5\xb4\xb4\x84\xe9\xb9\x25\xcc\
+\x8d\xbe\x05\xf5\x9e\xbd\x19\x31\xc2\xa2\x6a\x41\x6c\x9b\xdc\x9e\
+\x19\x4e\x92\x84\x14\x59\x1e\x1f\x04\xb5\xdf\xd1\x2e\x42\xcc\xca\
+\x88\x1e\x28\xf4\xa5\xcc\xf1\xfb\xb6\xfa\x02\x18\x10\x5e\xc7\x18\
+\xca\xd2\x83\xac\xea\x58\x17\x4a\x05\xf4\x0e\xf7\xa3\x59\x6f\xe0\
+\x4f\x3f\xfc\x0c\xfe\xb7\xdf\xb8\x05\xe5\x72\x5e\x89\x22\x4a\x79\
+\x0f\xd7\xed\xe9\xc1\xb5\x7b\x7a\x20\x18\xb8\x70\x39\x6b\x0c\x1d\
+\x1e\x2c\xa2\x54\xf0\xd2\x6c\xc1\x03\xf0\xc3\xe7\xa7\xf1\xd4\x0f\
+\x66\x11\x52\x01\xe5\xbe\x5e\xf8\x05\x1f\xe4\x99\x58\xaa\x5f\xc8\
+\xa3\x3a\x1c\x6b\x81\xcd\x4c\xce\xe2\x77\xfe\xf0\x69\xfc\x97\xdf\
+\xba\x11\xfd\x3d\x79\x69\x2c\x8a\xd0\x4b\xdf\x12\xa6\xde\x85\xa7\
+\xc4\xba\xb6\x1c\xa7\xc2\xb4\x89\x53\x17\x1d\x76\x65\xa9\xa7\x84\
+\x4a\x5f\x0f\x3e\xfb\x4f\xa7\x71\xc3\xc1\x71\xf4\x54\xd4\xfb\x9f\
+\x5d\x0c\x70\xf4\x6c\x80\x7c\xb1\x90\x5e\x7e\x28\x3a\xb4\x98\x8e\
+\x7e\x4e\x28\x32\xe2\x0b\x00\x9c\x38\xb7\x82\x76\xa4\x52\xfe\xef\
+\x39\xd0\x8b\xf9\x3a\xe3\x6b\xc7\x1a\x4a\xa4\x9f\x2a\xe7\x23\x36\
+\xee\x42\xc3\x0e\x23\x2d\xe3\x12\x1d\x08\x11\x82\x8c\x42\x8d\x9c\
+\xbd\x25\x99\x8e\xe7\xc7\xc2\xc3\x33\xb3\x11\x3e\xf1\xf8\x29\xbc\
+\xe3\x4d\x3b\x53\x67\xbe\x71\xd8\xc7\xcf\xdd\xd5\x8f\x7f\x78\x66\
+\x15\xf3\xab\x51\xe7\x1e\x04\x2a\xe5\x7c\xf6\xac\x48\x26\x4c\x64\
+\x99\x5d\x24\xb2\x3a\x9f\x27\x39\x3d\xd2\x40\x38\x91\x64\x82\x12\
+\x73\x4f\x92\xb9\xed\xcc\x75\x23\x14\x2a\x45\x94\xab\x15\xfc\xd3\
+\xb7\x2f\xe2\x8d\x77\x6d\x83\xd7\xf9\x6c\x8e\xb2\xf3\x7c\xfd\x58\
+\xad\x43\xef\x56\xe9\x93\x4f\x1f\x9b\xc5\x2f\xf1\x1e\x79\x3e\x1f\
+\x7e\xfe\x9e\x21\xcc\xd4\xe6\x71\xec\x42\xa0\x10\x95\x0c\xc7\x25\
+\x60\xd4\x92\x98\x1d\xb5\x3b\x06\x98\x44\x56\x78\x36\x54\xf7\xd8\
+\x20\x74\x18\xe7\x93\x5b\x4b\x58\xab\x0b\x58\xea\x0a\x2a\x88\x42\
+\x38\x7a\xbe\x80\xe1\xfe\x55\x6c\x18\x1a\xb4\x0e\x13\xa6\xd4\x61\
+\x75\x32\xae\xd4\x71\x13\x72\x44\x18\x19\x1c\x02\x0b\x46\xd0\x6e\
+\x21\x08\x43\x2c\xad\xd6\xd1\x0e\x43\x0c\xf4\xf5\xa3\xbf\xb7\x0f\
+\x9e\xe7\xc5\x51\xbd\xec\xb0\xd6\x93\x71\x01\x98\x5f\x6d\xe0\xe9\
+\xd3\x5a\x58\x60\x99\x24\xc0\x6c\x51\x44\x97\x8d\x67\xfa\x8f\x3e\
+\x9e\xbc\xfc\x0e\xfc\x60\xfe\xf5\xd8\xd6\xf3\x12\x7a\x73\x4b\x31\
+\x5a\x94\x6b\xc2\x83\x40\xce\x0b\x91\xa7\x36\x00\x81\x82\xd7\xc0\
+\xb6\xea\x2b\x00\x80\x76\xbb\xbb\x83\x6b\x35\x7d\x2c\x2f\x96\xc1\
+\x82\x10\x44\x05\x7c\xf9\xe2\x3b\x71\x62\xf9\x80\x54\x99\x24\xb0\
+\x36\x0a\x21\xad\x60\xd9\x02\xe6\x0e\x31\x2e\x1b\x89\xa2\xa2\x3d\
+\x85\xe6\x05\xdc\xe0\x7f\x1b\xef\x7e\xe7\x3b\x71\xe4\xc8\x91\x34\
+\x73\x3a\x76\xec\x58\xea\x88\x64\x78\x70\xeb\xd6\xad\x69\xcf\xd6\
+\xec\xec\xac\xa2\x94\x41\x44\xd8\xbf\x7f\x3f\x84\x10\xa9\xd3\x5a\
+\x59\x59\xc1\xe5\x99\x05\xcc\x0f\xdf\x8f\x95\xea\x7e\xa3\xf6\x44\
+\x3a\x35\x3c\xa9\xc9\x69\x13\xa4\x99\x6d\x94\x7f\xdd\xcc\xe8\x62\
+\x50\x12\x02\x46\xec\xd6\xc0\x56\xe4\x9f\xc8\xa1\x9c\x21\x51\x47\
+\x44\x56\x25\x54\x16\x7a\x4c\x3f\xf7\x50\xea\xad\x60\x60\x6c\x08\
+\xb3\x17\x67\xf0\x91\x8f\x1d\xc5\xcf\xff\xec\x41\x94\x2a\x79\x67\
+\x3a\xbc\x79\xa2\x6c\x6c\x96\x46\x33\xc4\xf1\xe3\xb3\xf8\xee\x91\
+\x19\x84\x5e\x01\xe5\xde\x2a\x7a\x4a\x05\x78\x5e\xce\xa4\x57\x4a\
+\x8e\xda\x2f\xf8\xa8\x0e\xf5\x02\x60\x4c\x4f\xce\xe1\x3f\x7d\xe0\
+\x69\xfc\x5f\xbf\x7d\x23\xfa\x7a\xf2\xb1\xc3\xd5\x49\x0b\xbc\xc6\
+\x30\x1c\x96\xa0\x42\xa1\x3a\x6c\x39\x33\xf2\xa4\x5a\x8d\x5f\x2a\
+\xa0\x32\x50\xc5\xec\xb9\x1a\xbe\xf0\xcf\x67\xf0\xf6\x87\x76\x2b\
+\xf7\xfb\xd5\x1f\x2c\xe2\xff\xef\xec\xcb\x82\x34\xc9\xae\xb3\xbe\
+\x73\x6f\x66\xfe\x6b\xed\xbd\xcc\x74\x8f\x66\x7a\xec\x99\xb1\x91\
+\x85\x65\xa1\x05\x2b\x90\x6d\x19\x19\x02\x64\x11\x58\x01\x0a\x79\
+\x11\xb6\x23\x88\x30\x11\x04\x0f\x44\x88\x17\xf3\xc2\x83\x79\x32\
+\x3c\xb0\x05\x26\x42\x38\x6c\x82\x60\x91\x8d\x6d\xb0\x24\x0b\x02\
+\x49\x18\x30\xc2\x1a\x8d\x35\x6a\x8d\x46\x52\x8f\xd4\x1a\x4d\xef\
+\x4b\x55\x57\xd5\x5f\xf5\xaf\x99\x79\x0f\x0f\x37\x97\x7b\xee\xbd\
+\xf9\x57\x8b\x89\xe8\x98\xea\xea\xaa\x3f\x33\xef\xbd\x79\x96\xef\
+\x7c\xe7\x3b\x49\x9a\x88\x06\xe7\x1a\xae\xe3\x2a\x55\x6e\xe0\x3b\
+\x22\xe8\x34\xc1\x7c\xc5\xf8\xfd\x3f\xbc\x89\x9f\xfc\xb1\x37\x89\
+\x77\xf3\x83\x7f\x76\x13\x7f\xf9\x6d\x63\xdc\x78\xb0\xc4\xde\xc6\
+\x36\x2e\x6c\x3f\x6f\x7b\xcb\x2a\x63\x4e\x84\x66\x82\x74\x9d\xdd\
+\xb8\xec\x45\xeb\x8c\xd8\xa9\x61\xda\x9b\xac\xeb\x9b\x85\xb1\x7b\
+\xac\x18\x30\x64\xe9\xcc\xa4\x34\x7a\xa3\x3e\x46\x5b\x63\xfc\xdb\
+\x4f\x7e\x1b\x3f\xf8\xfd\xbb\x78\xfe\xca\x56\xe3\xbc\xde\xf2\x74\
+\x1f\x6f\x79\xba\x8f\x5b\xfb\x4b\x4c\x67\x23\x3c\x73\xf1\x69\x6c\
+\x0c\x13\x14\x55\xd0\x43\x54\x39\x4e\xa7\x70\x58\xb2\xcd\x02\x75\
+\xe5\xdc\x0c\xb5\x59\xbf\x11\xd9\x88\xdd\xb3\x1a\x36\xd5\x24\x67\
+\x8f\xb9\x47\x3f\xc9\x52\xf4\xc6\x43\xbc\x72\xfd\x2e\x6e\xdd\x9b\
+\xe2\xd2\xc5\x21\x54\xf5\xef\xda\x00\xf7\x8e\x56\xb8\x76\xaf\x84\
+\x4e\x55\x13\xc1\x29\xa5\x91\xf4\x33\xbc\x7c\xed\x00\xaf\x7c\xeb\
+\x08\x3f\xf0\xbd\x96\x30\x94\x28\x60\xd4\x57\xf8\x95\x0f\x9d\xc3\
+\xfd\xa3\x1c\xf7\x0e\x57\xb8\xb0\xf9\x44\x94\x0e\xdf\xf8\x10\xd3\
+\x5d\x73\x61\x97\x55\xe8\xf4\x47\x4a\xa3\x1c\x81\xfd\x38\xde\xa6\
+\xd1\x64\x76\x01\xc0\x1d\x00\x95\x6e\x29\x1d\x00\xf0\xa5\x5b\x09\
+\xde\xf5\xcc\x1c\xe7\xb7\x37\x9b\x28\xdd\xff\x4f\x91\xb2\x04\x24\
+\xb8\x19\x97\x8d\x2e\x15\x00\x4a\x34\xb2\x74\x04\x22\xc2\xf6\xe6\
+\x76\x95\xa9\xd3\x5a\x31\xdd\xb3\x48\x19\xcb\x55\x8e\x45\x5e\xe2\
+\xb5\x07\xa9\xc8\x22\x11\x88\x73\x43\x0e\xdd\x14\x6e\xdf\x1d\xb6\
+\xd9\x46\xe8\xc7\xab\xf3\xf8\xca\xea\xc7\xa4\xfe\x37\x23\xc8\x76\
+\x9f\xdf\x7c\x19\x1f\x78\xea\x37\x51\x16\xba\x13\x1a\x9c\x4e\xfa\
+\x98\x4d\xed\x58\x94\x83\xe5\x79\x7c\xe2\xe6\x2f\x62\x7f\x79\x09\
+\xee\x94\x4b\xb7\xaf\x34\xc8\x0c\x3b\x95\xde\xe3\x92\x4e\xaa\x9c\
+\xe1\xf9\xd3\x4f\xe0\x6f\x7d\xf4\xef\xe0\x0b\x5f\xf8\x42\x33\x08\
+\xb2\x16\x8d\xd6\x5a\x07\xba\x83\x57\xaf\x5e\xc5\xe6\xe6\x26\x6e\
+\xdf\xbe\x8d\xfd\xfd\xfd\xc6\xa1\x11\x11\x5e\x78\xe1\x05\x28\xa5\
+\x1a\xdd\xc2\xd9\x6c\x86\x3b\xf7\x0f\x70\xb8\xf3\x5e\x4c\x36\xde\
+\xe6\x29\x74\x70\x84\xa2\x5f\xe9\x60\x92\xaf\xb4\x18\xf6\x19\xba\
+\x10\xa9\xbb\x51\xe4\xaf\x7f\x0d\x11\x7a\x3f\x4c\x51\x62\x9d\x5d\
+\x5f\x25\x29\xbd\x4e\x61\xd9\x18\x30\x9b\xaa\x96\x50\xb3\xc1\xdc\
+\x69\x85\x76\x8b\x74\xaa\x31\xda\xd9\xc4\xce\xc5\x5d\x5c\xbb\x31\
+\xc3\x3f\xfa\x67\x9f\xc7\xb5\xd7\xf6\x65\x9e\x53\x4d\xac\x24\x6a\
+\x1b\x78\x89\x80\xaf\x7d\xfd\x01\x7e\xf7\xf7\xaf\xe1\x5f\xfe\xfa\
+\x2b\xf8\x1f\x2f\x1d\x41\x6d\x6c\x61\xe3\xdc\x16\xb2\x61\x1f\x44\
+\xca\x29\xc2\xfb\xe3\xde\x1d\xcf\x9b\xa5\x18\xef\x6c\x62\xf7\x89\
+\x3d\x3c\x98\x18\xfc\xfd\x5f\x7d\x11\xa7\xf3\xa2\x91\x8b\x72\x87\
+\x31\x06\x14\xe6\xa6\x68\xde\x52\xc8\xeb\xe7\x34\xf0\x09\x0c\xdc\
+\x8e\x5c\x69\xf0\x74\x2b\xa1\x33\x1c\x0f\x30\xde\xde\xc0\x7f\xfd\
+\x5f\xb7\x70\x32\xcd\x9b\x9f\x7b\x78\xb4\xc2\x57\xde\x58\xd9\x7a\
+\x16\x57\xc6\xad\x32\xda\xa5\x81\x43\xa3\xaf\x54\xcb\x14\x90\x0e\
+\x7a\x18\x6e\x8e\xf0\x6b\xbf\xf5\x1a\xbe\xfe\xfa\xb1\x1d\x64\x57\
+\x56\x7f\x0c\x23\x4d\x09\xcf\x5d\x1e\x60\x77\x33\x13\x04\x8f\xfa\
+\xcf\xc9\xd2\x08\x8d\xc5\x92\xa5\xe2\x47\x69\xe4\xa4\x61\xb8\x90\
+\x1c\xbb\x84\x11\xbb\x06\x0c\x46\xda\xcb\x30\xda\xd9\x04\x67\x43\
+\x7c\xf4\x57\x5f\xc2\x4b\xaf\xee\x07\xe4\x92\x27\xf7\x7a\x78\xe1\
+\xe9\x31\xfa\xbd\xa4\x21\xb0\xd8\x3f\xc0\xc9\xc2\x38\xb0\x2b\x89\
+\xeb\x34\xe4\x14\xcf\x14\x09\x72\x06\xcb\xe7\x70\xb3\xb7\x9a\xd7\
+\x4f\xca\xb6\x68\xf4\x06\x7d\x7c\xfc\x0f\xae\x57\x84\x0e\x1b\x14\
+\x14\x06\xf8\xe4\x17\x0f\x41\x89\x72\xea\x64\x00\x34\xa1\x37\xe8\
+\xa3\xbf\x31\xc4\x3f\xf8\x17\x2f\xe3\xc6\xdd\xa9\x20\xd8\x18\x06\
+\x2e\x6c\xa7\xf8\xc1\x67\x47\x1d\x3d\x5c\x8e\xf6\xa6\x4f\xcc\xf0\
+\x89\x4d\x70\xce\x98\xd7\x72\xe1\xd7\x62\xe5\x67\x3a\xff\xaf\x5b\
+\x1c\xaa\x0f\x2d\x51\x07\x21\x24\x85\xaf\x1d\x80\xc1\x67\xe0\x1f\
+\x2f\x15\xbe\x79\xa0\xf0\xe8\xf8\x34\x34\x0d\x55\x5d\x8b\xa8\xed\
+\x6d\xab\x47\xde\xd8\x77\xb8\x35\x58\x2e\xf3\x3e\xda\x22\xf0\x5d\
+\x92\x32\x1e\x1c\x4f\xf0\xd9\x6f\x68\x18\x87\x52\x6f\x59\xc2\x24\
+\x1b\x92\xc9\x53\xb7\xf3\x09\x0d\xe4\x34\x83\x07\x98\xab\xd4\x60\
+\x75\xf5\x24\x41\xc0\x77\xa6\x6f\x46\x6e\x32\x14\xb9\x0a\x9c\x57\
+\x59\x68\x1c\xee\x8f\x1a\xa7\xf5\xea\xe1\xbb\xf0\xef\xbe\xfd\xf7\
+\xac\xd3\x8a\x06\x0c\xec\x19\x61\x47\x51\xd6\x09\x3c\xc8\xdd\x1c\
+\x57\x39\xbd\x32\xe2\xe7\x0e\x3f\x87\x5f\xf8\xb9\x0f\xe1\xea\xd5\
+\xab\x4d\x86\x54\x67\xb5\x17\x2f\x5e\x14\xd4\xf7\xda\x41\xcd\x66\
+\x33\x7c\xfa\xd3\x9f\xc6\xd5\xab\x57\x85\xad\xbb\x72\xe5\x0a\xfa\
+\xfd\x7e\x33\x34\x72\x36\x9b\xe1\xf6\xbd\x7d\x1c\x6f\xbd\x1b\x47\
+\x5b\x3f\xec\x04\x82\x82\x75\xe1\x48\x3b\xc9\x61\xaa\xdd\xba\xb6\
+\xd4\xce\xb3\xe1\x90\x53\xc3\x9d\xf2\x4f\xf1\x6f\xb1\x60\x25\xdb\
+\xf3\x90\xc8\x64\x23\x4e\xa2\x36\xee\xcd\x7a\xf3\x14\xa8\x72\x1e\
+\x1b\xe7\xb6\xa1\x12\x8d\xc9\xc1\x04\xff\xf4\x63\x2f\xe3\xc9\x73\
+\x03\xbc\xf5\x2d\x17\x70\xf9\xf2\x26\x7a\xd5\xac\xf5\xd9\xa2\xc0\
+\x9d\xbb\xa7\xb8\xf7\x70\x86\xdb\xf7\x17\x40\x92\xa1\x37\xea\x63\
+\x78\x7e\x17\x69\xaf\x87\xa4\x36\x2c\xdc\x8e\x4f\xe1\xa8\xff\x77\
+\xbc\x33\xd9\x46\xd4\xf1\xce\x66\x35\x5b\xe6\x11\x7e\xe5\xd7\xbe\
+\x8a\x8f\xfc\xd4\xf3\x12\x93\x66\x04\x05\xd3\x36\xd8\xe5\x86\x61\
+\x08\xa7\x19\xda\x7d\x33\x95\x56\xf8\xea\xb5\x03\x28\xa5\x90\xf5\
+\x52\x3c\x3a\xc9\x1b\xf9\xab\x24\xcb\xd0\xdf\x1a\x62\x7a\x3a\xc5\
+\x6f\x7f\xea\x3a\xde\xfe\xd6\x0b\x48\x92\x04\x5f\x7c\x6d\x0a\x9d\
+\x26\xa2\x31\x94\xb4\xc2\xd5\xaf\x3f\x82\x52\x0c\xad\x08\xbd\x2c\
+\xc1\xfe\x69\xbb\xc7\x69\x05\x81\x1e\x15\x05\xfe\xf6\x3f\x7c\x11\
+\x3f\xfe\xce\x0b\xf8\xe0\x5f\xb8\x82\xe7\x9e\xd9\x6c\xea\x58\x6e\
+\x8a\x7d\xff\x60\x8e\xeb\x37\x4e\xf0\xf5\x37\x4e\xf1\xea\x9d\x12\
+\xcb\x64\x00\x9d\xa6\x55\x1d\x92\xf0\xda\x1b\x27\xb6\x56\x45\x04\
+\x95\x24\xb8\x77\x82\x80\x38\x40\x04\x28\x4d\xf8\xd2\xd7\x0e\x2a\
+\xaa\x33\x21\xed\x65\x78\x30\x29\xec\x36\x2b\x85\xc1\xc6\x10\x6c\
+\x0c\x26\xfb\x84\x5f\xfe\x27\x5f\xc6\x3b\xdf\xbc\x83\xf7\xbd\xfb\
+\x12\x7e\xf8\xed\x56\x91\x42\x55\xb5\xbf\xfa\x1d\x7c\xfd\xe6\x04\
+\xaf\x7e\xeb\x18\x57\xdf\x58\xe0\xee\x2c\x45\x36\xe8\x55\xce\x59\
+\xe1\xb5\x37\x26\xe0\xea\x59\x92\xc4\x6a\x0e\xb6\x07\x9f\x04\x8d\
+\x7c\xba\x30\x78\xe9\xd5\x87\x50\x00\x74\x92\x20\xeb\xa7\x98\x2e\
+\x8c\x0d\x38\x3c\xdd\x34\xdd\xcf\xd0\xdf\x1c\xe1\x73\x2f\xde\xc7\
+\x9f\x7b\xc7\x93\x36\x53\xd0\x0a\xbd\x5e\x8a\x3f\xba\x36\x03\x28\
+\x75\xe0\x0c\xfb\x45\x3a\xec\x63\x7c\x6e\x1b\x77\xee\x3f\xc2\xcf\
+\xfd\xf2\xff\xc4\x87\xff\xe2\x15\x7c\xf0\x7d\xcf\xe0\x4d\x4f\x8c\
+\x9a\xda\x61\xfd\x4c\x9a\x80\x5b\xf7\x67\x78\xf1\xd5\x7d\x7c\xe5\
+\xf5\x19\xbe\xfc\x40\x83\xd3\x7e\xc8\x0e\xf0\xd5\xe1\x1d\xf9\x16\
+\xe3\x34\x56\x32\x10\x1d\x48\x00\xc4\xea\x01\x71\x1e\x7c\x9d\xa3\
+\x32\xc7\x7b\xc7\xc8\xaf\x46\x30\xf0\xd9\x6f\xf4\xf0\xfc\xb9\x29\
+\x36\x47\x83\x56\xbd\xbd\x86\x09\xab\xe6\x77\x55\x7d\x5d\x3b\x2d\
+\xaa\x3c\x95\x72\xbe\x06\x79\xc2\xb7\xdf\x45\xc6\xe5\x7e\xbd\x58\
+\x2d\x71\x32\x2f\xf0\xc5\x1b\x69\x24\x9b\xf5\x75\x1d\x65\x54\xcf\
+\xec\xe7\x5b\x55\x5d\xd1\x55\x35\x00\xe2\xd3\x74\x3d\x98\x31\x37\
+\x19\x5e\x9b\xfc\x10\x7e\x60\xfb\x45\x9c\x4e\x7a\xd8\xda\xb5\x82\
+\xd1\xf3\x59\x86\xd3\xe3\x9e\x65\x29\x96\x3d\x7c\xe6\xee\x87\xf0\
+\x8d\xe3\x77\xc8\x4d\x22\x39\x57\xd4\x3d\xc7\xd1\x3c\x9c\x28\xb2\
+\xbf\xe1\x14\xee\x8d\xf9\x35\x5c\x38\xff\x01\x5c\xff\xd6\x37\x1b\
+\xe7\x34\x18\x0c\xb0\x5c\x2e\xf1\xe4\x93\x4f\x62\x3e\x9f\x63\x7f\
+\x7f\xbf\x25\x65\x75\x08\xe9\x3e\xf5\xd4\x53\x18\x8f\xc7\xcd\xbf\
+\x2d\x97\x4b\xdc\xbe\xb7\x8f\xc9\xc6\x9f\xc1\xe1\xee\x7b\xa3\x23\
+\x63\xe2\xe5\x14\x76\x73\xa9\xee\x11\x2c\x8e\xdc\x47\x6c\x8f\xc4\
+\xde\x74\x22\x0c\xdc\x91\x7f\x31\xe8\xad\x1f\xfd\x12\x3f\xff\xa6\
+\x27\x42\x88\x82\x28\x28\xa1\x89\x17\x92\xdd\xc8\x86\xc0\xc6\xa0\
+\x2c\x0c\xf2\xf9\x02\x8b\xe9\x1c\xcb\xd9\x02\xf9\x2a\x07\x5b\x2d\
+\x18\x90\xd6\x48\xd2\x14\x69\x3f\x43\x36\xc8\x90\x65\x19\x92\x5e\
+\x06\x9d\x6a\x28\xa5\x10\xc9\x28\xe5\x15\xa9\x5b\x0e\xa7\x86\xc8\
+\x8a\x55\x8e\xe9\xf1\x29\x4c\x51\x60\xb4\x33\x46\x36\x1c\x08\x98\
+\x81\x1f\x4b\x32\x26\x64\xf9\x2c\x67\x0b\x1c\x3d\x78\x84\xe5\x74\
+\x01\x9d\x25\x18\x6f\x6f\x60\xbc\xbd\x01\x95\xe9\xe6\x27\x8b\xf9\
+\x12\x93\x47\xc7\x98\x4f\x66\x20\x45\x18\x6e\x8d\xb1\xb1\xb3\x89\
+\xa4\x62\x42\x12\x03\xf3\xe9\x02\x93\x07\x8f\xb0\x98\x2e\x00\x30\
+\x94\xd6\x18\x6c\x0d\xb1\xb1\xb3\x85\x74\x90\x35\x7c\x59\x53\x94\
+\x58\x4c\x17\x98\x1e\x9e\x62\x71\x32\xc5\x72\xb1\x82\x29\x0c\xde\
+\xf2\xfc\x56\x93\xc1\x92\x26\x7c\xed\xf5\x29\xd2\xcc\xae\x69\x7f\
+\xdc\xc7\x60\x3c\x44\xd2\x4f\x41\xa4\xb0\x9a\x2f\x71\x7a\x38\xc1\
+\x6c\x32\x85\x29\x0d\x94\x56\x18\x6e\x8c\x30\xde\xdd\x44\x36\xc8\
+\xc4\x5e\xce\x4f\x67\x98\x3c\x3c\xc2\xf2\xd4\xd2\x9d\x93\x2c\xc5\
+\x68\x7b\x03\xc3\x9d\x0d\x24\x69\xea\x44\x9d\x25\x96\xf3\x05\xe6\
+\x93\x29\xe6\x27\x53\xac\xa6\x4b\x94\x45\x8e\x2b\x97\xc7\x18\x0d\
+\x2d\x2b\x74\xbe\x62\xdc\x7c\xb0\x40\x36\xc8\xd0\x1b\x0d\xd0\xdf\
+\x18\xa2\x37\xec\x43\x6b\x85\xe5\x7c\x85\x93\x83\x63\xcc\x27\x53\
+\x98\xaa\x11\xb6\x37\x1a\x60\xf3\xfc\x0e\x7a\x23\x7f\xac\x09\x63\
+\x7e\x72\x8a\xd3\xfd\x23\xac\x16\xcb\x8a\xc9\x9a\x61\xbc\xb7\x83\
+\xc1\xe6\x08\x4a\x2b\x41\x82\x00\xc8\xd2\xdb\x4f\x4e\x71\x72\x70\
+\x8c\x7c\x6e\xd7\x38\x1d\xf4\xb1\xb1\xbb\x85\xfe\xc6\x18\x4a\x2b\
+\x39\xd4\xb1\xb2\xf0\x65\x61\xb0\x38\x99\x62\x7a\x78\x8c\xc5\xe9\
+\x0c\xc5\x32\xc7\xa8\xa7\xf0\xc2\x95\x8d\xe6\x25\x3d\x5d\x1a\x5c\
+\xbf\x33\x43\xda\xeb\x21\x1b\xf4\xd0\xdf\x18\xa1\x3f\x1e\x55\xfd\
+\x60\xfe\x81\x44\x74\x08\xa7\x64\xb3\x4a\x02\x47\x58\x90\xaa\x5e\
+\x74\x0e\x5f\x61\x74\xd5\xb2\xfc\xc1\xcc\xec\x03\x37\xed\xa7\xfc\
+\xd8\x73\x2b\xfc\xc8\x73\x8c\xa7\xce\xef\x36\xef\x90\xd6\xf6\x5d\
+\xd4\x4a\x41\x69\x65\x21\xc3\x3a\xf3\x72\x9c\x99\x72\x9c\x59\x9d\
+\xc5\xc7\xc6\x64\x58\x44\xa3\x22\x69\x54\x5f\xd7\x8c\xd7\xfa\xeb\
+\xa2\x2c\x70\xe3\xde\x3e\xfe\xcd\x1f\x6b\x5c\xdf\x57\xc1\x30\x5b\
+\x8e\x4c\xd9\x64\xaf\xc1\x45\x04\x61\xa2\x7e\xc4\x01\x21\x82\x23\
+\x4d\x78\xee\xf7\xce\xf7\x6e\xe1\x67\x9f\xfd\xc7\x50\xc4\xc8\x7a\
+\x05\x8c\x21\x14\x55\xcd\xeb\xfe\xe2\x4d\xf8\xe4\xcd\x9f\xc7\xf1\
+\xea\x5c\x54\x3b\x1c\xbe\x84\x17\xb9\xac\xbb\x78\x50\x13\x87\x13\
+\xed\x89\x50\xe5\x14\xef\x58\x7e\x1c\xbf\xf0\x91\x9f\xc6\xcb\x2f\
+\xbf\xdc\xac\xeb\x70\x38\xc4\x6c\x36\xc3\x6a\xb5\x02\x11\x61\x3a\
+\x9d\xe2\x95\x57\x5e\x69\x1c\x95\xeb\xb0\xea\xcc\x6c\x6f\x6f\xcf\
+\x4e\x73\xaf\x6a\x5b\x37\x6e\xdf\xc7\xf1\xe0\xfb\xf1\x60\xef\x03\
+\x42\x0f\x30\x14\xf9\x43\x7c\x58\x9c\xc7\xfc\x8b\xfe\xbc\xa8\x53\
+\x52\xab\x60\xc2\xa1\x76\x46\x57\xe6\x2e\x20\x47\xe7\x8a\x89\x9b\
+\xb6\x8b\x1b\x34\xdc\x44\x55\x22\x4a\xf5\x87\xdf\xb5\xdc\x47\xeb\
+\x84\x92\x21\xd2\xe1\x00\xa3\x5a\x46\xbf\x62\x06\x28\xad\x40\xa4\
+\xa1\x12\x05\x9d\x68\xcb\xd2\xf2\x37\xde\x29\x70\x1b\x31\x40\x8f\
+\x1a\x68\x52\x4a\x96\x91\xa8\x19\xea\x2c\xc1\x78\x67\x03\xc6\x18\
+\xab\x9f\x17\x8c\xa8\xef\x88\x2a\x28\xdc\x19\xd7\x98\x24\x59\x8a\
+\xed\xf3\xbb\x30\x7b\xc6\xbe\xe0\x69\x02\xd2\xba\x5d\x93\x4a\x7e\
+\x68\x73\x6f\x1b\xa3\xcd\xb1\xcd\xc2\xd2\xc4\xca\x21\x71\xdb\x4c\
+\x98\xf6\x52\x6c\x5e\xdc\xc5\xb8\x72\xe6\xa8\x8c\x85\x4e\x53\xc1\
+\xec\x24\xad\xd1\x1f\x0f\x91\xf6\x32\x14\xbb\x1b\x76\xa4\xc8\xaa\
+\xc0\x69\x55\x20\x57\x5a\xa1\x84\xc2\x85\x2b\x63\x28\x95\x40\xa7\
+\x1a\x3a\x4b\x1a\xaa\x3c\x03\x48\x7a\x29\x46\x3b\x9b\x56\xf4\xb6\
+\x5a\x1f\x95\x24\xce\xb5\xda\x05\xc8\x7a\x19\xb6\x2e\xec\xa0\xdc\
+\xab\x1c\xa3\xb2\xb5\x36\xa5\x75\x93\x31\x30\x59\xa2\x46\x7f\x38\
+\x40\x9a\x65\x18\x6e\x8d\x50\x2c\x73\x14\x45\x89\x5c\x33\xe6\x5a\
+\x41\x29\x8d\x32\x25\x9c\x7b\x66\x1b\x3a\x49\x90\xa4\x09\x28\xd1\
+\x4d\xcd\x50\xa7\x29\x36\x76\xb7\x30\xdc\x1c\xda\x62\x74\x55\x2f\
+\x49\xb2\x34\x1c\xc0\x4e\x8c\xde\x68\x00\x9d\x25\x30\x55\x11\x50\
+\x29\x42\xd2\xcb\x6c\x0f\x12\xfb\x92\xab\x0c\xa5\xc9\x3a\xef\x2c\
+\x41\x59\x15\xf6\x94\xb2\xac\x48\xd2\x4a\x9e\x57\x27\x32\xd6\x89\
+\xc6\x60\x73\x8c\xb4\xdf\x43\x91\xe7\x28\x57\x39\xca\xbc\xc0\x23\
+\xb6\xb0\x99\x56\x1a\xf3\x04\x38\xf7\xcc\x0e\x94\xb6\x6b\xad\x93\
+\x8a\x34\x14\x39\xbb\x88\x4d\x5b\x10\xe5\x68\xdf\x94\xc5\x91\x8e\
+\x2e\x0e\x11\x19\x6f\xb8\x75\x50\x70\x6b\xcf\x25\x7b\xa7\xba\x5e\
+\xaf\x3f\xba\x9e\xe0\xcd\x17\x17\x18\x0f\x4e\xb1\x3d\x1e\x43\x51\
+\x0d\x11\x5a\x22\x06\xc1\xcd\xb8\xd0\x64\x59\x04\xf7\x7b\x1e\x5c\
+\xf8\xff\x91\x71\xdd\x3b\x38\xc6\x57\xef\x00\xd7\xf7\x55\x47\x00\
+\x49\xad\x18\x90\x48\x1c\x29\x08\xb2\x5d\x2c\x85\x29\x6e\x50\x63\
+\xa5\x27\x72\x6c\xe0\xc3\xe5\x53\xf8\x3f\x0f\x3e\x80\x1f\xb9\xf8\
+\x09\xac\x96\x49\x95\x48\x13\x5e\x3a\xf8\xf3\xf8\xfc\x83\xf7\xc3\
+\xb0\xee\x94\x2d\x23\xb7\xc6\x85\xf5\x70\x98\xd4\x86\x45\x50\x93\
+\xb4\x7e\x5a\x37\xce\x67\x30\x18\x60\xb1\x58\x60\xb5\x5a\x61\x3a\
+\x9d\x36\x59\xd7\xde\xde\x1e\xf2\x3c\xc7\xe5\xcb\x97\x71\xeb\xd6\
+\xad\x20\x80\xd8\xd9\xd9\xc1\xf6\xf6\x76\xe3\xb4\x8a\xa2\xc0\xcd\
+\x3b\xf7\x71\x92\x3d\x8b\xfb\xbb\x3f\xd9\xa5\x37\xdf\xa4\x2b\xc4\
+\x5e\x56\xe4\x53\xd5\xfd\xbe\xae\xd8\xc9\xa6\x2e\xe3\x1b\x49\x13\
+\xdc\x1e\x73\x72\x74\x00\x21\xf5\xd4\x12\x8f\x08\x1f\x36\x3d\x19\
+\x34\x2a\xbd\xc4\x5d\x22\x9e\xb2\xdf\x4b\x69\x42\x92\x64\xd8\x1d\
+\x27\xc8\xb4\xf4\x74\x79\xc9\x38\x5d\x18\x2c\xf2\x50\x8f\x4b\x74\
+\x59\x73\xc3\x09\x01\x91\x69\x8b\xcc\xae\x22\x0e\x73\xc0\x1a\x54\
+\x49\x82\x61\x4a\xd8\x19\x29\xdc\x3d\x2a\x21\xb5\x40\x9d\x5e\x18\
+\x07\x67\x0e\x47\x52\xd4\xb4\xe3\xea\xf7\xb4\xc2\xc6\x56\x1f\x97\
+\x77\xda\xe8\x7a\x96\x33\xee\x1e\x16\x82\xf7\xae\x7b\x29\x9e\xba\
+\x38\xc0\x30\xb3\xbf\x78\xba\x34\xb8\x7f\x54\xb6\x9f\xad\x09\xd9\
+\x20\xc3\xf7\x5e\x48\xc5\x41\x99\xad\x18\x77\x8f\x0a\xe1\x5d\x89\
+\x08\x49\x96\xe0\xe2\x5e\x0f\x5b\x03\x85\x41\x22\x27\x80\x52\x35\
+\xbb\x65\x99\x33\x96\x05\x63\x51\x18\x1c\x9c\x18\x14\x45\xfb\x43\
+\x59\x2f\xc3\x13\x17\x87\x18\xf6\x54\x73\x28\x9a\x6b\xb9\x63\x0f\
+\xb5\xc6\xe6\x66\x52\x3d\x5f\x5b\xec\x9f\xcc\x0d\xf6\x4f\xca\xa6\
+\x56\x63\x9f\xd3\x06\x08\x3b\x5b\x19\x76\x06\x0a\x1b\xfd\x9a\xa5\
+\xc7\x20\x52\x15\x13\x92\x30\x5f\x31\xa6\x4b\x83\x47\xa7\x25\x16\
+\x05\x57\xfd\x5a\x04\xea\x65\x78\xfa\x89\x21\x06\x99\x3c\x17\xd7\
+\xef\xaf\x1a\xa1\xcd\xa6\x8f\x28\xd1\xb8\xb4\x93\x61\x7b\x28\xeb\
+\x0d\xb7\x0e\x72\x7b\x7e\xe0\x9f\x5e\x4b\xdf\x1f\x8c\x07\xb8\xb2\
+\x97\xb5\xdf\x25\xe0\x3b\xfb\x05\xca\x82\x45\x2f\x95\x7b\xe8\x48\
+\x11\x7a\xc3\x0c\xcf\x6c\x0d\x31\xca\x08\xfd\xa4\xcd\x4f\x6c\xed\
+\xc7\x56\x43\x66\x2b\x83\x55\xc1\x98\x2e\x0c\x0e\x4e\xcb\x76\x32\
+\x34\x7b\xe0\x50\x64\x52\x29\x3b\x91\x94\x71\x35\x08\x44\x04\x1b\
+\xcf\xbe\xc8\x39\xac\x46\x04\x62\xc1\x9c\x09\x61\x00\xd8\x1b\xe3\
+\x57\x1b\xa2\xdc\x10\xfe\xfd\x9f\xf4\xf0\x4b\xef\x99\xa2\x97\x26\
+\xd8\x18\x8e\xa0\xea\x5a\x74\xad\xdf\xd8\xd4\xb2\xa8\xe9\x49\x6c\
+\x15\xa5\x48\x96\x2e\x3a\xa6\x1a\xaf\x23\x65\x1c\x1c\x1f\xe3\xe1\
+\x64\x85\xdf\xbb\x9a\xac\x05\x41\xc8\xcf\x17\xfd\x69\xc8\x9e\xca\
+\x38\x07\xcd\x50\x24\xd9\x1d\x11\x0b\x46\x4e\x10\xfc\xd2\xc1\x4f\
+\xe0\xde\xfc\x19\xfc\xd0\xee\xff\x46\xa6\x66\xf8\xfc\xc3\xf7\xe3\
+\xee\xec\xd9\x28\x03\x54\x52\x5f\x64\x39\xa3\xa9\xa5\x91\xcb\x40\
+\x6d\x83\x6f\x5e\xa3\x1a\xcc\xcd\x61\x5f\x94\x00\x00\x1b\x8c\x49\
+\x44\x41\x54\x00\x58\x0f\x70\x70\x38\x41\x96\x65\x38\x3d\x3d\xc5\
+\x70\x38\x44\xbf\xdf\xc7\xfd\x07\xf7\xb1\xc8\x8e\x30\x7a\x62\x8c\
+\xfb\x77\xee\xc3\x18\x83\x73\xe7\xce\x81\x88\x70\xe3\xc6\x0d\x14\
+\xd5\x48\xa4\xe1\x70\x88\xbd\xbd\x3d\xf4\x7a\xbd\x46\x7f\xf0\xd6\
+\xdd\x07\x38\x49\x2e\xe3\xde\xf9\x0f\xb6\x67\x8f\x22\xa2\x2b\x8c\
+\xc0\x61\xb5\xcb\x4c\x67\x34\x14\x53\xe0\xcc\x03\x16\x6c\x74\x46\
+\x6a\x38\xe6\x9a\x23\x93\x96\xa9\xa1\xc3\x33\x23\x3e\x5b\xdc\x7b\
+\x08\x17\xaf\x8f\xbf\x9b\x50\x00\x2e\x6e\x27\xd8\x1a\x28\xc7\x53\
+\x92\xe8\x55\xd8\x1d\x6b\x94\xc6\x60\xba\x64\xcc\x57\x8c\xa3\x59\
+\xd9\x6e\xb6\x93\x5e\x93\x2b\x90\x4b\xde\x8b\xdd\xc1\xf9\xed\xa7\
+\x0a\x97\x76\x34\x94\x0a\xd9\x92\x2e\x23\x92\x1c\xea\xb2\x68\xa6\
+\x73\x67\xe4\xb8\x0e\x8d\x08\x4e\x92\x88\x54\x49\xa3\x60\xc5\x87\
+\x09\xe3\x5e\xbb\xd0\xa3\xcc\x6e\x84\x61\x1f\xda\x94\x9b\x91\x68\
+\xaf\xbe\x06\x2b\x5d\xf5\xec\xf9\x14\xba\xe2\xc4\x2f\xfd\x9e\x9b\
+\xa2\x35\x4b\x99\x26\xf4\xb4\xc6\x66\x4f\xe1\x74\x61\x70\xa7\x72\
+\x96\x0c\x20\x4d\xa8\x71\x26\x20\x20\x4d\x10\x9d\x24\x5b\xf7\xee\
+\xf8\x85\x6e\xe3\x25\x13\x4a\x01\x4f\xef\x26\xe8\x25\xf6\x75\xb5\
+\xf7\x45\x61\xc4\x46\x96\x99\x37\xea\x2b\x9c\x2e\x4a\xdc\x3e\x2c\
+\x9a\xf6\xc5\x44\x43\xac\x65\x7d\x1d\xd1\x78\xcb\x4d\xc7\x1a\x94\
+\x92\xa9\x87\x52\x08\x21\x25\xe7\xcc\xef\x8e\xb4\xfd\x1d\xe7\x68\
+\xee\x8e\x14\xee\x1f\x17\x4e\xce\xc3\x02\xd9\xeb\x67\x84\xcb\x3b\
+\x76\x74\x3c\x2a\x1d\x46\x37\x9d\xe0\xb2\x3d\x10\xbd\x84\xd0\x1b\
+\x6b\xec\x8e\x35\xee\x1f\x17\x38\x9a\x96\xc2\x19\xc9\xf6\x1c\x92\
+\x31\x38\x77\xa1\xf8\x24\xfb\x5e\xc4\xcf\x9b\x96\x91\xc8\xb2\x9e\
+\xc2\xc4\xd1\xda\x57\xb4\x19\xda\xbd\x47\x06\x0e\x67\x84\x8f\xbf\
+\x94\xe1\x67\xdf\x71\x8c\x34\x49\x30\x1e\x0e\xab\x86\x73\x7b\x66\
+\x7c\x58\x10\xe2\xeb\x90\x75\x8b\xef\x82\x94\xf1\x68\x32\xc1\xc3\
+\xc9\x1c\xff\xfa\xf3\x29\xf2\xd2\x33\xfe\x14\x47\x5e\xc9\x79\xd7\
+\x64\x37\x01\x05\x54\x6a\x26\x0e\x9d\x52\x64\x5f\xc2\x1e\x36\x7b\
+\x8f\xb7\x66\xcf\xe1\xd6\xec\x79\xe1\x2c\xa3\x9b\x28\xd8\x84\xd2\
+\x49\x52\xb4\x84\x25\xbd\x6b\x34\xd7\xa6\x96\xf5\x30\x1d\x7e\x1f\
+\x26\x93\x13\x00\xc0\x64\x32\x81\x31\x06\x7b\xcf\x8d\xf0\xf3\x3f\
+\xf5\x77\xf1\x3b\xaf\xfd\x2b\xf0\x66\x09\xf3\x9d\x71\x93\x7d\x29\
+\xa5\x70\xf7\xae\x9d\xfe\xbc\xb3\xb3\x83\xe1\x70\xd8\x40\x87\xb7\
+\xef\x3e\xc4\x29\x9d\xc7\xbd\x0b\x1f\x6e\xfb\xcd\x10\xf1\xc7\x1c\
+\x99\x1f\x56\xb7\x08\x39\x67\x8f\xb0\x4e\x10\xfb\x8c\x7a\x4c\x67\
+\x31\x4d\x28\x52\x7b\x95\x42\x6a\xda\x4e\x92\x4e\x4e\x86\xc0\x6b\
+\xc3\x0f\x8e\x91\x26\xfa\x29\xe1\xf2\x4e\x02\x02\x90\x17\xd5\x2b\
+\xd2\x34\x65\x92\x53\xc3\xb6\x77\xd4\x4b\x09\xbd\x94\x30\xee\x13\
+\xa6\x4b\xeb\xc0\x82\x1e\x18\xcf\xc1\x50\x47\x74\x52\x5f\xff\x89\
+\x6d\xdd\xb0\xc9\x42\x25\x6e\x04\x2f\x18\x7b\x81\x98\x6b\x38\xd8\
+\x83\xac\x57\x45\x7b\xb5\x65\xc1\x6d\x04\x55\xfd\xcc\xde\x58\x61\
+\x55\xb2\x08\x00\x37\xfb\x84\xa3\x99\x11\x87\x7a\x55\xca\xc8\x6f\
+\x55\x38\x76\xa7\xfa\xa7\x73\x9b\xba\x61\xc6\x09\x85\x56\x47\x02\
+\x85\x22\xf5\x0e\x66\x89\x9d\xaf\x72\x23\xe4\x5a\x56\x79\x4c\x7c\
+\xd7\x9a\xd6\x95\x37\x60\xb0\x28\x4d\xa3\x8c\xcf\xb0\xc6\xec\xc9\
+\x6d\x0d\x22\x6e\x9f\x81\x3b\xab\xdd\xcd\x33\x37\xac\xce\xea\xc2\
+\xab\x82\x05\xc4\x44\x0e\x53\xd5\x37\xb0\xb9\x31\x58\x15\x2a\x8c\
+\x46\x39\x6e\x43\x18\xc0\x30\x23\xac\x0a\x69\x08\xb3\x04\xd5\xb3\
+\x84\x59\x89\x01\xe1\xdc\x38\x71\xd6\x5b\x9e\x18\x13\x56\xa1\xdd\
+\x44\x3b\x6e\xcf\x1a\x47\xc3\x71\x66\xf4\x19\xd4\x77\xa1\x96\xd1\
+\xc0\x7e\x52\x7d\x3b\x38\xbb\x9d\x0a\x95\xd4\xb9\x3f\xaf\x3f\x4a\
+\xf0\x1f\xff\x04\xf8\xf0\xdb\xf7\x71\xf9\xfc\x1e\x76\xb7\x36\x5b\
+\x42\x46\x04\x16\x74\x7d\x16\x35\x0a\x20\xfc\xd8\x19\x97\x01\xe3\
+\xc1\xc1\x23\xec\x4f\x16\xf8\xd8\xe7\x13\x4c\x16\xd4\x55\x40\x41\
+\x88\x06\x51\x00\xfb\x8b\x66\xec\x8e\x3d\xea\x44\xa7\xb8\xa3\xa8\
+\x7d\xc6\x8f\x93\xc8\xfe\xdc\x31\xc5\xbc\x9e\x29\xe7\xa5\x1c\x52\
+\x77\x92\x23\x17\x24\x3c\xdc\x78\x37\x3e\xf5\xdf\x3e\x83\xf7\xbe\
+\xe7\x5d\xb8\x7d\xfb\xb6\x85\x33\xf9\xdb\xb8\xf6\xe8\x4b\xb8\x75\
+\x7a\x1d\x7a\x3c\x04\xaf\xb2\x06\x16\x1f\x0e\x87\x78\xf6\xd9\x67\
+\x05\x39\xc3\x18\x83\x7b\x0f\x0e\x70\xc2\x9b\xb8\xfd\xc4\x4f\x83\
+\x95\x8e\xc2\xd9\x12\xe0\x23\xaf\xb1\x58\xb2\x54\xd7\x16\xbf\xfc\
+\x01\x93\xe0\xa8\xa9\x90\x25\x1f\x5e\xe3\xd8\x42\x17\x99\xf8\x0e\
+\x22\xfa\x34\x14\x16\x0e\xfd\x7d\xca\x34\xe1\xfc\x86\xc6\xb2\xe0\
+\x28\x78\x01\x47\xcf\x2e\x2f\xb8\xc9\x04\xc8\x31\x36\xc3\x4c\x63\
+\xba\x04\x8e\x66\xa5\x43\xd9\x76\x92\x6a\x86\xd0\xb1\x72\x3d\x44\
+\x9a\x28\x9c\xdb\xd0\xc8\xf3\x70\x94\x0a\xba\xbd\x73\x8c\xb3\x15\
+\xc2\x36\x95\xae\x5d\x5e\x94\xcd\xc7\x15\x25\x8b\x8c\x2b\x21\x20\
+\x25\x20\xcf\x8d\x68\xc0\x1b\xf5\x14\x0e\xa7\x46\x58\x99\xa2\x90\
+\xb1\x79\x51\x58\x5a\x7e\x7d\xfd\x44\x13\x52\x5d\x39\x0e\x07\xbc\
+\x9b\x2e\x19\x93\xb9\x41\x51\xb6\x91\xff\x85\x4d\x2d\xce\x48\x6e\
+\x58\xc8\xa3\xe4\x86\x9b\x51\x2f\x35\x54\x1b\x2b\x0c\x97\xa5\x41\
+\x5e\x2a\x89\x16\xb0\xac\x6f\x6e\x8d\x2c\x19\x25\x77\xb2\xbf\xd2\
+\x18\x1c\xcd\x0c\xa6\x4b\x7b\x11\xad\x08\x97\xb6\x12\xb1\xee\x45\
+\xd9\xaa\xc7\xdb\xf1\x30\x6c\x33\x1b\x01\xa3\x79\x72\x59\x55\x54\
+\xcd\x60\xe4\x85\xdb\xf8\x08\x94\x25\x07\x6a\x2f\xa8\x22\xe8\x8d\
+\xbe\x72\xee\x8f\xc5\x5c\xa7\x41\x4f\x61\xba\x34\x01\x6a\xb0\xd1\
+\xb3\xbf\x9b\x97\xf2\x8c\x1c\xcf\x0c\x4e\xe6\x65\x93\x75\x6e\x0c\
+\x34\xb6\x46\xaa\xed\x3a\xae\xa1\xeb\xa0\x63\x98\x24\x5c\xc5\x5d\
+\x86\x18\x71\x8d\x1f\x8e\x78\x68\x8a\xd5\x12\xe2\xee\x29\x34\xe4\
+\x66\x2d\xa5\xee\x5b\x0f\x13\xfc\xe6\x17\x08\x1f\x79\xe7\x23\xcc\
+\x16\x0b\x3c\xfd\xc4\xc5\xa6\xe9\x58\x38\x30\xb8\x54\xf8\xc8\xf4\
+\xde\x33\x32\xae\xbc\x28\x70\xf3\xc1\x3e\x1e\x4e\x4a\xfc\xc6\xff\
+\x4d\x31\x59\xa8\xb0\x3e\x28\x67\xc2\x38\xc7\xe8\xb1\x86\xe8\x21\
+\x66\x0e\x09\x91\x18\xdc\x33\x8c\x7c\x26\x63\x6b\xcd\x45\x3d\x7b\
+\x0d\x8e\xec\x73\xa3\x67\x6f\xce\xcc\x4d\xdc\x92\x50\x99\xed\xe2\
+\x9b\xc7\x5b\xf8\x51\x26\x68\xad\x71\x74\x74\x84\xb9\x29\xf1\xbb\
+\xd7\x3e\x86\xdd\xc1\x05\x8c\xa6\x4f\xe1\xf6\xec\x30\x4a\xca\xa8\
+\xbf\xde\x3f\x38\xc4\xd1\x32\xc5\xad\x27\xff\x06\x98\x32\x91\x25\
+\x06\x44\x6d\xc7\xc3\x34\xab\x12\xad\xa5\xfa\x8e\xc1\x33\x1c\x11\
+\xe7\xbd\x6e\xb4\x49\xa8\x59\xe6\xdf\x1e\x09\x9e\x45\xe2\x43\xc4\
+\x1c\x7b\x05\xd8\x97\x9d\x91\xee\x53\x11\xb0\x3d\x52\x95\x31\x27\
+\x51\x82\x36\x6c\xa3\xfc\xe9\x8a\xb1\xca\x59\xe2\x9b\x00\xb2\x84\
+\x90\x25\x84\x44\x01\xbd\x4c\xa1\x97\xda\x6c\x63\xba\x30\x38\x5d\
+\x98\x28\x75\x18\x82\x62\x0c\xa4\x9a\xb0\x3d\x54\x8d\x41\x17\x09\
+\xe6\x59\xe1\x16\x47\xb0\x02\x2f\xe2\xad\x65\x87\x8a\xb2\x5d\x99\
+\xd2\x48\xa9\xac\x71\x4f\xa1\x28\xe3\xae\x70\xd4\x23\x9c\x2e\xda\
+\x4c\x27\x2f\x59\x6c\x44\xfb\x59\xf6\x9a\x8a\x50\x7d\x56\xfb\x39\
+\xab\x92\x71\x70\x5a\x0a\xc5\x85\x45\x5e\x09\xfe\x3a\xcf\x6c\x0c\
+\x0b\x88\xd3\x18\x46\xcd\x05\xa9\x1b\x90\x4d\xa4\xa1\xbb\x1e\x0b\
+\xe3\x7e\x3f\x2f\xb9\x99\x08\x90\x28\xa0\x9f\x58\x47\x55\xff\xba\
+\x31\x84\x87\x93\xa2\xcd\x6e\x89\x60\x4a\x46\x61\xa4\x63\x2e\x0d\
+\x0b\x48\xcc\x18\x83\xbc\xf4\x04\x63\x58\x1a\x65\x76\x9c\x54\x6e\
+\xb8\x95\x4d\xe2\x36\x0b\x8d\x31\xc4\xfa\x09\xa1\x28\x4b\x77\xc0\
+\x55\x0b\x23\x27\x84\xe9\x1c\x92\x08\x42\x16\x35\x29\x4a\xd9\xe8\
+\x7a\xba\x64\x1c\xcd\x0b\x71\x4f\xf3\x65\x89\x51\x4f\xbe\x1b\x79\
+\xc9\x0d\xd4\xce\x1c\x27\x5b\x98\x10\x75\x0f\xde\x55\x41\xef\x66\
+\x8a\x1b\x06\x6f\x68\xaa\x3f\xf7\xc8\x38\x30\x98\xdb\xeb\xc0\xd1\
+\x22\xb2\x7c\x9f\x6e\x1d\x2a\xfc\xf3\x3f\xec\xe3\x43\x6f\x5b\xe2\
+\x64\x76\x03\xdf\x73\xf9\x22\xb6\x36\xc6\x6d\xc6\x55\xbf\x1a\x44\
+\xfe\xab\x72\x66\xc6\x65\xd8\xe0\xe0\xe8\x18\x8f\x8e\x27\xf8\xd2\
+\x4d\x8d\x4f\xbd\x9a\x55\xeb\xcd\xeb\x9d\x0f\x47\xe8\xef\xe8\x0a\
+\xce\x23\x22\xb0\xee\x86\x46\x4d\x40\x07\x35\xa1\x2b\x45\xa6\x8e\
+\x6c\xc0\x67\xcb\x79\xf5\x77\xee\xc8\x4e\x62\xa2\x47\x3e\x5c\x4a\
+\x0c\xdc\x19\xff\x38\xfe\xc3\xef\xfc\x3a\xfe\xfa\x5f\x79\x1f\x8e\
+\x8f\x8f\x71\x49\x3d\x8f\xe5\xab\x53\xf4\x7a\x43\x14\x4b\xbd\xd6\
+\x69\x3d\x3a\x3c\xc2\xc1\x14\xb8\x7d\xe9\x17\x01\x9d\x7a\x2c\xd5\
+\x78\x33\xb4\x04\x59\xbb\x26\x16\x7a\x3c\x73\xf2\xa4\xa1\xa2\x54\
+\xff\x6e\x2e\x21\x05\x2c\x45\x42\xac\x2e\x45\xd5\x8b\x96\xb8\x4d\
+\x6f\xc6\x3d\xe0\x5d\xd3\x39\x23\x1b\x39\xea\x29\xab\xd2\x50\x42\
+\x0c\x6d\x5b\xe4\x8c\xe3\x79\xd9\x68\xdf\xd5\x99\x48\x2f\xb1\x0f\
+\xb1\xc8\xb9\x22\x17\x54\xec\xae\x79\x89\x34\x21\x0c\x7b\x0a\xa3\
+\x1e\xa1\x97\x6a\x4c\xe6\x65\x0b\xfb\xb8\xee\xbf\x5a\x9b\x44\x11\
+\xb6\xfa\x0a\xa8\xa4\x8f\xea\xdd\xce\x0b\x16\x50\x8a\x1c\xfc\xba\
+\x06\x95\x6d\xa0\x42\x0e\x72\x5b\xc3\xae\xbe\x60\x6b\x38\x53\x4d\
+\xc8\x52\x42\xc1\x1c\x19\xa9\x43\xe8\x25\x0a\x27\xdc\x12\x39\x8c\
+\x87\x3d\x95\xce\x80\xc5\x5a\x91\xc3\x18\x59\xfd\x58\xac\x62\x59\
+\x06\xa3\x45\xf7\x4c\x23\x27\xe5\xfe\x66\x69\xe4\x74\x5a\x53\x1b\
+\x7d\x96\x6a\xce\x5c\x39\x09\x61\x70\x4d\x0b\xf5\xf4\x53\x55\x5d\
+\x8b\x9a\x80\xe0\x64\x51\xb6\xce\xce\x39\x47\xae\xc4\x54\xeb\xe4\
+\xb9\x19\x42\x57\x1a\xdd\x66\x81\x0d\xb9\x87\xbd\x03\x6f\xe1\xc2\
+\xa2\xb4\x8e\x57\x06\x43\x76\x2f\xfc\x57\x41\x6b\x82\xd2\xad\x1e\
+\xa3\xbf\xd7\xa9\x26\x68\x4d\x15\x04\xea\xac\x49\xc9\xed\x7a\x57\
+\x1f\x3a\x5b\x95\xa2\x7f\xb2\xfe\xc8\xd2\xb0\xc3\xb4\xa2\x4a\x56\
+\x8c\x3b\xb2\x2a\x09\x03\xb1\x47\x4d\xaf\x5f\x38\x26\xaf\x11\x99\
+\x59\x1a\x5c\xf6\xcd\x5f\x84\x0c\x60\xdc\x79\x5f\xce\x67\x77\xea\
+\x3f\x85\x50\xd6\xe9\x8a\xf0\x1b\x7f\x9c\xe1\x4f\x5f\x2a\xf0\xfe\
+\xe5\x1d\x6c\x8d\x7b\xb8\x72\xe9\x02\xb6\xc6\xa3\x86\xa0\xd1\xb4\
+\x63\x90\x07\x50\x46\x1c\x56\x51\x96\x38\x3a\x39\xc6\xfe\xe1\x09\
+\x0e\xa6\xc0\xef\x7d\x39\xc3\xcd\x23\x75\x56\xa2\x14\x0d\x30\x45\
+\x07\x90\x37\xf0\x96\xfc\xba\x56\xe0\x63\x3a\x74\x96\xe2\x38\xa0\
+\x84\xc6\x9c\x61\x5f\xed\x75\xd9\xcb\xec\xc8\xcb\x4c\x4c\xe4\xd9\
+\xbc\x46\x2f\xa6\x4e\xc1\x5d\x81\x78\x80\xc1\x2a\xc5\xb7\x77\x3e\
+\x84\xff\xf2\x07\xbf\x85\xbf\xf4\xbe\xf7\xe0\xe4\xe4\x04\xa7\x0f\
+\x17\x98\x98\x19\xd2\x34\x45\x96\x65\x98\xcf\xe7\xc2\x69\x01\xc0\
+\xf1\xe4\x04\x0f\x8f\x57\xb8\x75\xe9\x97\x60\x54\xbf\x25\x62\x80\
+\xd7\x96\xa0\x08\x31\xfd\x8a\x75\x88\x95\xe7\x82\xbb\x7d\x95\xe8\
+\x2b\x3c\x13\x03\xe3\x00\xb0\x6f\x1c\x63\x12\xd4\x0c\xd0\x42\x35\
+\x6e\xec\xc8\xb5\xb8\xa5\x17\x05\x36\xb0\x96\x3b\x1a\x9b\x80\xc9\
+\x9c\x45\x9d\xc1\x38\x17\x49\xb4\x35\xe6\x83\xcc\xc2\x86\xf3\xdc\
+\x46\xe9\x05\x08\x45\xce\x98\xad\x4a\xf4\x12\xc2\x20\x25\x6c\xf4\
+\x15\x96\xb9\x65\xa8\x09\xe0\x8c\x09\x89\xb6\xff\x2e\xb3\x88\x16\
+\xf6\x61\xf6\x7b\x65\x62\x0b\xe2\x09\x9f\x89\xf7\xda\xa9\x83\x30\
+\x61\x55\x72\x23\x39\x52\x14\xed\xf3\xf4\x34\x55\x70\x96\x97\xe7\
+\x3b\x61\x78\xaa\xa9\xa9\x0b\xe5\x46\x6a\x28\x16\x45\xab\xce\x51\
+\xdf\x4a\x6e\xa4\x08\x6e\x8c\x90\xd0\x7c\x96\xab\x4d\xe8\x3e\x37\
+\x13\xf2\xd2\x08\x32\x48\x51\xb2\x75\x9c\x24\x53\x1b\x2b\xfe\xeb\
+\xe9\x1c\x3a\x59\x25\x11\xa3\x28\x8c\x38\x8d\xab\xc2\x44\x7b\x36\
+\x9a\xec\xa5\x82\x80\x0a\xc3\x82\x85\x9e\x1b\x06\x95\xdd\x41\x83\
+\x74\x9e\xd5\x33\x45\x22\x63\xe3\x9d\xf1\x51\x62\x61\x4c\x57\x37\
+\xbc\x28\x0d\x52\x4d\xcd\x19\xe8\x27\xc0\x49\x2e\x9f\xbf\xac\x06\
+\x84\xba\xfb\x9d\x25\xc0\xa2\x70\x19\x73\xd4\xac\x91\x9b\x1d\x17\
+\x25\x79\x43\x33\x23\xb5\x03\x97\x14\xe4\xa3\x81\x81\x1e\x9c\x14\
+\xee\x8d\x9a\x0f\xee\x88\x59\x39\x92\x95\x10\x1c\xd1\x5a\x0f\x08\
+\x67\x8f\x0c\x50\x05\xcb\xaf\xdc\xd1\xf8\xda\x3d\x85\xb7\x3d\x55\
+\xe2\x47\x8f\x6f\x61\x7b\x08\x9c\xdf\xdb\xc5\xf9\xed\x4d\x8c\x86\
+\x7d\x24\x5a\x41\x0c\xba\x70\xea\x58\x8b\xe5\x12\xb3\xf9\x0c\x07\
+\xc7\x53\xac\x56\x73\xdc\x9b\x28\x7c\xee\x9a\xc2\x37\x1e\x68\x19\
+\x96\x53\x77\x32\x43\x31\xea\x4a\x2d\x4a\xcd\x6b\xca\x2b\x1c\x12\
+\xd2\x5d\xda\x44\x07\xb8\xb2\x16\x26\x6c\x60\x7f\x0a\x75\x30\xa2\
+\x66\x9e\xc3\x95\x8e\xc4\x1f\x8f\x55\x5c\x23\x27\xd8\x2f\xb2\x73\
+\x78\x6d\xe3\xaf\xc1\xfc\xf7\xff\x84\x9f\x78\xef\xbb\x31\x1a\x8d\
+\x70\x7c\x7c\x8c\xf9\x7c\xde\xa8\xc2\xbb\x7a\x84\x27\xa7\xa7\xb8\
+\x7f\x38\xc3\xad\x27\xff\x26\x8c\x1e\x3a\x9a\x0d\xdc\x9d\xe6\x75\
+\xc1\xd9\x6b\xdd\x0b\x77\xb4\x5a\xaf\x81\x00\x23\xad\x00\xbc\x6e\
+\x78\x8f\xe3\xf8\x39\x56\xe3\x62\x8f\xfd\x17\x8c\x35\xe1\x36\xa3\
+\xaa\x7f\xa2\x9f\x90\x88\x70\x19\xc0\x6c\x69\xb0\x28\x38\xd8\xe2\
+\xfa\x1e\x96\x2b\x83\xb4\xd2\x21\x4c\x12\x60\x23\x21\x94\xa5\xc2\
+\x3c\xaf\x6b\x47\xc0\x32\x37\x58\xe6\x16\x46\x1c\xa4\xc0\x46\x5f\
+\x61\xb6\x6a\x9d\x61\xa2\x6d\x5d\xcc\x46\xdf\xed\x46\x37\x43\xd8\
+\x8c\x8c\x42\x19\xa6\x21\x88\x38\x63\xda\xec\x73\x78\x25\x00\xd9\
+\xc0\xd9\xae\xae\x71\xea\x50\x65\xd5\xc0\x9a\x26\x84\x24\x69\x15\
+\xd0\x5b\x3c\xdf\xd6\xf1\xea\xbf\x0f\x32\xc2\x72\x6e\x2f\x54\x18\
+\x08\x25\xef\x92\x9d\xa9\x56\x06\x58\xae\x18\x79\x8a\x86\x19\x57\
+\x0f\x4e\x1b\x67\x0a\xcb\x42\xb6\x11\x94\x1e\x3c\x5a\x0f\x7c\xac\
+\x95\x26\x8d\xd1\x55\x06\x54\xd5\xd7\x4c\x08\x91\xb2\x0b\xc1\x39\
+\x1f\x57\x56\x70\x83\xcd\x4a\xaa\x8c\xd6\x39\x10\xab\x82\x25\x3c\
+\x52\x7d\x70\x69\x5a\xe8\x8c\x2a\x28\xd4\x35\xb6\x65\xc9\x6d\x76\
+\xec\x91\x62\xfc\x96\xc3\xd2\xd8\xa0\x46\xb4\x20\xb2\x1f\x94\x54\
+\x70\xa6\xa6\x2a\x73\xaa\x21\x2a\x2b\x37\xb5\xd1\xb7\x62\xb1\x20\
+\xab\x56\x22\xa8\x39\x4c\x58\xe4\x06\xbd\x44\xda\xc2\x44\x13\x86\
+\x59\xe5\x84\xab\x73\x63\x21\x5c\x09\x5f\xd5\x32\x68\xec\x44\xd0\
+\xec\x8a\xb1\x91\xe7\x2e\x9c\x33\x48\xe4\x12\x2f\x62\xc1\x6a\x9b\
+\x2f\x98\x88\x61\xa0\x2e\x23\xe3\x8a\x61\xb3\x4c\xb2\x38\x52\x7f\
+\x70\x33\xf9\xda\xae\x15\x25\xf0\xe2\x1b\x09\xbe\xf0\x86\xc6\x93\
+\x9b\x25\xfe\xd4\x13\x87\x78\xf3\xa5\x43\x9c\x1f\x96\xd0\xca\xaa\
+\xc5\xf4\x92\x0c\x25\x33\xe6\xcb\x1c\x6c\x0a\x28\x18\x14\x06\xb8\
+\x75\xa4\xf0\xf5\xbb\x84\x57\xef\xa5\x38\x9a\x29\x79\x5f\x0e\xbc\
+\x18\x9d\xc4\xec\x2a\x05\x38\x1c\x6d\xf6\xa3\x78\x5a\x5f\x6c\xa2\
+\x08\x26\xeb\x0e\xe4\xe4\xb3\x52\x8e\x18\xc5\x83\xcf\xaa\x8f\x07\
+\x1d\xa6\x8d\x06\x69\x13\x52\x7b\x4e\x8c\x08\x88\xb0\xc0\x43\x34\
+\x82\x0d\x56\xe9\x2e\xae\x6d\xff\x0c\x26\x9f\xf9\xcf\xf8\xbe\x4b\
+\x03\x7c\xcf\x95\xa7\xb0\x5c\x2e\x71\x72\x72\x62\xfb\x0d\xb5\x46\
+\x92\x24\x78\x78\x70\x88\xbb\x0f\x27\xb8\x75\xe1\x67\x90\x53\x1f\
+\x64\x72\x80\x54\x33\xa8\x52\x51\x3b\x3d\x3a\xe6\xc5\x62\xaa\x83\
+\x67\x35\x23\xbb\x84\x31\x8e\x34\x2a\x77\x93\x66\x18\x14\x4d\x7b\
+\xfd\xc3\x2b\xdf\x8b\x04\xce\x3b\x06\x36\xcd\xe4\x51\x83\x08\xed\
+\xae\xe9\x80\x76\xfe\xa9\xa9\x0f\xb4\x0e\x63\x91\x7b\xaa\xbf\x1e\
+\x46\xbd\x28\x80\xb4\x30\x50\x4a\xde\xee\x20\x05\x38\xb5\xdd\xf8\
+\x79\x69\x0d\xe3\xb2\x70\x1c\x58\x46\x15\x54\x44\x18\x66\x54\x0d\
+\x03\xf4\x63\x04\x6a\xee\xc3\x04\xc5\xfb\x75\xa9\xae\x8c\x70\x85\
+\xea\x58\xe5\xd4\x6b\xa7\x5a\xdb\x1b\xc3\x40\x4f\xd7\x19\x01\x8b\
+\x2c\xe1\x64\x61\xb0\x31\x60\x4b\x31\xaf\x3e\x31\x55\xf6\x99\x8a\
+\xd2\x03\x8d\x1c\x1d\xae\xfa\x73\x4e\x97\x05\x06\x99\x12\x6b\x47\
+\x0a\xe8\x67\x92\xb0\xd2\x1a\x52\x16\x01\xad\xfb\x82\x14\x86\x45\
+\x44\x63\x5c\x2a\xb8\xa3\xdf\x96\xfb\x59\x90\x33\x66\xc3\x80\x6d\
+\x56\xc2\x72\x2e\x96\x3c\x85\xf6\x25\xc8\x4d\xc8\x90\xf3\x63\xde\
+\x26\x59\x63\x0e\x34\x66\x1b\x47\x46\xf5\xba\x7b\x8c\x85\x06\x96\
+\x6a\x2b\xca\xa9\xb6\x53\xaf\x4b\x67\xef\x8a\x92\x51\x14\xb6\xb6\
+\xaa\x75\xfb\xf4\xbd\x04\x4d\x60\x85\x8a\xfc\x31\x5d\x02\x59\xa2\
+\x9c\xe0\xc5\x12\x48\x34\x91\x08\xcf\xfd\xda\x63\xad\x4b\xe9\x8d\
+\xc0\x73\x32\x75\xd3\x09\x55\x09\xa2\x40\xa4\xa7\x51\x00\x53\x24\
+\xdd\x74\x4b\x2d\xa7\x75\x0c\x90\x68\x1d\x30\x3c\xf7\x72\x98\xb0\
+\x11\x46\xd3\xe0\xce\x31\xe1\xce\x71\x82\xcf\xbe\x06\x28\x68\x6c\
+\x0f\x19\xdb\xfd\x12\xc3\x6c\x6e\x9d\xb9\x21\xcc\x96\x0a\x87\x33\
+\x8d\xe3\x45\xa4\x67\x2a\xd2\x4e\xc3\x1e\xdb\x4c\x66\x9e\x31\xe1\
+\x60\x12\x43\x37\x29\xd6\xbb\x55\xb5\xd3\x90\xa7\xdb\x48\x4e\x5d\
+\x9e\xc9\xe9\x27\x90\xf3\x7c\x3d\xb4\xa9\xba\xe3\xc6\xd8\xb5\xca\
+\x0f\x92\x44\x04\x19\x24\x90\x1b\x00\x84\x75\x37\xd9\xd3\x15\xaa\
+\x43\x50\x7d\x66\xd8\x6a\xc5\x82\xad\xa8\x2e\xd8\x00\xc6\xc0\xb0\
+\xc2\x1b\xdb\x7f\x15\xfb\x07\xdf\xc2\x37\x6f\xbe\x88\x9d\xa1\xc2\
+\xee\xee\x36\x34\x19\x9c\x4c\x97\x38\x38\x38\xc0\x54\xed\xe1\xce\
+\xde\x87\x51\x72\x1f\xc8\xe7\x20\x28\x40\x29\xab\xff\x4a\x0a\xc6\
+\xa8\x6a\xf8\x98\x6a\x83\xa7\x68\x8d\x2d\xd2\xfe\x44\x5d\x59\x32\
+\x89\x0c\x33\x2e\xb1\x15\xce\xda\x82\x10\x7a\xa6\xf5\x6c\x45\x87\
+\x44\x92\xb8\x86\xac\x4e\x25\x4d\xb3\x95\x14\xca\xef\xa3\xe6\xf0\
+\xdb\x8c\xa2\x89\xc8\xab\x8d\x98\x2e\x8c\x78\xc0\x38\x55\x98\x71\
+\xba\x34\x18\x65\x4a\xde\x9a\x6a\x37\xb7\xa7\x09\xa9\x22\xac\x4a\
+\x53\x39\x30\x60\x59\x18\x28\x02\x06\x99\xaa\x0a\xf4\xdd\x94\xd3\
+\xa2\xe4\x08\xb3\xcb\x6d\xfe\x8b\x05\x01\x26\xa8\x6b\xd5\x57\xc9\
+\x4b\x83\x4c\x2b\x31\xed\x97\xc8\x80\xa1\x9c\x3a\x53\xd5\x73\x55\
+\x58\x0b\x7f\xba\x64\x8c\x32\x67\x8e\x98\xb6\x34\x7a\xe3\xd1\xe1\
+\x0d\x87\x33\xd1\x96\x85\x8d\xb2\x7a\x09\xc9\x4c\x10\x1d\x6a\xfe\
+\x90\x83\xd6\x9a\x1a\x91\x61\xab\xd2\x5e\xd7\x31\xb9\xd5\x82\x6c\
+\x9e\xa3\xa9\x25\x29\x71\xe2\xea\xe7\xb2\xb5\x26\x82\x32\xa1\xee\
+\x9a\x89\x8c\xae\x0f\x6a\x65\x2c\x7b\x05\x8b\x92\xa1\xbc\x67\x30\
+\x01\xc3\xce\x46\x4f\x65\x61\x50\x36\x82\xcb\xd5\xda\x94\xd6\x41\
+\x11\xb7\x6b\x91\x64\x84\xd2\x18\xb1\x1a\xb3\x95\x25\x92\xcc\x96\
+\x25\x86\x7d\xd5\xdc\x9f\x72\x47\x9b\x54\x1f\x3b\x5b\x19\x94\x86\
+\xd1\x4b\x09\x26\xc6\xa0\x0a\x5e\xba\x7a\x8d\xb8\x7d\xf6\x66\x78\
+\x27\x49\x86\xdd\xe3\xf0\xae\xbd\xe6\xfb\xae\x06\xff\xa0\x54\x4b\
+\x91\xab\xb0\x14\x58\xaf\x99\x6c\x6e\x4b\x4a\x78\x11\xf6\x82\x0c\
+\x37\x3c\x6a\x2f\x6e\x00\x3c\x9a\x12\x0e\x4e\x55\x07\x1f\x8f\x25\
+\x24\xc8\x1d\xe0\x93\xc7\xf0\xe3\x08\x56\xc8\xde\x40\xcd\x58\xca\
+\xc9\xec\xf6\x4d\x71\x78\x11\x20\xe2\xc6\xbc\xfa\x99\xc7\x3e\x66\
+\x92\x44\x80\xd6\x89\xd2\x1a\x30\xad\x1d\x5e\xc5\x2e\x59\xc1\xc4\
+\xf1\x49\x9f\x72\xee\x3a\x45\xab\xcb\xa8\xea\xf0\x09\x8a\xac\x1e\
+\x3a\xab\x9a\x76\x4f\x98\x0e\x5f\xc0\xeb\x83\xe7\x70\xb3\x3c\x45\
+\xfa\xe8\x1e\x12\x33\x87\xa1\x1e\x96\xdb\x17\x91\x27\x5b\xd5\xfd\
+\x68\x47\xf1\x44\x35\xfd\x0c\x35\xc9\x86\x9c\x40\xc0\xc7\xac\x29\
+\x1a\xec\x73\xc4\x66\x92\x03\x39\x7b\xe2\xc1\x08\x47\x99\xac\xcf\
+\x6a\x71\x26\x48\xe9\x8c\x35\x71\x46\x7c\x43\x3a\x97\xb0\xe8\x4c\
+\xcd\xc6\xd6\x06\x34\x2f\x1c\x46\x1b\x73\x33\xa6\x5d\xa4\x26\x7e\
+\x19\xb2\x9a\x52\xbc\x2c\xda\xfa\x03\x00\x70\xd1\xa6\xce\xf5\xcb\
+\x96\x68\x42\xa2\xa8\x89\x5c\x55\x25\x4e\x59\x72\xcc\x33\xb7\x5f\
+\xe5\x25\x3c\xc9\x27\xd3\xd1\x8d\xed\x91\x30\x62\x91\x62\x05\xb1\
+\xb8\xac\xbb\xa2\x64\x24\x8a\x1a\x18\xae\x7e\xc1\x0d\x73\x9b\x71\
+\x96\xc0\x32\x67\xa4\xba\xae\xba\x30\x54\x35\x5f\x2a\x60\xa6\x85\
+\x7d\x07\x58\x56\x0e\x5b\x2b\x05\x4d\x40\xaa\xe5\x8f\x94\x86\xa1\
+\xab\x46\xc2\xfa\x11\x96\x85\x11\x4d\xa6\xb9\xbb\xc6\x35\x1d\x9e\
+\x43\xa1\x5d\xa6\x36\xf8\x68\xee\xcb\x98\x6a\x3f\x09\x8b\x82\x1b\
+\x52\x4d\xfd\xab\x4a\xa1\x61\x2c\xba\x06\xbd\x64\x29\x0a\x53\x34\
+\xd7\xac\xa0\xd2\x92\xa0\x9d\x37\x84\x18\x8e\x76\xa0\x5c\x7b\x3b\
+\xfe\x24\xd2\xe3\xe4\xf5\xbe\xb0\x4b\xce\x81\x6d\x31\x30\x65\xfb\
+\x19\x79\xc9\xd0\xee\x48\x0b\x66\x31\x26\x03\x64\x91\x02\x0b\x1b\
+\x52\x45\xf6\x50\x42\x73\xae\x26\x19\x89\x35\xaa\x52\x47\x61\x1a\
+\xbd\x11\x27\x72\xbb\x0d\x5a\xdd\x36\x8a\x07\x76\x8c\xf0\x3c\x72\
+\x88\x62\xb0\x73\x76\x09\x72\x56\x9e\x39\x2b\xcb\x32\xe8\x14\x9c\
+\x65\x8e\xb1\xe1\x4c\x45\xe0\x22\xd1\x18\x6a\x2a\x52\x8d\xec\x4e\
+\xe1\xb3\xeb\x24\x8c\x28\x6d\x3a\xac\xe3\x52\xf0\xac\xec\x76\xbf\
+\x86\x5e\xba\xc1\xe0\xc8\x73\x62\x4c\x72\xa2\xb2\xcb\x8c\x73\x07\
+\x6f\x92\x2f\xf1\xd0\x6c\x03\x07\x0c\x3a\xa9\x80\x41\x61\x7f\xab\
+\x57\xf3\x76\x47\xc1\x75\x77\xd8\x39\x8d\xde\x00\xa0\xd3\xea\xe8\
+\x98\x66\xc0\x2d\x1a\x66\xed\x26\x56\x83\x27\xb1\x74\x9c\x6d\xe2\
+\x9c\xe9\x16\x26\xa5\x70\x4f\x79\xbd\xf7\x08\x5b\x34\x3d\x2e\x00\
+\xc5\x31\x56\x51\xaf\x22\x44\xd3\x2f\x8a\x14\x78\x99\xdd\x10\x81\
+\xd0\x61\xe2\xbb\x27\x20\x37\x58\xbc\x47\xf4\x22\x0f\x5a\x68\x62\
+\x9c\x6a\x37\xdc\xe6\xdb\x75\xce\x8b\x2a\x26\xce\x32\xb7\x70\x8c\
+\x28\xd2\x31\x45\x17\xc5\x1d\x45\xde\xd1\x58\x20\x5e\x3a\xe3\xb0\
+\x9c\x28\x48\xba\x58\x66\x28\x74\x66\xe8\x87\xd2\x63\x61\x29\x65\
+\xeb\x4e\xcc\x12\x8b\x9f\xaf\x8c\xd8\xa8\x45\x61\x2a\x03\x68\x5f\
+\x9c\x34\xa5\xa8\xa2\x47\x4c\x09\xbc\xa9\xcf\x95\x06\x05\x80\x65\
+\x11\xae\xe4\xa8\x27\x25\x86\xc4\x67\x75\x68\x33\xb2\x09\xd8\x00\
+\x2d\xf4\xe7\x1f\xd6\xda\x81\x14\x06\xbd\x4a\xef\xaf\xce\xd6\xb4\
+\xb2\x8e\x31\x38\x3d\x6e\xfd\x89\xad\x92\xbb\x01\xc7\xef\xc7\x54\
+\x2e\xdd\x9f\xcf\x43\xa1\x23\x6f\x1a\x9a\x8d\xcc\x87\x6b\x15\x0f\
+\xb7\x79\x7c\x55\x18\x61\x80\x97\x2b\x6e\x65\xa6\x2a\x42\x4d\x5d\
+\x2f\x6c\xf4\x26\xab\xb6\x80\x45\x45\x96\x11\xd8\x69\xe5\xb4\x06\
+\x3d\x15\x0c\xea\xf4\x1d\x04\x8b\x5a\x16\x0b\xe5\x06\x12\x19\x94\
+\x0b\x2e\x7a\xc6\x84\xd9\x17\x04\x45\x5c\x71\x9c\x03\xd8\xd1\x50\
+\x5c\xe1\xc6\xd5\x1a\x85\x5f\x01\xf0\x05\x62\x61\x87\x5e\x86\xce\
+\xc6\x79\xc6\xa0\xbf\xb2\x25\x4e\x49\xc8\x6c\x7d\x14\x4d\xce\x19\
+\x0c\x9e\x54\x20\x8f\x1d\x85\x20\x03\xe9\xd0\xd6\xc5\xee\xe4\x0c\
+\x42\x74\xde\x33\x97\x29\x1a\x55\xe3\x26\x74\x35\x7c\xca\xbc\x8b\
+\x64\x53\x11\x07\x54\x8f\x38\xa3\x8e\x1c\xe7\xda\xd9\x73\x4a\xaa\
+\x99\xd6\xc5\x4a\x3a\x18\xf2\x11\x5a\x8a\xd7\xe5\x08\x2e\xd1\xa1\
+\xa3\x91\x20\x32\xb6\xf0\xec\x49\x24\x62\x7c\x24\x1e\xa7\x6b\xd6\
+\x85\xa7\x11\xd4\xd5\xd8\x2b\xfe\xc9\xfc\x3f\x71\x82\x40\x6f\x93\
+\x9c\x43\x18\x9e\x5b\x10\xdb\xfa\x4d\x69\xb8\xf9\xf1\xbc\x30\xa1\
+\x06\x17\x87\x98\x37\x73\xcb\xb0\xca\x0b\x54\xcd\xa8\x72\xb1\x99\
+\xe4\xe1\x8d\xbd\x20\xeb\xaa\xb5\xae\x6b\x0a\x34\xb5\x58\x74\xdb\
+\x45\x6a\x0d\x1c\x6a\x21\x12\xa3\x64\x8f\xc1\xe7\xe1\xf6\xb9\x89\
+\x74\x2a\xb0\xcd\xba\x12\xdd\xfe\x9c\xf1\x0e\x76\xc9\x0e\x61\xc4\
+\x71\x7a\x35\x63\x33\x2f\xd1\x8c\x97\xa7\xfa\xe5\x02\x23\x51\x52\
+\xe9\x81\xd1\xee\x41\xbd\xce\x45\x35\x68\xd2\x1d\x61\xa2\x75\x4b\
+\x82\xa9\xff\xb3\x35\xa2\x30\xa3\x73\xe7\xf3\x2c\x0a\x53\x31\xca\
+\xda\x03\x9f\x69\x9b\x8d\xb9\x8c\x5f\x97\xc4\x52\x67\x3c\xee\x52\
+\xd6\x83\x21\xdd\x75\xea\x67\xd4\xb4\x30\x58\xb8\xb1\xdd\x9b\xd2\
+\xc8\x73\x67\xbc\xf4\x80\xaa\x73\xe8\xf2\xd6\x3d\x11\x10\x94\xcc\
+\x28\x1d\xe1\x4a\xd2\x54\xc9\x38\x39\x2f\xb0\x22\x64\xca\x92\x8d\
+\xc4\x3a\x56\xce\x3a\x6d\xc8\x1f\x11\x27\x1d\xa8\x81\x77\x38\x72\
+\xef\xc5\x77\xa7\x2c\xd4\x8e\xbe\x85\xa9\x7c\xc4\xbf\x9d\xcd\x15\
+\x0d\xfd\x5d\xc7\xd1\xc5\xef\xe6\x8e\xbe\x1c\x8e\xd7\x76\x43\x43\
+\x15\xa3\xfe\x47\x28\xf7\x5d\x41\x13\x05\xae\x5a\xb2\x05\x05\xdc\
+\x46\xd1\xfb\x5a\xc3\x8e\x70\x1e\x93\xd7\x3a\x4c\xbf\x9f\x59\x8e\
+\x54\xa6\x2e\x8c\x2a\x0c\x76\xd9\xa5\x12\xd5\x6f\x31\x89\x77\x24\
+\xa6\x3f\x19\x53\xd8\x0b\x64\xab\x62\x28\x23\x87\xd7\x27\xea\x70\
+\x28\xeb\x3a\x21\x08\x92\xac\x16\xd0\x5b\xd1\xd1\x48\xdd\xb5\x4c\
+\xd4\xe9\xd3\xa3\xad\x09\xe8\x90\xc4\x8a\x35\xa2\x47\xf6\x43\x2a\
+\x67\x50\x24\x2d\xe4\x38\x57\xd5\xc0\x31\x9a\x3e\xac\x2d\x3c\x21\
+\x4b\x45\x45\x6f\x51\x96\x85\x35\x7e\xc1\x53\xb0\x23\x7e\xd8\x55\
+\x2b\x60\x20\xe0\xc7\x56\xcf\xdb\x50\xa8\xbb\x22\x4f\xee\x08\x20\
+\x38\xa6\x4e\xc0\xd5\x67\x76\xd5\x28\xa8\x29\xf2\xc7\xea\x18\x79\
+\x69\x05\x68\x9b\x1e\x31\x42\x54\x76\xc9\x3f\x28\x65\xc9\x50\x16\
+\x9d\x86\x52\xb6\x09\xd8\x7f\x7e\x97\x09\x58\x06\x10\x1a\x55\xaa\
+\x1f\x32\x4f\x53\xc4\xc8\x92\x90\x9a\x6c\x8c\xb4\x02\xa5\x4b\xd7\
+\xac\x14\x4f\x98\x0d\xb4\x77\x8e\x7a\x89\xe7\x24\x8c\xa7\xcd\xe7\
+\x45\xf6\xec\xd7\xc1\x6a\xe8\xd1\x85\xfa\xd8\x5d\x03\x15\xad\xe1\
+\x01\x36\x78\xaa\x9d\x49\xfd\x2e\xaf\x4a\x13\x35\x56\x2b\x07\x2e\
+\x0c\x89\x08\x2d\x2d\x57\xa1\xea\x35\xf4\x5e\xa8\x86\x0c\x44\xed\
+\xe7\x89\x47\x30\x1e\xab\x10\xb1\xbe\x95\xb0\x25\xc3\xfd\x5d\x04\
+\x2d\x9f\x2c\xf4\x09\x03\xb2\x43\x64\x40\x9f\x4f\x7b\xef\xb2\x64\
+\xbc\x26\x26\xf6\xe7\x24\xb0\x69\x0d\xbc\x70\xa4\xec\x55\xcd\x63\
+\xd7\x61\x84\xd9\x5c\xd7\x9d\x78\xf2\x6b\xbe\xe9\x89\xc3\x47\x71\
+\x15\x87\xa0\xf1\x3a\x98\x7c\x19\xc2\xac\xbe\xd1\x90\x01\x3f\x45\
+\xed\x2b\xc5\x46\xd6\x77\xb4\x4a\x75\x8a\xd2\x52\x6c\x56\x40\x64\
+\x95\x04\x69\x62\x4d\x7b\x70\x6c\x49\xeb\xf9\x72\x31\x47\xa1\xdc\
+\x1b\xa4\x8e\xc8\x85\x3b\x33\xae\x0e\x3a\x4d\x4b\x59\x5a\xdb\x7d\
+\xcf\x9e\x62\x2f\x77\x33\x41\x04\x54\x18\xb2\x27\x3c\xa8\x2c\x72\
+\x0a\x89\xec\xa8\x77\x37\x92\x63\x16\x8c\x24\x29\x8a\x49\xd1\xdd\
+\xe6\x6a\x22\x30\x45\xb4\xdb\xb8\x4a\x6b\xa8\x23\x35\x65\x6f\x81\
+\x5c\x87\xc7\xd1\x88\x21\xe6\x8c\x49\x18\xad\x8e\xe9\xeb\x20\x27\
+\x0b\x08\x1b\xfb\xbb\x64\xfd\xdb\x2f\x4b\xe3\x17\x11\xbc\x06\x60\
+\x3f\xeb\xad\x7b\xa2\x0c\x22\x73\x72\x62\x21\x11\x45\xd4\x08\xec\
+\x13\x15\x1c\x7b\x93\x22\xb5\x3c\x27\x41\x16\x99\x85\x53\xb3\xc9\
+\x0b\x03\xae\x3d\x28\x77\xf2\x92\x3d\x78\xb8\x6d\x18\x6e\x32\xc1\
+\x18\x73\xc7\x35\xe6\xdc\xb2\x24\x0b\x8f\xe8\x20\xe8\x11\xe4\xf4\
+\x9f\xb9\x0e\x38\xd2\x40\x5f\x14\x06\xae\xe7\x52\x24\x9d\x75\xab\
+\xca\x81\x00\xa6\x0c\xff\xee\xd7\x04\x5b\x11\x59\xf2\x02\xbc\x60\
+\x34\x04\xaf\x89\x62\xdd\xb7\x91\x24\x39\x84\xb1\x2e\x11\x88\x37\
+\x76\x4a\x43\xef\xab\xe2\x53\x80\xb0\xd4\xd7\x34\xee\x39\x17\x9f\
+\x15\xcf\xa6\x7c\xd1\xe2\xef\x5a\x78\x35\x76\x8f\xa2\x51\xde\xcd\
+\x92\x5c\x22\x83\x8f\x9c\x84\x11\x3d\x77\xd4\xfb\xa2\xf9\xa2\x17\
+\x55\x32\x85\x8e\x99\x1f\x43\xcf\x50\xfc\x8a\x53\x56\x04\x75\x6d\
+\xff\xe3\x0d\x0b\x24\x2f\xf7\x5e\xf7\x83\x1c\xd3\x11\xa5\x8e\x9b\
+\xe6\x78\xaa\x45\x41\x59\x2b\x84\xab\xfd\xb8\x84\x1c\x18\x7c\xbd\
+\x8e\x85\xd4\x5d\x25\xb7\xf4\x12\x95\x8e\x62\xa9\x0e\xdf\x90\xe9\
+\x78\x3d\x2c\x20\xf3\x7b\x06\x2b\x12\x9e\x36\x9c\x1f\x64\xbc\x27\
+\x72\xcc\xa9\xab\xa7\x57\x30\x12\x4d\x52\x5a\xdf\x3f\x3c\x75\x44\
+\xa9\x7c\x64\x84\xed\xec\x2e\xcf\xad\x2b\x42\x40\xcb\x8e\x47\x76\
+\x1d\xc5\x6b\x6f\x72\x25\xbb\x4f\xe3\x28\x68\xb4\x64\x90\x38\x04\
+\x50\xaf\x50\xfd\x8c\x5d\x18\x47\x2c\x0b\xac\x23\x71\x3b\x7f\x8a\
+\x03\x94\xb3\x29\x9b\x1b\xae\xc8\x2b\x12\x0e\x02\x08\x65\x51\xfd\
+\xbe\x9b\x59\x95\x5c\x8d\xe9\x40\x30\x61\xb3\x6d\x20\xa6\x18\x72\
+\xdc\x38\x2f\x00\xd5\xf3\xac\x6b\x6e\x61\x04\xa8\x31\x57\xd7\xa7\
+\x76\xbc\x30\x77\x21\xdc\x6c\x89\x2c\xe4\xcd\x5c\x60\x8e\xed\x11\
+\x37\x19\x28\x83\x3a\xb5\x81\xe2\xc2\x3b\x76\x6f\x4d\xc1\x0e\x59\
+\x88\xbd\xde\xa1\xf6\xb3\x1a\x4d\x43\x0a\x33\x84\x48\xd0\xde\x29\
+\x2a\x4e\xbe\x43\x08\x2a\xd5\x7e\x6f\x56\x4c\x36\x9d\xa2\x4e\x8f\
+\x3a\x9c\x5c\x74\x22\x18\x77\xd4\xbd\x62\xf5\xa9\xe8\x7d\xfa\xc1\
+\x28\xc2\x9e\xc8\xe0\x68\x76\xcc\x7a\xe2\x4e\xec\x28\x7e\xd4\x38\
+\xf2\x7c\x84\x90\xdd\x17\xc6\x85\x5e\x36\xea\xbc\xcf\x91\xe3\x23\
+\xd9\xbc\x84\x33\xff\xf3\xca\x1b\x04\x3b\xf1\x81\x3b\xd7\x36\x26\
+\xc0\xcb\x9e\x4a\xd7\xd9\x7a\x16\x6e\x38\xdf\x02\x5d\x1c\x05\xb3\
+\xa2\x53\x5e\xe8\x31\xa6\xec\x76\x3d\x72\x04\x7a\xac\xed\x15\x71\
+\xac\x96\x4a\x31\x2c\x42\x4c\x89\x76\x8c\x6e\x08\x15\x9a\x86\x66\
+\xe1\x90\x2d\x1c\x67\x23\xe6\x58\x21\x12\x88\x32\x2a\x6d\x2c\x19\
+\xb1\x18\x72\x29\xb8\xec\x48\x8e\x78\xb0\x5d\x95\x91\xd4\x06\x76\
+\x6d\x7d\xb5\xa6\x68\x53\xcc\xbf\xca\xc8\x3b\xd1\xb6\xd6\x61\xd8\
+\x0b\xe4\x10\xc2\x57\xde\xd1\xed\x34\xc8\x4d\x46\x4b\x1e\xa0\x13\
+\xd9\x78\x8e\xd7\xbc\xe3\xb4\xde\x0e\x80\xb8\x8c\xd4\x6b\x62\xc6\
+\xb1\x0b\xc0\x34\xb0\xf4\x7b\xf6\x21\x88\x92\xcf\x88\x84\x3d\x15\
+\x11\x57\x99\x84\xea\x0c\x26\x1e\x18\x68\xad\xfc\x34\xa4\x6a\xa2\
+\x6c\x21\xcd\x12\xbc\xbe\x70\x5b\x51\x78\x1a\x47\x19\x81\xa1\x98\
+\x5b\x95\x7a\xd9\x3b\xc2\x9d\xf0\xb8\x85\x73\xd9\xcb\xb2\xdb\xd7\
+\x67\x55\xc4\x8b\x26\x1c\xab\x59\xb0\xd7\x27\xc8\xbc\x1e\x9e\x0f\
+\x13\xed\x58\xf1\x38\xba\x2d\x06\x11\x58\x9c\xa9\x73\xef\xba\xaa\
+\x25\xc6\x11\x2b\x16\x38\x98\x13\x54\xba\x2a\x2e\x75\xbd\x8c\xcf\
+\x08\xf8\xc2\x46\xbc\x33\x62\x44\xe6\x60\x7a\xb1\x0f\xad\xca\xe0\
+\xd5\x23\x36\x48\x26\x8f\x2c\x57\x70\x17\x24\xdb\x25\xec\x2a\xc9\
+\x5a\xdc\x99\x9c\x44\x3e\x27\x7e\xbb\x9d\xee\xa4\x75\x8e\xfe\x94\
+\x06\x0a\x9d\x6d\xa0\x12\x42\x1d\x10\xb0\xbc\x47\x76\x02\x3f\x71\
+\x5e\xc9\x23\x63\xd0\x9a\xb2\x58\x94\x9f\x12\x5f\x47\xea\x32\x3e\
+\x4d\xa0\x19\x75\x4b\x92\x9c\xd1\x89\xab\x46\xc8\x35\xec\xce\xe3\
+\x0a\x60\xe2\x8a\xb6\xcb\xfe\xfa\x79\xc5\xdb\xea\xf7\x0c\x22\xb2\
+\x3d\x1c\xd9\x64\x06\x8c\xf2\x5a\xf3\x2a\x3b\xaa\x28\x82\x03\x93\
+\x07\x87\x50\x0c\x25\xa3\x4e\x47\x47\x64\xd1\x21\x29\x3e\xbb\x6e\
+\x1c\x8c\x3f\xaf\xc9\xa3\xcc\xd6\xff\xee\x78\xce\xc2\x69\x66\x35\
+\x1c\xcc\x05\x75\xa0\x2a\x9b\x75\xf9\xd4\x57\x2e\x8d\xcd\x7a\x3b\
+\xa7\x22\x70\xb7\x21\xf4\xd6\xc8\x08\x03\xeb\xb2\xb2\xf8\x71\x6c\
+\x69\xfc\x5f\xba\x8a\xbc\x7e\xae\x54\xfd\x55\xc3\x97\x8e\xe2\x38\
+\x64\xde\x95\x65\x46\x4c\xaf\x1c\x58\x48\x21\x30\xc0\x3e\xd2\xee\
+\x8c\xd2\x0e\xde\x0e\x4f\xac\x26\x26\x3e\xeb\x9f\x09\x57\x92\x91\
+\x38\xf4\x31\x6c\xa2\x59\x80\x5b\x53\xe8\x22\x44\x08\x2b\x65\x28\
+\x9c\x18\x4b\x5d\xdb\xc2\x6d\x94\xcb\x7c\x06\x06\x17\xa9\xb4\x71\
+\xac\x56\x05\xa1\x9b\xe9\x5a\xf1\xa8\xdc\x67\xe4\x5e\x04\x9c\xee\
+\xf7\x08\x71\x17\x09\x82\xcf\xac\x7d\x75\x13\x34\xb8\x13\x20\x12\
+\xe7\x34\x18\x64\xd8\xc1\x20\x71\xfb\xc8\x5c\xd1\x6d\xd7\xdc\x70\
+\xe4\xf9\x62\xef\x12\x21\xd4\x85\xf4\x60\x38\x57\x6c\x5d\x2a\xf6\
+\x90\x64\x82\xf2\x63\x24\x7b\x8e\x7a\x05\x13\xa2\xc8\x43\x84\xcf\
+\xd3\x46\xf6\x1c\xa9\x65\x45\x99\x8a\x6b\xa4\xaa\x62\x6c\xd9\xce\
+\x8c\xb4\xb2\x54\x0e\xdb\x73\xed\x94\xe4\xea\x79\x12\x37\xde\xa0\
+\xb6\x02\xeb\xc0\x70\x0e\x43\xc6\xf3\x80\xc6\x91\xd7\x30\xb1\x9e\
+\x80\xae\x1a\x48\x0d\xe7\x78\xde\x54\x34\x15\x33\x07\x91\x41\xb7\
+\xa1\x65\x99\x5e\x76\x60\x03\x4d\xc3\x2c\x85\x51\x95\xaa\xa8\xd0\
+\xe4\x10\x05\x0c\x24\xa1\xc0\x06\xfe\xee\x77\x28\x3a\x10\x81\x3b\
+\xd4\x11\xb8\x92\x0c\xf2\x80\xaf\x60\x68\x25\x5c\xac\x37\xc0\x5e\
+\x7c\xc8\x88\xa2\xf0\x0a\x77\x15\xaa\x11\xb2\x9c\xf8\x4c\xf8\x0a\
+\x8f\x31\x1e\xc6\x65\x04\x86\x75\x10\xb9\x0e\xbe\x56\x19\x47\x41\
+\x90\xfa\x7b\x9a\x64\xd0\xd9\x40\x72\x46\x96\x65\x89\x63\xd9\xa2\
+\x5b\x68\xe7\xf5\x66\xd2\x31\xd4\xa2\x9b\x47\x74\xe5\x52\xe4\xd9\
+\xd8\xab\x03\xc8\x26\x56\x71\x55\xee\x88\xda\xbd\x20\xc5\x9f\x5b\
+\xc8\x9d\xca\x18\x1c\xa9\x15\x3a\xcd\xb5\x21\x01\x2e\x52\x3f\x72\
+\x14\x22\x5c\x98\x27\x60\x24\x46\x5a\x67\xba\x94\xef\x63\xed\x1d\
+\xec\x55\x6a\x39\xae\xef\xd9\x9a\x3d\x39\xf6\xe6\x2c\x5b\x88\x58\
+\x27\x41\x87\xb5\x0f\x75\x4c\x9d\xbf\xb9\x31\x83\xf1\x67\x96\x54\
+\x41\x6b\xab\xd8\x20\x02\x1c\x6e\x1a\x72\x3b\xe4\x9f\x44\x7f\x55\
+\x0c\x2d\x40\x77\xbf\xba\x47\x9e\x6b\x86\xeb\xfa\xf4\x04\x78\x0d\
+\xc4\xa2\x7f\x4d\xe6\x4d\xf5\x60\x46\x66\x0a\xb6\x82\xe9\xac\xf2\
+\x9b\x3b\x51\x1e\x00\x19\xe7\xf7\xe3\xd0\x2b\x39\xf5\xb7\x58\x89\
+\x40\xc6\xca\x2e\x09\xc5\xf5\xf6\x84\xff\x07\x7a\xef\xdf\x67\xb5\
+\x14\x3a\x83\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x03\x90\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\
+\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\
+\x67\x9b\xee\x3c\x1a\x00\x00\x03\x22\x49\x44\x41\x54\x38\x8d\x6d\
+\x52\x4d\x6c\x54\x65\x14\x3d\xf7\x7b\xef\x95\xf9\xad\x33\x6d\x07\
+\x5b\xa8\xb6\x0a\x86\x12\xa6\xa1\xa2\x33\x8d\x7f\xd1\x98\x46\x37\
+\xc4\x60\x58\xa8\xbc\x44\x8c\x90\x81\xf0\xb3\x61\x07\x1b\x0c\x4d\
+\x0c\x11\x74\x61\xa2\xe0\x03\xa3\x31\x4c\x25\x98\x34\x01\x37\xfc\
+\x04\x21\x92\xd4\xc2\xab\x71\xd1\xd0\x92\xd4\xd2\xc6\x01\x46\x3b\
+\xb4\x1d\xe8\xcc\xb4\xf3\xde\xfb\xbe\xeb\xa2\xf3\x92\x59\x70\x92\
+\x9b\xdc\xc5\x3d\x27\x27\xe7\x5c\x62\x66\xf8\x48\x65\xb2\xcf\x34\
+\xe8\xda\x11\x10\xde\xf4\xa4\x6a\xd5\x84\x98\x27\xc2\xb8\xe3\xca\
+\x13\x00\x2e\xd8\x96\xe9\xd6\xdd\x1e\x04\x70\x82\x7c\x81\x74\x26\
+\xbb\x45\xd3\xc4\x40\x4f\xd7\x2a\x7d\x5d\x67\xb3\xd1\xd6\x14\x01\
+\x98\x51\x28\x56\x30\x32\x76\xbf\x7c\x67\xfa\xa1\x27\x15\xef\xb6\
+\x2d\xf3\x6c\x7a\x57\x36\xc3\x8c\xef\x00\xc4\x88\x99\x91\xca\x64\
+\xd7\x1b\xba\x18\xd9\xda\xd7\x1d\x8a\xc7\x82\xd0\x89\xd0\x1c\x0d\
+\x20\x1c\xd0\x11\x0d\x19\x08\x1a\x02\x33\xc5\x45\x1c\xcf\x0e\x57\
+\x0a\xc5\x8a\x1d\x0d\x35\xf4\x3e\x2e\x57\x0d\x66\x34\x11\x33\xe3\
+\xd5\x3d\x67\x4f\xf5\xac\x6b\xfb\x34\x18\x30\xc4\xad\xd1\x1c\xaa\
+\xae\x07\x43\xd7\xe4\x9a\xd5\xb1\xc5\xbe\xf4\xf3\xe1\xde\xf5\xad\
+\xa4\x09\x82\x10\x84\x5f\xae\x4d\xa8\xb7\x5e\x6c\x17\x07\xbe\xbe\
+\xea\x38\xae\x6c\xd1\x01\x80\x99\x3f\xbc\x33\x5d\x10\xae\xa7\x58\
+\x31\x2f\x32\xe3\x33\xc7\x95\x67\xc6\xa7\x67\x93\x13\xf7\xe6\x8f\
+\x5e\xef\x68\xee\xda\xb7\x75\x53\x28\x11\x0b\xe1\xe3\x77\xbb\x44\
+\x2d\x06\x02\xa0\x04\x00\x48\xa9\xc2\x55\xc7\xf3\x92\x2f\x3c\xfb\
+\x83\x94\xea\x11\x80\x41\xdb\x32\xf3\xb6\x65\x5e\xf9\xe3\xdb\x8f\
+\x5e\x1a\x9d\x2c\xec\xdd\x7d\xec\x12\xee\x3f\x2c\x61\x7a\xa6\x0c\
+\xa9\x18\x00\x03\x00\x0b\x2c\xaf\xaa\xe9\xa9\x48\x7f\x63\x24\xf0\
+\x55\x67\xfb\xca\x6e\x00\x53\x75\x69\xeb\xba\x26\x76\x6e\x7b\x27\
+\xe9\x76\x3e\x1d\x45\xa2\x71\x05\x34\x41\xbe\x03\xd6\x6b\x77\xf1\
+\x5f\x3f\xdf\xbc\x80\x27\xe3\xb4\x27\xd5\x6b\x17\x87\x27\xab\x57\
+\xed\xa9\x25\xdf\xbc\xe3\xaa\x00\x00\xf6\x5b\xa8\x02\x30\x6a\x04\
+\xae\x9b\xdf\x00\xec\x04\xe0\x3e\x41\x58\xb7\x2d\xf3\x9e\x2f\xe0\
+\x9d\x3f\xfa\xbe\x06\x10\x98\x19\x17\xed\x7f\xd4\xa9\xf3\x7f\xe5\
+\xa4\x54\x3d\xb6\x65\x16\xeb\x59\x87\xb3\x63\xab\x4a\xe5\xa5\x8e\
+\xdf\x47\xc6\x6f\x00\x88\xe9\x00\x40\x04\x10\x11\xee\xfe\x57\x86\
+\x21\x18\x27\x07\xff\x24\x00\x5f\xd4\x93\x53\x99\x6c\x98\x88\xee\
+\xf6\x6e\x5c\x7b\x26\x3f\x33\x97\x02\xa0\x01\xa8\x0a\x00\x10\x44\
+\x04\x00\x1d\x89\x10\x56\xb7\x84\xf1\xe5\xfe\xb7\xa9\xad\x25\x72\
+\xec\x95\x3d\x3f\xdf\x4a\x65\xb2\xe9\x9a\xc6\xf6\x15\x86\xae\xe7\
+\xf2\xb3\x07\xf2\x85\xe2\xeb\x9a\x46\xae\x6d\x99\xae\x58\x76\x40\
+\x78\x5c\x71\x71\x61\x68\x8a\x3d\x8f\xd1\xbe\x32\x8a\xc3\x3b\xde\
+\x08\x7d\xd0\x97\x7c\xb9\xb5\x39\x72\x2d\xbd\x6b\xc0\x35\x74\xf1\
+\x8d\x54\x32\x3e\xf7\x68\x01\x4d\x8d\x41\xd2\x84\x18\x04\x00\xff\
+\x91\xa8\xff\xc7\xa1\xa5\x89\xdc\xdc\xe4\xa5\xe1\xc9\xce\xcc\x96\
+\x4d\xe1\x44\x2c\x88\xee\xb5\x09\x7a\xae\x3d\x1e\x2a\x96\x5d\xfc\
+\x3b\x5b\x82\xe3\x78\x14\x09\x1a\x38\x77\x79\xb4\xe2\x49\x75\x04\
+\x00\x96\x1f\x49\x31\x4d\xe4\xe6\x4e\xdf\x3c\xb9\x2d\xf9\xa0\xb0\
+\xf0\x49\xff\xf7\x37\xe6\x8f\x0f\xdc\x2c\x0d\xdf\xce\x23\x3f\x5b\
+\x46\xd5\x95\x10\x44\x28\xcc\x97\xe4\xb9\xcb\xa3\x8b\x52\xa9\x8c\
+\x6d\x99\x63\x00\xe0\xb7\xf0\x13\x80\xed\xb6\x65\x72\x2d\x30\x03\
+\xc0\x7b\x0d\x86\xb6\x57\x31\x6f\x90\x52\xc5\x0d\x5d\x9b\x21\xc2\
+\x50\xd5\x91\x87\x6c\xcb\xfc\xdb\x0f\xf7\x7f\x2e\x55\x76\x6a\x13\
+\x65\xcc\xc6\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+"
+
+qt_resource_name = "\
+\x00\x14\
+\x05\x3d\x34\x07\
+\x00\x6d\
+\x00\x61\x00\x6e\x00\x64\x00\x72\x00\x69\x00\x76\x00\x61\x00\x2d\x00\x6c\x00\x69\x00\x76\x00\x65\x00\x75\x00\x73\x00\x62\x00\x2e\
+\x00\x70\x00\x6e\x00\x67\
+\x00\x0b\
+\x0c\x6a\x2c\x47\
+\x00\x72\
+\x00\x65\x00\x66\x00\x72\x00\x65\x00\x73\x00\x68\x00\x2e\x00\x70\x00\x6e\x00\x67\
+"
+
+qt_resource_struct = "\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x01\x00\x00\x7c\x34\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/liveusb/windows_dialog.py b/liveusb/windows_dialog.py
new file mode 100644
index 0000000..1df259b
--- /dev/null
+++ b/liveusb/windows_dialog.py
@@ -0,0 +1,80 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'data/liveusb-creator.ui'
+#
+# Created: Wed Sep 3 03:31:13 2008
+# by: PyQt4 UI code generator 4.4.2
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore, QtGui
+from liveusb import utf8_gettext as _
+
+class Ui_Dialog(object):
+ def setupUi(self, Dialog):
+ Dialog.setObjectName("Dialog")
+ Dialog.resize(422,388)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,QtGui.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(Dialog.sizePolicy().hasHeightForWidth())
+ Dialog.setSizePolicy(sizePolicy)
+ self.startButton = QtGui.QPushButton(Dialog)
+ self.startButton.setEnabled(True)
+ self.startButton.setGeometry(QtCore.QRect(130,350,158,34))
+ self.startButton.setObjectName("startButton")
+ self.textEdit = QtGui.QTextEdit(Dialog)
+ self.textEdit.setGeometry(QtCore.QRect(10,200,401,111))
+ font = QtGui.QFont()
+ font.setPointSize(8)
+ self.textEdit.setFont(font)
+ self.textEdit.setReadOnly(True)
+ self.textEdit.setObjectName("textEdit")
+ self.progressBar = QtGui.QProgressBar(Dialog)
+ self.progressBar.setGeometry(QtCore.QRect(10,320,401,23))
+ self.progressBar.setProperty("value",QtCore.QVariant(0))
+ self.progressBar.setObjectName("progressBar")
+ self.groupBox = QtGui.QGroupBox(Dialog)
+ self.groupBox.setGeometry(QtCore.QRect(10,80,161,51))
+ font = QtGui.QFont()
+ font.setPointSize(8)
+ self.groupBox.setFont(font)
+ self.groupBox.setObjectName("groupBox")
+ self.isoBttn = QtGui.QPushButton(self.groupBox)
+ self.isoBttn.setGeometry(QtCore.QRect(11,18,141,25))
+ self.isoBttn.setObjectName("isoBttn")
+ self.groupBox_2 = QtGui.QGroupBox(Dialog)
+ self.groupBox_2.setGeometry(QtCore.QRect(10,140,391,51))
+ font = QtGui.QFont()
+ font.setPointSize(8)
+ self.groupBox_2.setFont(font)
+ self.groupBox_2.setObjectName("groupBox_2")
+ self.driveBox = QtGui.QComboBox(self.groupBox_2)
+ self.driveBox.setGeometry(QtCore.QRect(10,20,350,20))
+ self.driveBox.setEditable(False)
+ self.driveBox.setInsertPolicy(QtGui.QComboBox.InsertAtTop)
+ self.driveBox.setDuplicatesEnabled(False)
+ self.driveBox.setObjectName("driveBox")
+ self.refreshDevicesButton = QtGui.QPushButton(self.groupBox_2)
+ self.refreshDevicesButton.setGeometry(QtCore.QRect(356,16,30,26))
+ icon = QtGui.QIcon()
+ icon.addFile(":/refresh.png")
+ self.refreshDevicesButton.setIcon(icon)
+ self.refreshDevicesButton.setFlat(True)
+ self.refreshDevicesButton.setObjectName("refreshDevicesButton")
+ self.label = QtGui.QLabel(Dialog)
+ self.label.setGeometry(QtCore.QRect(0,0,430,72))
+ self.label.setPixmap(QtGui.QPixmap(":/mageia-liveusb.png"))
+ self.label.setObjectName("label")
+
+ self.retranslateUi(Dialog)
+ QtCore.QMetaObject.connectSlotsByName(Dialog)
+
+ def retranslateUi(self, Dialog):
+ Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "usbdumper", None, QtGui.QApplication.UnicodeUTF8))
+ self.startButton.setText(QtGui.QApplication.translate("Dialog", _("Create Live USB"), None, QtGui.QApplication.UnicodeUTF8))
+ self.groupBox.setTitle(QtGui.QApplication.translate("Dialog", _("Use existing Live CD"), None, QtGui.QApplication.UnicodeUTF8))
+ self.isoBttn.setText(QtGui.QApplication.translate("Dialog", _("Browse"), None, QtGui.QApplication.UnicodeUTF8))
+ self.groupBox_2.setTitle(QtGui.QApplication.translate("Dialog", _("Target Device"), None, QtGui.QApplication.UnicodeUTF8))
+
+import resources_rc
diff --git a/mandriva-seed b/mandriva-seed
new file mode 100755
index 0000000..138bebc
--- /dev/null
+++ b/mandriva-seed
@@ -0,0 +1,50 @@
+#!/usr/bin/env python
+# coding: utf-8
+#
+# Copyright © 2008 Red Hat, Inc. All rights reserved.
+#
+# This copyrighted material is made available to anyone wishing to use, modify,
+# copy, or redistribute it subject to the terms and conditions of the GNU
+# General Public License v.2. This program is distributed in the hope that it
+# will be useful, but WITHOUT ANY WARRANTY expressed or implied, including the
+# implied warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU General Public License for more details. You should have
+# received a copy of the GNU General Public License along with this program; if
+# not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
+# Floor, Boston, MA 02110-1301, USA. Any Red Hat trademarks that are
+# incorporated in the source code or documentation are not subject to the GNU
+# General Public License and may only be used or replicated with the express
+# permission of Red Hat, Inc.
+#
+# Author(s): Luke Macken <lmacken@redhat.com>
+# Aurelien Lefebvre <alefebvre@mandriva.com>
+
+__version__ = '3.6.4'
+
+def parse_args():
+ from optparse import OptionParser
+ parser = OptionParser(version=__version__)
+ parser.add_option('-v', '--verbose', dest='verbose', action='store_true',
+ help='Output extra debugging messages')
+ return parser.parse_args() # (opts, args)
+
+
+def main():
+ import sys
+ opts, args = parse_args()
+ # Testing requires
+ try:
+ import PyQt4
+ except ImportError:
+ print "You must have PyQt4 installed"
+ sys.exit(0)
+
+ ## Start our graphical interface
+ from liveusb.gui import LiveUSBApp
+ try:
+ LiveUSBApp(opts, sys.argv)
+ except KeyboardInterrupt:
+ pass
+
+if __name__ == '__main__':
+ main()
diff --git a/po/ChangeLog b/po/ChangeLog
new file mode 100644
index 0000000..3c646cb
--- /dev/null
+++ b/po/ChangeLog
@@ -0,0 +1,17 @@
+ 2008-11-20 Fabian Affolter <fabian@bernewireless.net> (via
+fab@fedoraproject.org)
+
+ * po/de.po: Initial German translation
+
+ 2008-10-27 Piotr Drąg <piotrdrag@gmail.com> (via raven@fedoraproject.org)
+
+ * po/pl.po: Updated Polish translation
+
+ 2008-10-27 Dimitris Glezos <dimitris@glezos.com> (via
+glezos@fedoraproject.org)
+
+ * po/el.po: Dummy commit, testing Transifex
+
+Module home on Tx:
+https://translate.fedoraproject.org/submit/module/kf
+
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100644
index 0000000..3a3acb3
--- /dev/null
+++ b/po/POTFILES.in
@@ -0,0 +1,6 @@
+[encoding: UTF-8]
+liveusb/__init__.py
+liveusb/gui.py
+liveusb/creator.py
+liveusb/linux_dialog.py
+liveusb/windows_dialog.py
diff --git a/po/app.fil b/po/app.fil
new file mode 100644
index 0000000..9a2bb79
--- /dev/null
+++ b/po/app.fil
@@ -0,0 +1,5 @@
+../liveusb/__init__.py
+../liveusb/gui.py
+../liveusb/creator.py
+../liveusb/linux_dialog.py
+../liveusb/windows_dialog.py
diff --git a/po/ca.po b/po/ca.po
new file mode 100644
index 0000000..57adb33
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,324 @@
+# Catalan translation of liveusb-creator by Softcatalà
+# Copyright (C) 2004-8 Free Software Foundation
+# This file is distributed under the same license as the liveusb-creator package.
+# Xavier Conde Rueda <xavi.conde@gmail.com>, 2004-8.
+#
+# This file is translated according to the glossary and style guide of
+# Softcatalà. If you plan to modify this file, please read first the page
+# of the Catalan translation team for the Fedora project at:
+# http://www.softcatala.org/projectes/fedora/
+# and contact the previous translator.
+#
+# Aquest fitxer s'ha de traduir d'acord amb el recull de termes i la guia
+# d'estil de Softcatalà. Si voleu modificar aquest fitxer, llegiu si
+# us plau la pàgina de catalanització del projecte Fedora a:
+# http://www.softcatala.org/projectes/fedora/
+# i contacteu l'anterior traductor/a.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: liveusb-creator\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2009-05-20 22:58+0200\n"
+"Last-Translator: Salva Pascual <salva@delleida.com>\n"
+"Language-Team: Fedora Softcatalà <fedora@softcatala.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Versió desconeguda: %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "Baixant %s..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Comprovant sistema de fitxers..."
+
+#: ../liveusb/gui.py:155
+msgid ""
+"Error: Cannot set the label or obtain the UUID of your device. Unable to "
+"continue."
+msgstr ""
+"Error: no s'ha pogut etiquetar o obtenir l'UUID del vostre dispositiu. No "
+"s'ha pogut continuar."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Comprovant SHA1 de la imatge CD Live..."
+
+#: ../liveusb/gui.py:166
+msgid ""
+"Error: The SHA1 of your Live CD is invalid. You can run this program with "
+"the --noverify argument to bypass this verification check."
+msgstr ""
+"Error: El resum SHA1 del vostre CD Live és invàlid. Sisplau, executeu "
+"l'aplicació amb l'argument --noverify per saltar-vos aquesta comprovació."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "Extraent la imatge Live al dispositiu USB..."
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "S'està creant la capa persistent de %d Mb..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "S'està configurant i instal·lant el carregador de l'arrencada..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Completat! (%s)"
+
+#: ../liveusb/gui.py:190 ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "Ha fallat la creació del Live USB."
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Emmagatzematge persistent (%d Mb)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"El vostre dispositiu ja conté un SO autònom.\n"
+"Si contineu, serà sobreescrit."
+
+#: ../liveusb/gui.py:337
+msgid ""
+"Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Atenció: si creeu una nova capa persistent, n'esborrareu l'existent."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Premeu 'Crea un Live USB' un altre cop si voleu continuar."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "S'està esborrant el SO existent..."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "Baixada completa!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "Ha fallat la baixada:"
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Podeu tornar-ho a intentar per continuar la vostra baixada"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Seleccioneu la ISO Live"
+
+#: ../liveusb/gui.py:399
+msgid ""
+"Sorry, I'm having trouble encoding the filename of your livecd. You may "
+"have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr ""
+"S'han produït problemes codificant el nom de fitxer del vostre CD live. "
+"Sisplau, torneu-ho a intentar movent la ISO al directori arrel del vostre "
+"dispositiu (p.e. C:\\)"
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "ISO seleccionada: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Ha fallat l'execució de la següent ordre: %s '\n"
+"S'ha creat un registre d'errors més detallat a 'liveusb-creator.log'"
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "No disposeu de suficient espai lliure en el vostre dispositiu."
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "S'està creant una capa persistent de %sMB "
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "No s'ha pogut esborrar l'anterior SO Live: %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "No s'ha pogut trobar el dispositiu %s"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "No s'ha pogut trobar cap unitat USB"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "El sistema de fitxers de %s és desconegut."
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "No s'ha pogut montar el dispositiu: %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "Sistema de fitxers desconegut en %s. S'haurà de reformatejar el vostre "
+"dispositiu."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "El sistema de fitxers de %s no està suportat."
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "No s'ha pogut trobar cap SO Live a la ISO"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "No s'ha pogut trobar cap dispostiu extraïble"
+
+#: ../liveusb/creator.py:479
+msgid ""
+"Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr ""
+"Assegureu-vos que la vostra clau USB estigui connectada i que tingui un "
+"sistema de fitxers FAT"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"El sistema de fitxers %s no està suportat\n"
+"Si us plau, guardeu la informació i formategeu la clau USB amb un sistema de "
+"fitxers FAT."
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid ""
+"Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file "
+"before running this program."
+msgstr ""
+"No s'ha trobat '%s'. Assegureu-vos d'extreure tot el fitxer zip de liveusb-creator "
+"abans d'executar el programa."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Creador de LiveUSB de Fedora"
+
+#: ../liveusb/dialog.py:124
+msgid ""
+"This button will begin the LiveUSB creation process. This entails "
+"optionally downloading a release (if an existing one wasn't selected), "
+"extracting the ISO to the USB device, creating the persistent overlay, and "
+"installing the bootloader."
+msgstr ""
+"Aquest botó començarà el procés de creació del LiveUSB. Això inclou "
+"opcionalment la baixada d'una versió (si n'existeix cap que hagueu "
+"seleccionat), l'extracció de la ISO al dispositiu USB, la creació de la capa "
+"persistent i la instal·lació del carregador d'arrencada."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Crea USB Live"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Aquesta és la consola d'estat, on s'escriuen tots els missatges."
+
+#: ../liveusb/dialog.py:127
+msgid ""
+"This is the progress bar that will indicate how far along in the LiveUSB "
+"creation process you are"
+msgstr ""
+"Aquesta és la barra de progrés que us indicarà el progrés actual dins el "
+"procés de creació de LiveUSB"
+
+#: ../liveusb/dialog.py:128
+msgid ""
+"If you do not select an existing Live CD, the selected release will be "
+"downloaded for you."
+msgstr ""
+"Si no seleccioneu un CD Live existent, es descarrregarà la versió "
+"seleccionada automàticament."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Baixa Fedora"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "o"
+
+#: ../liveusb/dialog.py:131
+msgid ""
+"This button allows you to browse for an existing Live CD ISO that you have "
+"previously downloaded. If you do not select one, a release will be "
+"downloaded for you automatically."
+msgstr ""
+"Aquest botó us permet navegar per una ISO existent de CD Live que hareu "
+"baixat anteriorment. Si no seleccioneu cap, es baixarà una versió "
+"automàticament."
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Utilitza una imatge de CD Live existent."
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Navega"
+
+#: ../liveusb/dialog.py:135
+msgid ""
+"This is the USB stick that you want to install your Live CD on. This device "
+"must be formatted with the FAT filesystem."
+msgstr ""
+"Aquesta és la clau USB que heu seleccionat per instal·lar la vostra imatge "
+"CD Live. Aquest dispositiu ha d'estar formatat amb el sistema de fitxers FAT."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Dispositiu destí"
+
+#: ../liveusb/dialog.py:137
+msgid ""
+"By allocating extra space on your USB stick for a persistent overlay, you "
+"will be able to store data and make permanent modifications to your live "
+"operating system. Without it, you will not be able to save data that will "
+"persist after a reboot."
+msgstr ""
+"Podreu desar dades i fer modificacions permanents en el sistema operatiu "
+"Live allotjant espai extra en la vostra clau USB per a una capa persistent. "
+"Sense ella, no podreu desar dades que persisteixin després de reiniciar. "
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Emmagatzematge persistent (0 Mb)"
+
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 0000000..451a942
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,348 @@
+# translation of liveusb-creator.master.pot.ppt.po to Czech
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Adam Přibyl <pribyl@lowlevel.cz>, 2008.
+# Adam Pribyl <pribyl@lowlevel.cz>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: liveusb-creator.master.pot.ppt\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-10-21 02:05+0000\n"
+"PO-Revision-Date: 2008-10-21 12:13+0200\n"
+"Last-Translator: Adam Pribyl <pribyl@lowlevel.cz>\n"
+"Language-Team: Czech <fedora-cs-list@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 0.2\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: ../liveusb/__init__.py:42
+msgid "You must run this application as root"
+msgstr "Tuto aplikaci musíte spouštět jako root"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Neznámé vydání: %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "Stahuji %s..."
+
+#: ../liveusb/gui.py:156
+msgid ""
+"Error: Cannot set the label or obtain the UUID of your device. Unable to "
+"continue."
+msgstr ""
+"Chyba: Nelze nastavit jmenovku nebo získat UUID vašeho zařízení. Nemohu "
+"pokračovat."
+
+#: ../liveusb/gui.py:185
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Hotovo! (%s)"
+
+#: ../liveusb/gui.py:188 ../liveusb/gui.py:191
+msgid "LiveUSB creation failed!"
+msgstr "Vytvoření LiveUSB selhalo!"
+
+#: ../liveusb/gui.py:331
+msgid "Persistent Storage"
+msgstr "Trvalé úložiště"
+
+#: ../liveusb/gui.py:349
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"Vaše zařízení již obsahuje živý OS.\n"
+"Pokud budete pokračovat, bude přepsán."
+
+#: ../liveusb/gui.py:352
+msgid ""
+"Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Varování: vytvořením nového trvalého úložiště smažete již existující."
+
+#: ../liveusb/gui.py:354
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Stiskněte 'Vytvořit Live USB' ještě jednou pokud chcete pokračovat."
+
+#: ../liveusb/gui.py:400
+msgid "Download complete!"
+msgstr "Stahování dokončeno!"
+
+#: ../liveusb/gui.py:404
+msgid "Download failed: "
+msgstr "Stahování selhalo: "
+
+#: ../liveusb/gui.py:405
+msgid "You can try again to resume your download"
+msgstr "Zkuste znovu zahájit stahování"
+
+#: ../liveusb/gui.py:409
+msgid "Select Live ISO"
+msgstr "Vyberte Live ISO"
+
+#: ../liveusb/gui.py:416
+msgid ""
+"Sorry, I'm having trouble encoding the filename of your livecd. You may "
+"have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr ""
+"Bohužel mám problémy s kódováním jména vašeho LiveCD. Možná budete mít více "
+"štěstí pokud ISO přesunete do kořene vašeho disku (např. C:\\)"
+
+#: ../liveusb/gui.py:422
+msgid "selected"
+msgstr "vybrané"
+
+#: ../liveusb/creator.py:128
+msgid "Setting up OLPC boot file..."
+msgstr "Nastavuji startovací soubor OLPC..."
+
+#: ../liveusb/creator.py:180
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Nastal problém při spouštění následujícího příkazu: `%s`\n"
+"Podrobnosti o této chybě byly zapsány do souboru 'liveusb-creator.log'"
+
+#: ../liveusb/creator.py:187
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Ověřuji SHA1 obrazu LiveCD"
+
+#: ../liveusb/creator.py:209
+msgid ""
+"Error: The SHA1 of your Live CD is invalid. You can run this program with "
+"the --noverify argument to bypass this verification check."
+msgstr ""
+"Chyba: SHA1 vašeho LiveCD je neplatný. Tento program můžete spustit s "
+"parametrem --noverify abyste tuto kontrolu přeskočili."
+
+#: ../liveusb/creator.py:215
+msgid "Unknown ISO, skipping checksum verification"
+msgstr "Neznámé ISO, přeskakuji ověření kontrolního součtu"
+
+#: ../liveusb/creator.py:227
+msgid "Not enough free space on device."
+msgstr "Na disku není dostatek místa."
+
+#: ../liveusb/creator.py:228
+#, python-format
+msgid ""
+"\n"
+"%dMB ISO + %dMB overlay > %dMB free space"
+msgstr ""
+"\n"
+"%dMB ISO + %dMB úložiště > %dMB volný prostor"
+
+#: ../liveusb/creator.py:234
+msgid "Creating"
+msgstr "Vytvářím"
+
+#: ../liveusb/creator.py:235
+msgid "persistent overlay"
+msgstr "trvalé úložiště"
+
+#: ../liveusb/creator.py:267
+msgid "Removing existing Live OS"
+msgstr "Odstraňuji existující živý OS"
+
+#: ../liveusb/creator.py:276
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Nemohu odstranit předchozí živý OS: %s"
+
+#: ../liveusb/creator.py:307
+#, python-format
+msgid "Cannot find device %s"
+msgstr "Nemohu nalézt zařízení %s"
+
+#: ../liveusb/creator.py:356
+msgid "Unable to find any USB drives"
+msgstr "Nemohu nalézt žádný USB disk"
+
+#: ../liveusb/creator.py:379
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "Neznámý souborový systém pro %s!"
+
+#: ../liveusb/creator.py:380
+msgid "device"
+msgstr "zařízení"
+
+#: ../liveusb/creator.py:392
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "Nemohu připojit zařízení: %s"
+
+#: ../liveusb/creator.py:428 ../liveusb/creator.py:588
+msgid "Verifying filesystem..."
+msgstr "Ověřuji systém souborů..."
+
+#: ../liveusb/creator.py:431
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr ""
+"Neznámý souborový systém pro %s. Vaše zařízení zřejmě potřebuje "
+"přeformátovat."
+
+#: ../liveusb/creator.py:434
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Nepodporovaný systém souborů: %s"
+
+#: ../liveusb/creator.py:458 ../liveusb/creator.py:623
+msgid "Extracting live image to USB device..."
+msgstr "Extrahuji žívý obraz na USB zařízení..."
+
+#: ../liveusb/creator.py:464
+msgid "Unable to find LiveOS on ISO"
+msgstr "Nemohu nalézt živý OS v ISO"
+
+#: ../liveusb/creator.py:475 ../liveusb/creator.py:630
+msgid "Wrote to device at"
+msgstr "Zapsáno na zařízení"
+
+#: ../liveusb/creator.py:488
+msgid "Installing bootloader..."
+msgstr "Instaluji zavaděč..."
+
+#: ../liveusb/creator.py:526
+msgid "Verifying ISO MD5 checksum"
+msgstr "Ověřuji ISO kontrolní součet MD5 "
+
+#: ../liveusb/creator.py:584
+msgid "Unable to find any removable devices"
+msgstr "Nemohu nalézt žádné vyměnitelné zařízení"
+
+#: ../liveusb/creator.py:592
+msgid ""
+"Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr ""
+"Ujistěte se, že váš USB disk je připojen a naformátován na systéme souborů "
+"FAT"
+
+#: ../liveusb/creator.py:595
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Nepodporovaný systém souborů: %s\n"
+"Prosím proveďte zálohu a naformátujte USB disk systémem souborů FAT."
+
+#: ../liveusb/creator.py:636
+msgid "Installing bootloader"
+msgstr "Instaluji zavaděč..."
+
+#: ../liveusb/creator.py:678
+msgid "Cannot find"
+msgstr "Nemohu nalézt"
+
+#: ../liveusb/creator.py:679
+msgid ""
+"Make sure to extract the entire liveusb-creator zip file before running this "
+"program."
+msgstr ""
+"Ujistěte se, že jste vyextrahovali celý soubor liveusb-"
+"creator.zip než jste program spustili."
+
+#: ../liveusb/linux_dialog.py:98 ../liveusb/windows_dialog.py:104
+msgid "Fedora LiveUSB Creator"
+msgstr "Fedora tvůrce LiveCD"
+
+#: ../liveusb/linux_dialog.py:99 ../liveusb/windows_dialog.py:105
+msgid ""
+"This button will begin the LiveUSB creation process. This entails "
+"optionally downloading a release (if an existing one wasn't selected), "
+"extracting the ISO to the USB device, creating the persistent overlay, and "
+"installing the bootloader."
+msgstr ""
+"Toto tlačítko započne proces vytvoření LiveUSB. To obnáší eventuální stažení "
+"vydání (pokud žádné existující nebylo vybráno), extrakci ISO na USB "
+"zařízení, vytvoření trvalého úložiště a instalaci zavaděče."
+
+#: ../liveusb/linux_dialog.py:100 ../liveusb/windows_dialog.py:106
+msgid "Create Live USB"
+msgstr "Vytvořit Live USB"
+
+#: ../liveusb/linux_dialog.py:101 ../liveusb/windows_dialog.py:107
+msgid "This is the status console, where all messages get written to."
+msgstr "Toto je stavová konzole, kde budou vypsány všechny zprávy."
+
+#: ../liveusb/linux_dialog.py:102 ../liveusb/windows_dialog.py:108
+msgid ""
+"This is the progress bar that will indicate how far along in the LiveUSB "
+"creation process you are"
+msgstr "Toto je ukazatel který indikuje jak daleko je proces vytváření LiveUSB"
+
+#: ../liveusb/linux_dialog.py:103 ../liveusb/windows_dialog.py:109
+msgid ""
+"If you do not select an existing Live CD, the selected release will be "
+"downloaded for you."
+msgstr "Pokud jste nevybrali existující Live CD, vybrané vydání bude staženo."
+
+#: ../liveusb/linux_dialog.py:104 ../liveusb/windows_dialog.py:110
+msgid "Download Fedora"
+msgstr "Stáhnout Fedoru"
+
+#: ../liveusb/linux_dialog.py:105 ../liveusb/windows_dialog.py:111
+msgid "or"
+msgstr "nebo"
+
+#: ../liveusb/linux_dialog.py:106 ../liveusb/windows_dialog.py:112
+msgid ""
+"This button allows you to browse for an existing Live CD ISO that you have "
+"previously downloaded. If you do not select one, a release will be "
+"downloaded for you automatically."
+msgstr ""
+"Toto tlačítko vám umožňuje prohlížet disk a najít existující Live CD ISO, "
+"které jste již někdy dříve stáhli. Pokud žádné nevyberete, bude automaticky "
+"staženo vydání odpovídající vybrané verzi."
+
+#: ../liveusb/linux_dialog.py:107 ../liveusb/windows_dialog.py:113
+msgid "Use existing Live CD"
+msgstr "Použít existující Live CD"
+
+#: ../liveusb/linux_dialog.py:108 ../liveusb/windows_dialog.py:114
+msgid "Browse"
+msgstr "Prohlížet"
+
+#: ../liveusb/linux_dialog.py:110 ../liveusb/windows_dialog.py:116
+msgid ""
+"This is the USB stick that you want to install your Live CD on. This device "
+"must be formatted with the FAT filesystem."
+msgstr ""
+"Toto je USB zařízení na které chcete instalovat vaše Live CD. Toto zařízení "
+"musí být naformátováno systémem souborů FAT."
+
+#: ../liveusb/linux_dialog.py:112 ../liveusb/windows_dialog.py:118
+msgid ""
+"By allocating extra space on your USB stick for a persistent overlay, you "
+"will be able to store data and make permanent modifications to your live "
+"operating system. Without it, you will not be able to save data that will "
+"persist after a reboot."
+msgstr ""
+"Přidělením místa pro trvalé úložiště, budete schopni na disku ukládat trvalé "
+"úpravy vašeho živého operačního systému. Bez něj nebudete schopni ukládat "
+"data, která přetrvají restart."
+
+#: ../liveusb/linux_dialog.py:113 ../liveusb/windows_dialog.py:119
+msgid "Persistent Storage (0 Mb)"
+msgstr "Trvalé úložiště (0 Mb)"
+
+#: ../liveusb/windows_dialog.py:117
+msgid "Target Device"
+msgstr "Cílové zařízení"
+
+#~ msgid "Creating %d Mb persistent overlay..."
+#~ msgstr "Vytvářím %d Mb překrytí trvalého úložiště..."
+
+#~ msgid "Persistent Storage (%d Mb)"
+#~ msgstr "Trvalé úložiště (%d Mb)"
+
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 0000000..74382d1
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,306 @@
+# German translation of liveusb-creator
+# Copyright (C) 2008 liveusb-creator
+# This file is distributed under the same license as the liveusb-creator package.
+#
+# Fabian Affolter <fab@fedoraproject.org>, 2008-2009.
+# Marcus Nitzschke <marcusni@gmx.de>, 2008.
+# Cornelius Neckenig <tbull@fedoraproject.org>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: liveusb-creator\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2009-04-17 16:31+0100\n"
+"Last-Translator: Cornelius Neckenig <tbull@fedoraproject.org>\n"
+"Language-Team: German <fedora-trans-de@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: German\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Unbekannte Version: %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "Herunterladen %s ..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Überprüfe Dateisystem ..."
+
+#: ../liveusb/gui.py:155
+msgid "Error: Cannot set the label or obtain the UUID of your device. Unable to continue."
+msgstr "Fehler: Kann die Beschriftung nicht setzen oder die UUID Ihres Gerätes erhalten. Kann nicht fortfahren."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Verifiziere SHA1 des LiveCD-Abbildes ..."
+
+#: ../liveusb/gui.py:166
+msgid "Error: The SHA1 of your Live CD is invalid. You can run this program with the --noverify argument to bypass this verification check."
+msgstr "Fehler: Der SHA1 Ihrer Live CD ist ungültig. Sie können dieses Programm mit dem '--noverify'-Argument ausführen, um die Verifikationsprüfung zu umgehen."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "Extrahiere Live-Abbild auf USB-Gerät ..."
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "Erzeuge %d MB festen Speicher..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "Konfiguriere und installiere Bootloader ..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Komplett! (%s)"
+
+#: ../liveusb/gui.py:190
+#: ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "LiveUSB-Erzeugung fehlgeschlagen!"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Persistenter Speicher (%d MB)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"Ihr Gerät enthält ein LiveOS.\n"
+"Wenn Sie fortsetzen, wird es überschrieben."
+
+#: ../liveusb/gui.py:337
+msgid "Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Warnung: Das Erzeugen eines neuen persistenten Overlay löscht ein vorhandenes."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Drücken Sie 'Create Live USB' nochmals, wenn Sie fortfahren wollen."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "Entferne vorhandenes Live-OS ..."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "Herunterladen abgeschlossen!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "Herunterladen fehlgeschlagen:"
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Sie können versuchen das Herunterladen wieder aufzunehmen"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Live ISO-Abbild wählen"
+
+#: ../liveusb/gui.py:399
+msgid "Sorry, I'm having trouble encoding the filename of your livecd. You may have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr "Entschuldigung, encodieren des Dateinamens Ihrer LiveCD ist nicht möglich. Vielleicht haben Sie mehr Glück, wenn Sie das ISO-Abbild in das Wurzelverzeichnis Ihres Laufwerkes verschieben (z. B.: C:\\)."
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "ISO-Datei ausgewählt: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Es ist ein Fehler bei der Ausführung des folgenden Befehls aufgetreten: `%s`\n"
+"Ein detaillierter Fehler wurde in die Datei 'liveusb-creator.log' geschrieben"
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "Nicht genügend freier Platz auf dem Gerät."
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "Erzeuge %s MB persistentes Overlay"
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Kann vorheriges LiveOS nicht entfernen: %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "Kann Gerät %s nicht finden"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "Kann keine USB-Geräte finden"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "Dateisystem für %s ist unbekannt!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "Kann Gerät nicht einhängen: %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "Unbekanntes Dateisystem für %s. Ihr Gerät muss neu formatiert werden."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Nicht unterstütztes Dateisystem: %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "Kann kein LiveOS auf ISO finden"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "Kann keine Wechseldatenträger finden"
+
+#: ../liveusb/creator.py:479
+msgid "Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr "Stellen Sie sicher, dass Ihr USB-Stick eingesteckt und mit einem FAT-Dateisystem formatiert ist"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Nicht unterstütztes Dateisystem: %s\n"
+"Bitte erstellen Sie eine Daten-Sicherung und formatieren Sie Ihren USB-Stick mit einem FAT-Dateisystem."
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid "Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file before running this program."
+msgstr "Kann '%s' nicht finden. Stellen Sie sicher, dass Sie das komplette liveusb-creator Zip-Archiv entpackt haben, bevor Sie das Programm ausführen."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Fedora LiveUSB Creator"
+
+#: ../liveusb/dialog.py:124
+msgid "This button will begin the LiveUSB creation process. This entails optionally downloading a release (if an existing one wasn't selected), extracting the ISO to the USB device, creating the persistent overlay, and installing the bootloader."
+msgstr "Diese Schaltfläche startet den Live-USB-Erzeugungsprozess. Dies beinhaltet ein optionales Herunterladen einer Version (wenn keine gewählt wurde), das Übertragen des ISO-Abbildes auf das USB-Gerät, das Erzeugen des persistenten Overlay und das Installieren des Bootloader."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Erzeuge Live-USB"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Dies ist die Status-Konsole, in welche alle Nachrichten geschrieben werden."
+
+#: ../liveusb/dialog.py:127
+msgid "This is the progress bar that will indicate how far along in the LiveUSB creation process you are"
+msgstr "Dies ist die Fortschrittsanzeige, welche anzeigen wird, wie lange der Live-USB-Erzeugungsprozess dauern wird"
+
+#: ../liveusb/dialog.py:128
+msgid "If you do not select an existing Live CD, the selected release will be downloaded for you."
+msgstr "Wenn Sie keine vorhandene Live-CD gewählt haben, wird die gewählte Version für Sie heruntergeladen."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Fedora herunterladen"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "oder"
+
+#: ../liveusb/dialog.py:131
+msgid "This button allows you to browse for an existing Live CD ISO that you have previously downloaded. If you do not select one, a release will be downloaded for you automatically."
+msgstr "Diese Schaltfläche erlaubt Ihnen das Suchen nach einer vorhandenen Live-CD ISO-Datei, welche früher heruntergeladen wurde. Wenn Sie keine wählen, wird automatisch eine Version für Sie heruntergeladen."
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Benutze vorhandene Live-CD"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Durchsuchen"
+
+#: ../liveusb/dialog.py:135
+msgid "This is the USB stick that you want to install your Live CD on. This device must be formatted with the FAT filesystem."
+msgstr "Dies ist der USB-Stick auf welchem Sie Ihre Live-CD installieren wollen. Das Gerät muss mit einem FAT-Dateisystem formatiert sein."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Ziel-Gerät"
+
+#: ../liveusb/dialog.py:137
+msgid "By allocating extra space on your USB stick for a persistent overlay, you will be able to store data and make permanent modifications to your live operating system. Without it, you will not be able to save data that will persist after a reboot."
+msgstr "Durch das Hinzufügen von weiterem Speicherplatz für das persistente Overlay auf Ihrem USB-Stick, wird es Ihnen möglich sein, Daten und Änderungen permanent für Ihr Live-Betriebssystem zu speichern. Ohne wird es Ihnen nicht möglich sein Daten zu speichern, welche nach einem Neustart noch verfügbar sind. "
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Persistenter Speicher (0 MB)"
+
+#~ msgid "You must run this application as root"
+#~ msgstr "Sie müssen diese Anwendung als root ausführen."
+#~ msgid ""
+#~ "Device is not yet mounted, so we cannot determine the amount of free "
+#~ "space. Setting a maximum limit of 8G for the persistent storage."
+#~ msgstr ""
+#~ "Das Gerät ist momentan nicht eingehängt, so kann die Grösse des freien "
+#~ "Platzes nicht bestimmt werden. Das Maximum-Limit von 8 GB für den "
+#~ "persistenten Speicher wird gesetzt. "
+#~ msgid "Partition is FAT16; Restricting overlay size to 2G"
+#~ msgstr "Partition ist FAT16. Beschränkung der Overlay-Grösse auf 2 GB"
+#~ msgid "Persistent Storage"
+#~ msgstr "Persistenter Speicher"
+#~ msgid "Unable to mount device"
+#~ msgstr "Kann Gerät nicht einhängen"
+#~ msgid "Setting up OLPC boot file..."
+#~ msgstr "Richte OLPC-Boot-Datei ein ..."
+#~ msgid "Unknown ISO, skipping checksum verification"
+#~ msgstr "Unbekannte ISO-Datei, überspringe Checksummen-Überprüfung"
+#~ msgid ""
+#~ "\n"
+#~ "%dMB ISO + %dMB overlay > %dMB free space"
+#~ msgstr ""
+#~ "\n"
+#~ "%d MB ISO + %d MB Overlay > %d MB freier Platz"
+#~ msgid "Creating"
+#~ msgstr "Erzeuge"
+#~ msgid "persistent overlay"
+#~ msgstr "Persistenter Speicher"
+#~ msgid "Resetting MBR..."
+#~ msgstr "MBR zurücksetzen ..."
+#~ msgid "device"
+#~ msgstr "Gerät"
+#~ msgid "Your MBR appears to be blank"
+#~ msgstr "Ihr MBR scheint leer zu sein"
+#~ msgid "Wrote to device at"
+#~ msgstr "Schreibe auf Gerät unter"
+#~ msgid "Verifying ISO MD5 checksum"
+#~ msgstr "Überprüfe ISO-MD5-Checksumme"
+#~ msgid "Installing bootloader"
+#~ msgstr "Installiere Bootloader"
+#~ msgid "Cannot find"
+#~ msgstr "Kann nicht finden"
+
diff --git a/po/el.po b/po/el.po
new file mode 100644
index 0000000..de74be1
--- /dev/null
+++ b/po/el.po
@@ -0,0 +1,257 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the liveusb-creator package.
+# Nikos Charonitakis <nikosx@gmail.com>, 2008.
+# Pierros Papadeas <ppapadeas@gmail.com> 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: el\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2009-05-11 14:44+0200\n"
+"Last-Translator: Pierros Papadeas <ppapadeas@gmail.com>\n"
+"Language-Team: Greek <team@gnome.gr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "'Αγνωστη έκδοση: %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "Γίνεται λήψη %s..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Επιβεβαίωση συστήματος αρχείων..."
+
+#: ../liveusb/gui.py:155
+msgid "Error: Cannot set the label or obtain the UUID of your device. Unable to continue."
+msgstr ""
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Επιβεβαίωση SHA1 της ζωντανής εικόνας CD..."
+
+#: ../liveusb/gui.py:166
+msgid "Error: The SHA1 of your Live CD is invalid. You can run this program with the --noverify argument to bypass this verification check."
+msgstr ""
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "Εξαγωγή ζωντανής εικόνας στην συσκευή USB..."
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "Δημιουργία %d Mb μόνιμου χώρου..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "Ρύθμιση και εγκατάσταση εκκινητή..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Ολοκληρώθηκε! (%s)"
+
+#: ../liveusb/gui.py:190
+#: ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "Η δημιουργία ζωντανού USB απέτυχε!"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Μόνιμη Μνήμη (%d Mb)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+
+#: ../liveusb/gui.py:337
+msgid "Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Προσοχή: Η δημιουργία μόνιμου χώρου θα διαγράψει τον ήδη υπάρχοντα."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Πατήστε 'Δημιουργία Ζωντανού USB' ξανά αν επιθυμείτε να συνεχίσετε."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "Αφαίρεση υπάρχοντος Ζωντανού ΛΣ..."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "Η λήψη ολοκληρώθηκε!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "Η λήψη απέτυχε:"
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Μπορείτε να δοκιμάσετε να ξαναξεκινήσετε την λήψη σας"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Επιλέξτε Ζωντανό ISO"
+
+#: ../liveusb/gui.py:399
+msgid "Sorry, I'm having trouble encoding the filename of your livecd. You may have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr ""
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "Επιλεγμένο ISO: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "Δεν υπάρχει αρκετός διαθέσιμος χώρος στη συσκευή."
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "Δημιουργία %sΜΒ μόνιμης μνήμης"
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Αδυναμία αφαίρεσης προηγούμενου ζωντανού ΛΣ: %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "Αδυναμία εύρεσης συσκευής %s"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "Αδυναμία εύρεσης κάποιου USB δίσκου"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "Το σύστημα αρχείων του %s είναι άγνωστο!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "Αδυναμία προσάρτησης συσκευής: %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr ""
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Μη υποστηριζόμενο σύστημα αρχείων: %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "Αδυναμία εύρεσης Ζωντανού ΛΣ στο ISO"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "Αδυναμία εύρεσης αφαιρούμενων συσκευών"
+
+#: ../liveusb/creator.py:479
+msgid "Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr "Σιγουρευτείτε ότι το USB stick σας είναι συνδεδεμένο και διαμορφωμένο σε σύστημα αρχείων FAT"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid "Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file before running this program."
+msgstr ""
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Δημιουργός Ζωντανών USB Fedora"
+
+#: ../liveusb/dialog.py:124
+msgid "This button will begin the LiveUSB creation process. This entails optionally downloading a release (if an existing one wasn't selected), extracting the ISO to the USB device, creating the persistent overlay, and installing the bootloader."
+msgstr ""
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Δημιουργία Ζωντανού USB"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Αυτή είναι η κονσόλα κατάστασης, όπου γράφονται όλα τα μηνύματα."
+
+#: ../liveusb/dialog.py:127
+msgid "This is the progress bar that will indicate how far along in the LiveUSB creation process you are"
+msgstr ""
+
+#: ../liveusb/dialog.py:128
+msgid "If you do not select an existing Live CD, the selected release will be downloaded for you."
+msgstr ""
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Λήψη Fedora"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "ή"
+
+#: ../liveusb/dialog.py:131
+msgid "This button allows you to browse for an existing Live CD ISO that you have previously downloaded. If you do not select one, a release will be downloaded for you automatically."
+msgstr ""
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Χρήση υπάρχοντος ζωντανού CD"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Περιήγηση"
+
+#: ../liveusb/dialog.py:135
+msgid "This is the USB stick that you want to install your Live CD on. This device must be formatted with the FAT filesystem."
+msgstr "Αυτό είναι το USB stick στο οποίο θέλετε να εγκαταστήσετε το ζωντανό CD. Αυτή η συσκευή πρέπει να διαμορφωθεί σε FAT σύστημα αρχείων."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Συσκευή προορισμού"
+
+#: ../liveusb/dialog.py:137
+msgid "By allocating extra space on your USB stick for a persistent overlay, you will be able to store data and make permanent modifications to your live operating system. Without it, you will not be able to save data that will persist after a reboot."
+msgstr ""
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Μόνιμη Μνήμη (0 Mb)"
+
+#~ msgid "device"
+#~ msgstr "συσκευή"
+#~ msgid "Cannot find"
+#~ msgstr "Αδυναμία εύρεσης"
+
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 0000000..dec3ce5
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,325 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: Mandriva Seed - liveusb-creator\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2010-06-07 11:24-0300\n"
+"Last-Translator: Gustavo Giampaoli (tavillo1980) <gustavo.giampaoli@yahoo.com.ar>\n"
+"Language-Team: MKDTrans <mdktrans@blogdrake.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Spanish\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Versión desconocida: %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "Descargando %s..."
+
+# Se reemplaza "chequeando" por "revisando"
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Revisando sistema de archivos..."
+
+#: ../liveusb/gui.py:155
+msgid "Error: Cannot set the label or obtain the UUID of your device. Unable to continue."
+msgstr "Error: No se pudo establecer la etiqueta u obtener el UUID de su dispositivo. No se puede continuar."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Revisando SHA1 de la imágen del LiveCD..."
+
+# Reemplazando "CD en Vivo" por "LiveCD"
+#: ../liveusb/gui.py:166
+msgid "Error: The SHA1 of your Live CD is invalid. You can run this program with the --noverify argument to bypass this verification check."
+msgstr "Error: El SHA1 de su LiveCD no es válido. Debe ejecutar este programa con el argumento --noverify para omitir esta comprobación."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "Extrayendo la imagen en el dispositivo USB..."
+
+# "persistent overlay" lo he traducido como "espacio de almacenamiento persistente" luego de leer e interpretar http://ig33k.portzilla.com/2008/12/fedora-usb-persistant-overlay-explained/
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "Creando espacio de almacenamiento persistente de %d Mb..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "Configurando e instalando el gestor de arranque..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "¡Completo! (%s)"
+
+# Reemplazando USB en Vivo por LiveUSB
+#: ../liveusb/gui.py:190
+#: ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "¡La creación del LiveUSB falló!"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Almacenamiento Persistente (%d Mb)"
+
+# Reemplazando SO en Vivo por LiveOS
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"Su dispositivo ya contiene un LiveOS.\n"
+"Si continúa, el mismo se sobreescribirá."
+
+#: ../liveusb/gui.py:337
+msgid "Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Advertencia: La creación de un espacio de almacenamiento persistente eliminará el existente."
+
+# Reemplazando USB en Vivo por LiveUSB
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Presione 'Crear LiveUSB' nuevamente si desea continuar."
+
+# Reemplazando OS en Vivo por LiveOS
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "Eliminando el LiveOS existente..."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "¡Descarga completa!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "Falló la descarga:"
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Puede intentar reanudar la descarga nuevamente"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Seleccione la ISO del LiveCD"
+
+#: ../liveusb/gui.py:399
+msgid "Sorry, I'm having trouble encoding the filename of your livecd. You may have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr "No se pudo codificar el nombre de archivo de su LiveCD. Podría funcionar si mueve la imagen ISO a la raíz de su disco (por ejemplo: C:\\)"
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "ISO seleccionada: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Hubo un problema al ejecutar el siguiente comando: `%s`\n"
+"Un detalle del error ha sido volcado en 'liveusb-creator.log'"
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "No hay suficiente espacio libre en el dispositivo."
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "Creando espacio de almacenamiento persistente de %s MB"
+
+# Reemplazando SO en vivo por LiveOS
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "No se pudo eliminar el LiveOS previo: %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "No se pudo hallar el dispositivo %s"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "No se pudo hallar ninguna unidad USB"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "¡El sistema de archivo de %s es desconocido!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "No se pudo montar el dispositivo: %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "%s tiene un sistema de archivo desconocido. Su dispositivo puede necesitar ser reformateado."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Sistema de archivos no soportado: %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "No se pudo hallar un LiveOS en la imágen ISO"
+
+# Corregio error ortográfico: hallaR por hallaS
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "No se pudo hallar ninguna unidad removible"
+
+#: ../liveusb/creator.py:479
+msgid "Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr "Asegúrese de que su unidad USB está conectada y formateada con el sistema de archivo FAT"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Sistema de archivo no soportado: %s\n"
+"Por favor, haga un respaldo y formatee su unidad USB con el sistema de archivos FAT."
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid "Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file before running this program."
+msgstr "No se pudo encontrar '%s'. Asegúrese de extraer completamente el archivo zip liveusb-creator antes de ejecutar este programa."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Creador de dispositivos LiveUSB de Mandriva"
+
+#: ../liveusb/dialog.py:124
+msgid "This button will begin the LiveUSB creation process. This entails optionally downloading a release (if an existing one wasn't selected), extracting the ISO to the USB device, creating the persistent overlay, and installing the bootloader."
+msgstr "Este botón iniciará el proceso de creación del dispositivo LiveUSB. Esto incluye descargar opcionalmente una versión (en caso de que no se haya seleccionado una), extraer la ISO en el dispositivo USB, crear el espacio de almacenamiento persistente, e instalar el gestor de arranque."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Crear dispositivo LiveUSB"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Esta es la consola de estado, donde se mostrarán todos los mensajes."
+
+#: ../liveusb/dialog.py:127
+msgid "This is the progress bar that will indicate how far along in the LiveUSB creation process you are"
+msgstr "Esta es la barra de progreso que indicará en que punto del proceso de creación del dispositivo LiveUSB se encuentra UD."
+
+#: ../liveusb/dialog.py:128
+msgid "If you do not select an existing Live CD, the selected release will be downloaded for you."
+msgstr "Si no selecciona un LiveCD existente, la versión seleccionada se descargará para UD."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Descargar Mandriva"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "o"
+
+#: ../liveusb/dialog.py:131
+msgid "This button allows you to browse for an existing Live CD ISO that you have previously downloaded. If you do not select one, a release will be downloaded for you automatically."
+msgstr "Este botón le permite navegar en busca de una imagen ISO de LiveCD que haya descargado previamente. Si no seleccionó alguna, se descargará una versión automáticamente."
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Usar un LiveCD existente"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Examinar"
+
+#: ../liveusb/dialog.py:135
+msgid "This is the USB stick that you want to install your Live CD on. This device must be formatted with the FAT filesystem."
+msgstr "Este es el dispositivo USB en donde desea instalar su LiveCD. Su formato debe ser FAT."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Dispositivo Destino"
+
+#: ../liveusb/dialog.py:137
+msgid "By allocating extra space on your USB stick for a persistent overlay, you will be able to store data and make permanent modifications to your live operating system. Without it, you will not be able to save data that will persist after a reboot."
+msgstr "Al asignar espacio extra en el dispositivo USB para un espacio de almacenamiento persistente, podrá almacenar datos y hacer modificaciones permanentes al sistema operativo Live. Sin él, no podrá guardar los cambios para que estén disponibles en el próximo inicio."
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Almacenamiento Persistente (0 MB)"
+
+#~ msgid "You must run this application as root"
+#~ msgstr "Debe ejecutar esta aplicación como root"
+
+#~ msgid ""
+#~ "Device is not yet mounted, so we cannot determine the amount of free "
+#~ "space. Setting a maximum limit of 8G for the persistent storage."
+#~ msgstr ""
+#~ "El dispositivo no está montado todavía, por lo que no se puede determinar "
+#~ "el espacio libre. Se pondrá un límite máximo de 8G para el almacenamiento "
+#~ "persistente."
+
+#~ msgid "Partition is FAT16; Restricting overlay size to 2G"
+#~ msgstr "La partición es FAT16; Restringiendo el tamaño del overlay a 2G"
+
+#~ msgid "Persistent Storage"
+#~ msgstr "Almacenamiento Persistente"
+
+#~ msgid "Unable to mount device"
+#~ msgstr "No se pudo montar el dispositivo"
+
+#~ msgid "Setting up OLPC boot file..."
+#~ msgstr "Configurando un archivo OLPC de arranque..."
+
+#~ msgid "Unknown ISO, skipping checksum verification"
+#~ msgstr "ISO desconocido, omitiendo la verificación de suma"
+
+#~ msgid ""
+#~ "\n"
+#~ "%dMB ISO + %dMB overlay > %dMB free space"
+#~ msgstr ""
+#~ "\n"
+#~ "%dMB ISO + %dMB overlay > %dMB espacio libre"
+
+#~ msgid "Creating"
+#~ msgstr "Creando"
+
+#~ msgid "persistent overlay"
+#~ msgstr "overlay persistente"
+
+#~ msgid "Resetting MBR..."
+#~ msgstr "Reseteando MBR..."
+
+#~ msgid "device"
+#~ msgstr "dispositivo"
+
+#~ msgid "Your MBR appears to be blank"
+#~ msgstr "Su MBR parece estar en blanco"
+
+#~ msgid "Wrote to device at"
+#~ msgstr "Se escribió al dispositivo en"
+
+#~ msgid "Verifying ISO MD5 checksum"
+#~ msgstr "Verificando la suma MD5 del ISO"
+
+#~ msgid "Unable to find partition"
+#~ msgstr "No se pudo encontrar la partición"
+
+#~ msgid "Installing bootloader"
+#~ msgstr "Instalando el gestor de arranque"
+
+#~ msgid "Cannot find"
+#~ msgstr "No se pudo encontrar"
diff --git a/po/et.po b/po/et.po
new file mode 100644
index 0000000..c40199a
--- /dev/null
+++ b/po/et.po
@@ -0,0 +1,260 @@
+# Estonian translation of liveusb-creator
+# Copyright (C) 2008 liveusb-creator
+# This file is distributed under the same license as the liveusb-creator package.
+#
+# Marek Laane <bald@smail.ee>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: liveusb-creator\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2010-05-27 15:32+0200\n"
+"Last-Translator: Marek Laane <bald@smail.ee>\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"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Estonian\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Tundmatu väljalase: %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "%s allalaadimine..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Failisüsteemi kontrollimine..."
+
+#: ../liveusb/gui.py:155
+msgid "Error: Cannot set the label or obtain the UUID of your device. Unable to continue."
+msgstr "Viga: Teie seadme nime määramine või UUID hankimine nurjus. Ei ole võimalik jätkata."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Live CD tõmmise SHA1 kontrollimine..."
+
+#: ../liveusb/gui.py:166
+msgid "Error: The SHA1 of your Live CD is invalid. You can run this program with the --noverify argument to bypass this verification check."
+msgstr "Viga: Teie Live CD SHA1 on vigane. Kontrolli vältimiseks võite käivitada programmi võtmega --noverify."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "Live-tõmmise lahtipakkimine USB-seadmele..."
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "%d MB püsiva ülekatte loomine..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "Alglaaduri seadistamine ja paigaldamine..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Valmis! (%s)"
+
+#: ../liveusb/gui.py:190
+#: ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "Live USB loomine nurjus!"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Püsiv salvestusala (%d MB)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"Teie seade juba sisaldab Live operatsioonisüsteemi.\n"
+"Jätkamise korral kirjutatakse see üle."
+
+#: ../liveusb/gui.py:337
+msgid "Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Hoiatus: uue püsiva ülekatte loomine kustutab olemasoleva ülekatte."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Kui soovite jätkata, vajutage uuesti 'Loo Live USB'."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "Olemasoleva Live operatsioonisüsteemi eemaldamine..."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "Allalaadimine on valmis!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "Allalaadimine nurjus: "
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Võite proovida allalaadimist taasalustada"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Live ISO valimine"
+
+#: ../liveusb/gui.py:399
+msgid "Sorry, I'm having trouble encoding the filename of your livecd. You may have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr "Vabandust, Teie Live CD failinime kodeeringuga tekkis probleem. Oleks ehk parem, kui liigutaksite oma ISO ketta juurkataloogi (nt. C:\\)."
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "ISO valitud: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Tekkis tõrge järgmise käsu käivitamisel: `%s`\n"
+"Põhjalikum vealogi kirjutati faili 'liveusb-creator.log'"
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "Seadmel pole piisavalt vaba ruumi."
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "%s MB püsiva ülekatte loomine"
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Varasema Live operatsioonisüsteemi eemaldamine nurjus: %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "Seadet %s ei leitud"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "Ühtegi USB-seadet ei leitud"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "%s failisüsteem on tundmatu!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "Seadme haakimine nurjus: %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "%s failisüsteem on tundmatu. Teie seade võib vajada ülevormindamist."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Toetamata failisüsteem: %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "ISO ei paista sisaldavat Live operatsioonisüsteemi"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "Ühtegi eemaldatavat seadet ei leitud"
+
+#: ../liveusb/creator.py:479
+msgid "Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr "Kontrollige, kas Teie USB-pulk on sisse pistetud ja vormindatud FAT-failisüsteemi"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Toetamata failisüsteem: %s\n"
+"Palun varundage oma USB-pulga andmed ja vormindage see FAT-failisüsteemi."
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid "Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file before running this program."
+msgstr "'%s' jäi leidmata. Kontrollige enne programmi käivitamist, kas olete ikka lahti pakkinud kogu liveusb-creatori zip-faili."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Fedora Live USB looja"
+
+#: ../liveusb/dialog.py:124
+msgid "This button will begin the LiveUSB creation process. This entails optionally downloading a release (if an existing one wasn't selected), extracting the ISO to the USB device, creating the persistent overlay, and installing the bootloader."
+msgstr "Selle nupuga saab alustada Live USB loomist. Sellega kaasneb vajaduse korral väljalaske allalaadimine (kui ei valita olemasolevat), ISO lahtipakkimine USB-seadmele, püsiva ülekatte loomine ja alglaaduri paigaldamine."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Loo Live USB"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "See on olekukonsool, kuhu kirjutatakse kõik teated."
+
+#: ../liveusb/dialog.py:127
+msgid "This is the progress bar that will indicate how far along in the LiveUSB creation process you are"
+msgstr "See on edenemisriba, mis näitab, kui kaugele on Live USB loomine jõudnud"
+
+#: ../liveusb/dialog.py:128
+msgid "If you do not select an existing Live CD, the selected release will be downloaded for you."
+msgstr "Kui Te ei vali olemasolevat Live CD-d, laaditakse alla valitud väljalase."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Fedora allalaadimine"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "või"
+
+#: ../liveusb/dialog.py:131
+msgid "This button allows you to browse for an existing Live CD ISO that you have previously downloaded. If you do not select one, a release will be downloaded for you automatically."
+msgstr "Selle nupuga saab sirvida faile ja leida Live CD ISO, mille olete varem alla laadinud. Kui te midagi ei vali, laaditakse väljalase Teie eest automaatselt alla."
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Olemasoleva Live CD kasutamine"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Sirvi"
+
+#: ../liveusb/dialog.py:135
+msgid "This is the USB stick that you want to install your Live CD on. This device must be formatted with the FAT filesystem."
+msgstr "See on USB-pulk, millele soovite oma Live CD paigutada. Seade peab olema vormindatud FAT-failisüsteemi."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Sihtseade"
+
+#: ../liveusb/dialog.py:137
+msgid "By allocating extra space on your USB stick for a persistent overlay, you will be able to store data and make permanent modifications to your live operating system. Without it, you will not be able to save data that will persist after a reboot."
+msgstr "USB-pulgal püsivale ülekattele lisaruumi eraldades on Teil võimalik oma Live operatsioonisüsteemis andmeid salvestada ja püsivaid muudatusi teha. Ilma selleta ei ole võimalik salvestada andmeid, mis elaksid üle taaskäivitamise. "
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Püsiv salvestusala (0 MB)"
+
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 0000000..5d00a3a
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,358 @@
+# Fedora French translation of liveusb-creator.
+# Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the liveusb-creator package.
+#
+# Michael Ughetto <telimektar1er@gmail.com>, 2008.
+# Pablo Martin-Gomez <pablo.martin-gomez@laposte.net>, 2008.
+# Charles-Antoine Couret, 2009.
+# Charles-Antoine Couret <cacouret@wanadoo.fr>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: liveusb-creator 2.7\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2009-04-11 18:16+0200\n"
+"Last-Translator: Charles-Antoine Couret\n"
+"Language-Team: French <kde-i18n-doc@kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n>1;\n"
+"X-Generator: Lokalize 0.3\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Version inconnue : %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "Téléchargement de %s..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Vérification du système de fichiers..."
+
+#: ../liveusb/gui.py:155
+msgid ""
+"Error: Cannot set the label or obtain the UUID of your device. Unable to "
+"continue."
+msgstr ""
+"Erreur : Impossible de configurer l'étiquette ou d'obtenir l'UUID du "
+"périphérique. Impossible de continuer."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Vérification du SHA1 de l'image du Live CD..."
+
+#: ../liveusb/gui.py:166
+msgid ""
+"Error: The SHA1 of your Live CD is invalid. You can run this program with "
+"the --noverify argument to bypass this verification check."
+msgstr ""
+"Erreur : le SHA1 de votre Live CD est invalide. Vous pouvez exécuter ce "
+"programme avec l'option --noverify pour éviter cette vérification."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "Extraction de l'image live vers le périphérique USB..."
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "Création de %d Mo de surcouche permanente..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "Installation et configuration du chargeur de démarrage..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Terminé ! (%s)"
+
+#: ../liveusb/gui.py:190 ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "Échec lors de la création du Live USB !"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Stockage permanent (%d Mo)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"Votre périphérique contient déjà un système d'exploitation live.\n"
+"Si vous continuez, il sera écrasé."
+
+#: ../liveusb/gui.py:337
+msgid ""
+"Warning: Creating a new persistent overlay will delete your existing one."
+msgstr ""
+"Attention : la création d'une nouvelle surcouche permanente effacera celle "
+"existante."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Appuyez sur « Créez le Live USB » si vous voulez continuer."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "Suppression du système d'exploitation live existant..."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "Téléchargement terminé."
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "Échec du téléchargement :"
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Vous pouvez essayer à nouveau pour reprendre votre téléchargement"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Sélectionnez l'ISO live"
+
+#: ../liveusb/gui.py:399
+msgid ""
+"Sorry, I'm having trouble encoding the filename of your livecd. You may "
+"have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr ""
+"Désolé, j'éprouve des difficultés à coder le nom de fichier de votre Live "
+"CD. Vous devriez avoir plus de chance en déplacant l'ISO à la racine de "
+"votre disque (par exemple : C:\\)"
+
+#: ../liveusb/gui.py:404, python-format
+msgid "ISO selected: %s"
+msgstr "ISO sélectionné : %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Un problème est survenu lors de l'exécution de la commande suivante : « %s »\n"
+"Un journal d'erreur plus détaillé a été écrit dans le fichier « liveusb-"
+"creator.log »"
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "Espace libre insuffisant sur le périphérique."
+
+#: ../liveusb/creator.py:190, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "Création de %s Mo de surcouche permanente"
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Impossible d'enlever le système d'exploitation live précédent : %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "Impossible de trouver le périphérique %s"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "Impossible de trouver un lecteur USB"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "Système de fichiers pour %s inconnu."
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "Impossible de monter le périphérique : %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr ""
+"Système de fichiers inconnu pour %s. Votre périphérique doit être reformaté."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Système de fichiers non pris en charge : %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "Impossible de trouver un système d'exploitation live sur l'ISO"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "Impossible de trouver un périphérique amovible"
+
+#: ../liveusb/creator.py:479
+msgid ""
+"Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr ""
+"Assurez-vous que votre clé USB est branchée et qu'elle est formatée avec le "
+"système de fichiers FAT"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Système de fichiers non pris en charge : %s\n"
+"Veuillez sauvegarder le contenu de votre clé USB et la formater avec le "
+"système de fichiers FAT."
+
+#: ../liveusb/creator.py:558, python-format
+msgid ""
+"Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file "
+"before running this program."
+msgstr ""
+"Impossible de trouver « %s ». Assurez-vous d'extraire complètement l'archive"
+"zip de liveusb-creator avant d'exécuter ce programme."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Créateur de Live USB Fedora"
+
+#: ../liveusb/dialog.py:124
+msgid ""
+"This button will begin the LiveUSB creation process. This entails "
+"optionally downloading a release (if an existing one wasn't selected), "
+"extracting the ISO to the USB device, creating the persistent overlay, and "
+"installing the bootloader."
+msgstr ""
+"Ce bouton lancera le processus de création du Live USB. Cela implique le "
+"téléchargement optionnel d'une version (si aucune existante n'a été "
+"sélectionnée), l'extraction de l'ISO vers le périphérique USB, la création "
+"d'une surcouche permanente, et l'installation du chargeur de démarrage."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Créer le Live USB"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Il s'agit de la console d'état, où tous les messages sont écrits."
+
+#: ../liveusb/dialog.py:127
+msgid ""
+"This is the progress bar that will indicate how far along in the LiveUSB "
+"creation process you are"
+msgstr ""
+"Il s'agit de la barre de progression qui vous indiquera votre progression "
+"dans le processus de création du Live USB."
+
+#: ../liveusb/dialog.py:128
+msgid ""
+"If you do not select an existing Live CD, the selected release will be "
+"downloaded for you."
+msgstr ""
+"Si vous ne choisissez pas un Live CD existant, la version sélectionnée sera "
+"téléchargée pour vous."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Télécharger Fedora"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "ou"
+
+#: ../liveusb/dialog.py:131
+msgid ""
+"This button allows you to browse for an existing Live CD ISO that you have "
+"previously downloaded. If you do not select one, a release will be "
+"downloaded for you automatically."
+msgstr ""
+"Ce bouton vous permet de naviguer jusqu'à une ISO de Live CD que avez "
+"téléchargé précédemment. Si vous n'en sélectionnez aucune, une version sera "
+"automatiquement téléchargée pour vous."
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Utiliser un Live CD existant"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Naviguer"
+
+#: ../liveusb/dialog.py:135
+msgid ""
+"This is the USB stick that you want to install your Live CD on. This device "
+"must be formatted with the FAT filesystem."
+msgstr ""
+"Il s'agit de la clé USB sur laquelle vous allez installer le Live CD. Ce "
+"périphérique doit être formaté avec le système de fichiers FAT."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Périphérique cible"
+
+#: ../liveusb/dialog.py:137
+msgid ""
+"By allocating extra space on your USB stick for a persistent overlay, you "
+"will be able to store data and make permanent modifications to your live "
+"operating system. Without it, you will not be able to save data that will "
+"persist after a reboot."
+msgstr ""
+"En allouant de l'espace supplémentaire sur votre clé USB pour une surcouche "
+"permanente, vous pourrez stocker des fichiers et faire des modifications "
+"permanentes sur votre système d'exploitation live. Sans cela, vous ne "
+"pourrez pas enregistrer de données pour qu'elles soient disponibles après un "
+"redémarrage."
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Stockage persistant (0 Mo)"
+
+#~ msgid "You must run this application as root"
+#~ msgstr "Vous devez exécuter cette application en tant que superutilisateur"
+
+#~ msgid "Persistent Storage"
+#~ msgstr "Stockage persistant"
+
+#~ msgid "Setting up OLPC boot file..."
+#~ msgstr "Configuration du fichier d'amorçage de l'OLPC..."
+
+#~ msgid "Unknown ISO, skipping checksum verification"
+#~ msgstr "ISO inconnue, omission de la vérification de la somme de contrôle"
+
+#~ msgid ""
+#~ "\n"
+#~ "%dMB ISO + %dMB overlay > %dMB free space"
+#~ msgstr ""
+#~ "\n"
+#~ "ISO %d Mo + surcouche %d Mo > espace libre %d Mo"
+
+#~ msgid "Creating"
+#~ msgstr "Création"
+
+#~ msgid "persistent overlay"
+#~ msgstr "surcouche permanente"
+
+#~ msgid "device"
+#~ msgstr "périphérique"
+
+#~ msgid "Wrote to device at"
+#~ msgstr "Écriture du périphérique à "
+
+#~ msgid "Verifying ISO MD5 checksum"
+#~ msgstr "Vérification de la somme de contrôle MD5 de l'ISO"
+
+#~ msgid "Installing bootloader"
+#~ msgstr "Installation du chargeur de démarrage"
+
+#~ msgid "Cannot find"
+#~ msgstr "Impossible de trouver "
diff --git a/po/gr.po b/po/gr.po
new file mode 100644
index 0000000..4bf2dcf
--- /dev/null
+++ b/po/gr.po
@@ -0,0 +1,269 @@
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the liveusb-creator package.
+# Pierros Papadeas <ppapadeas@gmail.com> 2009.
+#
+# Nikos Charonitakis <nikosx@gmail.com>, 2008.
+# Glentadakis Dimitrios <dglent@gmail.com>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: el\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2010-05-29 08:32+0200\n"
+"Last-Translator: Glentadakis Dimitrios <dglent@gmail.com>\n"
+"Language-Team: Greek <translators_team@mandrivalinux.gr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Άγνωστη έκδοση: %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "Γίνεται λήψη %s..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Επιβεβαίωση του συστήματος αρχείων..."
+
+#: ../liveusb/gui.py:155
+msgid "Error: Cannot set the label or obtain the UUID of your device. Unable to continue."
+msgstr "Σφάλμα: Δεν ήταν δυνατό να καθοριστεί η ετικέτα ή η ανάκτηση του UUID της συσκευής σας. Η συνέχεια είναι αδύνατη."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Επιβεβαίωση SHA1 της εικόνας του LiveCD..."
+
+#: ../liveusb/gui.py:166
+msgid "Error: The SHA1 of your Live CD is invalid. You can run this program with the --noverify argument to bypass this verification check."
+msgstr "Σφάλμα: Το SHA1 του Live CD είναι άκυρο. Μπορείτε να εκτελέσετε αυτό το πρόγραμμα με το όρισμα --noverify ώστε να παρακάμψετε τον έλεγχο."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "Εξαγωγή της live εικόνας στην συσκευή USB..."
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "Δημιουργία %d Mb μόνιμου χώρου..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "Ρύθμιση και εγκατάσταση εκκινητή..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Ολοκληρώθηκε! (%s)"
+
+#: ../liveusb/gui.py:190
+#: ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "Η δημιουργία του LiveUSB απέτυχε!"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Μόνιμη Μνήμη (%d Mb)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"Η συσκευή σας διαθέτει ήδη ένα LiveOS.\n"
+"Αν συνεχίσετε, αυτό θα αντικατασταθεί."
+
+#: ../liveusb/gui.py:337
+msgid "Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Προσοχή: Η δημιουργία μόνιμου χώρου θα διαγράψει τον ήδη υπάρχοντα."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Πατήστε «Δημιουργία Live USB» ξανά αν επιθυμείτε να συνεχίσετε."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "Αφαίρεση υπάρχοντος Live OS..."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "Η λήψη ολοκληρώθηκε!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "Η λήψη απέτυχε:"
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Μπορείτε να δοκιμάσετε να ξαναξεκινήσετε την λήψη σας"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Επιλέξτε Live ISO"
+
+#: ../liveusb/gui.py:399
+msgid "Sorry, I'm having trouble encoding the filename of your livecd. You may have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr "Λυπάμαι, έχω πρόβλημα στην κωδικοποίηση του ονόματος αρχείου του livecd. Ίσως να έχετε καλύτερη τύχη αν μετακινήσετε το ISO στην ρίζα του οδηγού σας (πχ: C:\\)"
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "Επιλεγμένο ISO: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Υπήρξε ένα πρόβλημα με την εκτέλεση της ακόλουθης εντολής: `%s`\n"
+"Μια λεπτομερής καταγραφή του σφάλματος δημιουργήθηκε στο «liveusb-creator.log»"
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "Δεν υπάρχει αρκετός διαθέσιμος χώρος στη συσκευή."
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "Δημιουργία %sΜΒ μόνιμης μνήμης"
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Αδυναμία αφαίρεσης προηγούμενου Live OS: %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "Αδυναμία εύρεσης συσκευής %s"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "Αδυναμία εύρεσης κάποιου USB δίσκου"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "Το σύστημα αρχείων του %s είναι άγνωστο!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "Αδυναμία προσάρτησης συσκευής: %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "Άγνωστο σύστημα αρχείων για το %s. Η συσκευή σας ίσως χρειάζεται να μορφοποιηθεί."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Μη υποστηριζόμενο σύστημα αρχείων: %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "Αδυναμία εύρεσης του LiveOS στο ISO"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "Αδυναμία εύρεσης αφαιρούμενων συσκευών"
+
+#: ../liveusb/creator.py:479
+msgid "Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr "Σιγουρευτείτε ότι το USB stick σας είναι συνδεδεμένο και διαμορφωμένο σε σύστημα αρχείων FAT"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Μη υποστηριζόμενο σύστημα αρχείων: %s\n"
+"Παρακαλώ πάρτε αντίγραφα ασφαλείας και μορφοποιήστε το USB stick σας σε σύστημα αρχείων FAT."
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid "Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file before running this program."
+msgstr "Αδύνατη η εύρεση του '%s'. Σιγουρευτείτε ότι έχετε εξάγει ολόκληρο το αρχείο zip liveusb-creator πριν εκτελέσετε αυτό το πρόγραμμα."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Δημιουργός LiveUSB Fedora"
+
+#: ../liveusb/dialog.py:124
+msgid "This button will begin the LiveUSB creation process. This entails optionally downloading a release (if an existing one wasn't selected), extracting the ISO to the USB device, creating the persistent overlay, and installing the bootloader."
+msgstr ""
+"Αυτό το κουμπί θα ξεκινήσει την διεργασία δημιουργίας του LiveUSB. Αυτό περιλαμβάνει την προαιρετική λήψη μιας έκδοσης (αν δεν είχε επιλεχτεί μια υπάρχουσα), την εξαγωγή του ISO στην συσκευή USB, την δημιουργία μιας διαρκείς επικάλυψης, και την "
+"εγκατάσταση του προγράμματος εκκίνησης."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Δημιουργία Live USB"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Αυτή είναι η κονσόλα κατάστασης, όπου γράφονται όλα τα μηνύματα."
+
+#: ../liveusb/dialog.py:127
+msgid "This is the progress bar that will indicate how far along in the LiveUSB creation process you are"
+msgstr "Αυτή είναι η γραμμή προόδου που θα σας δείχνει σε ποιο σημείο της δημιουργίας του LiveUSB βρισκόσαστε."
+
+#: ../liveusb/dialog.py:128
+msgid "If you do not select an existing Live CD, the selected release will be downloaded for you."
+msgstr "Αν δεν επιλέξετε ένα υπάρχον Live CD, θα γίνει λήψη της επιλεγμένης έκδοσης."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Λήψη Fedora"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "ή"
+
+#: ../liveusb/dialog.py:131
+msgid "This button allows you to browse for an existing Live CD ISO that you have previously downloaded. If you do not select one, a release will be downloaded for you automatically."
+msgstr "Αυτό το κουμπί επιτρέπει την αναζήτηση για ένα υπάρχον Live CD ISO που έχετε κάνει λήψη νωρίτερα. Αν δεν επιλέξετε κάποιο, θα γίνει η λήψη μιας έκδοσης αυτόματα."
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Χρήση υπάρχοντος Live CD"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Περιήγηση"
+
+#: ../liveusb/dialog.py:135
+msgid "This is the USB stick that you want to install your Live CD on. This device must be formatted with the FAT filesystem."
+msgstr "Αυτό είναι το USB stick στο οποίο θέλετε να εγκαταστήσετε το Live CD. Αυτή η συσκευή πρέπει να διαμορφωθεί σε FAT σύστημα αρχείων."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Συσκευή προορισμού"
+
+#: ../liveusb/dialog.py:137
+msgid "By allocating extra space on your USB stick for a persistent overlay, you will be able to store data and make permanent modifications to your live operating system. Without it, you will not be able to save data that will persist after a reboot."
+msgstr ""
+"Με την ανάθεση επιπλέον χώρου στο USB stick για μια διαρκής επικάλυψη, θα έχετε την δυνατότητα αποθήκευσης δεδομένων και μόνιμες τροποποιήσεις στο live λειτουργικό σας σύστημα. Χωρίς αυτό, δεν θα μπορείτε να αποθηκεύετε δεδομένα τα οποία θα "
+"παραμένουν μετά από επανεκκίνηση."
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Μόνιμη Μνήμη (0 Mb)"
+
+#~ msgid "device"
+#~ msgstr "συσκευή"
+#~ msgid "Cannot find"
+#~ msgstr "Αδυναμία εύρεσης"
+
diff --git a/po/hu.po b/po/hu.po
new file mode 100644
index 0000000..54b5429
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,310 @@
+# Translation of liveusb-creator.
+# Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Sulyok Péter <peti@fedoraproject.org>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: liveusb-creator master\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2009-04-13 08:55+0200\n"
+"Last-Translator: Sulyok Péter <peti@fedoraproject.org>\n"
+"Language-Team: Hungarian <fedora-trans-hu@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Ismeretlen kiadás: %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "%s letöltése…"
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Fájlrendszer ellenőrzése…"
+
+#: ../liveusb/gui.py:155
+msgid ""
+"Error: Cannot set the label or obtain the UUID of your device. Unable to "
+"continue."
+msgstr ""
+"Hiba: Nem lehet címkét beállítani, vagy az eszköz UUID-jét lekérni. "
+"Nem lehet folytatni."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Élő CD kép SHA1 ellenőrzése…"
+
+#: ../liveusb/gui.py:166
+msgid ""
+"Error: The SHA1 of your Live CD is invalid. You can run this program with "
+"the --noverify argument to bypass this verification check."
+msgstr ""
+"Hiba: Az élő CD kép SHA1 ellenőrzése sikertelen. E programot a "
+"--noverify·argumentummal futtatva mellőzheti ezt az ellenőrzést."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "Élő kép kibontása az USB eszközre…"
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "%d Mb állandó átfedés teremtése…"
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "Rendszerbetöltő telepítése és beállítása"
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Kész! (%s)"
+
+#: ../liveusb/gui.py:190 ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "Elbuktuk az élő USB megteremtését!"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Állandó tárhely (%d Mb)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"Az eszköz már tartalmaz élő rendszert.\n"
+"Ha folytatja, azt felülírom."
+
+#: ../liveusb/gui.py:337
+msgid ""
+"Warning: Creating a new persistent overlay will delete your existing one."
+msgstr ""
+"Figyelmeztetés: Új állandó átfedés teremtése törli a meglévőt."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Nyomjon „Élő USB teremtése”-t ismét, ha folytatni kívánja."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "Meglévő élő rendszer eltávolítása…"
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "Letöltés kész!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "Elbuktuk a letöltést: "
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Megpróbálhatja újra letölteni"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Válasszon élő ISO-t"
+
+#: ../liveusb/gui.py:399
+msgid ""
+"Sorry, I'm having trouble encoding the filename of your livecd. You may "
+"have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr ""
+"Sajnálom, baj van az élő CD fájl nevének kódolásával. Talán több "
+"szerencséje lesz, ha az ISO-t átmozgatja a lemez gyökerébe (azaz: C:\\)"
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "Kiválasztott ISO: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Baj van a következő parancs végrehajtásával: „%s”\n"
+"Részletesebb hiba naplót írtam a „liveusb-creator.log”-ba."
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "Nincs elég szabad hely az eszközben."
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "%s MB állandó átfedés teremtése"
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Nem lehet eltávolítani az előző élő rendszert: %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "%s eszköz nem található"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "Nem találok USB eszközt"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "%s fájlrendszere ismeretlen!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "Nem lehet eszközt becsatolni: %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "%s fájlrendszere ismeretlen. Talán újat kellene kialakítani rajta."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Támogatatlan fájlrendszer: %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "Nem található élő rendszer az ISO-ban"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "Nem található cserélhető eszköz"
+
+#: ../liveusb/creator.py:479
+msgid ""
+"Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr ""
+"Győződjön meg arról, hogy az USB eszközt bedugta, és abban FAT fájlrendszert alakítottak ki"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Támogatatlan fájlrendszer: %s\n"
+"Kérem mentse el az adatait, majd alakítson ki az USB eszközében FAT fájlrendszert."
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid ""
+"Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file "
+"before running this program."
+msgstr ""
+"„%s” nem található. Győződjön meg arról, hogy a teljes liveusb-creator.zip "
+"fájlt kifejtette, mielőtt futtatja e programot."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Fedora Élő USB Teremtő"
+
+#: ../liveusb/dialog.py:124
+msgid ""
+"This button will begin the LiveUSB creation process. This entails "
+"optionally downloading a release (if an existing one wasn't selected), "
+"extracting the ISO to the USB device, creating the persistent overlay, and "
+"installing the bootloader."
+msgstr ""
+"Ez a gomb indítja az élő USB teremtés folyamatát. Ebbe értendő "
+"egy kiadás letöltésének lehetősége (ha nem egy már meglévőt választ), "
+"az ISO kifejtése az USB eszközre, állandó átfedés teremtése és "
+"a rendszerindító telepítése."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Élő USB teremtése"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Ez az állapot kijelző, ahol minden üzenet megjelenik."
+
+#: ../liveusb/dialog.py:127
+msgid ""
+"This is the progress bar that will indicate how far along in the LiveUSB "
+"creation process you are"
+msgstr ""
+"Ez a haladás csík, ami mutatja, hogy hol tart az élő USB teremtésének "
+"folyamata"
+
+#: ../liveusb/dialog.py:128
+msgid ""
+"If you do not select an existing Live CD, the selected release will be "
+"downloaded for you."
+msgstr ""
+"Ha nem választ meglévő élő CD-t, akkor letöltöm a kiválasztott kiadást."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Fedora letöltése"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "vagy"
+
+#: ../liveusb/dialog.py:131
+msgid ""
+"This button allows you to browse for an existing Live CD ISO that you have "
+"previously downloaded. If you do not select one, a release will be "
+"downloaded for you automatically."
+msgstr ""
+"E gombbal böngészheti a már meglévő élő CD ISO-kat, amiket már "
+"korábban letöltött. Ha nem választ egyet, akkor önműködően "
+"letöltök egy kiadást."
+""
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Meglévő élő CD használata"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Böngészés"
+
+#: ../liveusb/dialog.py:135
+msgid ""
+"This is the USB stick that you want to install your Live CD on. This device "
+"must be formatted with the FAT filesystem."
+msgstr ""
+"Ez az USB dugó az, amibe telepíteni akarja az élő CD-t. Ebben az "
+"eszközben FAT fájlrendszernek kell lennie."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Cél eszköz"
+
+#: ../liveusb/dialog.py:137
+msgid ""
+"By allocating extra space on your USB stick for a persistent overlay, you "
+"will be able to store data and make permanent modifications to your live "
+"operating system. Without it, you will not be able to save data that will "
+"persist after a reboot."
+msgstr ""
+"Többlet hely foglalásával egy állandó átfedésnek az USB eszközben ön "
+"képes lesz adatokat tárolni és állandó változásokat eszközölni az élő "
+"operációs rendszerben. Enélkül nem lehet újraindítást túlélő adatokat "
+"menteni."
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Állandó tárhely (0 Mb)"
+
diff --git a/po/it.po b/po/it.po
new file mode 100644
index 0000000..ddd8eac
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,268 @@
+# translation of it.po to Italian
+# Italian translation of liveusb-creator.
+# Copyright (C) 2009 THE liveusb-creator'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the liveusb-creator package.
+#
+#
+# Daniele Catanesi <translate@ccielogs.com>, 2009.
+# mario_santagiuliana <mario@marionline.it>, 2009.
+# Francesco Tombolini <tombo@adamantio.net>, 2009.
+# Andrea Celli <andrea.celli@libero.it>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: it\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2010-05-26 19:53+0200\n"
+"Last-Translator: Andrea Celli <andrea.celli@libero.it>\n"
+"Language-Team: Italian <kde-i18n-it@kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: KBabel 1.11.4\n"
+"X-Poedit-Language: Italian\n"
+"X-Poedit-Country: ITALY\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Release sconosciuta: %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "Download di %s ..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Verifica del filesystem ..."
+
+#: ../liveusb/gui.py:155
+msgid "Error: Cannot set the label or obtain the UUID of your device. Unable to continue."
+msgstr "Errore: Impossibile impostare l'etichetta od ottenere l'UUID del dispositivo. Non si può continuare."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Verifica firma SHA1 dell'immagine LiveCD..."
+
+#: ../liveusb/gui.py:166
+msgid "Error: The SHA1 of your Live CD is invalid. You can run this program with the --noverify argument to bypass this verification check."
+msgstr "Errore: Lo SHA1 del Live CD non è valido. È possibile eseguire il programma con l'opzione --noverify per evitare la verifica."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "Estrazione immagine live dal dispositivo USB..."
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "Creazione overlay persistente %d Mb..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "Configurazione ed installazione del bootloader..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Completato! (%s)"
+
+#: ../liveusb/gui.py:190
+#: ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "LiveUSB creazione fallita!"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Memorizzazione persistente (%d Mb)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"Il dispositivo contiene già un LiveOS. \n"
+"Se si continua il contenuto del dispositivo verrà sovrascritto."
+
+#: ../liveusb/gui.py:337
+msgid "Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Attenzione : La creazione di un overlay permanente eliminerà quello già esistente."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Premi nuovamente \"Crea Live USB\" se vuoi continuare."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "Rimozione del Live OS esistente..."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "Download completo!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "Download fallito: "
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Puoi tentare di ripristinare il download"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Seleziona Live ISO"
+
+#: ../liveusb/gui.py:399
+msgid "Sorry, I'm having trouble encoding the filename of your livecd. You may have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr "Ci sono problemi nell'encoding del nome file del live cd. Spostare il file ISO nella root del disco rigido (cioè C:\\) potrebbe risolvere il problema."
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "ISO selezionata: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Si è verificato un problema eseguendo il comando: '%s'\n"
+"Un log più dettagliato è stato scritto in \"liveusb-creator.log\""
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "Spazio libero sul dispositivo insufficiente."
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "Creazione overlay persistente di %s MB"
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Impossibile rimuovere il precedente LiveOS: %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "Impossibile trovare il dispositivo %s"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "Impossibile trovare alcun drive USB"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "Filesystem per %s sconosciuto!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "Impossibile montare il dispositivo %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "File system sconosciuto per %s Potrebbe essere necessario riformattare il dispositivo."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Filesystem non supportato: %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "Impossibile trovare un LiveOS nell'immagine ISO"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "Impossibile trovare alcun dispositivo rimovibile"
+
+#: ../liveusb/creator.py:479
+msgid "Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr "Assicurarsi che la chiave USB sia collegata e formattata con filesystem FAT"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Filesystem non supportato: %s\n"
+"Esegui un backup e formatta la chiave USB con il filesystem FAT."
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid "Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file before running this program."
+msgstr ""
+"Impossibile trovare '%s'. Assicurarsi di aver estratto tutto il "
+"file zip di liveusb-creator prima di eseguire questo programma."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Fedora LiveUSB Creator"
+
+#: ../liveusb/dialog.py:124
+msgid "This button will begin the LiveUSB creation process. This entails optionally downloading a release (if an existing one wasn't selected), extracting the ISO to the USB device, creating the persistent overlay, and installing the bootloader."
+msgstr "Questo pulsante avvierà il processo di creazione di LiveUSB. Questo implica il download opzionale di una distribuzione (se non ne è stata selezionata una), l'estrazione del file ISO nella chiave USB, la creazione di un overlay persistente e l'installazione del bootloader."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Creare Live USB"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Questa è la console di stato, dove verranno scritti tutti i messaggi."
+
+#: ../liveusb/dialog.py:127
+msgid "This is the progress bar that will indicate how far along in the LiveUSB creation process you are"
+msgstr "Questa è la barra di progresso che indica a che punto del processo di creazione di LiveUSB si è arrivati"
+
+#: ../liveusb/dialog.py:128
+msgid "If you do not select an existing Live CD, the selected release will be downloaded for you."
+msgstr "Se non viene selezionato un Live CD esistente, la distribuzione selezionata verrà scaricata automaticamente."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Download di Fedora"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "o"
+
+#: ../liveusb/dialog.py:131
+msgid "This button allows you to browse for an existing Live CD ISO that you have previously downloaded. If you do not select one, a release will be downloaded for you automatically."
+msgstr "Questo pulsante permette di sfogliare l'immagine di un Live CD esistente precedentemente scaricato. Se non ne viene selezionata una verrà scaricata automaticamente una distribuzione."
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Utilizzare un Live CD esistente"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Sfogliare"
+
+#: ../liveusb/dialog.py:135
+msgid "This is the USB stick that you want to install your Live CD on. This device must be formatted with the FAT filesystem."
+msgstr "Questa è la chiave USB sulla quale si vuole installare il Live CD. Questo dispositivo deve essere formattato con il filesystem FAT"
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Dispositivo di destinazione"
+
+#: ../liveusb/dialog.py:137
+msgid "By allocating extra space on your USB stick for a persistent overlay, you will be able to store data and make permanent modifications to your live operating system. Without it, you will not be able to save data that will persist after a reboot."
+msgstr "Allocando spazio extra sulla chiavetta USB per un overlay persistente sarà possibile memorizzare dati ed apportare modifiche permanenti al sistema operativo live. Senza non sarò più possibile salvare dati che permangano dopo il riavvio del sistema."
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Memorizzazione persistente (0Mb)"
+
diff --git a/po/liveusb-creator.pot b/po/liveusb-creator.pot
new file mode 100644
index 0000000..e8bc6ad
--- /dev/null
+++ b/po/liveusb-creator.pot
@@ -0,0 +1,277 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr ""
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr ""
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr ""
+
+#: ../liveusb/gui.py:155
+msgid ""
+"Error: Cannot set the label or obtain the UUID of your device. Unable to "
+"continue."
+msgstr ""
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr ""
+
+#: ../liveusb/gui.py:166
+msgid ""
+"Error: The SHA1 of your Live CD is invalid. You can run this program with "
+"the --noverify argument to bypass this verification check."
+msgstr ""
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr ""
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr ""
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr ""
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr ""
+
+#: ../liveusb/gui.py:190 ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr ""
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr ""
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+
+#: ../liveusb/gui.py:337
+msgid ""
+"Warning: Creating a new persistent overlay will delete your existing one."
+msgstr ""
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr ""
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr ""
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr ""
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr ""
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr ""
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr ""
+
+#: ../liveusb/gui.py:399
+msgid ""
+"Sorry, I'm having trouble encoding the filename of your livecd. You may "
+"have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr ""
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr ""
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr ""
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr ""
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr ""
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr ""
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr ""
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr ""
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr ""
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr ""
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr ""
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr ""
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr ""
+
+#: ../liveusb/creator.py:479
+msgid ""
+"Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr ""
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid ""
+"Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file "
+"before running this program."
+msgstr ""
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr ""
+
+#: ../liveusb/dialog.py:124
+msgid ""
+"This button will begin the LiveUSB creation process. This entails "
+"optionally downloading a release (if an existing one wasn't selected), "
+"extracting the ISO to the USB device, creating the persistent overlay, and "
+"installing the bootloader."
+msgstr ""
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr ""
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr ""
+
+#: ../liveusb/dialog.py:127
+msgid ""
+"This is the progress bar that will indicate how far along in the LiveUSB "
+"creation process you are"
+msgstr ""
+
+#: ../liveusb/dialog.py:128
+msgid ""
+"If you do not select an existing Live CD, the selected release will be "
+"downloaded for you."
+msgstr ""
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr ""
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr ""
+
+#: ../liveusb/dialog.py:131
+msgid ""
+"This button allows you to browse for an existing Live CD ISO that you have "
+"previously downloaded. If you do not select one, a release will be "
+"downloaded for you automatically."
+msgstr ""
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr ""
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr ""
+
+#: ../liveusb/dialog.py:135
+msgid ""
+"This is the USB stick that you want to install your Live CD on. This device "
+"must be formatted with the FAT filesystem."
+msgstr ""
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr ""
+
+#: ../liveusb/dialog.py:137
+msgid ""
+"By allocating extra space on your USB stick for a persistent overlay, you "
+"will be able to store data and make permanent modifications to your live "
+"operating system. Without it, you will not be able to save data that will "
+"persist after a reboot."
+msgstr ""
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr ""
diff --git a/po/mki18n.py b/po/mki18n.py
new file mode 100644
index 0000000..2cee12d
--- /dev/null
+++ b/po/mki18n.py
@@ -0,0 +1,453 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+#
+# PYTHON MODULE: MKI18N.PY
+# =========
+#
+# Abstract: Make Internationalization (i18n) files for an application.
+#
+# Copyright Pierre Rouleau. 2003. Released to public domain.
+#
+# Last update: Saturday, November 8, 2003. @ 15:55:18.
+#
+# File: ROUP2003N01::C:/dev/python/mki18n.py
+#
+# RCS $Header: //software/official/MKS/MKS_SI/TV_NT/dev/Python/rcs/mki18n.py 1.5 2003/11/05 19:40:04 PRouleau Exp $
+#
+# Update history:
+#
+# - File created: Saturday, June 7, 2003. by Pierre Rouleau
+# - 10/06/03 rcs : RCS Revision 1.1 2003/06/10 10:06:12 PRouleau
+# - 10/06/03 rcs : RCS Initial revision
+# - 23/08/03 rcs : RCS Revision 1.2 2003/06/10 10:54:27 PRouleau
+# - 23/08/03 P.R.: [code:fix] : The strings encoded in this file are encode in iso-8859-1 format. Added the encoding
+# notification to Python to comply with Python's 2.3 PEP 263.
+# - 23/08/03 P.R.: [feature:new] : Added the '-e' switch which is used to force the creation of the empty English .mo file.
+# - 22/10/03 P.R.: [code] : incorporated utility functions in here to make script self sufficient.
+# - 05/11/03 rcs : RCS Revision 1.4 2003/10/22 06:39:31 PRouleau
+# - 05/11/03 P.R.: [code:fix] : included the unixpath() in this file.
+# - 08/11/03 rcs : RCS Revision 1.5 2003/11/05 19:40:04 PRouleau
+#
+# RCS $Log: $
+#
+#
+# -----------------------------------------------------------------------------
+"""
+mki18n allows you to internationalize your software. You can use it to
+create the GNU .po files (Portable Object) and the compiled .mo files
+(Machine Object).
+
+mki18n module can be used from the command line or from within a script (see
+the Usage at the end of this page).
+
+ Table of Contents
+ -----------------
+
+ makePO() -- Build the Portable Object file for the application --
+ catPO() -- Concatenate one or several PO files with the application domain files. --
+ makeMO() -- Compile the Portable Object files into the Machine Object stored in the right location. --
+ printUsage -- Displays how to use this script from the command line --
+
+ Scriptexecution -- Runs when invoked from the command line --
+
+
+NOTE: this module uses GNU gettext utilities.
+
+You can get the gettext tools from the following sites:
+
+ - `GNU FTP site for gettetx`_ where several versions (0.10.40, 0.11.2, 0.11.5 and 0.12.1) are available.
+ Note that you need to use `GNU libiconv`_ to use this. Get it from the `GNU
+ libiconv ftp site`_ and get version 1.9.1 or later. Get the Windows .ZIP
+ files and install the packages inside c:/gnu. All binaries will be stored
+ inside c:/gnu/bin. Just put c:/gnu/bin inside your PATH. You will need
+ the following files:
+
+ - `gettext-runtime-0.12.1.bin.woe32.zip`_
+ - `gettext-tools-0.12.1.bin.woe32.zip`_
+ - `libiconv-1.9.1.bin.woe32.zip`_
+
+
+.. _GNU libiconv: http://www.gnu.org/software/libiconv/
+.. _GNU libiconv ftp site: http://www.ibiblio.org/pub/gnu/libiconv/
+.. _gettext-runtime-0.12.1.bin.woe32.zip: ftp://ftp.gnu.org/gnu/gettext/gettext-runtime-0.12.1.bin.woe32.zip
+.. _gettext-tools-0.12.1.bin.woe32.zip: ftp://ftp.gnu.org/gnu/gettext/gettext-tools-0.12.1.bin.woe32.zip
+.. _libiconv-1.9.1.bin.woe32.zip: http://www.ibiblio.org/pub/gnu/libiconv/libiconv-1.9.1.bin.woe32.zip
+
+"""
+# -----------------------------------------------------------------------------
+# Module Import
+# -------------
+#
+import os
+import sys
+
+
+# Instead of scraping the wx module for language names, lets just use whatever po
+# files are in the current directory. Transifex takes care of putting new languages
+# there for us already.
+# def getlanguageDict():
+# import wx
+# languageDict = {}
+#
+# for lang in [x for x in dir(wx) if x.startswith("LANGUAGE")]:
+# i = wx.Locale(wx.LANGUAGE_DEFAULT).GetLanguageInfo(getattr(wx, lang))
+# if i:
+# languageDict[i.CanonicalName] = i.Description
+#
+# return languageDict
+
+def getlanguageDict():
+ #return dict([(lang, None) for lang in LANGUAGES])
+ # lang.po from our current directory!
+ return dict([(lang, None) for lang in ['.'.join(po.split('.')[:-1]) for po in os.listdir('.') if po.endswith('.po')]])
+
+# -----------------------------------------------------------------------------
+# m a k e P O ( ) -- Build the Portable Object file for the application --
+# ^^^^^^^^^^^^^^^
+#
+def makePO(applicationDirectoryPath, applicationDomain=None, verbose=0) :
+ """Build the Portable Object Template file for the application.
+
+ makePO builds the .pot file for the application stored inside
+ a specified directory by running xgettext for all application source
+ files. It finds the name of all files by looking for a file called 'app.fil'.
+ If this file does not exists, makePo raises an IOError exception.
+ By default the application domain (the application
+ name) is the same as the directory name but it can be overridden by the
+ 'applicationDomain' argument.
+
+ makePO always creates a new file called messages.pot. If it finds files
+ of the form app_xx.po where 'app' is the application name and 'xx' is one
+ of the ISO 639 two-letter language codes, makePO resynchronizes those
+ files with the latest extracted strings (now contained in messages.pot).
+ This process updates all line location number in the language-specific
+ .po files and may also create new entries for translation (or comment out
+ some). The .po file is not changed, instead a new file is created with
+ the .new extension appended to the name of the .po file.
+
+ By default the function does not display what it is doing. Set the
+ verbose argument to 1 to force it to print its commands.
+ """
+
+ if applicationDomain is None:
+ applicationName = fileBaseOf(applicationDirectoryPath,withPath=0)
+ else:
+ applicationName = applicationDomain
+ currentDir = os.getcwd()
+ os.chdir(applicationDirectoryPath)
+ if not os.path.exists('app.fil'):
+ raise IOError(2,'No module file: app.fil')
+
+ # Steps:
+ # Use xgettext to parse all application modules
+ # The following switches are used:
+ #
+ # -s : sort output by string content (easier to use when we need to merge several .po files)
+ # --files-from=app.fil : The list of files is taken from the file: app.fil
+ # --output= : specifies the name of the output file (using a .pot extension)
+ cmd = 'xgettext -s --no-wrap --files-from=app.fil --output=messages.pot'
+ if verbose: print cmd
+ os.system(cmd)
+
+ languageDict = getlanguageDict()
+
+ for langCode in languageDict.keys():
+ if langCode == 'en':
+ pass
+ else:
+ langPOfileName = "%s_%s.po" % (applicationName , langCode)
+ if os.path.exists(langPOfileName):
+ cmd = 'msgmerge -s --no-wrap "%s" messages.pot > "%s.new"' % (langPOfileName, langPOfileName)
+ if verbose: print cmd
+ os.system(cmd)
+ os.chdir(currentDir)
+
+# -----------------------------------------------------------------------------
+# c a t P O ( ) -- Concatenate one or several PO files with the application domain files. --
+# ^^^^^^^^^^^^^
+#
+def catPO(applicationDirectoryPath, listOf_extraPo, applicationDomain=None, targetDir=None, verbose=0) :
+ """Concatenate one or several PO files with the application domain files.
+ """
+
+ if applicationDomain is None:
+ applicationName = fileBaseOf(applicationDirectoryPath,withPath=0)
+ else:
+ applicationName = applicationDomain
+ currentDir = os.getcwd()
+ os.chdir(applicationDirectoryPath)
+
+ languageDict = getlanguageDict()
+
+ for langCode in languageDict.keys():
+ if langCode == 'en':
+ pass
+ else:
+ langPOfileName = "%s_%s.po" % (applicationName , langCode)
+ if os.path.exists(langPOfileName):
+ fileList = ''
+ for fileName in listOf_extraPo:
+ fileList += ("%s_%s.po " % (fileName,langCode))
+ cmd = "msgcat -s --no-wrap %s %s > %s.cat" % (langPOfileName, fileList, langPOfileName)
+ if verbose: print cmd
+ os.system(cmd)
+ if targetDir is None:
+ pass
+ else:
+ mo_targetDir = "%s/%s/LC_MESSAGES" % (targetDir,langCode)
+ cmd = "msgfmt --output-file=%s/%s.mo %s_%s.po.cat" % (mo_targetDir,applicationName,applicationName,langCode)
+ if verbose: print cmd
+ os.system(cmd)
+ os.chdir(currentDir)
+
+# -----------------------------------------------------------------------------
+# m a k e M O ( ) -- Compile the Portable Object files into the Machine Object stored in the right location. --
+# ^^^^^^^^^^^^^^^
+#
+def makeMO(applicationDirectoryPath,targetDir='./locale',applicationDomain=None, verbose=0, forceEnglish=0) :
+ """Compile the Portable Object files into the Machine Object stored in the right location.
+
+ makeMO converts all translated language-specific PO files located inside
+ the application directory into the binary .MO files stored inside the
+ LC_MESSAGES sub-directory for the found locale files.
+
+ makeMO searches for all files that have a name of the form 'app_xx.po'
+ inside the application directory specified by the first argument. The
+ 'app' is the application domain name (that can be specified by the
+ applicationDomain argument or is taken from the directory name). The 'xx'
+ corresponds to one of the ISO 639 two-letter language codes.
+
+ makeMo stores the resulting files inside a sub-directory of `targetDir`
+ called xx/LC_MESSAGES where 'xx' corresponds to the 2-letter language
+ code.
+ """
+ if targetDir is None:
+ targetDir = './locale'
+ if verbose:
+ print "Target directory for .mo files is: %s" % targetDir
+
+ if applicationDomain is None:
+ applicationName = fileBaseOf(applicationDirectoryPath,withPath=0)
+ else:
+ applicationName = applicationDomain
+ currentDir = os.getcwd()
+ os.chdir(applicationDirectoryPath)
+
+ languageDict = getlanguageDict()
+
+ for langCode in languageDict.keys():
+ if (langCode == 'en') and (forceEnglish==0):
+ pass
+ else:
+ langPOfileName = "%s_%s.po" % (applicationName , langCode)
+ if os.path.exists(langPOfileName):
+ mo_targetDir = "%s/%s/LC_MESSAGES" % (targetDir,langCode)
+ if not os.path.exists(mo_targetDir):
+ mkdir(mo_targetDir)
+ cmd = 'msgfmt --output-file="%s/%s.mo" "%s_%s.po"' % (mo_targetDir,applicationName,applicationName,langCode)
+ if verbose: print cmd
+ os.system(cmd)
+ #else: print "%s does not exist" % langPOfileName
+ os.chdir(currentDir)
+
+# -----------------------------------------------------------------------------
+# p r i n t U s a g e -- Displays how to use this script from the command line --
+# ^^^^^^^^^^^^^^^^^^^
+#
+def printUsage(errorMsg=None) :
+ """Displays how to use this script from the command line."""
+ print """
+ ##################################################################################
+ # mki18n : Make internationalization files. #
+ # Uses the GNU gettext system to create PO (Portable Object) files #
+ # from source code, coimpile PO into MO (Machine Object) files. #
+ # Supports C,C++,Python source files. #
+ # #
+ # Usage: mki18n {OPTION} [appDirPath] #
+ # #
+ # Options: #
+ # -e : When -m is used, forces English .mo file creation #
+ # -h : prints this help #
+ # -m : make MO from existing PO files #
+ # -p : make PO, update PO files: Creates a new messages.pot #
+ # file. Creates a dom_xx.po.new for every existing #
+ # language specific .po file. ('xx' stands for the ISO639 #
+ # two-letter language code and 'dom' stands for the #
+ # application domain name). mki18n requires that you #
+ # write a 'app.fil' file which contains the list of all #
+ # source code to parse. #
+ # -v : verbose (prints comments while running) #
+ # --domain=appName : specifies the application domain name. By default #
+ # the directory name is used. #
+ # --moTarget=dir : specifies the directory where .mo files are stored. #
+ # If not specified, the target is './locale' #
+ # #
+ # You must specify one of the -p or -m option to perform the work. You can #
+ # specify the path of the target application. If you leave it out mki18n #
+ # will use the current directory as the application main directory. #
+ # #
+ ##################################################################################"""
+ if errorMsg:
+ print "\n ERROR: %s" % errorMsg
+
+# -----------------------------------------------------------------------------
+# f i l e B a s e O f ( ) -- Return base name of filename --
+# ^^^^^^^^^^^^^^^^^^^^^^^
+#
+def fileBaseOf(filename,withPath=0) :
+ """fileBaseOf(filename,withPath) ---> string
+
+ Return base name of filename. The returned string never includes the extension.
+ Use os.path.basename() to return the basename with the extension. The
+ second argument is optional. If specified and if set to 'true' (non zero)
+ the string returned contains the full path of the file name. Otherwise the
+ path is excluded.
+
+ [Example]
+ >>> fn = 'd:/dev/telepath/tvapp/code/test.html'
+ >>> fileBaseOf(fn)
+ 'test'
+ >>> fileBaseOf(fn)
+ 'test'
+ >>> fileBaseOf(fn,1)
+ 'd:/dev/telepath/tvapp/code/test'
+ >>> fileBaseOf(fn,0)
+ 'test'
+ >>> fn = 'abcdef'
+ >>> fileBaseOf(fn)
+ 'abcdef'
+ >>> fileBaseOf(fn,1)
+ 'abcdef'
+ >>> fn = "abcdef."
+ >>> fileBaseOf(fn)
+ 'abcdef'
+ >>> fileBaseOf(fn,1)
+ 'abcdef'
+ """
+ pos = filename.rfind('.')
+ if pos > 0:
+ filename = filename[:pos]
+ if withPath:
+ return filename
+ else:
+ return os.path.basename(filename)
+# -----------------------------------------------------------------------------
+# m k d i r ( ) -- Create a directory (and possibly the entire tree) --
+# ^^^^^^^^^^^^^
+#
+def mkdir(directory) :
+ """Create a directory (and possibly the entire tree).
+
+ The os.mkdir() will fail to create a directory if one of the
+ directory in the specified path does not exist. mkdir()
+ solves this problem. It creates every intermediate directory
+ required to create the final path. Under Unix, the function
+ only supports forward slash separator, but under Windows and MacOS
+ the function supports the forward slash and the OS separator (backslash
+ under windows).
+ """
+
+ # translate the path separators
+ directory = unixpath(directory)
+ # build a list of all directory elements
+ aList = filter(lambda x: len(x)>0, directory.split('/'))
+ theLen = len(aList)
+ # if the first element is a Windows-style disk drive
+ # concatenate it with the first directory
+ if aList[0].endswith(':'):
+ if theLen > 1:
+ aList[1] = aList[0] + '/' + aList[1]
+ del aList[0]
+ theLen -= 1
+ # if the original directory starts at root,
+ # make sure the first element of the list
+ # starts at root too
+ if directory[0] == '/':
+ aList[0] = '/' + aList[0]
+ # Now iterate through the list, check if the
+ # directory exists and if not create it
+ theDir = ''
+ for i in range(theLen):
+ theDir += aList[i]
+ if not os.path.exists(theDir):
+ os.mkdir(theDir)
+ theDir += '/'
+
+# -----------------------------------------------------------------------------
+# u n i x p a t h ( ) -- Return a path name that contains Unix separator. --
+# ^^^^^^^^^^^^^^^^^^^
+#
+def unixpath(thePath) :
+ r"""Return a path name that contains Unix separator.
+
+ [Example]
+ >>> unixpath(r"d:\test")
+ 'd:/test'
+ >>> unixpath("d:/test/file.txt")
+ 'd:/test/file.txt'
+ >>>
+ """
+ thePath = os.path.normpath(thePath)
+ if os.sep == '/':
+ return thePath
+ else:
+ return thePath.replace(os.sep,'/')
+
+# -----------------------------------------------------------------------------
+
+# S c r i p t e x e c u t i o n -- Runs when invoked from the command line --
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+#
+if __name__ == "__main__":
+ import getopt # command line parsing
+ argc = len(sys.argv)
+ if argc == 1:
+ printUsage('Missing argument: specify at least one of -m or -p (or both).')
+ sys.exit(1)
+ # If there is some arguments, parse the command line
+ validOptions = "ehmpv"
+ validLongOptions = ['domain=', 'moTarget=']
+ option = {}
+ option['forceEnglish'] = 0
+ option['mo'] = 0
+ option['po'] = 0
+ option['verbose'] = 0
+ option['domain'] = None
+ option['moTarget'] = None
+ try:
+ optionList,pargs = getopt.getopt(sys.argv[1:],validOptions,validLongOptions)
+ except getopt.GetoptError, e:
+ printUsage(e[0])
+ sys.exit(1)
+ for (opt,val) in optionList:
+ if (opt == '-h'):
+ printUsage()
+ sys.exit(0)
+ elif (opt == '-e'): option['forceEnglish'] = 1
+ elif (opt == '-m'): option['mo'] = 1
+ elif (opt == '-p'): option['po'] = 1
+ elif (opt == '-v'): option['verbose'] = 1
+ elif (opt == '--domain'): option['domain'] = val
+ elif (opt == '--moTarget'): option['moTarget'] = val
+ if len(pargs) == 0:
+ appDirPath = os.getcwd()
+ if option['verbose']:
+ print "No project directory given. Using current one: %s" % appDirPath
+ elif len(pargs) == 1:
+ appDirPath = pargs[0]
+ else:
+ printUsage('Too many arguments (%u). Use double quotes if you have space in directory name' % len(pargs))
+ sys.exit(1)
+ if option['domain'] is None:
+ # If no domain specified, use the name of the target directory
+ option['domain'] = fileBaseOf(appDirPath)
+ if option['verbose']:
+ print "Application domain used is: '%s'" % option['domain']
+ if option['po']:
+ try:
+ makePO(appDirPath,option['domain'],option['verbose'])
+ except IOError, e:
+ printUsage(e[1] + '\n You must write a file app.fil that contains the list of all files to parse.')
+ if option['mo']:
+ makeMO(appDirPath,option['moTarget'],option['domain'],option['verbose'],option['forceEnglish'])
+ sys.exit(0)
diff --git a/po/ms.po b/po/ms.po
new file mode 100644
index 0000000..2f6574e
--- /dev/null
+++ b/po/ms.po
@@ -0,0 +1,207 @@
+# liveusb-creator Bahasa Melayu (Malay) (ms)
+# Copyright (C) 2008 Fedora Project
+# This file is distributed under the same license as the liveusb-creator package.
+# Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: liveusb-creator\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 01:22+0000\n"
+"PO-Revision-Date: 2008-09-21 22:31+0800\n"
+"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>\n"
+"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../liveusb/gui.py:69
+#, fuzzy, python-format
+msgid "Unknown release: %s"
+msgstr "/Nota kelua_ran"
+
+#: ../liveusb/gui.py:73
+#, fuzzy, python-format
+msgid "Downloading %s..."
+msgstr "Memuatturun pakej `%s'..."
+
+#: ../liveusb/gui.py:152
+#, fuzzy
+msgid "Verifying filesystem..."
+msgstr "(Baiki sistem fail)"
+
+#: ../liveusb/gui.py:155
+msgid "Error: Cannot set the label or obtain the UUID of your device. Unable to continue."
+msgstr ""
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr ""
+
+#: ../liveusb/gui.py:166
+msgid "Error: The SHA1 of your Live CD is invalid. You can run this program with the --noverify argument to bypass this verification check."
+msgstr ""
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr ""
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr ""
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr ""
+
+#: ../liveusb/gui.py:187
+#, fuzzy, python-format
+msgid "Complete! (%s)"
+msgstr "Selesai"
+
+#: ../liveusb/gui.py:190
+#: ../liveusb/gui.py:193
+#, fuzzy
+msgid "LiveUSB creation failed!"
+msgstr "Pelaksanaan gpg gagal (%d)\n"
+
+#: ../liveusb/gui.py:316
+#, fuzzy, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Ruang Swap (MB)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+
+#: ../liveusb/gui.py:337
+msgid "Warning: Creating a new persistent overlay will delete your existing one."
+msgstr ""
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr ""
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr ""
+
+#: ../liveusb/gui.py:383
+#, fuzzy
+msgid "Download complete!"
+msgstr "Muatturun Dipilih"
+
+#: ../liveusb/gui.py:387
+#, fuzzy
+msgid "Download failed: "
+msgstr "Sambungan Gagal"
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr ""
+
+#: ../liveusb/gui.py:392
+#, fuzzy
+msgid "Select Live ISO"
+msgstr "Arab, ISO-8859-6"
+
+#: ../liveusb/gui.py:399
+msgid "Sorry, I'm having trouble encoding the filename of your livecd. You may have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr ""
+
+#: ../liveusb/gui.py:404
+#, fuzzy, python-format
+msgid "ISO selected: %s"
+msgstr "Muatturun Dipilih"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr ""
+
+#: ../liveusb/creator.py:184
+#, python-format
+msgid ""
+"\n"
+"%dMB ISO + %dMB overlay > %dMB free space"
+msgstr ""
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr ""
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr ""
+
+#: ../liveusb/creator.py:257
+#, fuzzy, python-format
+msgid "Cannot find device %s"
+msgstr "Jadikan Peranti RAID."
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr ""
+
+#: ../liveusb/creator.py:327
+#, fuzzy, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "tiada protokol ditakrif untuk `%s'"
+
+#: ../liveusb/creator.py:328
+msgid "device"
+msgstr "peranti"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "Tidak dapat melekapkan peranti: %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr ""
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Sistem fail tidak disokong: %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr ""
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr ""
+
+#: ../liveusb/creator.py:479
+msgid "Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr ""
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid "Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file before running this program."
+msgstr ""
+
diff --git a/po/nl.po b/po/nl.po
new file mode 100644
index 0000000..3c40298
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,295 @@
+# Dutch translation of liveusb-creator.
+# Copyright (C) 2009 THE liveusb-creator'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the liveusb-creator package.
+# Geert Warrink <geert.warrink@onsnet.nu>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: liveusb-creator\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2009-04-04 17:42+0200\n"
+"Last-Translator: Geert Warrink <geert.warrink@onsnet.nu>\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"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Onbekende vrijgave: %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "Downloaden %s..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Bestandssysteem controleren..."
+
+#: ../liveusb/gui.py:155
+msgid ""
+"Error: Cannot set the label or obtain the UUID of your device. Unable to "
+"continue."
+msgstr "Fout: Kan het label niet zetten of de UUID van je device krijgen. Kan niet "
+"verder gaan."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Controleer SHA1 van LiveCD image..."
+
+#: ../liveusb/gui.py:166
+msgid ""
+"Error: The SHA1 of your Live CD is invalid. You can run this program with "
+"the --noverify argument to bypass this verification check."
+msgstr "Fout: De SHA1 van je Live CD is niet correct. Je kunt het programma uitvoeren met "
+"het --noverify argument om deze controle over te slaan."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "Live image uipakken naar USB device..."
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "%d Mb duurzame dataruimte maken..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "Bootloader configureren en installeren..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Compleet! (%s)"
+
+#: ../liveusb/gui.py:190 ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "LiveUSB aanmaken faalde!"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Duurzame geheugenruimte (%d Mb)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr "Je device bevat al een LiveOS.\n"
+"Als je doorgaat, wordt het overschreven."
+
+#: ../liveusb/gui.py:337
+msgid ""
+"Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Waarschuwing: Het maken van een duurzame geheugenruimte zal je bestaande verwijderen."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Druk opnieuw op 'Maak Live USB' als je verder wilt gaan."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "Verwijderen bestaande Live OS...."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "Download klaar!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "Download faalde: "
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Je kunt opnieuw proberen je download voort te zetten"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Selecteer Live ISO"
+
+#: ../liveusb/gui.py:399
+msgid ""
+"Sorry, I'm having trouble encoding the filename of your livecd. You may "
+"have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr "Sorry, ik heb problemen met het encoderen van de bestandsnaam van je livecd. Je "
+"kunt meer geluk hebben als je jouw ISO verplaatst naar het hoogste nivo van je drive (b.v.: C:\\)"
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "Geselecteerde ISO: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr "Er is een probleem met het uitvoeren van het volgende commando: `%s`\n"
+"Uitgebreidere informatie is geschreven naar 'liveusb-creator.log'"
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "Er is niet genoeg vrije ruimte op het device"
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "%sMB duurzame geheugenruimte maken"
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Kan vorige LiveOS: %s niet verwijderen"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "Kan device %s niet vinden"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "Kan geen USB devices vinden"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "Bestandssysteem voor %s is onbekend!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "Kan device %s niet aankoppelen"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "Onbekend bestandssysteem voor %s. Je device moet opnieuw geformatteerd worden."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Bestandssysteem: %s niet ondersteund"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "Kan LiveOS niet op ISO vinden"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "Kan geen verwijderbare devices vinden"
+
+#: ../liveusb/creator.py:479
+msgid ""
+"Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr "Verzeker je ervan dat je USB stick is aangesloten en geformateerd met het FAT bestandssysteem"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr "Niet ondersteund bestandssysteem: %s\n"
+"Maak een backup en formatteer je USB stick met het FAT bestandssysteem."
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid ""
+"Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file "
+"before running this program."
+msgstr "Kan '%s' niet vinden. Wees er zeker van om het hele liveusb-creator zip bestand "
+"uit te pakken voordat je dit programma draait."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Fedora LiveUSB Creator"
+
+#: ../liveusb/dialog.py:124
+msgid ""
+"This button will begin the LiveUSB creation process. This entails "
+"optionally downloading a release (if an existing one wasn't selected), "
+"extracting the ISO to the USB device, creating the persistent overlay, and "
+"installing the bootloader."
+msgstr "Deze knop zal het LiveUSB aanmaak proces opstarten. Dit omvat optioneel "
+"het downloaden van een vrijgave (als een bestaande niet geselecteerd was), "
+"uitpakken van de ISO naar het USB device, duurzame dataruimte aanmaken, en "
+"de bootloader installeren."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Maak Live USB"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Dit is het status scherm, hier worden alle boodschappen in geschreven."
+
+#: ../liveusb/dialog.py:127
+msgid ""
+"This is the progress bar that will indicate how far along in the LiveUSB "
+"creation process you are"
+msgstr "Dit is de voortgangsbalk die aangeeft hoe ver je in het LiveUSB "
+"aanmaak process bent"
+
+#: ../liveusb/dialog.py:128
+msgid ""
+"If you do not select an existing Live CD, the selected release will be "
+"downloaded for you."
+msgstr "Als je geen bestaande Live CD selecteert, zal de geselecteerde vrijgave "
+"voor je gedownload worden."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Fedora downloaden"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "of"
+
+#: ../liveusb/dialog.py:131
+msgid ""
+"This button allows you to browse for an existing Live CD ISO that you have "
+"previously downloaded. If you do not select one, a release will be "
+"downloaded for you automatically."
+msgstr "Deze knop laat je zoeken naar een bestaande Live CD ISO dat je eerder hebt "
+"gedownload. Als er geen selecteerd is, zal automatisch een vrijgave voor je "
+"gedownload worden."
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Bestaande Live CD gebruiken"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Bladeren"
+
+#: ../liveusb/dialog.py:135
+msgid ""
+"This is the USB stick that you want to install your Live CD on. This device "
+"must be formatted with the FAT filesystem."
+msgstr "Dit is de USB stick waarop je jouw Live CD wilt installeren. Dit device "
+"moet geformateerd zijn met het FAT bestandssysteem."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Doel device"
+
+#: ../liveusb/dialog.py:137
+msgid ""
+"By allocating extra space on your USB stick for a persistent overlay, you "
+"will be able to store data and make permanent modifications to your live "
+"operating system. Without it, you will not be able to save data that will "
+"persist after a reboot."
+msgstr "Door extra ruimte te reserveren op je USB stick voor duurzame dataruimte, kun "
+"je data bewaren en duurzame veranderingen in je live operating systeem "
+"maken. Zonder dit, kun je geen data bewaren dat duurzaam is na opnieuw "
+"opstarten."
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Duurzame geheugenruimte (0 Mb)"
+
diff --git a/po/pl.po b/po/pl.po
new file mode 100644
index 0000000..9d6fbd9
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,361 @@
+# translation of pl.po to Polish
+# Piotr Drąg <piotrdrag@gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pl\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-04-16 22:56+0200\n"
+"PO-Revision-Date: 2009-04-16 22:59+0200\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"
+
+#: ../liveusb/__init__.py:42
+msgid "You must run this application as root"
+msgstr "Musisz uruchomić tę aplikację jako root"
+
+#: ../liveusb/gui.py:74
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Nieznane wydanie: %s"
+
+#: ../liveusb/gui.py:78
+#, python-format
+msgid "Downloading %s..."
+msgstr "Pobieranie %s..."
+
+#: ../liveusb/gui.py:173
+msgid ""
+"Error: Cannot set the label or obtain the UUID of your device. Unable to "
+"continue."
+msgstr ""
+"Błąd: nie można ustawić etykiety lub uzyskać UUID urządzenia. Nie można "
+"kontynuować."
+
+#: ../liveusb/gui.py:203
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Zakończono! (%s)"
+
+#: ../liveusb/gui.py:207
+msgid "LiveUSB creation failed!"
+msgstr "Utworzenie Live USB nie powiodło się!"
+
+#: ../liveusb/gui.py:343
+msgid ""
+"Device is not yet mounted, so we cannot determine the amount of free space. "
+"Setting a maximum limit of 8G for the persistent storage."
+msgstr ""
+"Urządzenie nie jest jeszcze zamontowane, więc nie można określić wielkości "
+"wolnego miejsca. Ustawianie maksymalnego ograniczenia do 8G dla pamięci "
+"stałej."
+
+#: ../liveusb/gui.py:351
+msgid "Partition is FAT16; Restricting overlay size to 2G"
+msgstr "Partycja to FAT16; ograniczanie rozmiaru warstwy do 2G"
+
+#: ../liveusb/gui.py:390
+msgid "Persistent Storage"
+msgstr "Pamięć stała"
+
+#: ../liveusb/gui.py:412
+msgid "Unable to mount device"
+msgstr "Nie można zamontować urządzenia"
+
+#: ../liveusb/gui.py:418
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"Urządzenie zawiera już system operacyjny Live.\n"
+"Jeśli kontynuujesz, zostanie on zastąpiony."
+
+#: ../liveusb/gui.py:421
+msgid ""
+"Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Ostrzeżenie: tworzenie nowej warstwy trwałości usunie istniejącą."
+
+#: ../liveusb/gui.py:423
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Naciśnij \"Utwórz Live USB\" ponownie, jeśli chcesz kontynuować."
+
+#: ../liveusb/gui.py:470
+msgid "Download complete!"
+msgstr "Pobieranie zakończone!"
+
+#: ../liveusb/gui.py:474
+msgid "Download failed: "
+msgstr "Pobieranie nie powiodło się: "
+
+#: ../liveusb/gui.py:475
+msgid "You can try again to resume your download"
+msgstr "Można spróbować ponownie, aby wznowić pobieranie"
+
+#: ../liveusb/gui.py:479
+msgid "Select Live ISO"
+msgstr "Wybierz plik ISO Live"
+
+#: ../liveusb/gui.py:486
+msgid ""
+"Unable to encode the filename of your livecd. You may have better luck if "
+"you move your ISO to the root of your drive (ie: C:\\)"
+msgstr ""
+"Nie można zakodować nazwy pliku Live CD. Łatwiej będzie po przeniesieniu "
+"pliku ISO do głównego folderu napędu (np. C:\\)"
+
+#: ../liveusb/gui.py:491
+msgid "selected"
+msgstr "wybrano"
+
+#: ../liveusb/creator.py:135
+msgid "Setting up OLPC boot file..."
+msgstr "Ustawianie pliku startowego OLPC..."
+
+#: ../liveusb/creator.py:188
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Wystąpił problem podczas wykonywania następującego polecenia: `%s`\n"
+"Bardziej szczegółowy dziennik błędu został zapisany do \"liveusb-creator.log"
+"\""
+
+#: ../liveusb/creator.py:204
+msgid "Verifying SHA1 checksum of LiveCD image..."
+msgstr "Sprawdzanie sumy kontrolnej SHA1 obrazu Live CD..."
+
+#: ../liveusb/creator.py:208
+msgid "Verifying SHA256 checksum of LiveCD image..."
+msgstr "Sprawdzanie sumy kontrolnej SHA256 obrazu Live CD..."
+
+#: ../liveusb/creator.py:223
+msgid ""
+"Error: The SHA1 of your Live CD is invalid. You can run this program with "
+"the --noverify argument to bypass this verification check."
+msgstr ""
+"Błąd: suma kontrolna SHA1 obrazu Live CD jest nieprawidłowa. Można uruchomić "
+"ten program za pomocą parametru --noverify, aby obejść to sprawdzanie."
+
+#: ../liveusb/creator.py:229
+msgid "Unknown ISO, skipping checksum verification"
+msgstr "Nieznany plik ISO, pomijanie sprawdzania sum kontrolnych"
+
+#: ../liveusb/creator.py:240
+msgid "Not enough free space on device."
+msgstr "Niewystarczająca ilość wolnego miejsca na urządzeniu."
+
+#: ../liveusb/creator.py:247
+msgid "Creating"
+msgstr "Tworzenie"
+
+#: ../liveusb/creator.py:248
+msgid "persistent overlay"
+msgstr "warstwa trwałości"
+
+#: ../liveusb/creator.py:280
+msgid "Removing existing Live OS"
+msgstr "Usuwanie istniejącego systemu operacyjnego Live"
+
+#: ../liveusb/creator.py:289
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Nie można usunąć poprzedniego systemu operacyjnego Live: %s"
+
+#: ../liveusb/creator.py:320
+#, python-format
+msgid "Cannot find device %s"
+msgstr "Nie można znaleźć urządzenia %s"
+
+#: ../liveusb/creator.py:340
+msgid "Resetting MBR..."
+msgstr "Przywracanie MBR..."
+
+#: ../liveusb/creator.py:398
+msgid "Unable to find any USB drives"
+msgstr "Nie można znaleźć żadnych urządzeń USB"
+
+#: ../liveusb/creator.py:422
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "System plików %s jest nieznany!"
+
+#: ../liveusb/creator.py:435
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "Nie można zamontować urządzenia: %s"
+
+#: ../liveusb/creator.py:472 ../liveusb/creator.py:700
+msgid "Verifying filesystem..."
+msgstr "Sprawdzanie systemu plików..."
+
+#: ../liveusb/creator.py:475
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr ""
+"Nieznany system plików %s. Urządzenie może wymagać ponownego sformatowania."
+
+#: ../liveusb/creator.py:478
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Nieobsługiwany system plików: %s"
+
+#: ../liveusb/creator.py:502
+msgid "Your MBR appears to be blank"
+msgstr "MBR wydaje się być pusty"
+
+#: ../liveusb/creator.py:512 ../liveusb/creator.py:735
+msgid "Extracting live image to USB device..."
+msgstr "Rozpakowywanie obrazu Live na urządzenie USB..."
+
+#: ../liveusb/creator.py:518
+msgid "Unable to find LiveOS on ISO"
+msgstr "Nie można znaleźć systemu operacyjnego Live w pliku ISO"
+
+#: ../liveusb/creator.py:530 ../liveusb/creator.py:743
+msgid "Wrote to device at"
+msgstr "Zapisano do urządzenia na"
+
+#: ../liveusb/creator.py:543
+msgid "Installing bootloader..."
+msgstr "Instalowanie programu startowego..."
+
+#: ../liveusb/creator.py:585
+msgid "Verifying ISO MD5 checksum"
+msgstr "Sprawdzanie sumy kontrolnej MD5 pliku ISO"
+
+#: ../liveusb/creator.py:645
+msgid "Unable to find partition"
+msgstr "Nie można znaleźć partycji"
+
+#: ../liveusb/creator.py:696
+msgid "Unable to find any removable devices"
+msgstr "Nie można znaleźć żadnych urządzeń wymiennych"
+
+#: ../liveusb/creator.py:704
+msgid ""
+"Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr ""
+"Upewnij się, że klucz USB jest podłączony i sformatowany w systemie plików "
+"FAT"
+
+#: ../liveusb/creator.py:707
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Nieobsługiwany system plików: %s\n"
+"Wykonaj kopię zapasową i sformatuj klucz USB w systemie plików FAT."
+
+#: ../liveusb/creator.py:749
+msgid "Installing bootloader"
+msgstr "Instalowanie programu startowego"
+
+#: ../liveusb/creator.py:793
+msgid "Cannot find"
+msgstr "Nie można znaleźć"
+
+#: ../liveusb/creator.py:794
+msgid ""
+"Make sure to extract the entire liveusb-creator zip file before running this "
+"program."
+msgstr ""
+"Upewnij się, że rozpakowano cały plik ZIP liveusb-creator przed "
+"uruchomieniem tego programu."
+
+#: ../liveusb/windows_dialog.py:104
+msgid "Fedora LiveUSB Creator"
+msgstr "Tworzenie LiveUSB Fedory"
+
+#: ../liveusb/windows_dialog.py:105
+msgid ""
+"This button will begin the LiveUSB creation process. This entails "
+"optionally downloading a release (if an existing one wasn't selected), "
+"extracting the ISO to the USB device, creating the persistent overlay, and "
+"installing the bootloader."
+msgstr ""
+"Ten przycisk rozpocznie proces tworzenia Live USB. Może to pociągnąć za sobą "
+"konieczność pobrania wydania (jeśli istniejące nie zostało wybrane), "
+"rozpakowanie pliku ISO na urządzenie USB, utworzenie warstwy trwałości i "
+"zainstalowanie programu startowego."
+
+#: ../liveusb/windows_dialog.py:106
+msgid "Create Live USB"
+msgstr "Utwórz Live USB"
+
+#: ../liveusb/windows_dialog.py:107
+msgid "This is the status console, where all messages get written to."
+msgstr "To jest konsola stanu, gdzie wyświetlane są wszystkie komunikaty."
+
+#: ../liveusb/windows_dialog.py:108
+msgid ""
+"This is the progress bar that will indicate how far along in the LiveUSB "
+"creation process you are"
+msgstr ""
+"To jest pasek postępu, wskazujący jak daleko posunął się proces tworzenia "
+"Live USB"
+
+#: ../liveusb/windows_dialog.py:109
+msgid ""
+"If you do not select an existing Live CD, the selected release will be "
+"downloaded for you."
+msgstr ""
+"Jeśli istniejący Live CD nie zostanie wybrany, wybrane wydanie zostanie "
+"pobrane."
+
+#: ../liveusb/windows_dialog.py:110
+msgid "Download Fedora"
+msgstr "Pobierz Fedorę"
+
+#: ../liveusb/windows_dialog.py:111
+msgid "or"
+msgstr "lub"
+
+#: ../liveusb/windows_dialog.py:112
+msgid ""
+"This button allows you to browse for an existing Live CD ISO that you have "
+"previously downloaded. If you do not select one, a release will be "
+"downloaded for you automatically."
+msgstr ""
+"Ten przycisk umożliwia przeglądanie istniejącego pliku ISO Live CD, który "
+"został wcześniej pobrany. Jeśli żaden nie zostanie wybrany, wydanie zostanie "
+"automatycznie pobrane."
+
+#: ../liveusb/windows_dialog.py:113
+msgid "Use existing Live CD"
+msgstr "Użyj istniejącego Live CD"
+
+#: ../liveusb/windows_dialog.py:114
+msgid "Browse"
+msgstr "Przeglądaj"
+
+#: ../liveusb/windows_dialog.py:116
+msgid ""
+"This is the USB stick that you want to install your Live CD on. This device "
+"must be formatted with the FAT filesystem."
+msgstr ""
+"To jest klucz USB, na którym ma być zainstalowane Live CD. To urządzenie "
+"musi być sformatowane za pomocą systemu plików FAT."
+
+#: ../liveusb/windows_dialog.py:117
+msgid "Target Device"
+msgstr "Urządzenie docelowe"
+
+#: ../liveusb/windows_dialog.py:118
+msgid ""
+"By allocating extra space on your USB stick for a persistent overlay, you "
+"will be able to store data and make permanent modifications to your live "
+"operating system. Without it, you will not be able to save data that will "
+"persist after a reboot."
+msgstr ""
+"Przydzielając dodatkową przestrzeń na kluczu USB na warstwę trwałości, można "
+"przechowywać dane i modyfikacje systemu operacyjnego Live. Bez niej nie "
+"można zapisywać danych, które zostaną zachowane po ponownym uruchomieniu."
+
+#: ../liveusb/windows_dialog.py:119
+msgid "Persistent Storage (0 Mb)"
+msgstr "Pamięć stała (0 MB)"
diff --git a/po/pt.po b/po/pt.po
new file mode 100644
index 0000000..130871c
--- /dev/null
+++ b/po/pt.po
@@ -0,0 +1,312 @@
+# Portuguese translation of liveusb-creator.
+# Copyright (C) 2008 Red Hat, Inc.
+# This file is distributed under the same license as the liveusb-creator package.
+#
+# Valter Fukuoka <dotsoft@gmail.com>, 2008.
+# Zé <ze@mandriva.org>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: liveusb-creator\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2010-05-27 07:07+0100\n"
+"Last-Translator: Zé <ze@mandriva.org>\n"
+"Language-Team: Portuguese <kde-i18n-doc@kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Portuguese\n"
+"X-Poedit-Country: PORTUGAL\n"
+"X-Poedit-Basepath: /home/ruigo/src/liveusb-creator/po/\n"
+"X-Poedit-SearchPath-0: \n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Lançamento desconhecido: %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "A transferir %s..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "A verificar o sistema de ficheiros..."
+
+#: ../liveusb/gui.py:155
+msgid "Error: Cannot set the label or obtain the UUID of your device. Unable to continue."
+msgstr "Erro: Não é possível definir o nome ou obter o UUID do seu dispositivo. Não é possível continuar."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "A verificar a assinatura SHA1 da imagem LiveCD..."
+
+#: ../liveusb/gui.py:166
+msgid "Error: The SHA1 of your Live CD is invalid. You can run this program with the --noverify argument to bypass this verification check."
+msgstr "Erro: A assinatura SHA1 do seu Live CD é inválida. Pode executar este programa com o argumento --noverify para evitar esta verificação."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "A extrair a imagem 'live' para o dispositivo USB..."
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "A criar %d Mb de área persistente..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "A configurar e instalar o carregador de arranque..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Terminado! (%s)"
+
+#: ../liveusb/gui.py:190
+#: ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "Criação LiveUSB falhada!"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Memória Persistente (%d Mb)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"O seu dispositivo já contém um LiveOS.\n"
+"Se continuar, será substituído."
+
+#: ../liveusb/gui.py:337
+msgid "Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Aviso: Se criar uma nova área persistente irá apagar a existente."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Prima 'Criar Live USB' novamente se deseja continuar."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "A remover SO Live existente..."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "Transferência terminada!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "Transferência falhada:"
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Pode tentar novamente resumir a sua transferência"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Seleccionar ficheiro ISO com sistema 'live'"
+
+#: ../liveusb/gui.py:399
+msgid "Sorry, I'm having trouble encoding the filename of your livecd. You may have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr "Não é possível codificar o nome do ficheiro do seu livecd. Pode ter mais sorte se mover a imagem ISO para a raíz do seu dispositivo (ex: C:\\)"
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "ISO seleccionado: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Houve um problema ao executar o seguinte comando: `%s`\n"
+"Um registo mais detalhado foi gravado em 'liveusb-creator.log'"
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "Sem espaço livre suficiente no dispositivo."
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "A criar %sMb de área persistente..."
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Não é possível remover o LiveOS actual: %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "Não é possível encontrar o dispositivo %s"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "Não é possível localizar os discos USB"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "Sistema de ficheiros para %s desconhecido!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "Não é possível montar o dispositivo: %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "Sistema de ficheiros desconhecido para %s. O seu dispositivo talvez precise de ser reformatado."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Sistema de ficheiros não suportado: %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "Não é possível encontrar um sistema 'live' no ficheiro ISO"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "Não é possível encontrar quaisquer dispositivos removíveis"
+
+#: ../liveusb/creator.py:479
+msgid "Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr "Certifique-se que o seu dispositivo USB está bem ligado e formatado com o sistema de ficheiros FAT"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Sistema de ficheiros não suportado: %s\n"
+"Por favor salvaguarde e formate o seu dispositivo USB com o sistema de ficheiros FAT."
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid "Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file before running this program."
+msgstr "Não é possível encontrar '%s'. Certifique-se que extrai completamente o ficheiro zip do liveusb-creator antes de executar este programa."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Criador LiveUSB Mandriva"
+
+#: ../liveusb/dialog.py:124
+msgid "This button will begin the LiveUSB creation process. This entails optionally downloading a release (if an existing one wasn't selected), extracting the ISO to the USB device, creating the persistent overlay, and installing the bootloader."
+msgstr "Este botão irá, iniciar o processo de criação LiveUSB. Isto implica transferir um lançamento (se não seleccionou um dos existentes), extrair o ficheiro ISO para o dispositivo USB, criar a área persistente, e instalar o carregador de arranque."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Criar USB Live"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Esta é a consola de estado, onde todas as mensagens serão escritas."
+
+#: ../liveusb/dialog.py:127
+msgid "This is the progress bar that will indicate how far along in the LiveUSB creation process you are"
+msgstr "Esta é a barra de progresso que irá indicar em que ponto se encontra no processo de criação do LiveUSB"
+
+#: ../liveusb/dialog.py:128
+msgid "If you do not select an existing Live CD, the selected release will be downloaded for you."
+msgstr "Se não seleccione um CD Live existente, o lançamento seleccionado será transferido automaticamente."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Transferir o Mandriva"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "ou"
+
+#: ../liveusb/dialog.py:131
+msgid "This button allows you to browse for an existing Live CD ISO that you have previously downloaded. If you do not select one, a release will be downloaded for you automatically."
+msgstr "Este botão permite-lhe procurar um ficheiro ISO de um CD Live que tenha transferido previamente. Se não seleccionar um, um lançamento será transferido para si automaticamente."
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Usar um CD Live existente"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Procurar"
+
+#: ../liveusb/dialog.py:135
+msgid "This is the USB stick that you want to install your Live CD on. This device must be formatted with the FAT filesystem."
+msgstr "Este é o dispositivo USB onde deseja instalar o CD Live. Este dispositivo tem que estar formatado com o sistema de ficheiros FAT."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Dispositivo de destino"
+
+#: ../liveusb/dialog.py:137
+msgid "By allocating extra space on your USB stick for a persistent overlay, you will be able to store data and make permanent modifications to your live operating system. Without it, you will not be able to save data that will persist after a reboot."
+msgstr "Ao alocar espaço extra na caneta USB para uma área persistente, poderá gravar dados e fazer modificações permanentes no seu sistema operativo 'live'. Sem isso, não poderá gravar dados que irão persistir após uma reinicialização."
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Armazenamento Persistente (0 Mb)"
+
+#~ msgid "You must run this application as root"
+#~ msgstr "Precisa de executar esta aplicação como root"
+#~ msgid ""
+#~ "Device is not yet mounted, so we cannot determine the amount of free "
+#~ "space. Setting a maximum limit of 8G for the persistent storage."
+#~ msgstr ""
+#~ "O dispositivo ainda não está montado, por isso, não é possível determinar "
+#~ "a quantidade de espaço livre. A definir o limite máximo do armazenamento "
+#~ "persistente a 8GB."
+#~ msgid "Partition is FAT16; Restricting overlay size to 2G"
+#~ msgstr "A partição é FAT16; A restringir a área persistente a 2GB"
+#~ msgid "Persistent Storage"
+#~ msgstr "Armazenamento persistente"
+#~ msgid "Unable to mount device"
+#~ msgstr "Não foi possível montar o dispositivo"
+#~ msgid "Setting up OLPC boot file..."
+#~ msgstr "A configurar ficheiro de arranque do OLPC..."
+#~ msgid "Unknown ISO, skipping checksum verification"
+#~ msgstr ""
+#~ "Tipo de ISO desconhecido, a passar à frente a verificação da assinatura "
+#~ "digital"
+#~ msgid ""
+#~ "\n"
+#~ "%dMB ISO + %dMB overlay > %dMB free space"
+#~ msgstr ""
+#~ "\n"
+#~ "%dMB ISO + %dMB área persistente > %dMB de espaço livre"
+#~ msgid "Creating"
+#~ msgstr "A criar"
+#~ msgid "persistent overlay"
+#~ msgstr "área persistente"
+#~ msgid "Resetting MBR..."
+#~ msgstr "A redefinir o MBR..."
+#~ msgid "device"
+#~ msgstr "dispositivo"
+#~ msgid "Your MBR appears to be blank"
+#~ msgstr "O seu MBR parece estar em branco"
+#~ msgid "Wrote to device at"
+#~ msgstr "Gravado no dispositivo em"
+#~ msgid "Verifying ISO MD5 checksum"
+#~ msgstr "A verificar a assinatura digital MD5 do ficheiro ISO"
+#~ msgid "Unable to find partition"
+#~ msgstr "Incapaz de encontrar a partição"
+#~ msgid "Installing bootloader"
+#~ msgstr "A instalar o gestor de arranque"
+#~ msgid "Cannot find"
+#~ msgstr "Não foi possível encontrar"
+
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644
index 0000000..88e570a
--- /dev/null
+++ b/po/pt_BR.po
@@ -0,0 +1,294 @@
+# Brazilian Portuguese translation of liveusb-creator.
+# This file is distributed under the same license as the liveusb-creator package.
+# Wilson Campos <wcampos5@gmail.com>, 2008.
+# Igor Pires Soares <igor@projetofedora.org>, 2008.
+# Daniel S. Koda <danielskoda@gmail.com>, 2008.
+# Rafael Gomes <rafaelgomes@projetofedora.org>, 2009
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: liveusb-creator\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2009-04-12 02:31-0300\n"
+"Last-Translator: Rafael Gomes <rafaelgomes@projetofedora.org>\n"
+"Language-Team: Brazilian Portuguese <fedora-trans-pt_br@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"X-Poedit-Language: Portuguese\n"
+"X-Poedit-Country: BRAZIL\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Versão desconhecida: %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "Baixando %s..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Verificando o sistema de arquivos..."
+
+#: ../liveusb/gui.py:155
+msgid "Error: Cannot set the label or obtain the UUID of your device. Unable to continue."
+msgstr "Erro: não foi possível definir o rótulo ou obter o UUID do seu dispositivo. Não foi possível continuar."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Verificando o SHA1 da imagem do LiveCD..."
+
+#: ../liveusb/gui.py:166
+msgid "Error: The SHA1 of your Live CD is invalid. You can run this program with the --noverify argument to bypass this verification check."
+msgstr "Erro: o SHA1 do seu LiveCD é inválido. Você pode executar este programa com o argumento --noverify para contornar essa verificação."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "Extraindo a imagem live para o dispositivo USB..."
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "Criando %d Mb de sobreposição persistente..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "Configurando e instalando o gerenciador de inicialização..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Concluído! (%s)"
+
+#: ../liveusb/gui.py:190
+#: ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "A criação do LiveUSB falhou!"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Armazenamento persistente (%d Mb)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"O seu dispositivo já contém um sistema Live.\n"
+"Se você continuar, ele será sobrescrito."
+
+#: ../liveusb/gui.py:337
+msgid "Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Aviso: a criação de uma nova camada persistente irá excluir a que já existe."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Pressione \"Criar Live USB\" novamente se você quiser continuar."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "Removendo o sistema operacional Live existente"
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "Download concluído!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "O download falhou: "
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Você pode tentar novamente para continuar o seu download"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Selecione uma ISO Live"
+
+#: ../liveusb/gui.py:399
+msgid "Sorry, I'm having trouble encoding the filename of your livecd. You may have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr "Infelizmente existe um problema na codificação do nome de arquivo do seu livecd. Você pode ser melhor sucedido se tentar mover a imagem ISO para a raiz do drive (ie: C:\\)."
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "ISO selecionado: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Problema encontrado ao executar o seguinte comando: \"%s\"\n"
+"Um arquivo detalhado de log foi gravado em \"liveusb-creator.log\""
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "Não há espaço suficiente no dispositivo."
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "Criando %sMB de sobreposição persistente..."
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Não foi possível remover o sistema Live anterior: %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "Não foi possível localizar o dispositivo %s"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "Não foi possível localizar nenhum dispositivo USB"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "Sistema de arquivos para %s desconhecido!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "Não foi possível montar o dispositivo: %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "Sistema de arquivos desconhecido para %s. Talvez o seu dispositivo precise ser reformatado."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Sistema de arquivos não suportado: %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "Não foi possível localizar um sistema Live na ISO"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "Não foi possível localizar dispositivos de disco removíveis"
+
+#: ../liveusb/creator.py:479
+msgid "Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr "Certifique-se de que o seu pendrive está conectado e formatado com o sistema de arquivos FAT"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Sistema de arquivos não suportado: %s\n"
+"Por favor, faça um backup e formate o seu pendrive com o sistema de arquivos FAT."
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid "Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file before running this program."
+msgstr "Não pode encontrar '%s'. Certifique-se de ter extraído todo o arquivo zip do liveusb-creator antes de executar esse programa."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Fedora LiveUSB Creator"
+
+#: ../liveusb/dialog.py:124
+msgid "This button will begin the LiveUSB creation process. This entails optionally downloading a release (if an existing one wasn't selected), extracting the ISO to the USB device, creating the persistent overlay, and installing the bootloader."
+msgstr "Este botão iniciará o processo de criação do LiveUSB. Isso inclui baixar a versão opcionalmente (caso nenhuma existente tenha sido selecionada), extrair a ISO para o dispositivo USB, criar a camada persistente e instalar o gerenciador de inicialização."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Criar Live USB"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Este é o console de status, onde todas as mensagens são escritas."
+
+#: ../liveusb/dialog.py:127
+msgid "This is the progress bar that will indicate how far along in the LiveUSB creation process you are"
+msgstr "Esta barra de progresso vai indicar o andamento do processo de criação do LiveUSB"
+
+#: ../liveusb/dialog.py:128
+msgid "If you do not select an existing Live CD, the selected release will be downloaded for you."
+msgstr "Caso você não selecione um Live CD existente, a versão selecionada será baixada para você."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Baixar Fedora"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "ou"
+
+#: ../liveusb/dialog.py:131
+msgid "This button allows you to browse for an existing Live CD ISO that you have previously downloaded. If you do not select one, a release will be downloaded for you automatically."
+msgstr "Este botão permite que você procure por uma ISO de Live CD que tenha sido baixada anteriormente. Se você não selecionar, uma versão será baixada pra você automaticamente."
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Usar Live CD existente"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Navegar"
+
+#: ../liveusb/dialog.py:135
+msgid "This is the USB stick that you want to install your Live CD on. This device must be formatted with the FAT filesystem."
+msgstr "Este é o dispositivo USB no qual você deseja instalar seu Live CD. O dispositivo deve estar formatado com um sistema de arquivos FAT."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Dispositivo de destino"
+
+#: ../liveusb/dialog.py:137
+msgid "By allocating extra space on your USB stick for a persistent overlay, you will be able to store data and make permanent modifications to your live operating system. Without it, you will not be able to save data that will persist after a reboot."
+msgstr "Ao alocar espaço extra no pendrive para uma camada persistente, você poderá gravar dados e fazer modificações no seu sistema operacional Live. Sem isso, você não poderá guardar dados que persistam após uma reinicialização."
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Armazenamento persistente (0 Mb)"
+
+#~ msgid "You must run this application as root"
+#~ msgstr "Você deve executar este aplicativo como administrador"
+#~ msgid "Persistent Storage"
+#~ msgstr "Armazenamento persistente"
+#~ msgid "Setting up OLPC boot file..."
+#~ msgstr "Configurando o arquivo de inicialização do OLPC..."
+#~ msgid "Unknown ISO, skipping checksum verification"
+#~ msgstr "ISO desconhecida, ignorando a verificação de checksum"
+#~ msgid ""
+#~ "\n"
+#~ "%dMB ISO + %dMB overlay > %dMB free space"
+#~ msgstr ""
+#~ "\n"
+#~ "%d MB da ISO + %d MB de persistência > %d MB de espaço livre"
+#~ msgid "Creating"
+#~ msgstr "Criando"
+#~ msgid "Resetting MBR..."
+#~ msgstr "Redefinindo MBR..."
+#~ msgid "device"
+#~ msgstr "dispositivo"
+#~ msgid "Your MBR appears to be blank"
+#~ msgstr "A sua MBR parece estar em branco"
+#~ msgid "Wrote to device at"
+#~ msgstr "Gravar no dispositivo em"
+#~ msgid "Verifying ISO MD5 checksum"
+#~ msgstr "Verificando o checksum MD5 da imagem ISO"
+#~ msgid "Installing bootloader"
+#~ msgstr "Instalando o gerenciador de inicialização"
+#~ msgid "Cannot find"
+#~ msgstr "Não foi possível localizar"
+
diff --git a/po/ro.po b/po/ro.po
new file mode 100644
index 0000000..d61b9c7
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,294 @@
+# Translation of seed.po to Romanian
+# Copyright (c) 1999-2010 Mandriva
+#
+# Vă rugăm să nu actualizaţi fișierul, cu excepția cazului în care sînteți
+# sigur de calitatea traducerii dumneavoastră, de gramatică și de ortografie.
+# Acestea din urmă sînt de prea multe ori aproximative.
+# Corectarea lor ulterioară nu are nici un alt rezultat decît acela de
+# pierdere de timp pentru toata lumea.
+#
+# VĂ RUGĂM SĂ RESPECTAȚI SEMNELE DE PUNCTUAȚIE ALE LIMBII ROMÂNE!
+#
+# Nu suprimați spațiul care urmează unui semn de punctuație de sfîrșit de
+# frază; trebuie respectată versiunea originală. În acest caz, este foarte
+# probabil ca programul să afișeze un mesaj la sfîrșit. Suprimînd acel spațiu,
+# cele două cuvintele vor fi afișate legat.
+#
+# Traduceți de manieră INTELIGENTĂ (de ce nu și prin comparație cu alte
+# traduceri ale acestui fișier în alte limbi) și nu cuvînt cu cuvînt. Unele
+# astfel de traduceri nu au nici un sens în limba română.
+#
+# ATENȚIE LA FONTURILE UTILIZATE! Pentru a reda corect diacriticele folosiți
+# disponerea tastaturii românească standard, codarea de caractere UTF-8 și
+# asigurați-vă că fonturile utilizate sînt cu virgulițe, NU CU SEDILE!
+# Exemplu:
+# font incorect (cu sedile): şŞ ţŢ
+# font corect (cu virgule): șȘ țȚ
+#
+# Pentru a vă asigura că folosiți fonturile corecte, vizitați:
+# http://i18n.ro/Fonturi_romanesti/testare
+#
+# Vă mulțumim pentru înțelegere.
+# Echipa de traducători,
+# www.Mandrivausers.ro
+#
+# Traducători de-a lungul timpului:
+#
+# Florin Cătălin RUSSEN <cfrussen@yahoo.co.uk>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seed\n"
+"Report-Msgid-Bugs-To: https://qa.mandriva.com\n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2010-05-27 14:49+0100\n"
+"Last-Translator: Cătălin Florin RUSSEN <cfrussen@yahoo.co.uk>\n"
+"Language-Team: Romanian <cooker-i18n@mandrivalinux.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3;plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1))\n"
+"X-Poedit-Language: Romanian\n"
+"X-Poedit-Country: ROMANIA\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Ediție necunoscută: %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "Se descarcă %s..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Se verifică sistemul de fișiere..."
+
+#: ../liveusb/gui.py:155
+msgid "Error: Cannot set the label or obtain the UUID of your device. Unable to continue."
+msgstr "Eroare: Nu se poate defini eticheta sau obține UUID-ul dispozitivului. Nu se poate continua."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Se veifică semnătura SHA1 a imaginii Live CD..."
+
+#: ../liveusb/gui.py:166
+msgid "Error: The SHA1 of your Live CD is invalid. You can run this program with the --noverify argument to bypass this verification check."
+msgstr "Eroare: Semnătura SHA1 a imaginii Live CD este invalidă. Puteți executa acest program cu argumentul --noverify pentru a omite acest control de verificare."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "Se extrage imaginea Live pe dispozitivul USB..."
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "Se creează %d Mo de segment persistent..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "Se configurează și inițializează încărcătorul de sistem..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Terminat! (%s)"
+
+#: ../liveusb/gui.py:190
+#: ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "Crearea Live USB a eșuat!"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Mediu de stocare persistent (%d Mo)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"Dispozitivul conține deja un Live OS.\n"
+"Dacă veți continua, acesta va fi suprascris."
+
+#: ../liveusb/gui.py:337
+msgid "Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Avertisment: Crearea unui nou segment persistent va șterge pe cel existent."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Apăsați „Creează Live USB” din nou dacă doriți să continuați."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "Se înlătură Live OS-ul existent..."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "Descărcare completă!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "Descărcare eșuată:"
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Puteți încerca din nou să reluați descărcarea"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Selectați Live ISO"
+
+#: ../liveusb/gui.py:399
+msgid "Sorry, I'm having trouble encoding the filename of your livecd. You may have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr "Regrete, sînt probleme la codarea numelui fișierului imaginii voastre Live CD. Ați putea avea mai multe șanse dacă deplasați imaginea ISO în rădăcina discului vostru (ex: C:\\)"
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "ISO selectat: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"A apărut o problemă la executarea următoarei comenzi: „%s”\n"
+"Un jurnal de eroare mai detaliat a fost scris în „liveusb-creator.log”"
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "Nu este spațiu liber suficient pe dispozitiv."
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "Se creează %Mo de segment persistent"
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Nu s-a putut înlătura Live OS-ul precedent: %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "Nu s-a putut găsi dispozitivul %s"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "Nu s-a putut găsi nici o unitate USB"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "Sistem de fișiere necunoscut pentru %s!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "Nu s-a putut monta dispozitivul: %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "Sistem de fișiere necunoscut pentru %s. Dispozitivul poate necesita o reformatare."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Sistem de fișiere nesuportat: %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "Nu s-a putut găsi un Live OS în ISO"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "Nu s-a putut găsi nici un dispozitiv amovibil"
+
+#: ../liveusb/creator.py:479
+msgid "Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr "Asigurați-vă că cheia USB este conectată și formatată cu sistemul de fișiere FAT"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Sistem de fișiere nesuportat: %s\n"
+"Salvgardați și formatați cheia USB cu sistemul de fișiere FAT."
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid "Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file before running this program."
+msgstr "Nu s-a putut găsi „%s”. Asigurați-vă că ați extras fișierul zip liveusb-creator în întregime înainte de a executa acest program."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Creatorul Live USB Fedora"
+
+#: ../liveusb/dialog.py:124
+msgid "This button will begin the LiveUSB creation process. This entails optionally downloading a release (if an existing one wasn't selected), extracting the ISO to the USB device, creating the persistent overlay, and installing the bootloader."
+msgstr "Acest buton va declanșa procesul de creare Live USB. Acest lucru implică descărcarea opțională a unei versiuni (dacă nu a fost selectată nici una existentă), extragerea imaginii ISO pe dispozitivul USB, crearea unui segment permanent și instalarea încărcătorului de sistem."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Creează Live USB"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Aceasta este consola de stare, în care toare mesajele sînt scrise."
+
+#: ../liveusb/dialog.py:127
+msgid "This is the progress bar that will indicate how far along in the LiveUSB creation process you are"
+msgstr "Aceasta este bara de progresie care vă indică cît de avansat sînteți în procesul de creare Live USB"
+
+#: ../liveusb/dialog.py:128
+msgid "If you do not select an existing Live CD, the selected release will be downloaded for you."
+msgstr "Dacă nu alegeți un Live CD existent, versiunea selectată va fi descărcată."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Descarcă Fedora"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "sau"
+
+#: ../liveusb/dialog.py:131
+msgid "This button allows you to browse for an existing Live CD ISO that you have previously downloaded. If you do not select one, a release will be downloaded for you automatically."
+msgstr "Acest buton vă permite să navigați pînă la un ISO de Live CD pe care l-ați descărcat mai înainte. Dacă nu selectați nici unul, o versiune va fi descărcată automat."
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Utilizează Live CD-ul existent"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Navighează"
+
+#: ../liveusb/dialog.py:135
+msgid "This is the USB stick that you want to install your Live CD on. This device must be formatted with the FAT filesystem."
+msgstr "Aceasta este cheia USB pe care doriți să instalați Live CD-ul. Acest dispozitiv trebuie formatat cu sistemul de fișiere FAT."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Dispozitivul destinație"
+
+#: ../liveusb/dialog.py:137
+msgid "By allocating extra space on your USB stick for a persistent overlay, you will be able to store data and make permanent modifications to your live operating system. Without it, you will not be able to save data that will persist after a reboot."
+msgstr "Prin alocarea unui spațiu suplimentar pe cheia USB pentru segmentul persistent, veți putea stoca date și opera modificări permanente pe sistemul vostru de operare Live. Fără acest spațiu nu veți putea salva date care să persiste după repornire."
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Mediu de stocare persistent (0 Mo)"
+
diff --git a/po/sk.po b/po/sk.po
new file mode 100644
index 0000000..d583c96
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,354 @@
+# Slovak translation for liveusb-creator package.
+# This file is distributed under the same license as the liveusb-creator package.
+#
+# Ondrej Šulek <feonsu@gmail.com>, 2008, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: liveusb-creator\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2009-04-02 15:46+0200\n"
+"Last-Translator: Ondrej Šulek <feonsu@gmail.com>\n"
+"Language-Team: Slovak <fedora-trans-sk@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Lokalize 0.3\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Neznáme vydanie: %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "Sťahujem %s..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Kontroluje sa súborový systém..."
+
+#: ../liveusb/gui.py:155
+msgid ""
+"Error: Cannot set the label or obtain the UUID of your device. Unable to "
+"continue."
+msgstr ""
+"Chyba: Nie je možné nastaviť menovka alebo získať UUID vašeho zariadenia. "
+"Nie je "
+"možné pokračovať."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Kontroluje sa SHA1 LiveCD obrazu..."
+
+#: ../liveusb/gui.py:166
+msgid ""
+"Error: The SHA1 of your Live CD is invalid. You can run this program with "
+"the --noverify argument to bypass this verification check."
+msgstr ""
+"Chyba: SHA1 kontrolný súčet Live CD je neplatný. Na preskočenie tejto "
+"kontroly, spustite program s parametrom --noverify."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "Rozbaľovanie live obrazu na USB zariadenie..."
+
+#: ../liveusb/gui.py:180, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "Vytváram %d Mb trvalé úložisko..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "Konfigurovanie a inštalovanie zavádzača..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Hotovo! (%s)"
+
+#: ../liveusb/gui.py:190 ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "Vytvorenie LiveUSB zlyhalo!"
+
+#: ../liveusb/gui.py:316, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Trvalé úložisko (%d Mb)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"Vaše zariadenie už obsahuje LiveOS.\n"
+"Pri pokračovaní, bude prepísaný."
+
+#: ../liveusb/gui.py:337
+msgid ""
+"Warning: Creating a new persistent overlay will delete your existing one."
+msgstr ""
+"Upozornenie: vytvorením nového trvalého úložiska sa zmaže už existujúce."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Stlačte 'Vytvoriť Live USB' znovu ak chcete pokračovať."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "Odstraňuje sa existujúci Live OS..."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "Sťahovanie dokončené!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "Sťahovanie zlyhalo: "
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Skúste znovu spustiť sťahovanie"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Vyberte Live ISO"
+
+#: ../liveusb/gui.py:399
+msgid ""
+"Sorry, I'm having trouble encoding the filename of your livecd. You may "
+"have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr ""
+"Nastal problém s kódovaním mena súboru LiveCD. Skúste presunúť ISO do koreňa "
+"vášho disku (napr. C:\\)"
+
+#: ../liveusb/gui.py:404, python-format
+msgid "ISO selected: %s"
+msgstr "Vybrané ISO: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Nastal problém so spúšťaním nasledujúceho príkazu: `%s`\n"
+"Viac detailov o tejto chybe bude zapísaných do 'liveusb-creator.log'"
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "Na zariadení nie je dostatok miesta."
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "Vytváram %sMB trvalé úložisko"
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Nepodarilo sa odstrániť predchádzajúci LiveOS: %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "Nie je možné nájsť zariadenie %s"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "Nepodarilo sa nájsť žiadne USB disky"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "Neznámy súborový systém pre %s!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "Nepodarilo sa pripojiť zariadenie: %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr ""
+"Neznámy súborový systém pre %s. Zariadenie pravdepodobne potrebuje pre-"
+"formátovať."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Nepodporovaný súborový systém: %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "Nepodarilo sa nájsť LiveOS v ISO"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "Nepodarili sa nájsť žiadne vymeniteľné zariadenia"
+
+#: ../liveusb/creator.py:479
+msgid ""
+"Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr ""
+"Skontrolujte, či je USB kľúč pripojený a naformátovaný na súborový systém FAT"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Nepodporovaný súborový systém: %s\n"
+"Spravte zálohu a naformátujte USB kľúč na súborový systém FAT."
+
+#: ../liveusb/creator.py:558, python-format
+msgid ""
+"Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file "
+"before running this program."
+msgstr ""
+"Nie je možné nájsť '%s'. Skontrolujte, či ste rozbalili celý zip súbor "
+"liveusb-creator pred spustením "
+"tohto programu."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Fedora tvorca LiveUSB"
+
+#: ../liveusb/dialog.py:124
+msgid ""
+"This button will begin the LiveUSB creation process. This entails "
+"optionally downloading a release (if an existing one wasn't selected), "
+"extracting the ISO to the USB device, creating the persistent overlay, and "
+"installing the bootloader."
+msgstr ""
+"Toto tlačítko začne proces vytvorenia LiveUSB. Bude to mať za následok "
+"prípadné stiahnutie vydania (ak žiadne existujúce nebolo vybrané), "
+"rozbalenie ISO na USB zariadenie, vytvorenie trvalého úložiska a inštaláciu "
+"zavádzača."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Vytvoriť Live USB"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Stavová konzola, kde budú vypisované všetky správy."
+
+#: ../liveusb/dialog.py:127
+msgid ""
+"This is the progress bar that will indicate how far along in the LiveUSB "
+"creation process you are"
+msgstr ""
+"Ukazovateľ priebehu, ktorý indikuje ako ďaleko sa nachádza proces vytvárania "
+"LiveUSB"
+
+#: ../liveusb/dialog.py:128
+msgid ""
+"If you do not select an existing Live CD, the selected release will be "
+"downloaded for you."
+msgstr ""
+"Ak ste nevybrali existujúce Live CD z disku, vybrané vydanie bude stiahnuté."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Stiahnuť Fedoru"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "alebo"
+
+#: ../liveusb/dialog.py:131
+msgid ""
+"This button allows you to browse for an existing Live CD ISO that you have "
+"previously downloaded. If you do not select one, a release will be "
+"downloaded for you automatically."
+msgstr ""
+"Toto tlačítko vám umožní prechádzať disk a vybrať existujúce Live CD ISO, "
+"ktoré ste už predtým stiahli. Ak žiadne nevyberiete, odpovedajúce vydanie "
+"bude automaticky stiahnuté."
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Použiť existujúce Live CD"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Prechádzať"
+
+#: ../liveusb/dialog.py:135
+msgid ""
+"This is the USB stick that you want to install your Live CD on. This device "
+"must be formatted with the FAT filesystem."
+msgstr ""
+"Toto je USB kľúč, na ktorý chcete nainštalovať Live CD. Zariadenie musí byť "
+"naformátované na súborový systém FAT."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Cieľové zariadenie"
+
+#: ../liveusb/dialog.py:137
+msgid ""
+"By allocating extra space on your USB stick for a persistent overlay, you "
+"will be able to store data and make permanent modifications to your live "
+"operating system. Without it, you will not be able to save data that will "
+"persist after a reboot."
+msgstr ""
+"Pridelením miesta pre trvalé úložisko na váš USB kľúč budete schopný ukladať "
+"dáta a trvalé zmeny vášho Live operačného systému. Bez neho neostanú zmeny "
+"po reštarte počítača uložené."
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Trvalé úložisko (0 Mb)"
+
+#~ msgid "You must run this application as root"
+#~ msgstr "Túto aplikáciu musíte spúšťať ako root"
+
+#~ msgid "Persistent Storage"
+#~ msgstr "Trvalé úložisko"
+
+#~ msgid "Setting up OLPC boot file..."
+#~ msgstr "Nastavuje sa zavádzací súbor OLPC..."
+
+#~ msgid "Unknown ISO, skipping checksum verification"
+#~ msgstr "Neznáme ISO, preskakuje sa overenie kontrolného súčtu"
+
+#~ msgid ""
+#~ "\n"
+#~ "%dMB ISO + %dMB overlay > %dMB free space"
+#~ msgstr ""
+#~ "\n"
+#~ "%dMB ISO + %dMB trvalé úložisko > %dMB voľné miesto"
+
+#~ msgid "Creating"
+#~ msgstr "Vytvára sa"
+
+#~ msgid "persistent overlay"
+#~ msgstr "trvalé úložisko"
+
+#~ msgid "Resetting MBR..."
+#~ msgstr "Obnovuje sa MBR..."
+
+#~ msgid "device"
+#~ msgstr "zariadenie"
+
+#~ msgid "Your MBR appears to be blank"
+#~ msgstr "MBR sa zdá byť prázdna"
+
+#~ msgid "Wrote to device at"
+#~ msgstr "Zapísané na zariadenie za"
+
+#~ msgid "Verifying ISO MD5 checksum"
+#~ msgstr "Overuje sa ISO kontrolný súčet MD5"
+
+#~ msgid "Installing bootloader"
+#~ msgstr "Inštaluje sa zavádzač"
+
+#~ msgid "Cannot find"
+#~ msgstr "Nepodarilo sa nájsť"
diff --git a/po/sr.po b/po/sr.po
new file mode 100644
index 0000000..406b08d
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,351 @@
+# Serbian translations for liveusb-creator
+# Copyright (C) 2008 Red Hat, Inc.
+# This file is distributed under the same license as the liveusb-creator package.
+# Igor Miletic <grejigl-gnomeprevod@yahoo.ca>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: liveusb-creator\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2009-03-20 21:34+0100\n"
+"Last-Translator: Miloš Komarčević <kmilos@gmail.com>\n"
+"Language-Team: Serbian (sr) <fedora-trans-sr@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Непознато издање %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "Преузимам %s..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Проверавам систем датотека..."
+
+#: ../liveusb/gui.py:155
+msgid ""
+"Error: Cannot set the label or obtain the UUID of your device. Unable to "
+"continue."
+msgstr ""
+"Грешка: не могу да поставим ознаку или добавим UUID уређаја. У немогућности "
+"да наставим даље."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Проверавам SHA1 суму отиска живог ЦД диска..."
+
+#: ../liveusb/gui.py:166
+msgid ""
+"Error: The SHA1 of your Live CD is invalid. You can run this program with "
+"the --noverify argument to bypass this verification check."
+msgstr ""
+"Грешка: SHA1 сума живог ЦД диска је неисправна. Можете покренути овај "
+"програм са --noverify аргументом како бисте заобишли проверу."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "Издвајам живи на УСБ уређај..."
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "Правим %d МБ трајни слој..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "Подешавам и инсталирам покретачки програм..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Готово! (%s)"
+
+#: ../liveusb/gui.py:190 ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "Прављење живог УСБ система није успело!"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Трајно складиште (%d Мб)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"Ваш уређај већ садржи живи ОС.\n"
+"Уколико наставите, биће пребрисан."
+
+#: ../liveusb/gui.py:337
+msgid ""
+"Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Упозорење: прављењем новог трајног слоја ћете обрисати постојеће."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Притисните „Направи живи УСБ“ поново уколико желите наставити."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "Уклањам постојећи живи ОС..."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "Преузимање завршено!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "Преузимање је неуспешно:"
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Можете покушати опет да наставите ваше преузимање"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Изаберите живи ISO"
+
+#: ../liveusb/gui.py:399
+msgid ""
+"Sorry, I'm having trouble encoding the filename of your livecd. You may "
+"have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr ""
+"Жао ми је, али постоје проблеми при кодирању назива датотека датотека живог "
+"ЦД-а. Можда ћете имати више среће уколико преместите ваш ISO у корени "
+"директоријум вашег уређаја (нпр. C:\\)"
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "ISO је изабран: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Дошло је до проблема приликом извршавања следеће наредбе: „%s“\n"
+"Дневник са више детаља је записан у „liveusb-creator.log“"
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "Недовољно слободног простора на уређају."
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "Правим %sМБ трајни слој"
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Не могу да уклоним претходни живи ОС: %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "Не могу да пронађем уређај %s"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "Не могу да пронађем ниједан УСБ уређај"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "Систем датотека за %s непознат!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "У немогућности да монтирам уређај: %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "Непознат систем датотека за %s. Можда је уређају потребно форматирање."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Неподржан систем датотека: %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "Не могу да пронађем живи ОС на ISO отиску"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "Не могу да пронађем ниједан преносиви уређај"
+
+#: ../liveusb/creator.py:479
+msgid ""
+"Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr "Побрините се да је УСБ убачен и форматиран са FAT системом датотека"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Неподржан систем датотека: %s\n"
+"Направите резервну копију и потом форматирајте УСБ уређај са FAT системом "
+"датотека."
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid ""
+"Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file "
+"before running this program."
+msgstr ""
+"Не могу да нађем „%s“. Побрините се да отпакујете liveusb-creator zip "
+"датотеку у целости пре покретања овог програма."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Програм за прављење живих Fedora УСБ дискова"
+
+#: ../liveusb/dialog.py:124
+msgid ""
+"This button will begin the LiveUSB creation process. This entails "
+"optionally downloading a release (if an existing one wasn't selected), "
+"extracting the ISO to the USB device, creating the persistent overlay, and "
+"installing the bootloader."
+msgstr ""
+"Ово дугме покреће поступак прављења живих УСБ система. То укључује и изборно "
+"преузимање издања (уколико постојећи није био изабран), распакивање ISO "
+"отиска на УСБ уређај, правећи трајни слој, и инсталирање покретачког "
+"програма."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Направи живи УСБ"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Ово је статусна конзола где се све поруке записују."
+
+#: ../liveusb/dialog.py:127
+msgid ""
+"This is the progress bar that will indicate how far along in the LiveUSB "
+"creation process you are"
+msgstr ""
+"Ово је линија прогреса која показује докле сте стигли у поступку прављења "
+"живог УСБ система"
+
+#: ../liveusb/dialog.py:128
+msgid ""
+"If you do not select an existing Live CD, the selected release will be "
+"downloaded for you."
+msgstr ""
+"Уколико не одаберете постојећи живи ЦД, изабрано издање ће бити преузето за "
+"вас."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Преузмите Fedora систем"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "или"
+
+#: ../liveusb/dialog.py:131
+msgid ""
+"This button allows you to browse for an existing Live CD ISO that you have "
+"previously downloaded. If you do not select one, a release will be "
+"downloaded for you automatically."
+msgstr ""
+"Ово дугме вам дозвољава да претражујете постојећи живи ЦД ISO отисак који "
+"сте претходно преузели. Уколико не одаберете један, одређено издање ће бити "
+"преузето самостално."
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Користи постојећи живи ЦД"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Прегледај"
+
+#: ../liveusb/dialog.py:135
+msgid ""
+"This is the USB stick that you want to install your Live CD on. This device "
+"must be formatted with the FAT filesystem."
+msgstr ""
+"Ово је УСБ уређај на који желите да инсталирате живи ЦД. Овај уређај мора "
+"бити форматиран са FAT системом датотека."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Одредишни уређај"
+
+#: ../liveusb/dialog.py:137
+msgid ""
+"By allocating extra space on your USB stick for a persistent overlay, you "
+"will be able to store data and make permanent modifications to your live "
+"operating system. Without it, you will not be able to save data that will "
+"persist after a reboot."
+msgstr ""
+"Доделом додатног простора на УСБ уређају за трајни слој, бићете у могућности "
+"да складиштите податке и вршите трајне измене у живом оперативном систему. "
+"Без тога, нећете бити у могућности да снимите податке који ће остати и након "
+"поновног дизања система."
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Трајно складиште (0 Мб)"
+
+#~ msgid "You must run this application as root"
+#~ msgstr "Морате покренути овај програм кроз „root“ налог"
+
+#~ msgid "Persistent Storage"
+#~ msgstr "Трајно складиште"
+
+#~ msgid "Setting up OLPC boot file..."
+#~ msgstr "Постављам OLPC покретачку датотеку..."
+
+#~ msgid "Unknown ISO, skipping checksum verification"
+#~ msgstr "Непознати ISO, прескачем проверу контролне суме"
+
+#~ msgid ""
+#~ "\n"
+#~ "%dMB ISO + %dMB overlay > %dMB free space"
+#~ msgstr ""
+#~ "\n"
+#~ "%dМБ ISO + %dМБ слој > %dМБ слободног простора"
+
+#~ msgid "Creating"
+#~ msgstr "Правим"
+
+#~ msgid "persistent overlay"
+#~ msgstr "трајни слој"
+
+#~ msgid "device"
+#~ msgstr "уређај"
+
+#~ msgid "Wrote to device at"
+#~ msgstr "Писао уређају на"
+
+#~ msgid "Verifying ISO MD5 checksum"
+#~ msgstr "Проверавам ISO MD5 контролну суму"
+
+#~ msgid "Installing bootloader"
+#~ msgstr "Инсталирам покретачки програм"
+
+#~ msgid "Cannot find"
+#~ msgstr "Не могу да нађем"
diff --git a/po/sr@latin.po b/po/sr@latin.po
new file mode 100644
index 0000000..25fc8e8
--- /dev/null
+++ b/po/sr@latin.po
@@ -0,0 +1,352 @@
+# Serbian(Latin) translations for liveusb-creator
+# Copyright (C) 2008 Red Hat, Inc.
+# This file is distributed under the same license as the liveusb-creator package.
+# Igor Miletic <grejigl-gnomeprevod@yahoo.ca>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: liveusb-creator\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2009-03-20 21:34+0100\n"
+"Last-Translator: Miloš Komarčević <kmilos@gmail.com>\n"
+"Language-Team: Serbian (sr) <fedora-trans-sr@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Nepoznato izdanje %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "Preuzimam %s..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Proveravam sistem datoteka..."
+
+#: ../liveusb/gui.py:155
+msgid ""
+"Error: Cannot set the label or obtain the UUID of your device. Unable to "
+"continue."
+msgstr ""
+"Greška: ne mogu da postavim oznaku ili dobavim UUID uređaja. U nemogućnosti "
+"da nastavim dalje."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "Proveravam SHA1 sumu otiska živog CD diska..."
+
+#: ../liveusb/gui.py:166
+msgid ""
+"Error: The SHA1 of your Live CD is invalid. You can run this program with "
+"the --noverify argument to bypass this verification check."
+msgstr ""
+"Greška: SHA1 suma živog CD diska je neispravna. Možete pokrenuti ovaj "
+"program sa --noverify argumentom kako biste zaobišli proveru."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "Izdvajam živi na USB uređaj..."
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "Pravim %d MB trajni sloj..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "Podešavam i instaliram pokretački program..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Gotovo! (%s)"
+
+#: ../liveusb/gui.py:190 ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "Pravljenje živog USB sistema nije uspelo!"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Trajno skladište (%d Mb)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"Vaš uređaj već sadrži živi OS.\n"
+"Ukoliko nastavite, biće prebrisan."
+
+#: ../liveusb/gui.py:337
+msgid ""
+"Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Upozorenje: pravljenjem novog trajnog sloja ćete obrisati postojeće."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Pritisnite „Napravi živi USB“ ponovo ukoliko želite nastaviti."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "Uklanjam postojeći živi OS..."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "Preuzimanje završeno!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "Preuzimanje je neuspešno:"
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "Možete pokušati opet da nastavite vaše preuzimanje"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "Izaberite živi ISO"
+
+#: ../liveusb/gui.py:399
+msgid ""
+"Sorry, I'm having trouble encoding the filename of your livecd. You may "
+"have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr ""
+"Žao mi je, ali postoje problemi pri kodiranju naziva datoteka datoteka živog "
+"CD-a. Možda ćete imati više sreće ukoliko premestite vaš ISO u koreni "
+"direktorijum vašeg uređaja (npr. C:\\)"
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "ISO je izabran: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Došlo je do problema prilikom izvršavanja sledeće naredbe: „%s“\n"
+"Dnevnik sa više detalja je zapisan u „liveusb-creator.log“"
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "Nedovoljno slobodnog prostora na uređaju."
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "Pravim %sMB trajni sloj"
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Ne mogu da uklonim prethodni živi OS: %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "Ne mogu da pronađem uređaj %s"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "Ne mogu da pronađem nijedan USB uređaj"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "Sistem datoteka za %s nepoznat!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "U nemogućnosti da montiram uređaj: %s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr ""
+"Nepoznat sistem datoteka za %s. Možda je uređaju potrebno formatiranje."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Nepodržan sistem datoteka: %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "Ne mogu da pronađem živi OS na ISO otisku"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "Ne mogu da pronađem nijedan prenosivi uređaj"
+
+#: ../liveusb/creator.py:479
+msgid ""
+"Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr "Pobrinite se da je USB ubačen i formatiran sa FAT sistemom datoteka"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Nepodržan sistem datoteka: %s\n"
+"Napravite rezervnu kopiju i potom formatirajte USB uređaj sa FAT sistemom "
+"datoteka."
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid ""
+"Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file "
+"before running this program."
+msgstr ""
+"Ne mogu da nađem „%s“. Pobrinite se da otpakujete liveusb-creator zip "
+"datoteku u celosti pre pokretanja ovog programa."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Program za pravljenje živih Fedora USB diskova"
+
+#: ../liveusb/dialog.py:124
+msgid ""
+"This button will begin the LiveUSB creation process. This entails "
+"optionally downloading a release (if an existing one wasn't selected), "
+"extracting the ISO to the USB device, creating the persistent overlay, and "
+"installing the bootloader."
+msgstr ""
+"Ovo dugme pokreće postupak pravljenja živih USB sistema. To uključuje i "
+"izborno preuzimanje izdanja (ukoliko postojeći nije bio izabran), "
+"raspakivanje ISO otiska na USB uređaj, praveći trajni sloj, i instaliranje "
+"pokretačkog programa."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Napravi živi USB"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Ovo je statusna konzola gde se sve poruke zapisuju."
+
+#: ../liveusb/dialog.py:127
+msgid ""
+"This is the progress bar that will indicate how far along in the LiveUSB "
+"creation process you are"
+msgstr ""
+"Ovo je linija progresa koja pokazuje dokle ste stigli u postupku pravljenja "
+"živog USB sistema"
+
+#: ../liveusb/dialog.py:128
+msgid ""
+"If you do not select an existing Live CD, the selected release will be "
+"downloaded for you."
+msgstr ""
+"Ukoliko ne odaberete postojeći živi CD, izabrano izdanje će biti preuzeto za "
+"vas."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Preuzmite Fedora sistem"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "ili"
+
+#: ../liveusb/dialog.py:131
+msgid ""
+"This button allows you to browse for an existing Live CD ISO that you have "
+"previously downloaded. If you do not select one, a release will be "
+"downloaded for you automatically."
+msgstr ""
+"Ovo dugme vam dozvoljava da pretražujete postojeći živi CD ISO otisak koji "
+"ste prethodno preuzeli. Ukoliko ne odaberete jedan, određeno izdanje će biti "
+"preuzeto samostalno."
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Koristi postojeći živi CD"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Pregledaj"
+
+#: ../liveusb/dialog.py:135
+msgid ""
+"This is the USB stick that you want to install your Live CD on. This device "
+"must be formatted with the FAT filesystem."
+msgstr ""
+"Ovo je USB uređaj na koji želite da instalirate živi CD. Ovaj uređaj mora "
+"biti formatiran sa FAT sistemom datoteka."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Odredišni uređaj"
+
+#: ../liveusb/dialog.py:137
+msgid ""
+"By allocating extra space on your USB stick for a persistent overlay, you "
+"will be able to store data and make permanent modifications to your live "
+"operating system. Without it, you will not be able to save data that will "
+"persist after a reboot."
+msgstr ""
+"Dodelom dodatnog prostora na USB uređaju za trajni sloj, bićete u mogućnosti "
+"da skladištite podatke i vršite trajne izmene u živom operativnom sistemu. "
+"Bez toga, nećete biti u mogućnosti da snimite podatke koji će ostati i nakon "
+"ponovnog dizanja sistema."
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Trajno skladište (0 Mb)"
+
+#~ msgid "You must run this application as root"
+#~ msgstr "Morate pokrenuti ovaj program kroz „root“ nalog"
+
+#~ msgid "Persistent Storage"
+#~ msgstr "Trajno skladište"
+
+#~ msgid "Setting up OLPC boot file..."
+#~ msgstr "Postavljam OLPC pokretačku datoteku..."
+
+#~ msgid "Unknown ISO, skipping checksum verification"
+#~ msgstr "Nepoznati ISO, preskačem proveru kontrolne sume"
+
+#~ msgid ""
+#~ "\n"
+#~ "%dMB ISO + %dMB overlay > %dMB free space"
+#~ msgstr ""
+#~ "\n"
+#~ "%dMB ISO + %dMB sloj > %dMB slobodnog prostora"
+
+#~ msgid "Creating"
+#~ msgstr "Pravim"
+
+#~ msgid "persistent overlay"
+#~ msgstr "trajni sloj"
+
+#~ msgid "device"
+#~ msgstr "uređaj"
+
+#~ msgid "Wrote to device at"
+#~ msgstr "Pisao uređaju na"
+
+#~ msgid "Verifying ISO MD5 checksum"
+#~ msgstr "Proveravam ISO MD5 kontrolnu sumu"
+
+#~ msgid "Installing bootloader"
+#~ msgstr "Instaliram pokretački program"
+
+#~ msgid "Cannot find"
+#~ msgstr "Ne mogu da nađem"
diff --git a/po/th.po b/po/th.po
new file mode 100644
index 0000000..476ff11
--- /dev/null
+++ b/po/th.po
@@ -0,0 +1,314 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: liveusb-creator\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-03-13 07:55+0000\n"
+"PO-Revision-Date: 2009-03-13 17:20+0700\n"
+"Last-Translator: Manatsawin Hanmongkolchai <manatsawin@gmail.com>\n"
+"Language-Team: Thai <thai-l10n@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Thai\n"
+"X-Poedit-Country: Thailand\n"
+
+#: ../liveusb/__init__.py:42
+msgid "You must run this application as root"
+msgstr "คุณต้องรันโปรแกรมนี้เป็นรูท"
+
+#: ../liveusb/gui.py:74
+#, python-format
+msgid "Unknown release: %s"
+msgstr "ไม่รู้จักรุ่น: %s"
+
+#: ../liveusb/gui.py:78
+#, python-format
+msgid "Downloading %s..."
+msgstr "กำลังดาวน์โหลด %s..."
+
+#: ../liveusb/gui.py:173
+msgid "Error: Cannot set the label or obtain the UUID of your device. Unable to continue."
+msgstr "ผิดพลาด: ไม่สามารถกำหนดชื่อหรือหา UUID ของอุปกรณ์ของคุณ ไม่สามารถดำเนินการต่อได้"
+
+#: ../liveusb/gui.py:203
+#, python-format
+msgid "Complete! (%s)"
+msgstr "เสร็จสิ้น! (%s)"
+
+#: ../liveusb/gui.py:207
+msgid "LiveUSB creation failed!"
+msgstr "การสร้าง LiveUSB ไม่สำเร็จ!"
+
+#: ../liveusb/gui.py:343
+msgid "Device is not yet mounted, so we cannot determine the amount of free space. Setting a maximum limit of 8G for the persistent storage."
+msgstr "อุปกรณ์ยังไม่ได้ถูกเมานต์ ดังนั้นเราไม่สามารถหาปริมาณที่ว่างได้ จะกำหนดขนาดที่เก็บถาวรสูงสุดเป็น 8G"
+
+#: ../liveusb/gui.py:351
+msgid "Partition is FAT16; Restricting overlay size to 2G"
+msgstr "พาร์ติชั่นเป็น FAT16 จะกำหนดขนาดที่เก็บข้อมูลเป็น 2G"
+
+#: ../liveusb/gui.py:390
+msgid "Persistent Storage"
+msgstr "ที่เก็บถาวร"
+
+#: ../liveusb/gui.py:412
+msgid "Unable to mount device"
+msgstr "ไม่สามารถเมานต์อุปกรณ์"
+
+#: ../liveusb/gui.py:418
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"อุปกรณ์ของคุณมี LiveOS อยู่แล้ว\n"
+"ถ้าคุณทำต่อไป มันจะถูกเขียนทับ"
+
+#: ../liveusb/gui.py:421
+msgid "Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "คำเตือน: การสร้างที่เก็บข้อมูลจะลบอันก่อนหน้า"
+
+#: ../liveusb/gui.py:423
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "กด 'สร้าง Live USB' อีกครั้งหากคุณต้องการทำต่อไป"
+
+#: ../liveusb/gui.py:470
+msgid "Download complete!"
+msgstr "ดาวน์โหลดเสร็จสิ้น!"
+
+#: ../liveusb/gui.py:474
+msgid "Download failed: "
+msgstr "ดาวน์โหลดล้มเหลว:"
+
+#: ../liveusb/gui.py:475
+msgid "You can try again to resume your download"
+msgstr "คุณสามารถลองอีกครั้งได้เพื่อดาวน์โหลดต่อ"
+
+#: ../liveusb/gui.py:479
+msgid "Select Live ISO"
+msgstr "เลือก Live ISO"
+
+#: ../liveusb/gui.py:486
+msgid "Unable to encode the filename of your livecd. You may have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr "ไม่สามารถลงรหัสชื่อไฟล์ livecd ของคุณได้ คุณอาจจะแก้ปัญหาได้หากย้าย ISO ไปยังรากของไดรฟ์ (เช่น: C:\\)"
+
+#: ../liveusb/gui.py:491
+msgid "selected"
+msgstr "ถูกเลือก"
+
+#: ../liveusb/creator.py:135
+msgid "Setting up OLPC boot file..."
+msgstr "กำลังติดตั้งไฟล์บูท OLPC"
+
+#: ../liveusb/creator.py:188
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"มีปัญหาขณะเรียกคำสั่งต่อไปนี้: `%s`\n"
+"ปูมโดยละเอียดถูกเขียนไว้ที่ 'liveusb-creator.log'"
+
+#: ../liveusb/creator.py:195
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "กำลังตรวจสอบ SHA1 ของอิมเมจ LiveCD..."
+
+#: ../liveusb/creator.py:217
+msgid "Error: The SHA1 of your Live CD is invalid. You can run this program with the --noverify argument to bypass this verification check."
+msgstr "ผิดพลาด: SHA1 ของ Live CD ของคุณผิดพลาด คุณสามารถรันโปรแกรมนี้โดยใช้อากิวเมนต์ --noverify เพื่อข้ามการตรวจสอบนี้"
+
+#: ../liveusb/creator.py:223
+msgid "Unknown ISO, skipping checksum verification"
+msgstr "ไม่รู้จัก ISO จะข้ามการตรวจสอบ checksum"
+
+#: ../liveusb/creator.py:234
+msgid "Not enough free space on device."
+msgstr "มีที่ว่างบนอุปกรณ์ไม่พอ"
+
+#: ../liveusb/creator.py:235
+#, python-format
+msgid ""
+"\n"
+"%dMB ISO + %dMB overlay > %dMB free space"
+msgstr ""
+"\n"
+"%dMB ISO + ที่เก็บ %dMB > ที่ว่าง %dMB "
+
+#: ../liveusb/creator.py:241
+msgid "Creating"
+msgstr "กำลังสร้าง"
+
+#: ../liveusb/creator.py:242
+msgid "persistent overlay"
+msgstr "ที่เก็บถาวร"
+
+#: ../liveusb/creator.py:274
+msgid "Removing existing Live OS"
+msgstr "กำลังลบ Live OS ที่มีอยู่"
+
+#: ../liveusb/creator.py:283
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "ไม่สามารถลบ LiveOS ที่มีอยู่: %s"
+
+#: ../liveusb/creator.py:314
+#, python-format
+msgid "Cannot find device %s"
+msgstr "ไม่สามารถหาอุปกรณ์ %s"
+
+#: ../liveusb/creator.py:334
+msgid "Resetting MBR..."
+msgstr "กำลังรีเซต MBR..."
+
+#: ../liveusb/creator.py:392
+msgid "Unable to find any USB drives"
+msgstr "ไม่สามารถหาอุปกรณ์ USB ใดๆ"
+
+#: ../liveusb/creator.py:416
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "ไม่รู้จักระบบไฟล์ของ %s!"
+
+#: ../liveusb/creator.py:417
+msgid "device"
+msgstr "อุปกรณ์"
+
+#: ../liveusb/creator.py:429
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "ไม่สามารถเมานต์อุปกรณ์: %s"
+
+#: ../liveusb/creator.py:466
+#: ../liveusb/creator.py:705
+msgid "Verifying filesystem..."
+msgstr "กำลังตรวจสอบระบบไฟล์..."
+
+#: ../liveusb/creator.py:469
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "ไม่รู้จักระบบไฟล์ของ %s อุปกรณ์ของคุณอาจจะต้องถูกฟอร์แมตซ้ำ"
+
+#: ../liveusb/creator.py:472
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "ระบบไฟล์ไม่สนับสนุน: %s"
+
+#: ../liveusb/creator.py:496
+msgid "Your MBR appears to be blank"
+msgstr "MBR ของคุณเหมือนจะว่างเปล่า"
+
+#: ../liveusb/creator.py:506
+#: ../liveusb/creator.py:740
+msgid "Extracting live image to USB device..."
+msgstr "กำลังแตก live image ไปยังอุปกรณ์ USB..."
+
+#: ../liveusb/creator.py:512
+msgid "Unable to find LiveOS on ISO"
+msgstr "ไม่สามารถหา LiveOS บน ISO"
+
+#: ../liveusb/creator.py:524
+#: ../liveusb/creator.py:748
+msgid "Wrote to device at"
+msgstr "เขียนไปยังอุปกรณ์ ณ "
+
+#: ../liveusb/creator.py:537
+msgid "Installing bootloader..."
+msgstr "กำลังติดตั้ง bootloader..."
+
+#: ../liveusb/creator.py:579
+msgid "Verifying ISO MD5 checksum"
+msgstr "กำลังตรวจสอบ ISO MD5 checksum"
+
+#: ../liveusb/creator.py:701
+msgid "Unable to find any removable devices"
+msgstr "ไม่สามารถหาอุปกรณ์ถอดเสียบใดๆ"
+
+#: ../liveusb/creator.py:709
+msgid "Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr "โปรดตรวจสอบให้แน่ใจว่าได้เสียบ USB key แล้วและถูกฟอร์แมตด้วยระบบไฟล์ FAT"
+
+#: ../liveusb/creator.py:712
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"ระบบไฟล์ไม่สนับสนุน: %s\n"
+"โปรดสำรองข้อมูลและฟอร์แมต USB key ด้วยระบบไฟล์แบบ FAT"
+
+#: ../liveusb/creator.py:754
+msgid "Installing bootloader"
+msgstr "กำลังติดตั้ง bootloader"
+
+#: ../liveusb/creator.py:798
+msgid "Cannot find"
+msgstr "ไม่สามารถค้นหา"
+
+#: ../liveusb/creator.py:799
+msgid "Make sure to extract the entire liveusb-creator zip file before running this program."
+msgstr "กรุณาแตกไฟล์ liveusb-creator.zip ทั้งไฟล์ก่อนจะรันโปรแกรมนี้"
+
+#: ../liveusb/windows_dialog.py:104
+msgid "Fedora LiveUSB Creator"
+msgstr "ตัวสร้าง Fedora LiveUSB"
+
+#: ../liveusb/windows_dialog.py:105
+msgid "This button will begin the LiveUSB creation process. This entails optionally downloading a release (if an existing one wasn't selected), extracting the ISO to the USB device, creating the persistent overlay, and installing the bootloader."
+msgstr "ปุ่มนี้จะเริ่มกระบวนการสร้าง LiveUSB โดยจะประกอบไปด้วยการดาวน์โหลดไฟล์ (ถ้าไม่ได้เลือกไฟล์ไว้), แตกไฟล์ไปยังอุปกรณ์ USB, สร้างที่เก็บข้อมูลถาวร และติดตั้ง bootloader"
+
+#: ../liveusb/windows_dialog.py:106
+msgid "Create Live USB"
+msgstr "สร้าง LiveUSB"
+
+#: ../liveusb/windows_dialog.py:107
+msgid "This is the status console, where all messages get written to."
+msgstr "นี่คือคอนโซลสถานะ ซึ่งทุกข้อความจะเขียนลงในนี้"
+
+#: ../liveusb/windows_dialog.py:108
+msgid "This is the progress bar that will indicate how far along in the LiveUSB creation process you are"
+msgstr "นี่คือแถบสถานะที่จะบอกความคืบหน้าในกระบวนการสร้าง LiveUSB"
+
+#: ../liveusb/windows_dialog.py:109
+msgid "If you do not select an existing Live CD, the selected release will be downloaded for you."
+msgstr "ถ้าคุณไม่ได้เลือก LiveCD ที่มีอยู่แล้ว โปรแกรมจะโหลดรุ่นที่เลือกไว้"
+
+#: ../liveusb/windows_dialog.py:110
+msgid "Download Fedora"
+msgstr "ดาวน์โหลด Fedora"
+
+#: ../liveusb/windows_dialog.py:111
+msgid "or"
+msgstr "หรือ"
+
+#: ../liveusb/windows_dialog.py:112
+msgid "This button allows you to browse for an existing Live CD ISO that you have previously downloaded. If you do not select one, a release will be downloaded for you automatically."
+msgstr "ปุ่มนี้จะให้คุณเลือกไฟล์ Live CD ISO ที่คุณได้โหลดไว้ก่อนหน้า ถ้าคุณไม่ได้เลือกโปรแกรมจะดาวน์โหลดให้คุณโดยอัตโนมัติ"
+
+#: ../liveusb/windows_dialog.py:113
+msgid "Use existing Live CD"
+msgstr "ใช้ Live CD ที่มีอยู่"
+
+#: ../liveusb/windows_dialog.py:114
+msgid "Browse"
+msgstr "เลือกดู"
+
+#: ../liveusb/windows_dialog.py:116
+msgid "This is the USB stick that you want to install your Live CD on. This device must be formatted with the FAT filesystem."
+msgstr "นี่คือแท่ง USB ที่คุณต้องการติดตั้ง Live CD อุปกรณ์นี้จะต้องถูกฟอร์แมตในระบบไฟล์ FAT"
+
+#: ../liveusb/windows_dialog.py:117
+msgid "Target Device"
+msgstr "อุปกรณ์เป้าหมาย"
+
+#: ../liveusb/windows_dialog.py:118
+msgid "By allocating extra space on your USB stick for a persistent overlay, you will be able to store data and make permanent modifications to your live operating system. Without it, you will not be able to save data that will persist after a reboot."
+msgstr "คุณจะสามารถเก็บข้อมูลและดัดแปลงระบบของคุณได้อย่าถาวรโดยจัดสรรเนื้อที่เพิ่มเติมบนแท่ง USB ของคุณ หากไม่มีข้อมูลใดๆ ที่คุณบันทึกไว้จะหายไปหลังจากรีบูท"
+
+#: ../liveusb/windows_dialog.py:119
+msgid "Persistent Storage (0 Mb)"
+msgstr "ที่เก็บข้อมูลถาวร (0 Mb)"
+
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
index 0000000..b53560e
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,259 @@
+# Turkish translations for Mandriva Seed package
+# PACKAGE paketi için Türkçe çeviriler.
+# Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# atilla <atilla_ontas@mandriva.org>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Mandriva Seed VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2010-05-27 23:03+0200\n"
+"Last-Translator: Atilla ÖNTAŞ <atilla_ontas@mandriva.org>\n"
+"Language-Team: Turkish<i18n@mandriva.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "Bilinmeyen yayın: %s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "%s indiriliyor..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "Dosya sistemi doğrulanıyor..."
+
+#: ../liveusb/gui.py:155
+msgid "Error: Cannot set the label or obtain the UUID of your device. Unable to continue."
+msgstr "Hata: Aygıtınızın etiketi ayarlanamıyor veya UUID değeri belirlenemiyor. Devam edilemiyor."
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "ÇalışanCD' nin SHA1 değeri doğrulanıyor..."
+
+#: ../liveusb/gui.py:166
+msgid "Error: The SHA1 of your Live CD is invalid. You can run this program with the --noverify argument to bypass this verification check."
+msgstr "Hata: ÇalışanCD' nizin SHA1 değeri geçersiz. Bu uygulamayı, doğrulama denetimini atlamak için --noverify anahtarı ile kullanabilirsiniz."
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "ÇalışanCD imajı USB aygıta açılıyor..."
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr "%d Mb kalıcı kurulum oluşturuluyor..."
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "Önyükleyici yapılandırılıyor ve kuruluyor..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "Tamamlandı! (%s)"
+
+#: ../liveusb/gui.py:190
+#: ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "ÇalışanUSB oluşturulamadı!"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr "Kalıcı Depolama (%d Mb)"
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"Aygıtınızda önceden kurulmuş bir Çalışan Sistem var,\n"
+"Devam ederseniz üzerine yazılacak."
+
+#: ../liveusb/gui.py:337
+msgid "Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "Uyarı: Yeni bir kalıcı kurulum önceden var olanı silecek."
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "Devam etmek istiyorsanız 'ÇalışanUSB Oluştur' düğmesine yeniden basın."
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "Önceki Çalışan Sistem kaldırılıyor..."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "İndirme tamamlandı!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "İndirme başarısız:"
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "İndirmenizi kaldığı yerden sürdürmeyi deneyebilirsiniz"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "ÇalışanCD imajını seç"
+
+#: ../liveusb/gui.py:399
+msgid "Sorry, I'm having trouble encoding the filename of your livecd. You may have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr "Üzgünüm, çalışancd' nizin dosya adını çözümleyemiyorum. ISO dosyasını sürücünüzün kök kısmına (örn: C:\\) taşırsanız bir şansınız olabilir."
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "ISO seçildi: %s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"Şu komut çalıştırılamıyor: `%s`\n"
+"Ayrıntılı bir hata kaydı 'liveusb-creator.log' dosyasına yazıldı."
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "Aygıt üzerinde yeterince boş alan yok."
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr "%sMB kalıcı kurulumu oluşturuluyor"
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "Önceki Çalışan Sistem kaldırılamıyor: %s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "%s aygıtı bulunamıyor."
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "Her hangi bir USB sürücü bulunamadı"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "%s aygıtının dosya sistemi bilinmiyor!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "%s aygıtı bağlanamıyor."
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "%s aygıtının dosya sistemi bilinmiyor. Aygıtınızı yeniden biçimlendirmelisiniz."
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "Desteklenmeyen dosya sistemi: %s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "ISO üzerinde Çalışan Sistem bulunamadı"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "Her hangi bir çıkartılabilir aygıt bulunamadı"
+
+#: ../liveusb/creator.py:479
+msgid "Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr "USB belleğinizi takın ve FAT dosya sistemi ile biçimlendirin"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"Desteklenmeyen dosya sistemi: %s\n"
+"Lütfen USB belleğinizi yedekleyin ve FAT dosya sistemi ile biçimlendirin."
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid "Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file before running this program."
+msgstr "'%s' bulunamadı. Bu uygulamayı çalıştırmadan önce çalışanusb-oluşturucu zip dosyasının tamamının açıldığından emin olun."
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr "Fedora LiveUSB Creator"
+
+#: ../liveusb/dialog.py:124
+msgid "This button will begin the LiveUSB creation process. This entails optionally downloading a release (if an existing one wasn't selected), extracting the ISO to the USB device, creating the persistent overlay, and installing the bootloader."
+msgstr "Bu düğme ÇalışanUSB oluşturma sürecini başlatır. Bu süreçte; bir yayın (önceden bir tane kayıtlı yoksa) indirilir, ISO imajı USB aygıta açılır, kalıcı kurulum oluşturulur ve önyükleyici kurulur."
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "Çalışan USB Oluştur"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "Bu durum konsoludur. Tüm iletiler buraya yazılır."
+
+#: ../liveusb/dialog.py:127
+msgid "This is the progress bar that will indicate how far along in the LiveUSB creation process you are"
+msgstr "Bu, Çalışan USB oluşturulma sürecini gösteren işlem çubuğudur."
+
+#: ../liveusb/dialog.py:128
+msgid "If you do not select an existing Live CD, the selected release will be downloaded for you."
+msgstr "Önceden bilgisayarınızda kayıtlı olan bir ÇalışanCD seçmezseniz, seçili yayın indirilir."
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr "Fedora İndir"
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "veya"
+
+#: ../liveusb/dialog.py:131
+msgid "This button allows you to browse for an existing Live CD ISO that you have previously downloaded. If you do not select one, a release will be downloaded for you automatically."
+msgstr "Bu düğme daha önceden indirdiğiniz bir Çalışan CD imajını seçebilmenizi sağlar. Bir tane seçmezseniz bir yayın sizin için kendiliğinden indirilir."
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "Kayıtlı Çalışan CD' yi kullan"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "Göz at"
+
+#: ../liveusb/dialog.py:135
+msgid "This is the USB stick that you want to install your Live CD on. This device must be formatted with the FAT filesystem."
+msgstr "Bu, üzerine Çalışan CD imajını yazacağınız USB bellektir. Aygıt mutlama FAT dosya sistemi ile biçimlendirilmiş olmalıdır."
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "Hedef Aygıt"
+
+#: ../liveusb/dialog.py:137
+msgid "By allocating extra space on your USB stick for a persistent overlay, you will be able to store data and make permanent modifications to your live operating system. Without it, you will not be able to save data that will persist after a reboot."
+msgstr "USB belleğinizde kalıcı kurulum için fazladan yer ayırarak çalışan işletim sisteminizde kalıcı değişiklikler yapabilecek ve verilerinizi saklayabileceksiniz. Bu olmadan tüm kişisel verileriniz sistem yeniden başlatıldığında kaybolur."
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr "Kalıcı Depolama (0 Mb)"
+
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644
index 0000000..6ad6d38
--- /dev/null
+++ b/po/zh_CN.po
@@ -0,0 +1,336 @@
+# liveusb-creator 简体中文翻译
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 甘露(Gan Lu) <rhythm.gan@gmail.com>. 2008
+# 闫丰刚 (sainry) <sainrysec@gmail.com>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: liveusb-creator\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-11-23 01:35+0000\n"
+"PO-Revision-Date: 2008-10-22 14:50+0700\n"
+"Last-Translator: 甘露(Gan Lu) <rhythm.gan@gmail.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../liveusb/__init__.py:42
+msgid "You must run this application as root"
+msgstr "你必须作为根用户(root)来运行本程序"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "未知发行:%s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "正在下载 %s..."
+
+#: ../liveusb/gui.py:156
+msgid ""
+"Error: Cannot set the label or obtain the UUID of your device. Unable to "
+"continue."
+msgstr "错误:无法设定标签或获得你设备的 UUID。不能继续。"
+
+#: ../liveusb/gui.py:185
+#, python-format
+msgid "Complete! (%s)"
+msgstr "搞定! (%s)"
+
+#: ../liveusb/gui.py:188 ../liveusb/gui.py:191
+msgid "LiveUSB creation failed!"
+msgstr "LiveUSB 创建失败!"
+
+#: ../liveusb/gui.py:331
+msgid "Persistent Storage"
+msgstr "持久存储器"
+
+#: ../liveusb/gui.py:349
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"你的设备已经包含一个 LiveOS。\n"
+"如果你继续,它将被覆盖。"
+
+#: ../liveusb/gui.py:352
+msgid ""
+"Warning: Creating a new persistent overlay will delete your existing one."
+msgstr "警告:创建一个新的持久覆盖将删除你现存的这个。"
+
+#: ../liveusb/gui.py:354
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "再次按下“创建 Live USB”,如果你希望继续。"
+
+#: ../liveusb/gui.py:400
+msgid "Download complete!"
+msgstr "下载完成!"
+
+#: ../liveusb/gui.py:404
+msgid "Download failed: "
+msgstr "下载失败!"
+
+#: ../liveusb/gui.py:405
+msgid "You can try again to resume your download"
+msgstr "你可以重试续传你的下载"
+
+#: ../liveusb/gui.py:409
+msgid "Select Live ISO"
+msgstr "选择 Live ISO"
+
+#: ../liveusb/gui.py:416
+msgid ""
+"Sorry, I'm having trouble encoding the filename of your livecd. You may "
+"have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr ""
+"抱歉,编码你 livecd 的文件名时有点问题。如果你把你的 ISO 放到你驱动盘的根目"
+"录 (比如: C:\\),可能会好点。"
+
+#: ../liveusb/gui.py:422
+msgid "selected"
+msgstr "已选定"
+
+#: ../liveusb/creator.py:134
+msgid "Setting up OLPC boot file..."
+msgstr "正在设定 OLPC 启动文件..."
+
+#: ../liveusb/creator.py:186
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"执行下列命令时出现问题:`%s`\n"
+"更详细的错误日志已写入 'liveusb-creator.log'"
+
+#: ../liveusb/creator.py:193
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "正在验证 LiveCD 映像的 SHA1 值..."
+
+#: ../liveusb/creator.py:215
+msgid ""
+"Error: The SHA1 of your Live CD is invalid. You can run this program with "
+"the --noverify argument to bypass this verification check."
+msgstr ""
+"错误:你 Live CD 的 SHA1 值不符。你能够使用 --noverify 参数运行本程序来避开该"
+"验证。"
+
+#: ../liveusb/creator.py:221
+msgid "Unknown ISO, skipping checksum verification"
+msgstr "未知的 ISO,正在跳过校验值验证"
+
+#: ../liveusb/creator.py:233
+msgid "Not enough free space on device."
+msgstr "设备上无足够空余空间。"
+
+#: ../liveusb/creator.py:234
+#, python-format
+msgid ""
+"\n"
+"%dMB ISO + %dMB overlay > %dMB free space"
+msgstr ""
+"\n"
+"%dMB ISO + %dMB 覆盖 > %dMB 空余空间"
+
+#: ../liveusb/creator.py:240
+msgid "Creating"
+msgstr "正在创建"
+
+#: ../liveusb/creator.py:241
+msgid "persistent overlay"
+msgstr "持久覆盖"
+
+#: ../liveusb/creator.py:273
+msgid "Removing existing Live OS"
+msgstr "正在删除现存的 Live OS"
+
+#: ../liveusb/creator.py:282
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "无法删除以前的 LiveOS: %s"
+
+#: ../liveusb/creator.py:313
+#, python-format
+msgid "Cannot find device %s"
+msgstr "无法找到设备 %s"
+
+#: ../liveusb/creator.py:332
+msgid "Resetting MBR..."
+msgstr "重置MBR..."
+
+#: ../liveusb/creator.py:377
+msgid "Unable to find any USB drives"
+msgstr "无法找到任何 USB 驱动盘"
+
+#: ../liveusb/creator.py:400
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr " %s 的文件系统未知!"
+
+#: ../liveusb/creator.py:401
+msgid "device"
+msgstr "设备"
+
+#: ../liveusb/creator.py:413
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "无法挂载设备:%s"
+
+#: ../liveusb/creator.py:449 ../liveusb/creator.py:614
+msgid "Verifying filesystem..."
+msgstr "正在验证文件系统..."
+
+#: ../liveusb/creator.py:452
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "%s 为未知的文件系统。你的设备也许需要重新格式化。"
+
+#: ../liveusb/creator.py:455
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "不支持的文件系统:%s"
+
+#: ../liveusb/creator.py:479
+msgid "Your MBR appears to be blank"
+msgstr "MBR 空白"
+
+#: ../liveusb/creator.py:484 ../liveusb/creator.py:649
+msgid "Extracting live image to USB device..."
+msgstr "正在解压 live 映像到 USB 设备..."
+
+#: ../liveusb/creator.py:490
+msgid "Unable to find LiveOS on ISO"
+msgstr "无法在 ISO 中找到 LiveOS "
+
+#: ../liveusb/creator.py:501 ../liveusb/creator.py:656
+msgid "Wrote to device at"
+msgstr "写入设备以"
+
+#: ../liveusb/creator.py:514
+msgid "Installing bootloader..."
+msgstr "正在安装启动加载器..."
+
+#: ../liveusb/creator.py:552
+msgid "Verifying ISO MD5 checksum"
+msgstr "正在验证 ISO MD5 校验值"
+
+#: ../liveusb/creator.py:610
+msgid "Unable to find any removable devices"
+msgstr "无法找到任何可移动设备"
+
+#: ../liveusb/creator.py:618
+msgid ""
+"Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr "请确认你的U盘已插入并已用 FAT 文件系统格式化"
+
+#: ../liveusb/creator.py:621
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"不支持的文件系统:%s\n"
+"请备份并用 FAT 文件系统格式化你的U盘"
+
+#: ../liveusb/creator.py:662
+msgid "Installing bootloader"
+msgstr "正在安装启动加载器"
+
+#: ../liveusb/creator.py:704
+msgid "Cannot find"
+msgstr "无法找到"
+
+#: ../liveusb/creator.py:705
+msgid ""
+"Make sure to extract the entire liveusb-creator zip file before running this "
+"program."
+msgstr "请确认在运行本程序前解压整个 liveusb-creator 压缩文件。"
+
+#: ../liveusb/linux_dialog.py:98 ../liveusb/windows_dialog.py:104
+msgid "Fedora LiveUSB Creator"
+msgstr "Fedora LiveUSB 创建者"
+
+#: ../liveusb/linux_dialog.py:99 ../liveusb/windows_dialog.py:105
+msgid ""
+"This button will begin the LiveUSB creation process. This entails "
+"optionally downloading a release (if an existing one wasn't selected), "
+"extracting the ISO to the USB device, creating the persistent overlay, and "
+"installing the bootloader."
+msgstr ""
+"该按钮将开始 LiveUSB 创建过程。可选择的使其下载某次发行(如果没有选定某现存),"
+"解压 ISO 到U盘,建立持久覆盖并安装启动加载器。"
+
+#: ../liveusb/linux_dialog.py:100 ../liveusb/windows_dialog.py:106
+msgid "Create Live USB"
+msgstr "创建 Live USB"
+
+#: ../liveusb/linux_dialog.py:101 ../liveusb/windows_dialog.py:107
+msgid "This is the status console, where all messages get written to."
+msgstr "这是状态控制台,所有信息都将写入此处。"
+
+#: ../liveusb/linux_dialog.py:102 ../liveusb/windows_dialog.py:108
+msgid ""
+"This is the progress bar that will indicate how far along in the LiveUSB "
+"creation process you are"
+msgstr "这是进度条,指示 LiveUSB 创建过程已进行到多远。"
+
+#: ../liveusb/linux_dialog.py:103 ../liveusb/windows_dialog.py:109
+msgid ""
+"If you do not select an existing Live CD, the selected release will be "
+"downloaded for you."
+msgstr "如果你不选择某现存的 Live CD,将为你下载你选定的发行。"
+
+#: ../liveusb/linux_dialog.py:104 ../liveusb/windows_dialog.py:110
+msgid "Download Fedora"
+msgstr "下载 Fedora"
+
+#: ../liveusb/linux_dialog.py:105 ../liveusb/windows_dialog.py:111
+msgid "or"
+msgstr "或"
+
+#: ../liveusb/linux_dialog.py:106 ../liveusb/windows_dialog.py:112
+msgid ""
+"This button allows you to browse for an existing Live CD ISO that you have "
+"previously downloaded. If you do not select one, a release will be "
+"downloaded for you automatically."
+msgstr ""
+"该按钮允许你浏览某个你之前已下载的 Live CD ISO。如果你不选择一个,将自动为你"
+"下载某次发行。"
+
+#: ../liveusb/linux_dialog.py:107 ../liveusb/windows_dialog.py:113
+msgid "Use existing Live CD"
+msgstr "使用现存的 Live CD"
+
+#: ../liveusb/linux_dialog.py:108 ../liveusb/windows_dialog.py:114
+msgid "Browse"
+msgstr "浏览"
+
+#: ../liveusb/linux_dialog.py:110 ../liveusb/windows_dialog.py:116
+msgid ""
+"This is the USB stick that you want to install your Live CD on. This device "
+"must be formatted with the FAT filesystem."
+msgstr ""
+"这是你希望安装 Live CD 到其之上的U盘。该设备必须用 FAT 文件系统进行格式化。"
+
+#: ../liveusb/linux_dialog.py:112 ../liveusb/windows_dialog.py:118
+msgid ""
+"By allocating extra space on your USB stick for a persistent overlay, you "
+"will be able to store data and make permanent modifications to your live "
+"operating system. Without it, you will not be able to save data that will "
+"persist after a reboot."
+msgstr ""
+"通过为持久覆盖分配你U盘上的额外空间,你将能够存放数据并对你的 live 操作系统进"
+"行永久的修改。没有它,你将无法在重启动后存放数据。"
+
+#: ../liveusb/linux_dialog.py:113 ../liveusb/windows_dialog.py:119
+msgid "Persistent Storage (0 Mb)"
+msgstr "持久存储器 (0 Mb)"
+
+#: ../liveusb/windows_dialog.py:117
+msgid "Target Device"
+msgstr "目标设备"
+
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100644
index 0000000..dd91153
--- /dev/null
+++ b/po/zh_TW.po
@@ -0,0 +1,291 @@
+# Traditional Chinese translation of Mandriva seed.
+# Copyright (C) 2010 Mandriva
+# This file is distributed under the same license as the Mandriva Seed package.
+# You-Cheng Hsieh <yochenhsieh@gmail.com>, 2010.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Mandriva seed 2010\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-03 02:54-0400\n"
+"PO-Revision-Date: 2010-05-26 22:39+0800\n"
+"Last-Translator: You-Cheng Hsieh <yochenhsieh@gmail.com>\n"
+"Language-Team: Chinese (Traditional) <zh-l10n@linux.org.tw>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../liveusb/gui.py:69
+#, python-format
+msgid "Unknown release: %s"
+msgstr "不明的發布版本:%s"
+
+#: ../liveusb/gui.py:73
+#, python-format
+msgid "Downloading %s..."
+msgstr "正在下載 %s..."
+
+#: ../liveusb/gui.py:152
+msgid "Verifying filesystem..."
+msgstr "檢查檔案系統..."
+
+#: ../liveusb/gui.py:155
+msgid ""
+"Error: Cannot set the label or obtain the UUID of your device. Unable to "
+"continue."
+msgstr ""
+"錯誤:無法設定或取得您的裝置的 UUID。無法繼續流程。"
+
+#: ../liveusb/gui.py:164
+msgid "Verifying SHA1 of LiveCD image..."
+msgstr "檢查 LiveCD 映像檔的 SHA1..."
+
+#: ../liveusb/gui.py:166
+msgid ""
+"Error: The SHA1 of your Live CD is invalid. You can run this program with "
+"the --noverify argument to bypass this verification check."
+msgstr ""
+"錯誤:您的 Live CD 的 SHA1 是無效的。您可以執行這個程式並加上 --noverify 參數來略過檢查。"
+
+#: ../liveusb/gui.py:177
+msgid "Extracting live image to USB device..."
+msgstr "解開 live 映像檔到 USB 裝置..."
+
+#: ../liveusb/gui.py:180
+#, python-format
+msgid "Creating %d Mb persistent overlay..."
+msgstr ""
+
+#: ../liveusb/gui.py:183
+msgid "Configuring and installing bootloader..."
+msgstr "正在設定並安裝開機管理程式..."
+
+#: ../liveusb/gui.py:187
+#, python-format
+msgid "Complete! (%s)"
+msgstr "完成! (%s)"
+
+#: ../liveusb/gui.py:190 ../liveusb/gui.py:193
+msgid "LiveUSB creation failed!"
+msgstr "建立 LiveUSB 失敗!"
+
+#: ../liveusb/gui.py:316
+#, python-format
+msgid "Persistent Storage (%d Mb)"
+msgstr ""
+
+#: ../liveusb/gui.py:334
+msgid ""
+"Your device already contains a LiveOS.\n"
+"If you continue, this will be overwritten."
+msgstr ""
+"您的裝置已經包含一個 Live 作業系統。\n"
+"如果您繼續,它將會被覆蓋。"
+
+#: ../liveusb/gui.py:337
+msgid ""
+"Warning: Creating a new persistent overlay will delete your existing one."
+msgstr ""
+
+#: ../liveusb/gui.py:339
+msgid "Press 'Create Live USB' again if you wish to continue."
+msgstr "如果您要繼續,再按下「建立 Live USB」。"
+
+#. The user has confirmed that they wish to overwrite their
+#. existing Live OS. Here we delete it first, in order to
+#. accurately calculate progress.
+#: ../liveusb/gui.py:349
+msgid "Removing existing Live OS..."
+msgstr "正在移除既有的 Live 作業系統..."
+
+#: ../liveusb/gui.py:383
+msgid "Download complete!"
+msgstr "下載完成!"
+
+#: ../liveusb/gui.py:387
+msgid "Download failed: "
+msgstr "下載失敗:"
+
+#: ../liveusb/gui.py:388
+msgid "You can try again to resume your download"
+msgstr "您可以再試一次或續傳您的下載"
+
+#: ../liveusb/gui.py:392
+msgid "Select Live ISO"
+msgstr "選擇 Live ISO"
+
+#: ../liveusb/gui.py:399
+msgid ""
+"Sorry, I'm having trouble encoding the filename of your livecd. You may "
+"have better luck if you move your ISO to the root of your drive (ie: C:\\)"
+msgstr ""
+
+#: ../liveusb/gui.py:404
+#, python-format
+msgid "ISO selected: %s"
+msgstr "選擇的 ISO:%s"
+
+#: ../liveusb/creator.py:146
+#, python-format
+msgid ""
+"There was a problem executing the following command: `%s`\n"
+"A more detailed error log has been written to 'liveusb-creator.log'"
+msgstr ""
+"執行這個指令時發生問題:'%s'\n"
+"更詳細的錯誤紀錄已經寫到 'liveusb-creator.log'"
+
+#: ../liveusb/creator.py:183
+msgid "Not enough free space on device."
+msgstr "裝置上的剩餘空間不夠。"
+
+#: ../liveusb/creator.py:190
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr ""
+
+#: ../liveusb/creator.py:226
+#, python-format
+msgid "Unable to remove previous LiveOS: %s"
+msgstr "無法移除原有的 Live 作業系統:%s"
+
+#: ../liveusb/creator.py:257
+#, python-format
+msgid "Cannot find device %s"
+msgstr "找不到裝置 %s"
+
+#: ../liveusb/creator.py:306
+msgid "Unable to find any USB drives"
+msgstr "找不到任何 USB 裝置"
+
+#: ../liveusb/creator.py:327
+#, python-format
+msgid "Filesystem for %s unknown!"
+msgstr "%s 的檔案系統不明!"
+
+#: ../liveusb/creator.py:335
+#, python-format
+msgid "Unable to mount device: %s"
+msgstr "無法掛載裝置:%s"
+
+#: ../liveusb/creator.py:370
+#, python-format
+msgid "Unknown filesystem for %s. Your device may need to be reformatted."
+msgstr "%s 的檔案系統不明。您的裝置可能需要重新格式化。"
+
+#: ../liveusb/creator.py:373
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr "不支援的檔案系統:%s"
+
+#: ../liveusb/creator.py:400
+msgid "Unable to find LiveOS on ISO"
+msgstr "ISO 上找不到 Live 作業系統"
+
+#: ../liveusb/creator.py:472
+msgid "Unable to find any removable devices"
+msgstr "找不到可移除的裝置"
+
+#: ../liveusb/creator.py:479
+msgid ""
+"Make sure your USB key is plugged in and formatted with the FAT filesystem"
+msgstr ""
+"確定您的 USB 隨身碟已經插上並且格式化成 FAT 檔案系統"
+
+#: ../liveusb/creator.py:482
+#, python-format
+msgid ""
+"Unsupported filesystem: %s\n"
+"Please backup and format your USB key with the FAT filesystem."
+msgstr ""
+"不支援的檔案系統:%s\n"
+"請備份並格式化您的 USB 隨身碟成 FAT 檔案系統。"
+
+#: ../liveusb/creator.py:558
+#, python-format
+msgid ""
+"Cannot find '%s'. Make sure to extract the entire liveusb-creator zip file "
+"before running this program."
+msgstr ""
+"找不到 '%s'。 確定您執行這個程式之前已經解開整個 liveusb-creator zip 檔案。"
+
+#: ../liveusb/dialog.py:123
+msgid "Fedora LiveUSB Creator"
+msgstr ""
+
+#: ../liveusb/dialog.py:124
+msgid ""
+"This button will begin the LiveUSB creation process. This entails "
+"optionally downloading a release (if an existing one wasn't selected), "
+"extracting the ISO to the USB device, creating the persistent overlay, and "
+"installing the bootloader."
+msgstr ""
+
+#: ../liveusb/dialog.py:125
+msgid "Create Live USB"
+msgstr "建立 Live USB"
+
+#: ../liveusb/dialog.py:126
+msgid "This is the status console, where all messages get written to."
+msgstr "這是狀態窗口,所有訊息都會寫到這裡。"
+
+#: ../liveusb/dialog.py:127
+msgid ""
+"This is the progress bar that will indicate how far along in the LiveUSB "
+"creation process you are"
+msgstr ""
+"這是進度列,它會顯示您正在 LiveUSB 建立過程的哪個階段"
+
+#: ../liveusb/dialog.py:128
+msgid ""
+"If you do not select an existing Live CD, the selected release will be "
+"downloaded for you."
+msgstr ""
+"如果您不選擇既有的 Live CD,會幫您下載選擇的發布版本。"
+
+#: ../liveusb/dialog.py:129
+msgid "Download Fedora"
+msgstr ""
+
+#: ../liveusb/dialog.py:130
+msgid "or"
+msgstr "或"
+
+#: ../liveusb/dialog.py:131
+msgid ""
+"This button allows you to browse for an existing Live CD ISO that you have "
+"previously downloaded. If you do not select one, a release will be "
+"downloaded for you automatically."
+msgstr ""
+"這個按鈕讓您瀏覽您已經下載的的 Live CD ISO。如果您不選擇,會自動幫您下載一個發布版本。"
+
+#: ../liveusb/dialog.py:132
+msgid "Use existing Live CD"
+msgstr "使用既有的 Live CD"
+
+#: ../liveusb/dialog.py:133
+msgid "Browse"
+msgstr "瀏覽"
+
+#: ../liveusb/dialog.py:135
+msgid ""
+"This is the USB stick that you want to install your Live CD on. This device "
+"must be formatted with the FAT filesystem."
+msgstr ""
+" 這是您將要安裝 Live CD 的 USB 隨身碟。這個裝置必須格式化成 FAT 檔案系統。"
+
+#: ../liveusb/dialog.py:136
+msgid "Target Device"
+msgstr "目標裝置"
+
+#: ../liveusb/dialog.py:137
+msgid ""
+"By allocating extra space on your USB stick for a persistent overlay, you "
+"will be able to store data and make permanent modifications to your live "
+"operating system. Without it, you will not be able to save data that will "
+"persist after a reboot."
+msgstr ""
+
+#: ../liveusb/dialog.py:138
+msgid "Persistent Storage (0 Mb)"
+msgstr ""
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..9226073
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,91 @@
+from distutils.core import setup
+import sys, os
+
+LOCALE_DIR= '/usr/share/locale'
+
+locales = []
+if os.path.exists('po/locale'):
+ for lang in os.listdir('po/locale'):
+ locales.append(os.path.join(lang, 'LC_MESSAGES'))
+
+if sys.platform == 'win32':
+ import py2exe
+ LOCALE_DIR = 'locale'
+ manifest = """
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel
+ level="requireAdministrator"
+ uiAccess="False"/>
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
+ </dependentAssembly>
+ </dependency>
+</assembly>
+"""
+
+
+ setup(
+ name = 'usbdumper',
+ version = '3.6.4',
+ packages = ['liveusb'],
+ scripts = ['usbdumper'],
+ license = 'GNU General Public License (GPL)',
+ url = 'http://git.mandriva.com/?p=projects/mandriva-seed.git',
+ description = 'This tool dumps hybrid ISO on USB stick',
+ long_description = 'usbdumper is a cross-platform tool for easily dump hybrid ISO on USB flash drives',
+ platforms = ['Windows'],
+ maintainer = 'Aurelien Lefebvre',
+ maintainer_email = 'alefebvre@mandriva.com',
+ windows = [
+ {
+ "script" : "usbdumper",
+ "other_resources": [(24,1,manifest)],
+ #"icon_resources" : [(0, "data/mdv.ico")],
+ }
+ ],
+ options={
+ "py2exe" : {
+ #"includes" : ["sip", "PyQt4._qt"],
+ "includes" : ["sip"],
+ 'bundle_files': 1,
+ }
+ },
+ zipfile=None,
+ data_files = [
+ "LICENSE.txt",
+ ("tools", [
+ "tools/dd.exe",
+ "tools/dd.exe.manifest",
+ ],)
+ ] + [(os.path.join(LOCALE_DIR, locale),
+ [os.path.join('po', 'locale', locale, 'liveusb-creator.mo')])
+ for locale in locales]
+ )
+else:
+ setup(
+ name = 'usbdumper',
+ version = '3.6.4',
+ packages = ['liveusb'],
+ scripts = ['usbdumper'],
+ license = 'GNU General Public License (GPL)',
+ url = 'http://git.mandriva.com/?p=projects/mandriva-seed.git',
+ description = 'This tool dumps hybrid ISO on USB stick',
+ long_description = 'usbdumper is a cross-platform tool for easily dump hybrid ISO on USB flash drives',
+ platforms = ['Linux'],
+ maintainer = 'Aurelien Lefebvre',
+ maintainer_email = 'alefebvre@mandriva.com',
+ data_files = [("/usr/share/applications",["data/liveusb-creator.desktop"]),
+ ('/usr/share/pixmaps',["data/fedorausb.png"]),
+ ] + [(os.path.join(LOCALE_DIR, locale),
+ [os.path.join('po', 'locale', locale, 'liveusb-creator.mo')])
+ for locale in locales]
+ )
+
diff --git a/tools/dd.exe b/tools/dd.exe
new file mode 100644
index 0000000..47031e7
--- /dev/null
+++ b/tools/dd.exe
Binary files differ
diff --git a/tools/dd.exe.manifest b/tools/dd.exe.manifest
new file mode 100644
index 0000000..7e55ea5
--- /dev/null
+++ b/tools/dd.exe.manifest
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel
+ level="requireAdministrator"
+ uiAccess="False"/>
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+</assembly> \ No newline at end of file
diff --git a/tools/dd.sh b/tools/dd.sh
new file mode 100755
index 0000000..f698a36
--- /dev/null
+++ b/tools/dd.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+if [ $# -ne 2 ]
+then
+ exit 1
+fi
+
+/bin/dd if=$1 of=$2 bs=8M &
+pid=$!
+
+echo "DDPID=$pid"
+
+while true;
+do
+ sleep 5
+ kill -USR1 $pid 1>/dev/null 2>&1
+ if [ $? -ne 0 ]
+ then
+ exit 0
+ fi
+done
+
+sync