dell-recovery/0000775000000000000000000000000012312225644010523 5ustar dell-recovery/gtk/0000775000000000000000000000000012312225641011305 5ustar dell-recovery/gtk/dell-dvd.svg0000664000000000000000000000716611751021273013534 0ustar image/svg+xmldell-recovery/gtk/recovery_media_creator.ui0000664000000000000000000004610611751021273016370 0ustar False 5 Cancel Recovery Media Creator False True center-on-parent True dialog True question yes-no Are you sure you want to cancel the Recovery Media creation process? False False False True end 0 True False True False gtk-jump-to 6 True True 0 True False True False 0 True True 45 True True 0 False 10 True False Version: False False 0 True True 7 True 7 False False 1 False False 1 True True 1 False 5 False center-on-parent True dialog True question yes-no An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image? False False False True end 0 True False True False True False 15 True False 48 gnome-dev-disc-dvdr False True 0 True False DVD+/-RW Disc True True False False True True True True 0 True False 0 25 This requires writable DVD media. True 45 False False 1 True True 1 True False 0 True False True False 0 15 True False 48 gnome-dev-removable False True 0 True False USB Flash Drive True True False False True dvdbutton True False 0 True False 0 25 This requires a USB flash drive with approximately 2GB free. True 45 False False 1 True True 1 True False 1 True False True False 0 15 True False 48 gtk-delete False True 0 No media, create image True True False False True dvdbutton True True 1 True False 2 False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Dell Recovery Media Creator False center 450 True False True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 0 14 9 <activity placeholder> fill True False False 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 0 0 25 25 15 15 400 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK False False 1 False False True center-on-parent 15 15 True splashscreen wizard True False False Dell Recovery Media Creator center 400 300 False dell-recovery/gtk/dell-driver-installer.desktop.in0000664000000000000000000000031712043102601017501 0ustar [Desktop Entry] Version=1.0 Encoding=UTF-8 _Name=Dell Driver Installer Type=Application Terminal=false Exec=dell-driver-installer Icon=dell-dvd Categories=System;Settings MimeType=application/x-dell-driver dell-recovery/gtk/dell-package.svg0000664000000000000000000002352612043102601014336 0ustar image/svg+xml dell-recovery/gtk/builder.ui0000664000000000000000000015203511756536125013315 0ustar True False 15 True False 0 During Factory Installation, applications are only installed if the order record (SDR) refers to the service release vehicle (SRV). This populates the possible SRVs to be queried during installation. True 60 False False 0 True True application_liststore False 0 both True Application FISH Packages 0 SRV True 1 True True 1 True False start gtk-add True True True False True False False 0 gtk-remove True True True False True False False 1 True True 2 True False 1 False False 3 True False 15 True False 0 The Base OS image provides the majority of the content for a BTO image. It can be a Vanilla OS image, or existing BTO Image. True 60 False False 0 True False 15 True False True False 10 ISO Image True True False False True True False False 0 True False gtk-cdrom False False 1 False False 0 True False 10 Extracted Directory True True False False True iso_image_radio False False 0 True False gtk-directory False False 1 False False 1 True False False 10 Detected Recovery Partition True True False False True True iso_image_radio False False 0 True False harddrive False False 1 False False 2 False False 1 True False 0 0 10 10 Choose Image True True True False False False 2 True False True False 0 Selected Image Details: True True 0 True False 15 True False True True True 1 False True 3 False 5 Add Dell Recovery False True center-on-parent True dell-recovery dialog False True False vertical 10 True False end gtk-cancel True True True False True False False 0 gtk-ok True False True True False True False False 1 False True end 0 True False 0 Part of the FID overlay requires a dell-recovery package to be included. True True 25 False False 1 True False True False Browse for a dell-recovery package True True False False True add_hidden_radio False False 0 True False 0 0.25 10 10 Choose package True False True True False False False 1 True True 0 True False Build dell-recovery package from this system True True False False True add_hidden_radio False False 0 True False 0 0.25 10 10 Install dpkg-repack True True False False False 1 True True 1 A hidden radio button True False False True True True True 2 False True 2 builder_add_cancel builder_add_ok True False 15 True False 0 Any add-on drivers or applications that need to be integrated into the image can be added here. True 60 False False 0 True True driver_liststore 0 horizontal True Driver FISH Packages 0 True True 1 True False start gtk-add True True True False True False False 0 gtk-remove True True True False True False False 1 True True 2 True False 10 True False 0 The BTO FID framework is the first thing injected into a base vanilla image. If you are generating from an existing BTO compatible image, you may use the built-in framework. True 60 False False 0 True False 15 True False True False 10 FID framework built into BTO image True True False False True True False False 0 True False computer False False 1 True False 0 True False 10 FID Framework enclosed in debian package True True False False True builtin_radio False False 0 True False package-x-generic False False 1 True False 1 False False 1 True False 0 0 10 Choose package True False True True False False False 2 True False True False 0 Selected Overlay Details: True True 0 True False 15 True False True True True 1 True True 4 False 5 popup SRV Entry False True center-on-parent True normal True False 2 True False end gtk-ok True False True True True False True False False 1 False True end 0 True False True False 0 Please enter the SRV to use: False False 0 True True True True True False False 1 False True 1 srv_entry_ok True False 15 True False 0 BTO images can optionally include a Utility Partition for diagnostic utilities. True 60 False False 0 True False 15 True False True False 10 No additional Utility Partition True True False False True True False False 0 True False trashcan_empty False False 1 False False 0 True False 10 Select content for Utility Partition True True False False True no_up_radio False False 0 True False application-zip False False 1 False False 1 True False False 10 Detected Utility Partition True True False False True no_up_radio False False 0 True False harddrive False False 1 False False 2 False False 1 True False 0 0 10 10 Choose Content True False True True False False False 2 True False True False 0 Selected Content Details: True True 0 True False 15 True False True True True 1 False True 3 dell-recovery/gtk/dell-recovery-media.desktop.in0000664000000000000000000000023411751021273017136 0ustar [Desktop Entry] Version=1.0 Encoding=UTF-8 _Name=Dell Recovery Type=Application Terminal=false Exec=dell-recovery Icon=dell-dvd Categories=System;Settings dell-recovery/gtk/driver_install.ui0000664000000000000000000004050512043102601014660 0ustar False Dell Driver Installer center True False vertical True False 0 0 10 10 10 10 True False 15 True False vertical True False 0 Select the driver package that you would like to install. True 60 False False 0 True False 0 0 10 10 Choose Package False True True True False False False 1 True True 0 True False True False 0 Selected Package Details: True True 0 True False 15 True True in 500 150 True True True True 1 False True 1 True False 15 True False 20 Install False True False True True False False True end 1 gtk-cancel False True True True False True False True end 2 False False 2 False True 0 True False False True 1 True False False True 2 False 0 in True False True False 6 6 True False 0 True True True True True 0 _Restart Now False True True True False True False False 1 False True 3 True False False True 2 4 True False True False False True 0 True False vertical 2 False True 1 False True 5 dell-recovery/gtk/tool_selector.ui0000664000000000000000000004350512311717746014543 0ustar False 6 Dell Recovery Media Creator False center-always dialog True False 12 True False end gtk-close False True True True True False True False False 0 False True end 0 True False 6 12 True False 0 0 gtk-dialog-error 6 False True 0 True False True True False True 1 False True 1 button3 True False gtk-help False Dell Recovery False center dell-dvd True False True False False True False _Help True True False Dell Recovery Help False True False image1 False gtk-about False True False True True False True 0 True False 4 3 10 True False 0 15 This will create OS Recovery Media that can be used to restore the computer to its factory shipped state. You will have the option to create an USB key or DVD image. True 40 2 3 GTK_EXPAND True False 0 15 This will restore the system to the factory shipped state using the recovery partition stored on the hard drive. True 40 2 3 1 2 GTK_EXPAND Build OS Media False True True True False 1 2 Restore System False True True True False 1 2 1 2 True False 15 48 drive-harddisk True False 15 48 view-refresh 1 1 2 False 0 15 This will install a Dell driver package that you downloaded from the Internet. True 40 2 3 2 3 GTK_EXPAND False 15 48 network-server 2 3 Install Drivers False True True False 1 2 2 3 True False 0 15 This will flash a DOS based BIOS image. True 40 2 3 3 4 GTK_EXPAND Flash BIOS False True True True False 1 2 3 4 True False 15 48 utilities-system-monitor 3 4 True True 30 1 dell-recovery/setup.cfg0000664000000000000000000000034412043102601012331 0ustar [build_i18n] desktop_files=[ ('share/applications', ['gtk/dell-driver-installer.desktop.in', 'gtk/dell-recovery-media.desktop.in'])] xml_files=[ ('share/polkit-1/actions', ['backend/com.dell.recoverymedia.policy.in'])] dell-recovery/casper/0000775000000000000000000000000012312222105011765 5ustar dell-recovery/casper/hooks/0000775000000000000000000000000012312225563013123 5ustar dell-recovery/casper/hooks/dell-bootstrap0000775000000000000000000000110012312225561015772 0ustar #!/bin/sh -e # initramfs hook for dell-bootstrap PREREQS="" # Output pre-requisites prereqs() { echo "$PREREQS" } case "$1" in prereqs) prereqs exit 0 ;; esac . /usr/share/initramfs-tools/hook-functions cp /usr/share/dell/scripts/pool.sh $DESTDIR/scripts cp /usr/share/dell/casper/scripts/* $DESTDIR/scripts/casper-bottom #invoked from dell-recovery if [ -n "$INJECT" ]; then . /usr/share/initramfs-tools/scripts/functions rm -f $DESTDIR/scripts/casper-bottom/ORDER cache_run_scripts "${DESTDIR}" "/scripts/casper-bottom" fi dell-recovery/casper/scripts/0000775000000000000000000000000012312225563013467 5ustar dell-recovery/casper/scripts/99dell_bootstrap0000775000000000000000000001165112311717746016630 0ustar #!/bin/sh # # <99dell_bootstrap> # # Casper initramfs plugin. # - prepare on-media pool # - loads the ubiquity dell bootstrap plugin into place # - ensures that it will run # # Copyright 2008-2011 Dell Inc. # Mario Limonciello # Hatim Amro # Michael E Brown # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. # vim:ts=8:sw=8:et:tw=0 PREREQ="" DESCRIPTION="Running DELL bootstrap..." prereqs () { echo "$PREREQ" } case $1 in # get pre-requisites prereqs) prereqs exit 0 ;; esac . /scripts/casper-functions load_confmodule log_begin_msg "$DESCRIPTION" export DEBIAN_HAS_FRONTEND= export DEBCONF_REDIR= export DEBIAN_FRONTEND=noninteractive #Check for OMSK recovery mode on OMSK image #Don't enable our plugin if so if grep -q webnow-recovery /proc/cmdline 2>&1 >/dev/null && [ -e /root/usr/lib/ubiquity/plugins/omsk-recovery.py ]; then rm -f /root/usr/lib/ubiquity/plugins/dell-bootstrap.py exit 0 fi #Force ubiquity to run in automatic regardless if there are ubiquity options in /proc/cmdline (except single user mode) if ! grep -q "single" /proc/cmdline 2>&1 >/dev/null; then sed -i "s/ubiquity=\$/ubiquity=1/; s/\$automatic\ \$choose/--automatic/" /root/etc/init/ubiquity.conf fi #if they use a ubiquity icon it needs to run in automatic sed -i "s/prompt=1$/prompt=/;" /root/etc/init.d/casper sed -i "s/Exec=ubiquity/Exec=ubiquity --automatic/" /root/usr/share/applications/ubiquity-gtkui.desktop 2>/dev/null || true #Build custom pool (static and dynamic) if [ ! -x /root/usr/share/dell/scripts/pool.sh ]; then mkdir -p /root/usr/share/dell/scripts/ cp /scripts/pool.sh /root/usr/share/dell/scripts/ fi chroot /root /usr/share/dell/scripts/pool.sh #install if not installed, otherwise this will upgrade chroot /root apt-get install dell-recovery -y --no-install-recommends #only if we are in factory or bto-a if chroot /root apt-cache show fist 2>/dev/null 1>/dev/null; then chroot /root apt-get install fist -y #recovery media wants DRMK added to it for bootable partitions elif chroot /root apt-cache show dell-drmk 2>/dev/null 1>/dev/null; then chroot /root apt-get install dell-drmk -y fi #If in factory process, we might have backed up an MBR to restore #to the first hard drive if [ -f /root/cdrom/factory/mbr.bin ]; then dd if=/root/cdrom/factory/mbr.bin of=/dev/sda fi ###Set up all preseeds### # First test for and load override / configurations preseeds # - needs to be loaded first so that we know if we are dual boot for seed in dell-recovery gfx wlan; do if [ -e /root/cdrom/preseed/$seed.seed ]; then casper-set-selections /root/cdrom/preseed/$seed.seed fi done # Now load all the defaults included in all installs casper-set-selections "/root/usr/share/dell/casper/seeds/ubuntu.seed" # If we have a dual boot option, load the dual boot preseed if db_get dell-recovery/dual_boot && [ "$RET" = true ] || [ -e /root/usr/lib/ubiquity/plugins/omsk-recovery.py ]; then casper-set-selections "/root/usr/share/dell/casper/seeds/dual.seed" fi # Lastly, reload the override / configurations preseeds so that it is allowed to override stuff from ubuntu.seed and dual.seed for seed in dell-recovery gfx wlan; do if [ -e /root/cdrom/preseed/$seed.seed ]; then casper-set-selections /root/cdrom/preseed/$seed.seed fi done #EFI deviations if [ -d /sys/firmware/efi ]; then #grub-pc is in livefs, need grub-efi-amd64 chroot /root apt-get install grub-efi-amd64 -y #force failsafe graphics off, we're guaranteed efifb casper-preseed /root ubiquity/force_failsafe_graphics false fi # In case we're running a kernel not in the squashfs already # we need to load modules into squashfs somehow KERNELS=$(find /root/cdrom/kernel -maxdepth 1 -type d 2>/dev/null | sed "s,/root,,; /\/cdrom\/kernel\/$/d") if [ -n "$KERNELS" ]; then for KERNEL in $KERNELS; do ln -s $KERNEL /root/lib/modules done fi # Clear out debconf database backup files to save memory. rm -f /root/var/cache/debconf/*.dat-old #Emergency installer fixes if [ -e /root/cdrom/scripts/emergency.sh ]; then . /root/cdrom/scripts/emergency.sh fi log_end_msg exit 0 dell-recovery/casper/seeds/0000775000000000000000000000000012111201306013065 5ustar dell-recovery/casper/seeds/ubuntu.seed0000664000000000000000000001345212111201306015256 0ustar # # # # Dell Ubuntu preseed file used for FI installs # * Last updated for Ubuntu 11.04 # # Sets all of the defaults for the Ubuntu installation # * Keyboard # * Locale # * Time zone # * Mirrors # * Language pack inclusion # * Hard drive layout # * Framework enablement # # Copyright 2008-2011 Dell Inc. # Mario Limonciello # Hatim Amro # Michael E Brown # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. # Keyboard selection. d-i keyboard-configuration/layoutcode string us d-i keyboard-configuration/variantcode string ### Time zone setup # You may set this to any valid setting for $TZ; see the contents of # /usr/share/zoneinfo/ for valid values. d-i time/zone string UTC ### Network configuration # netcfg will choose an interface that has link if possible. This makes it # skip displaying a list if there is more than one interface. d-i netcfg/choose_interface select auto # If you have a slow dhcp server and the installer times out waiting for # it, this might be useful. d-i netcfg/dhcp_timeout string 5 # Any hostname and domain names assigned from dhcp take precedence over # values set here. However, setting the values still prevents the questions # from being shown, even if values come from dhcp. d-i netcfg/get_hostname string dell-desktop d-i netcfg/get_domain string ### APT stuff d-i apt-setup/use_mirror boolean true d-i apt-setup/security_host string security.ubuntu.com d-i apt-setup/partner boolean true ### Partitioning # We are doing a recovery from a hard drive, don't unmount partitions d-i ubiquity/partman-skip-unmount boolean true d-i partman/filter_mounted boolean false # We are letting partman pick the largest amount of space d-i partman-auto/init_automatically_partition select biggest_free # Install to drive d-i partman-auto/disk string dynamic # Provide an expert recipe because the default recipe will make all # logical partitions d-i partman-auto/expert_recipe string \ \ dell :: \ 100 150 200 free \ $iflabel{ gpt } \ $reusemethod{ } \ method{ efi } \ format{ } . \ \ 500 10000 4000000 ext4 \ $primary{ } \ method{ format } \ format{ } \ use_filesystem{ } \ filesystem{ ext4 } \ mountpoint{ / } . \ \ 105% 150% 200% linux-swap \ method{ swap } \ format{ } \ . # In case we decide to remove swap from a drive in FI: d-i partman-basicfilesystems/no_swap boolean false ### Boot loader installation # Don't install to the MBR, we install to PBR instead d-i grub-installer/only_debian boolean false d-i grub-installer/with_other_os boolean false # Install grub2 to the proper install-to partition. d-i grub-installer/bootdev string dynamic # Don't let Ubiquity make our install-to partition active. We'll do that # Ourselves later after the install is all done. d-i grub-installer/make_active boolean false ### User selection/password for OEM # This gets deleted by oem-config-prepare, so it doesnt matter... d-i passwd/user-fullname string OEM d-i passwd/username string oem d-i passwd/user-password password password d-i passwd/user-password-again password password # enable oem mode d-i oem-config/enable boolean true d-i oem-config/id string Dell Inc. d-i oem-config/remove boolean true d-i oem-config/early_command string dynamic d-i oem-config/late_command string /usr/share/dell/scripts/oem_config.sh late d-i oem-config/remove_extras boolean true d-i oem-config/install-language-support boolean true ### Package selection # General stuff ubiquity ubiquity/custom_title_text string Dell Recovery tasksel tasksel/first multiselect ubuntu-desktop d-i finish-install/reboot_in_progress note ubiquity ubiquity/summary note # Force X to run in a safe graphics mode ubiquity ubiquity/force_failsafe_graphics boolean true # Don't show incomplete language support message d-i pkgsel/ignore-incomplete-language-support boolean true # For OEM-Config, only show the languages that are installable d-i ubiquity/only-show-installable-languages boolean true ### Running custom commands during the installation # This first command is run as early as possible, just after # preseeding is read. ubiquity ubiquity/success_command string /usr/share/dell/scripts/chroot.sh success ubiquity ubiquity/failure_command string /usr/share/dell/scripts/chroot.sh failure ubiquity ubiquity/reboot boolean true ubiquity ubiquity/poweroff boolean false dell-recovery/casper/seeds/dual.seed0000664000000000000000000000342711751021273014676 0ustar # # # # Dell dual-boot preseed that stacks on ubuntu.seed # * Last updated for Ubuntu 10.04 # # Copyright 2010 Dell Inc. # Mario Limonciello # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. #Special dual boot partitioning d-i partman-auto/expert_recipe string \ \ dell :: \ \ 500 10000 4000000 ext4 \ $primary{ } \ method{ format } \ format{ } \ use_filesystem{ } \ filesystem{ ext4 } \ mountpoint{ / } . ### Dell Factory Process specific #These control what partitions are deleted initially d-i dell-recovery/os_partition string 4 d-i dell-recovery/swap_partition string #This controls whether dell-recovery, dell-oobe, and dell-eula get installed d-i dell-recovery/dual_boot boolean true dell-recovery/README0000664000000000000000000000261611751021273011406 0ustar Dell Recovery Media Creator ---- The Dell Recovery media creation tool supports two different modes, "End User Mode" and "Builder Mode". In End User mode, the tool will simply create an image from an existing recovery partition with no customizations. In builder mode, the tool allows modifying the source of the base image, the source of the framework, as well as injection of additional content. End User Mode --- When a customer receives a Dell machine that has been factory shipped with Linux, there will be an icon in the unity program list to launch this tool. They will only be asked what type of media they would like to create. OEM Config mode --- If a DVD burner or USB port is found on the machine, they will be offered to create media in end user mode from OOBE (OEM Config) Builder Mode --- In builder mode, the user will be offered a variety of options that allow them to create ISOs based upon different snapshots of release upon standard Ubuntu media. The latest information on how to use builder mode will be documented within the integrated help dialog. Ubiquity --- Dell recovery is built with an integrated Ubiquity plugin. It is branched with each Ubuntu release and has code that will tightly integrate with Ubiquity for factory installation. Documentation for all of the features in Ubiquity mode and how to create packages to support it are stored outside of the dell-recovery tree. dell-recovery/po/0000775000000000000000000000000012312225644011141 5ustar dell-recovery/po/ms.po0000664000000000000000000003054012311717746012132 0ustar # Malay translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-01-26 15:14+0000\n" "Last-Translator: Ibrahim Elias \n" "Language-Team: Malay \n" "Language: ms\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Tidak boleh sambung ke dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Kebenaran ditolak" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Confirm Pilihan" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Buka Burner" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Proses Recovery Medi Creation Selesai" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Jenis Media: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Partition Recovery: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Partition Utiliti: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Membina ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "Polisi sistem menghalang baca raw device" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "Polisi sistem menghalang baca raw device" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Batal Media Recovery Creator" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "Adakah anda pasti untuk batal proses cipta Media Recovery?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Imej yang telah ada dijumpai (kemungkinan dari jalan sebelum ini). Adakah " "anda mahu untuk buang salinan lama ini dan regenerate imej?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "DVD+/-RW Disk" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "USB Flash Drive" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Dell Recovery Media Creator" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "Imej ISO" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #~ msgid "Choose Media Type" #~ msgstr "Pilih Jenis Media" #~ msgid "No media, create ISO image" #~ msgstr "Tiada media, cipta imej ISO" dell-recovery/po/is.po0000664000000000000000000002725212311717746012134 0ustar # Icelandic translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-03-18 15:25+0000\n" "Last-Translator: Sveinn í Felli \n" "Language-Team: Icelandic \n" "Language: is\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "" #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "" #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "Innifalið" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "" #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents installing packages." msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "ISO diskmynd" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" dell-recovery/po/ru.po0000664000000000000000000005710312311717746012145 0ustar # Russian translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2012-11-30 11:57+0000\n" "Last-Translator: Eugene Marshal \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-12-01 05:16+0000\n" "X-Generator: Launchpad (build 16319)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Невозможно соединиться с dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Доступ запрещён" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "Исключение" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "Утилита восстановления Dell Recovery" #: ../Dell/recovery_gtk.py:198 #, fuzzy msgid "Copyright 2008-2012 Dell Inc." msgstr "Copyright 2008-2010 Dell Inc." #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Подтвердить выбор" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "Тип данных" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "Создание основного образа" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Открытие программы записи" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Создание диска восстановления завершено" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "Если вы хотите копию архива, он был сохранён в файл:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "Невозможно выполнить" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" "Система не содержит предустановленного компанией Dell раздела восстановления." #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "Файл образа" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Тип носителя: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Восстановление раздела: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "Включено" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr " (Режим сборки образа BTO)" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" "Это позволит интегрировать структуру и пакет драйверов Dell OEM FID в ваш " "персональный образ. У вас появится возможность создать USB ключ или образ " "DVD." #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "Пакеты драйверов" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "Средство раздела" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "Сводка сборщика" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "Распределитель основного образа" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "Выпуск основного образа" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "Основной образ BTO" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "Основной образ" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Средство раздела: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "Приложение" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "Драйвер" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "Пакеты" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "Сборка компонентов образа" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "Чтобы продолжить, должны быть заполнены все SRVs." #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "Обработка пакетов FISH" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "Добавление в основной образ" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "Подготовка собирательного образа" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "Сборка раздела утилиты Dell" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "Создание UUID / Сборка initramfs" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "Сборка образа ядра GRUB" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Создание образа ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "Запрос версии BTO" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "Системная политика предотвращает чтение RAW устройств" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "Запрос информации об ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "Восстановить первоначальное состояние" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "Политика системы предотвращает изменение загрузки системы" #: ../backend/com.dell.recoverymedia.policy.in.h:6 #, fuzzy msgid "Boot utility partition to flash BIOS" msgstr "Выберите раздел средства" #: ../backend/com.dell.recoverymedia.policy.in.h:7 #, fuzzy msgid "Install Dell driver packages" msgstr "Выберите пакеты драйверов" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "Системная политика предотвращает чтение RAW устройств" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "Создать/Собрать диск восстановления Dell" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "Запрос закрытия бэкэнда" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" "Системная политика предотвращает закрытие процессов без дополнительного " "уведомления пользователя" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Отменить работу по созданию диска восстановления" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" "Вы уверены, что хотите отказаться от процесса создания аварийного диска " "восстановления?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Версия:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Был обнаружен существующий образ (возможно от предыдущего запуска). Вы " "действительно хотите удалить устаревшую копию и создать новый образ?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "Диск DVD+/-RW" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "Требуется записываемый DVD диск." #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "Съёмный USB диск (флэшка)" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "Требуется USB диск с не менее 2 Гб свободного места." #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "Нет носителя, создать образ" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Создание дисков восстановления Dell" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" "В момент установки первоначальных данных, приложение устанавливаются в " "случае очерёдности записи (SDR) ссылающегося на службу SRV. Это повышает " "возможность запроса службы SRV во время установки." #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" "Основной образ ОЗ предоставляет большую часть содержимого для образа BTO. " "Это может быть образ Vanilla OS или существующий образ BTO." #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "Образ ISO" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "Извлечённый каталог" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "Обнаружен раздел восстановления" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "Выберите образ" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "Сведения о выбранном образе:" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "Добавить средство восстановления Dell" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "Часть наложения FID требует включения пакета dell-recovery." #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "Обзор пакета dell-recovery" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "Выберите пакет" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "Собрать пакет dell-recovery с этой системы" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "Установить dpkg-repack" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" "Все надстройки или программы, которые необходимо интегрировать в образ, " "могут быть добавлены здесь." #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" "Структура BTO FID это первая часть внедряемая в основной образ vanilla. " "Если вы создаёте из существующего совместимого образа BTO, вам необходимо " "использовать встроенную структуру." #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "Структура FID внедрена в образ BTO" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "Структура FID внедрена в пакет debian" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "Сведения о выбранном наложении:" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "Запись SRV" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "Пожалуйста, введите используемый SRV:" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" "Образы BTO, могут включить необязательное средство раздела с инструментами " "диагностики." #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "Выберите содержимое для средства раздела" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "Обнаружен раздел утилиты восстановления" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "Выберите содержимое" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "Сведения о содержимом:" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "_Справка" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" "Это позволит создать носитель восстановления ОС, который может " "использоваться для восстановления рабочей среды компьютера в первоначальное " "состояние. У вас есть возможность создать USB ключ или образ DVD." #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" "Это позволит восстановить рабочую среду компьютера в первоначальное " "состояние, используя раздел восстановления, сохраняемый на жёстком диске." #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "Собрать носитель ОС" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "Восстановить систему" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "Установить git" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Диск восстановления Dell может использоваться для восстановления " "первоначального состояния компьютера." #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Настоятельно рекомендуем создать носитель и сохранить его в безопасном " "месте." #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "Восстановить #OS# в первоначальное состояние" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "Сохранить диск восстановления на USB накопитель" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Примечание: Это действие потребует USB диск с не менее 2 Гб " "свободного места." #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "Сохранить диск восстановления на DVD" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "Примечание: Это действие потребует записываемый DVD диск." #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "Не создавать диск восстановления сейчас" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Восстановление информации можно запустить позднее, выбрав утилиту из меню " "\"Система\" - \"Администрирование\" - \"Создание дисков восстановления Dell" "\"." #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" " ОШИБКА: Этот образ (диск) совместим только с системами Dell." #~ msgid "Installation Mode" #~ msgstr "Режим установки" #~ msgid "OIE Installation Mode" #~ msgstr "Режим установки OIE" #~ msgid "Additional Success Script" #~ msgstr "Дополнительный успешный сценарий" #~ msgid "Additional Fail Script" #~ msgstr "Дополнительный сценарий сбоя" #~ msgid "SUCCESS Script: " #~ msgstr "Сценарий успеха SUCCESS: " #~ msgid "FAIL Script: " #~ msgstr "Сценарий сбоя FAIL: " #~ msgid "Building OIE Archive" #~ msgstr "Сборка архива OIE" #~ msgid "" #~ "OIE compliant images can only be installed from ODM factory " #~ "environments. They will notify the user at completion of a success or " #~ "failure." #~ msgstr "" #~ "OIE совместимые образы могут устанавливаться только в условиях ODM. Вы " #~ "получите уведомление о успешном или не успешном завершении задачи." #~ msgid "Produce a standard installation image." #~ msgstr "Выполнить стандартный установочный образ." #~ msgid "Produce an OIE compliant installation image." #~ msgstr "Выполнить OIE совместимый установочный образ." #~ msgid "" #~ "OIE mode also allows you to provide additional SUCCESS and FAIL scripts " #~ "to be ran prior to notification the image is complete. These can each be " #~ "any executable program or script." #~ msgstr "" #~ "Режим OIE также позволяет вам предоставлять дополнительные сценарии " #~ "SUCCESS и FAIL для выполнения перед уведомлением о завершении образа. " #~ "Это могут быть программы или сценарии." #~ msgid "Set SUCCESS script" #~ msgstr "Назначить сценарий при успехе" #~ msgid "Set FAIL script" #~ msgstr "Назначить сценарий при сбое" #~ msgid "\n" #~ msgstr "\n" #~ msgid "Choose Media Type" #~ msgstr "Выберите тип носителя" #~ msgid "Show Details" #~ msgstr "Показать подробности" #~ msgid "No media, create ISO image" #~ msgstr "Нет диска, создаётся образ ISO" #~ msgid "Fetch/Update GIT Tree" #~ msgstr "Извлечь/обновить дерево GIT" #~ msgid "" #~ "The GIT fetch is in progress. \n" #~ "This window will close automatically when the process is complete. \n" #~ "NOTE: Please be patient, the initial fetch may take a while." #~ msgstr "" #~ "Осуществляется извлечение из GIT. \n" #~ "Это окно закроется автоматически по окончании этого процесса. \n" #~ "Внимание: При первом запуске процесс может занять некоторое время." #~ msgid "FID GIT Tree" #~ msgstr "Дерево FID GIT" #~ msgid "python-vte is missing" #~ msgstr "отсутствует python-vte" #~ msgid "ERROR: git is not installed" #~ msgstr " ОШИБКА : git не установлен" #~ msgid "Missing Dell-Recovery" #~ msgstr "Отсутствует Dell-Recovery" #~ msgid "Builder mode requires python-vte to function" #~ msgstr "Для функционирования режима сборки, необходим python-vte" #~ msgid "Choose Application Packages" #~ msgstr "Выберите пакеты ПО" #~ msgid "Choose Base OS Image" #~ msgstr "Выберите основной образ ОС" #~ msgid "Choose FID Overlay" #~ msgstr "Выберите наложение FID" #~ msgid "FID Overlay" #~ msgstr "Наложение FID" #~ msgid "Not present in ISO or GIT tree" #~ msgstr "Не представлено образом ISO или в дереве GIT" #~ msgid "Overlaying FID content" #~ msgstr "Наложение содержания FID" #~ msgid "GIT Tree Status" #~ msgstr "Состояние дерева GIT" #~ msgid "GIT Tags/Branches:" #~ msgstr "GIT тэги/ветви:" dell-recovery/po/sq.po0000664000000000000000000002727312311717746012147 0ustar # Albanian translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-01-26 15:18+0000\n" "Last-Translator: Vilson Gjeci \n" "Language-Team: Albanian \n" "Language: sq\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "" #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "" #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "" #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents installing packages." msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "DVD+/-RW Disk" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "USB Flash Drive" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" dell-recovery/po/ca.po0000664000000000000000000003357012311717746012104 0ustar # Catalan translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-12-14 05:43+0000\n" "Last-Translator: Mario Limonciello \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "No s'ha pogut connectar amb el Dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "S'ha denegat el permís" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Confirmeu les seleccions" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "S'està obrint l'enregistrador" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "S'ha completat el procés de creació del suport de recuperació" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Si voleu arxivar una altra còpia, la imatge generada s'ha emmagatzemat amb " "el nom:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Tipus de suport: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Partició de recuperació: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "Inclòs" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr " (mode de creació d'imatge BTO)" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "Resum del creador" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Partició d'eines: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "Aplicació" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "Controlador" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "Paquets" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "S'està afegint a la imatge base" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "S'està creant la partició d'eines de Dell" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "S'està regenerant l'UUID / recreant l'initramfs" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "S'està creant l'ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "Sol·licitud de la versió de BTO" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "La política del sistema no permet llegir dispositius en cru" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "Sol·licitud d'informació de l'ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 #, fuzzy msgid "Boot utility partition to flash BIOS" msgstr "Escolliu la utilitat de partició" #: ../backend/com.dell.recoverymedia.policy.in.h:7 #, fuzzy msgid "Install Dell driver packages" msgstr "Escolliu els paquets de controladors" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "La política del sistema no permet llegir dispositius en cru" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "Sol·licitud de tancament del rerefons" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Cancel·la el creador de suports de recuperació" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" "Segur que voleu cancel·lar el procés de creació del suport de recuperació?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Versió:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "Disc DVD+/-RW" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "Això requereix un suport DVD enregistrable." #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "Llapis de memòria USB" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" "Això requereix un llapis de memòria USB amb aproximadament 2 GB d'espai " "disponible." #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Creador de suports de l'eina de recuperació de Dell" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "Imatge ISO" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "Escolliu la imatge" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "Instal·la el Git" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #~ msgid "Choose Media Type" #~ msgstr "Escolliu el tipus de suport" #~ msgid "Choose Base OS Image" #~ msgstr "Escolliu la imatge base del sistema operatiu" #~ msgid "python-vte is missing" #~ msgstr "Manca el paquet python-vte" #~ msgid "Builder mode requires python-vte to function" #~ msgstr "" #~ "El mode de creació requereix el paquet python-vte per poder funcionar" #~ msgid "ERROR: git is not installed" #~ msgstr "ERROR: el Git no està instal·lat" #~ msgid "Choose Application Packages" #~ msgstr "Escolliu els paquets d'aplicació" #~ msgid "Missing Dell-Recovery" #~ msgstr "Manca l'eina de recuperació de Dell" #~ msgid "Not present in ISO or GIT tree" #~ msgstr "No és a l'ISO o a l'arbre del Git" #~ msgid "No media, create ISO image" #~ msgstr "No hi ha cap suport, creació d'una imatge ISO" #~ msgid "GIT Tree Status" #~ msgstr "Estat de l'arbre del Git" #~ msgid "GIT Tags/Branches:" #~ msgstr "Etiquetes/branques del Git:" dell-recovery/po/import.sh0000775000000000000000000000061411751021273013011 0ustar #!/bin/sh FILE=launchpad-export.tar.gz if [ -n "$1" ]; then if echo $1 | grep "launchpadlibrarian.net" 2>/dev/null; then wget "$1" -O $FILE else FILE="$1" fi fi if [ ! -f $FILE ]; then echo "Missing file: $FILE" exit 1 fi tar xzzf $FILE mv dell-recovery/*.po . rm -rf dell-recovery for x in dell-recovery-*.po ; do echo $x ; mv $x ${x#dell-recovery-} ; done dell-recovery/po/bg.po0000664000000000000000000004613712311717746012114 0ustar # Bulgarian translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-12-14 05:42+0000\n" "Last-Translator: Boyan Sotirov \n" "Language-Team: Bulgarian \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Невъзможна връзката с dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Достъпът отказан" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Потвърждение на изборите" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Отваряне на записващо устройство" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Създаването на носител за възстановяване завърши" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Ако желаете да архивирате още едно копие, генерираният имидж беше запазен " "под името:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Тип носител: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Дял за възстановяване: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "Включени" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr " (BTO Режим на изграждане на имидж)" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "Обобщение на изграгдащата програма" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Програма за възстановяване: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "Приложение" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "Драйвер" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "Пакети" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "Всички SRV трябва да бъдат попълнени за продължаване." #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "Добявяне в базовия имидж" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "Изграждане на Dell ютилити дял" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "Регенериране UUID / Изграждане наново initramfs" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Създаване на ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "Запитване за BTO версия" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "Системните политики не позволяват четенето на блокови (raw) устройства" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "Запитване за ISO информация" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 #, fuzzy msgid "Boot utility partition to flash BIOS" msgstr "Изберете ютилити дял" #: ../backend/com.dell.recoverymedia.policy.in.h:7 #, fuzzy msgid "Install Dell driver packages" msgstr "Изберете пакити драйвери" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "Системните политики не позволяват четенето на блокови (raw) устройства" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "Създаване/Сглобяване на Dell Recovery ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "Заявка за затваряне на бекенда" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "Системните политики не позволяват затварянето на процес без известие" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Отказ" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" "Сигурни ли сте, че искате да откажете процеса по създаване на Recovery Media?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Версия:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Съществуващ имидж беше открит (вероятно от предишно пускане). Искате ли да " "премахнете това старо копие и да регенерирате имиджа?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "DVD+/-RW диск" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "Това изисква записваем DVD диск." #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "USB флаш памет" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "Това изисква USB флаш диск с приблизително 2GB свободно пространство." #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Създаване на Dell носител за възстановяване" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" "По време на фабричната инсталация, приложенията са инсталирани само ако реда " "на записа (SDR) има референция към SRV (Service Release Vehicle). Това дава " "възможност SRV-та да бъдат запитвани по време на инсталацията." #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" "Базовият имидж на операционната система предоставя основното съдържание за " "BTO имиджа. Той може да бъде Vanilla OS имидж, или съществуващ BTO имидж." #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "ISO образ" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "Извлечена Папка" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "Открит дял за възстановяване" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "Избор на имидж" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "Избрани детайли на имиджа:" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "Добавяне на Dell Recovery" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "Разглеждане за dell-recovery пакет" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "Избиране на пакет" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "Изграждане на dell-recovery пакет от тази система" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "Инсталиране на dpkg-repack" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" "Всички добавяеми драйвери или приложения, които трябва да бъдат интегрирани " "в имиджа, могат да бъдат добавени тук." #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "FID рамка изградена в BTO имидж" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "Изпрани насложени детайли:" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "SRV запис" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "Моля въведете SRV, който да се използва:" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" "BTO имиджи могат да включват опционално Ютилити дял за диагностични помощни " "програми." #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "Няма допълнителен Ютилити дял" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "Избиране на съдържание за Ютилити дял" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "Открит Ютилити дял" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "Избор на съдържание" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "Избрани детайли на съдържанието:" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "Инсталиране на git" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Dell Recovery Media може да се използва за възстановяване на вашата система " "до същото състояние в което тя ви е била доставена." #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Силно препоръчетелно е да генерирате носител и да го съхранявате на " "безопасно място." #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "Запазване на носителя за възстановяване на външен USB флаш диск" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Бележка: Това изисква USB флаш с приблизително 2GB свободно " "пространство." #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "Запазване на носителя за възстановяване на DVD" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "Бележка: Това изисква записваем DVD носител." #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "Не генерирай носител за възстановяване по това време" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Recovery Media може да бъде генериран по-късно като се избере инструмента то " "менюто Система" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "ГРЕШКА: Този носител е валиден само за системи Dell." #~ msgid "Choose Media Type" #~ msgstr "Изберете тип носител" #~ msgid "No media, create ISO image" #~ msgstr "Няма носител, създаване на ISO образ" #~ msgid "python-vte is missing" #~ msgstr "python-vte липсва" #~ msgid "Builder mode requires python-vte to function" #~ msgstr "Режима на изграждане изисква python-vte за да функционира" #~ msgid "ERROR: git is not installed" #~ msgstr "ГРЕШКА: git не е инсталиран" #~ msgid "Choose Application Packages" #~ msgstr "Изберете приложни пакети" #~ msgid "Choose Base OS Image" #~ msgstr "Изберете основен имидж на операционна система" #~ msgid "Choose FID Overlay" #~ msgstr "Изберете FID припокриване" #~ msgid "Overlaying FID content" #~ msgstr "Покриване на FID съдържанието" #~ msgid "Missing Dell-Recovery" #~ msgstr "Липсващ Dell-Recovery" #~ msgid "Not present in ISO or GIT tree" #~ msgstr "Не налично в ISO или GIT дървото" #~ msgid "" #~ "The GIT fetch is in progress. \n" #~ "This window will close automatically when the process is complete. \n" #~ "NOTE: Please be patient, the initial fetch may take a while." #~ msgstr "" #~ "Изтегляне на GIT. \n" #~ "Този прозорец ще се затвори автоматично, когато процеса е завършен. \n" #~ "БЕЛЕЖКА: Моля бъдете търпеливи, първоначалното изтегляне може да " #~ "отнеме време." #~ msgid "GIT Tree Status" #~ msgstr "GIT статус на дървото" #~ msgid "FID GIT Tree" #~ msgstr "FID GIT дърво" #~ msgid "Fetch/Update GIT Tree" #~ msgstr "Изтегляне/Обновяване на GIT дървото" #~ msgid "GIT Tags/Branches:" #~ msgstr "GIT Тагове/Разклонения:" #~ msgid "Show Details" #~ msgstr "Показване на подробности" dell-recovery/po/de.po0000664000000000000000000005075312311717746012113 0ustar # German translation for dell-recovery # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2012-04-15 06:09+0000\n" "Last-Translator: Dennis Baudys \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-04-16 04:41+0000\n" "X-Generator: Launchpad (build 15099)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Keine Verbindung zum D-Bus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Zugriff verweigert" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "Exception" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "Dell-Wiederherstellung" #: ../Dell/recovery_gtk.py:198 #, fuzzy msgid "Copyright 2008-2012 Dell Inc." msgstr "Copyright 2008-2010 Dell Inc." #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Auswahl bestätigen" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "Medienart" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "Basisabbild wird hergestellt" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Brenner wird geöffnet" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Erstellungsvorgang des Wiederherstellungsmediums abgeschlossen" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Wenn Sie eine weitere Kopie archivieren möchten: das erzeugte Abbild wurde " "unter folgendem Dateinamen gespeichert:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "Fortfahren nicht möglich" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" "Das System scheint keine von Dell vorinstalliertes Partitionslayout zu " "besitzen." #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "Abbilddatei" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Medientyp: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Wiederherstellungspartition: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "Enthalten" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr " (BTO-Abbild-Erstellungsmodus)" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" "Dies wird das Dell OEM FID-Framework und Treiberpaket in ein angepasstes " "Betriebssystemabbild integrieren. Sie können sich zwischen einem USB-Stick " "und einer DVD entscheiden." #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "Anwendungspakete" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "Treiberpakete" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "Hilfswerkzeugspartition" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "FID-Inhalt" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "Basisbetriebssystemabbild" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "Zusammenfassung" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "Basisabbildverteiler" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "Basisabbildveröffentlichung" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "BTO-Basisabbild" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "Basisabbild" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Dienstpartition: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "Anwendung" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "Treiber" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "Pakete" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "Dell Wiederherstellungspaket einkoppeln" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "Abbildkomponenten werden erstellt" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "Keine zusätzliche Hilfswerkzeugspartition" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "Alle SRVs müssen ausgefüllt werden, um fortzufahren." #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "FISH-Pakete werden verarbeitet" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "Dem Basisabbild hinzufügen" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "Eingebettete Abbilder werden vorbereitet" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "Dell-Werkzeugpartition wird erstellt" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "UUID wird neu erstellt / initramfs wird neu erzeugt" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "GRUB-Kernabbild wird gebaut" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "ISO wird erstellt" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "BTO-Version abfragen" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "Systemrichtlinie verhindert das Lesen von Raw-Devices" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "ISO-Informationen abfragen" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "Auslieferungszustand wiederherstellen" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" "Systemverwaltungsrichtlinien verhindern das Ändern der " "Systemstarteinstellungen" #: ../backend/com.dell.recoverymedia.policy.in.h:6 #, fuzzy msgid "Boot utility partition to flash BIOS" msgstr "Wählen Sie die Warkzeugpartition" #: ../backend/com.dell.recoverymedia.policy.in.h:7 #, fuzzy msgid "Install Dell driver packages" msgstr "Dell Wiederherstellungspaket einkoppeln" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "Systemrichtlinie verhindert das Lesen von Raw-Devices" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "Dell-Wiederherstellungs-ISO-Abbild erstellen/zusammenstellen" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "Das Schließen des Backends anfordern" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" "Systemrichtlinie verhindert das Schließen von Prozessen ohne Benachrichigung" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "Netzwerkverbindung ändern" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" "Die Systemrichtlinien untersagen die Änderung des Netzwerks ohne die " "Einwilligung des Benutzers" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Wiederherstellungsmedien-Ersteller abbrechen" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" "Sind Sie sich sicher, dass Sie den Erstellungsprozess des " "Wiederherstellungsdatenträgers abbrechen möchten?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Version:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Ein existierendes Abbild wurde gefunden (wahrscheinlich von einer vorherigen " "Aufruf dieser Anwendung). Möchten Sie diese alte Kopie löschen und das " "Abbild neu erstellen?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "DVD+/-RW-Disk" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "Eine beschreibbare DVD wird benötigt." #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "USB-Flash-Laufwerk" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "Ein USB-Flash-Laufwerk mit ungefähr 2GB freiem Speicher wird benötigt." #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "Kein Datenträger, erstelle Abbild" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Dell-Wiederherstellungsmedien-Ersteller" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" "Während der Wiederherstellung des Auslieferungszustandes werden Anwendungen " "nur dann installiert, wenn der »Order Record (SDR)« mit dem »Service Release " "Vehicle (SRV)« übereinstimmt. Das bedeutet, dass bestimmte SRVs während der " "Installation benötigt werden können." #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" "Das Basis-Betriebssystemsabbild liefert den Großteil des Inhalts eines BTO-" "Abbilds. Es kann sich um ein unverändertes Betriebssystemabbild handeln oder " "um ein existierendes BTO-Abbild." #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "ISO-Abbild" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "Extrahiertes Verzeichnis" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "Erkannte Wiederherstellungspartition" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "Abbild wählen" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "Details zum ausgewählten Abbild:" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "Dell-Recovery hinzufügen" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "Teile des FID erfordern das Hinzufügen eines dell-recovery-Pakets" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "Nach einem dell-recovery-Paket suchen" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "Paket wählen" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "dell-recovery-Paket aus diesem System erstellen" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "dpkg-repack installieren" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" "Alle zusätzlichen Treiber oder Anwendungen, die in das Abbild integriert " "werden sollen, können hier hinzugefügt werden." #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" "Das BTO-FID-Framework ist der erste Gegenstand, welcher in das " "Standardabbild eingefügt wird. Wenn Sie an einem existierendem Abbild mit " "BTO-Unterstützung arbeiten, können Sie das eingebaute Framework verwenden." #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "In das BTO-Abbild eingebautes FID-Gerüst" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "FID-Framework wird dem Debian-Paket beigefügt" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "Details zum ausgewählten Overlay:" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "SRV-Eintrag" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "Geben Sie bitte ein, welches SRV verwendet werden soll:" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" "BTO-Abbilder können wahlweise eine Werkzeugpartition für Diagnosewerkzeuge " "beinhalten." #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "Keine zusätzliche Werkzeugpartition" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "Wählen Sie den Inhalt für die Werkzeugpartition aus" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "Erkannte Werkzeugpartition" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "Inhalt auswählen" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "Details zum ausgewählten Inhalt" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "_Hilfe" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" "Dies erstellt einen Betriebssystemwiederherstellungsdatenträger, der benutzt " "werden kann, um den Rechner in seinen Auslieferungszustand zurückzusetzen. " "Sie können einen USB-Stick oder eine DVD verwenden." #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" "Dies wird Ihr System mit Hilfe der auf der Festplatte gespeicherten " "Wiederherstellungspartition in den Auslieferungszustand zurückversetzen." #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "Betriebssystemdatenträger wird erstellt" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "System wird wiederhergestellt" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "git installieren" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Dell-Wiederherstellungsmedien können zum Zurücksetzen Ihres Systems (in den " "Zustand, in dem es Ihnen geliefert wurde) benutzt werden." #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Es wird dringend geraten, ein Wiederherstellungsmedium zu erstellen und " "an einem sicheren Ort aufzubewahren." #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "Werkszustand von #OS# wiederherstellen" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" "Wiederherstellungsmedium auf einem externen USB-Flash-Laufwerk speichern" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Hinweis: Ein USB-Flash-Laufwerk mit ungefähr 2GB freiem Speicher wird " "benötigt." #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "Wiederherstellungsmedium auf DVD speichern" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "Hinweis: Eine beschreibbare DVD wird benötigt." #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "Wiederherstellungsmedium jetzt nicht erstellen" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Das Wiederherstellungsmedium kann später erstellt werden, indem Sie das " "Werkzeug im System-Menü wählen." #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" "FEHLER: Dieses Medium kann nur auf Dell-Systemen verwendet werden." #~ msgid "Installation Mode" #~ msgstr "Installationsmodus" #~ msgid "OIE Installation Mode" #~ msgstr "OIE-Installationsmodus" #~ msgid "Additional Success Script" #~ msgstr "Zusätzliche Erfolgsfallskripte" #~ msgid "Additional Fail Script" #~ msgstr "Zusätzliche Fehlerfallskripte" #~ msgid "SUCCESS Script: " #~ msgstr "ERFOLGSFALL-Skript: " #~ msgid "FAIL Script: " #~ msgstr "FEHLERFALL-Skript: " #~ msgid "Building OIE Archive" #~ msgstr "OIE-Archiv wird erstellt" #~ msgid "" #~ "OIE compliant images can only be installed from ODM factory " #~ "environments. They will notify the user at completion of a success or " #~ "failure." #~ msgstr "" #~ "OIE-konforme Abbilddateien können ausschließlich in OEM-Umgebungen " #~ "installiert werden. Sie informieren den Benutzer über das erfolgreiche " #~ "oder fehlerhafte Abschließen." #~ msgid "Produce a standard installation image." #~ msgstr "Stelle ein eigenständig installierbares Abbild her." #~ msgid "Produce an OIE compliant installation image." #~ msgstr "Stelle ein OIE-konformes Installationsabbild her." #~ msgid "" #~ "OIE mode also allows you to provide additional SUCCESS and FAIL scripts " #~ "to be ran prior to notification the image is complete. These can each be " #~ "any executable program or script." #~ msgstr "" #~ "Der OIE-Modus erlaubt es Ihnen, zusätzliche ERFOLGS- und FEHLERFALL-" #~ "Skripte bereitzustellen, welche vor der Benachrichtigung, dass das Abbild " #~ "komplett ist, ausgeführt werden. Diese können beliebige ausführbare " #~ "Dateien oder Skripte sein." #~ msgid "Set SUCCESS script" #~ msgstr "Setze ERFOLGSFALL-Skript" #~ msgid "Set FAIL script" #~ msgstr "Setze FEHLERFALL-Skript" #~ msgid "\n" #~ msgstr "\n" #~ msgid "Choose Media Type" #~ msgstr "Medientyp wählen" #~ msgid "GIT Tree Status" #~ msgstr "Status GIT-Baum" #~ msgid "Show Details" #~ msgstr "Details anzeigen" #~ msgid "Overlaying FID content" #~ msgstr "FID-Inhalt wird überlagert" #~ msgid "No media, create ISO image" #~ msgstr "Kein Medium, ISO-Abbild erzeugen" #~ msgid "" #~ "The GIT fetch is in progress. \n" #~ "This window will close automatically when the process is complete. \n" #~ "NOTE: Please be patient, the initial fetch may take a while." #~ msgstr "" #~ "GIT wird geholt. \n" #~ "Dieses Fenster wird sich nach Abschluss des Vorgangs automatisch " #~ "schließen. \n" #~ "HINWEIS: Bitte haben Sie etwas Geduld, der erste Abholvorgang kann " #~ "einige Zeit in Anspruch nehmen." #~ msgid "FID GIT Tree" #~ msgstr "FID-GIT-Baum" #~ msgid "Fetch/Update GIT Tree" #~ msgstr "GIT-Baum abholen/aktualisieren" #~ msgid "GIT Tags/Branches:" #~ msgstr "GIT-Tags/-Zweige:" #~ msgid "python-vte is missing" #~ msgstr "python-vte fehlt" #~ msgid "Builder mode requires python-vte to function" #~ msgstr "" #~ "Der Erstellungsmodus benötigt python-vte, um korrekt zu funktionieren" #~ msgid "Choose Base OS Image" #~ msgstr "Wählen Sie das Basis-Betriebssystemsabbild" #~ msgid "ERROR: git is not installed" #~ msgstr "FEHLER: git ist nicht installiert" #~ msgid "Choose Driver Packages" #~ msgstr "Wählen Sie die Treiberpakete" #~ msgid "Choose Application Packages" #~ msgstr "Wählen Sie die Anwendungspakete" #~ msgid "Choose FID Overlay" #~ msgstr "Wählen Sie das FID-Overlay" #~ msgid "Missing Dell-Recovery" #~ msgstr "Dell-Recovery fehlt" #~ msgid "Not present in ISO or GIT tree" #~ msgstr "Nicht in ISO oder Git-Baum vorhanden" #~ msgid "FID Overlay" #~ msgstr "FID-Overlay" dell-recovery/po/fr.po0000664000000000000000000003153012311717746012122 0ustar # French translation for dell-recovery # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-02-15 15:09+0000\n" "Last-Translator: Emilien Klein \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Impossible de se connecter à dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Permission refusée" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Confirmer les sélections" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Ouverture du graveur" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Processus de création de supports de restauration terminé" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Type de média : " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Partition de Restauration: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "" #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Construction de l'ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" "Les rêgles système empêchent une lecture en brut sur des périphériques." #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "" "Les rêgles système empêchent une lecture en brut sur des périphériques." #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Annuler la création du média de restauration Dell" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" "Êtes vous sur de vouloir annuler le processus de création du média de " "restauration Dell?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Version :" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Une image existante a été trouvée (probablement d'une exécution précédente). " "Voulez-vous enlever cette ancienne copie et régénérer l'image ?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "Disque DVD+/-RW" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "Lecteur flash USB" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Créateur du média de restauration Dell" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "Image ISO" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "Choisir une image" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "Installer git" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Note : Cela nécessite une clé USB avec approximativement 2GiO de " "libre." #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "Note : Cela nécessite un disque DVD inscriptible." #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #~ msgid "No media, create ISO image" #~ msgstr "Aucun média, créer une image ISO" #~ msgid "Choose Media Type" #~ msgstr "Choisir un type de média" #~ msgid "Show Details" #~ msgstr "Afficher les détails" dell-recovery/po/cs.po0000664000000000000000000002737412311717746012133 0ustar # Czech translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-12-14 08:57+0000\n" "Last-Translator: Mario Limonciello \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Nedostatečná oprávnění" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "" #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "" #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "" #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Stavba ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents installing packages." msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "ISO obraz" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #~ msgid "Choose Media Type" #~ msgstr "Vyberte typ média" dell-recovery/po/POTFILES.in0000664000000000000000000000064612043102601012710 0ustar Dell/recovery_gtk.py Dell/recovery_basic_gtk.py Dell/recovery_advanced_gtk.py Dell/recovery_backend.py backend/com.dell.recoverymedia.policy.in gtk/dell-recovery-media.desktop.in gtk/dell-driver-installer.desktop.in [type: gettext/glade]gtk/recovery_media_creator.ui [type: gettext/glade]gtk/builder.ui [type: gettext/glade]gtk/tool_selector.ui [type: gettext/glade]ubiquity/stepRecoveryMedia.ui ubiquity/dell-recovery.py dell-recovery/po/nb.po0000664000000000000000000002737012311717746012121 0ustar # Norwegian Bokmal translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-01-26 15:14+0000\n" "Last-Translator: Mario Limonciello \n" "Language-Team: Norwegian Bokmal \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "" #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "" #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "" #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents installing packages." msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "DVD+/-RW-plate" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #~ msgid "Choose Media Type" #~ msgstr "Velg mediatype" dell-recovery/po/zh_TW.po0000664000000000000000000002732012311717746012550 0ustar # Chinese (Traditional) translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-01-26 14:32+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Chinese (Traditional) \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "連接不到dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "權限不足" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "啟動燒錄機" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "" #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "" #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "" #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents installing packages." msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" dell-recovery/po/pl.po0000664000000000000000000003004312311717746012124 0ustar # Polish translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-01-26 15:16+0000\n" "Last-Translator: Paweł Madej \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Nie można się połączyć z dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Dostęp zabroniony" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Potwierdź wybory" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Otwieranie nagrywarki" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Proces Tworzenia Dysku Odzyskiwania Zakończony" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Jeżeli chcesz przygotować kolejną kopię, obraz został zapisany pod nazwą:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Typ nośnika: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Partycja przywracania " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Partycja Narzędziowa " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "Dodawanie obrazu" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents installing packages." msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "Dysk DVD+-RW" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "Dysk USB Flash" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "Obraz ISO" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #~ msgid "Choose Media Type" #~ msgstr "Wybierz typ nośnika" dell-recovery/po/it.po0000664000000000000000000005024512311717746012133 0ustar # Italian translation for dell-recovery # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2011-08-04 15:18+0000\n" "Last-Translator: Claudio Arseni \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Impossibile connettersi a D-Bus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Permesso negato" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "Eccezione" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "Ripristino sistemi Dell" #: ../Dell/recovery_gtk.py:198 #, fuzzy msgid "Copyright 2008-2012 Dell Inc." msgstr "Copyright 2008-2010 Dell Inc." #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Conferma selezioni" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "Tipo si supporto" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "Creazione immagine di base" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Apertura del masterizzatore" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Processo di creazione del supporto di recupero completato" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Per creare un'altra copia, l'immagine generata è stata salvata nel file:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "Impossibile proseguire" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" "Il sistema non sembra contenere una partizione con le impostazioni Dell " "installata." #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "File immagine" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Tipo di supporto: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Partizione di recupero: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "aggiunta" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr " (BTO Modalità creazione immagine)" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" "Verranno integrati all'interno dell'immagine personalizzata del sistema " "operativo un framework Dell OEM e il pacchetto dei driver. Sarà possibile " "creare un supporto USB o un'immagine DVD." #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "Pacchetti applicazione" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "Pacchetti driver" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "Partizione di utilità" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "Contenuto FID" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "Immagine di base del sistema operativo" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "Sommario creazione immagine" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "Base immagine distributore" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "Base immagine rilascio" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "Base immagine BTO" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "Base immagine" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Partizione di utilità: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "Applicazione" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "Driver" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "Pacchetti" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "Aggiungere pacchetto recupero Dell" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "Montaggio componenti immagine" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "Nessuna partizione di utilità aggiuntiva" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "Tutti gli SRV devonon essere riempiti per procedere." #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "Elaborazione pacchetti FISH" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "Aggiunta all'immagine di base" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "Preparazione immagine nidificata" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "Creazione della partizione di utilità Dell" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "Rigenerazione UUID / Ricostruzione initramfs" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "Creazione immagine principale di GRUB" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Generazione ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "Interrogazione versione BTO" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "La politica di sistema impedisce la lettura di dispositivi raw" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "Interrogazione infromazioni ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "Ripristina le impostazioni di fabbrica" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" "La politica del sistema previene la modifica delle impostazioni di avvio" #: ../backend/com.dell.recoverymedia.policy.in.h:6 #, fuzzy msgid "Boot utility partition to flash BIOS" msgstr "Scegliere la partizione di utilità" #: ../backend/com.dell.recoverymedia.policy.in.h:7 #, fuzzy msgid "Install Dell driver packages" msgstr "Aggiungere pacchetto recupero Dell" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "La politica di sistema impedisce la lettura di dispositivi raw" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "Creazione/Assemblaggio ISO recupero Dell" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "Richiesta chiusura backend" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "La politica di sistema impedisce la chiusura dei processi senza avviso" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "Commuta connettività di rete" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" "La politica di sistema proibisce il cambio della rete senza il consenso " "dell'utente" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Annulla creazione supporto di recupero" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "Annullare veramente il processo di creazione del supporto di recupero?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Versione:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "È stata trovata un'immagine precedente. Rimuovere la vecchia copia e " "rigenerare l'immagine?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "Disco DVD+/-RW" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "È richiesto un supporto DVD scrivibile." #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "Unità flash USB" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "È richiesta un'unità flash USB con almeno 2 GB di spazio libero." #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "Nessun supporto, creare immagine" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Creazione supporto di recupero Dell" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" "Durante l'installazione delle impostazioni di fabbrica, le applicazioni " "vengono installate solo se l'ordine dei record (SDR) fa riferimento ad un " "SRV, aumentando la possibiltà che questo venga interrogato durante " "l'installazione." #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" "L'immagine di base del sistema operativo fornisce la maggior parte dei " "contenuti per un'immagine \"BTO\". Può essere un'immagine \"Vanilla\" del " "sistema operativo o un'immagine \"BTO\" esistente." #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "Immagine ISO" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "Directory estratta" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "Rilevata partizione di ripristino" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "Scegliere immagine" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "Dettagli dell'immagine selezionata:" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "Aggiungi Dell Recovery" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" "Parte della copertura FID richiede l'inclusione di un pacchetto dell-" "recovery." #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "Ricercare tutti i pacchetti dell-recovery" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "Scegliere pacchetto" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "Genera un pacchetto dell-recovery del sistema" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "Installare dpkg-repack" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" "Tutti i componenti aggiuntivi o le applicazioni da integrare nell'immagine " "possono essere aggiunti qui." #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" "Il framework FID BTO è la prima cosa inserita in una immagine «vanilla». Se " "si sta generando l'immagine da una BTO compatibile già esistente, si " "dovrebbe utilizzare il framework integrato." #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "Ambiente FID creato nell'immagine BTO" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "Framework FID incluso nel pacchetto debian" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "Dettagli sovrapposti selezionati:" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "Voce SRV" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "inserire SRV da utilizzare:" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" "Le immagini BTO possono opzionalmente contenere un partizione di utilità per " "la diagnostica." #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "Nessuna partizione di utilità aggiuntiva" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "Selezionare il contenuto della partizione di utilità" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "Rilevata partizione di utilità" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "Scegliere contenuto" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "Dettagli del contenuto selezionato:" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "A_iuto" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" "Verrà creato un supporto di ripristino del sistema operativo da utilizzare " "per riporatre il computer alle impostazioni iniziali. Sarà possibile creare " "un supporto USB o un'immagine DVD." #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" "Riporterà il sistema alle impostazioni originali utilizzando la partizione " "di ripristino archiviata sul disco rigido." #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "Creazione supporto del sistema operativo" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "Ripristina il sistema" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "Installare git" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Il supporto di ripristino Dell può essere utilizzato per ripristinare il " "sistema allo stato iniziale." #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "È consigliato creare un supporto di ripristino e conservarlo in ul luogo " "sicuro." #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "Ripristinare il sistema operativo alle impostazioni di fabbrica" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "Salvare il supporto di ripristino in una unità flash USB esterna" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Nota: è richiesta una unità flash USB con almeno 2 GB di spazio " "libero." #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "Salvare il supporto di ripristino in un DVD" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "Nota: è richiesto un supporto DVD scrivibile." #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "Non generare supporti di ripristino in questo momento" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "I supporti di ripristino possono essere generati successivamente scegliendo " "il programma dal menù Sistema." #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "Errore: questo supporto può essere utilizzato solo su sistemi Dell." #~ msgid "Installation Mode" #~ msgstr "Modalità di installazione" #~ msgid "OIE Installation Mode" #~ msgstr "Modalità di installazione OIE" #~ msgid "Additional Success Script" #~ msgstr "Script aggiuntivo per la riuscita" #~ msgid "Additional Fail Script" #~ msgstr "Script aggiuntivo per la non riuscita" #~ msgid "SUCCESS Script: " #~ msgstr "Script per la riuscita: " #~ msgid "FAIL Script: " #~ msgstr "Script per la non riuscita: " #~ msgid "Building OIE Archive" #~ msgstr "Creazione archivio OIE" #~ msgid "" #~ "OIE compliant images can only be installed from ODM factory " #~ "environments. They will notify the user at completion of a success or " #~ "failure." #~ msgstr "" #~ "Le immagini compatibili OIE posso essere installate solo dagli ambienti " #~ "di fabbrica ODM. Notificheranno all'utente se è il processo è stato " #~ "completato con successo o se non è riuscito." #~ msgid "Produce a standard installation image." #~ msgstr "Creare immagine d'installazione standard" #~ msgid "Produce an OIE compliant installation image." #~ msgstr "Creare immagine d'installazione compatibile OIE" #~ msgid "" #~ "OIE mode also allows you to provide additional SUCCESS and FAIL scripts " #~ "to be ran prior to notification the image is complete. These can each be " #~ "any executable program or script." #~ msgstr "" #~ "La modalità OIE consente di fornire script aggiuntivi per la riuscita o " #~ "non riuscita da eseguire prima della notifica di completamento " #~ "dell'immagine. Possono essere programmi eseguibili o script." #~ msgid "Set SUCCESS script" #~ msgstr "Imposta script di riuscita" #~ msgid "Set FAIL script" #~ msgstr "Imposta script di non riuscita" #~ msgid "\n" #~ msgstr "\n" #~ msgid "Choose Media Type" #~ msgstr "Scegliere il tipo di supporto" #~ msgid "No media, create ISO image" #~ msgstr "No, crea immagine ISO" #~ msgid "Show Details" #~ msgstr "Mostra dettagli" #~ msgid "Overlaying FID content" #~ msgstr "Sovrapposizione contenuto FID" #~ msgid "FID GIT Tree" #~ msgstr "Albero FID GIT" #~ msgid "GIT Tree Status" #~ msgstr "Stato albero GIT" #~ msgid "GIT Tags/Branches:" #~ msgstr "Tag/Branch GIT:" #~ msgid "python-vte is missing" #~ msgstr "ptython-vte mancante" #~ msgid "Choose Base OS Image" #~ msgstr "Scegliere la base dell'immagine del sistema operativo" #~ msgid "Choose Driver Packages" #~ msgstr "Scegliere i pacchetti dei driver" #~ msgid "Choose Application Packages" #~ msgstr "Scegliere i pacchetti dell'applicazione" #~ msgid "Missing Dell-Recovery" #~ msgstr "Dell-Recovery mancante" #~ msgid "Builder mode requires python-vte to function" #~ msgstr "La modalità «creazione immagine» richiede python-vte per funzionare" #~ msgid "Choose FID Overlay" #~ msgstr "Scegliere FID sovrapposto" #~ msgid "Not present in ISO or GIT tree" #~ msgstr "Non è presente nella ISO o nell'albero GIT" #~ msgid "Fetch/Update GIT Tree" #~ msgstr "Recuperare/Aggiornare l'albero GIT" #~ msgid "ERROR: git is not installed" #~ msgstr "Errore: git non è installato" #~ msgid "" #~ "The GIT fetch is in progress. \n" #~ "This window will close automatically when the process is complete. \n" #~ "NOTE: Please be patient, the initial fetch may take a while." #~ msgstr "" #~ "GIT in avanzamento.\n" #~ "Questa finestra si chiuderà automaticamente al completamento del " #~ "processo. \n" #~ "NOTA: attendere, l'operazione potrebbe impiegare alcuni minuti." #~ msgid "FID Overlay" #~ msgstr "FID sovrapposto" dell-recovery/po/zh_CN.po0000664000000000000000000004127512311717746012523 0ustar # Simplified Chinese translation for dell-recovery # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2011-01-20 02:20+0000\n" "Last-Translator: Li Jin \n" "Language-Team: Simplified Chinese \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:47+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "无法连接到 dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "权限不足" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "异常报错" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "戴尔系统恢复" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "确认选择" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "建立基准镜像" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "打开光盘刻录器" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "恢复介质创建完成" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "如果您想存档其它副本,生成的镜像以下述文件名保存:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "无法继续" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "系统没有包含戴尔工厂安装分区。" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "恢复盘类型: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "还原分区: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "包含" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr " (BTO 镜像创建模式)" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" "将会合并戴尔OEM安装包和驱动程序到操作系统镜像中。可以选择以此建立USB存储盘或" "DVD光盘。" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "实用工具分区" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "生成器统计" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "基准镜像发布者" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "基准镜像发布" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "BTO (工厂按单定制)基准镜像" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "基准镜像" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "工具分区 " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "应用程序" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "驱动程序" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "软件包" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "加入戴尔恢复系统包" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "组装镜像各个部分" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "没有实用工具分区" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "必须填写所有 SRV 后才能继续。" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "处理工厂预安装包" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "添加到原始镜像" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "准备内建的镜像" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "建立 Dell 工具分区" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "重新生成 UUID / 重新构建 initramfs" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "建立GRUB核心镜像" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "制作 ISO 光盘镜像" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "查询 BTO 版本" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "系统策略阻止读取 raw 设备" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "查询 ISO 信息" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "恢复到出厂状态" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "系统策略阻止改变系统启动项" #: ../backend/com.dell.recoverymedia.policy.in.h:6 #, fuzzy msgid "Boot utility partition to flash BIOS" msgstr "选择工具分区" #: ../backend/com.dell.recoverymedia.policy.in.h:7 #, fuzzy msgid "Install Dell driver packages" msgstr "加入戴尔恢复系统包" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "系统策略阻止读取 raw 设备" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "创建/集成 Dell 系统恢复 ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "请求关闭后台" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "系统策略不允许不经提示即结束进程。" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "中止恢复介质创建程序" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "确定要中止创建恢复光盘吗?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "版本:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "发现已经存在的镜像(可能是上次运行产生的)。是否删除旧的镜像,并重新生成新镜" "像?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "DVD+/-RW 光盘" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "需要可写入的 DVD 光盘。" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "USB 闪存驱动器" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "需要有至少 2GB 空间的 USB 闪存驱动器。" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Dell 恢复光盘创建程序" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "<启动标识符>" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" "在工厂安装中,所有要安装的应用程序会根据 SDR 中的 SRV 来安装。 所有可能的 " "SRV 都要放入其中,在安装中会被查寻 。" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" "原始 OS 镜像为 BTO 镜像提供了主要内容。它可能是 Vanilla OS 镜像,或一个已经存" "在的 BTO 镜像。" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "ISO 镜像" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "已展开的目录" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "已检出的恢复分区" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "选择镜像" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "选中的镜像的详情:" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "添加 Dell Recovery" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "某些FID overlay需要包含戴尔恢复包。" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "浏览 dell-recovery 软件包" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "选择软件包" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "从此系统创建 dell-recovery 软件包" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "安装 dpkg-repack" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "要将额外附加的驱动或应用集成到镜像里,请在这里添加。" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" "工厂安装构架应首先放入基准系统中。如果使用已兼容工厂安装的镜像,可以使用镜像" "内已有的构架。" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "FID 框架建立 BTO 镜像" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "工厂安装构架封装入Debian包" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "选中的覆盖详情:" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "SRV 条目" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "请输入要使用的 SRV :" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "BTO 镜像可以包括或不包括带有诊断工具的 Utility 分区。" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "无附加工具分区" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "选择工具分区内容" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "已检出的工具分区" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "选择内容" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "已选择的内容详情:" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "帮助(_H)" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" "生成操作系统恢复镜像来恢复计算机至出厂状态。可以选择以此建立USB存储盘或DVD光" "盘。" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "从硬盘上的恢复分区中把系统恢复至出厂状态。" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "建立操作系统光盘" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "恢复系统" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "安装 git" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "Dell 还原盘可以把您的电脑恢复到出厂系统。" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "强烈建议创建还原镜像并保存在安全的地方。" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "将恢复介质保存为外接的 USB 闪存盘" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "提示:这要求 USB 闪存盘至少有 2GB 的可用空间。" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "将恢复介质保存为 DVD" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "提示:这需要可写的 DVD 盘片。" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "这次不生成恢复盘" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "可以在“系统”菜单里选择“工具”,稍后再生成恢复盘。" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "错误:本介质只适合 Dell 电脑使用。" #~ msgid "No media, create ISO image" #~ msgstr "没有刻录光盘,只创建 ISO 镜像文件" #~ msgid "FID GIT Tree" #~ msgstr "FID GIT 树" #~ msgid "GIT Tree Status" #~ msgstr "GIT 树状态" #~ msgid "Fetch/Update GIT Tree" #~ msgstr "获取/更新 GIT 树" #~ msgid "GIT Tags/Branches:" #~ msgstr "GIT 标签/分支:" #~ msgid "Overlaying FID content" #~ msgstr "覆盖 FID 内容" #~ msgid "" #~ "The GIT fetch is in progress. \n" #~ "This window will close automatically when the process is complete. \n" #~ "NOTE: Please be patient, the initial fetch may take a while." #~ msgstr "" #~ "GIT 正在执行 fetch 操作。\n" #~ "进程完成后,本窗口将自动关闭。 \n" #~ "提示:初始的 fetch 操作要一点时间,请耐心等待。" #~ msgid "Show Details" #~ msgstr "显示详细信息" #~ msgid "Choose Media Type" #~ msgstr "选择存储介质类型" #~ msgid "Builder mode requires python-vte to function" #~ msgstr "使用创建模式需要预先安装 python-vte" #~ msgid "Choose FID Overlay" #~ msgstr "选择 FID 版本" #~ msgid "Choose Base OS Image" #~ msgstr "选择操作系统原始镜像" #~ msgid "ERROR: git is not installed" #~ msgstr " 错误 :没有安装 git 工具" #~ msgid "Missing Dell-Recovery" #~ msgstr "没有 Dell-Recovery" #~ msgid "Not present in ISO or GIT tree" #~ msgstr "ISO 和 GIT 树中不存在" #~ msgid "python-vte is missing" #~ msgstr "缺少 python-vte" #~ msgid "Choose Driver Packages" #~ msgstr "选择驱动程序软件包" #~ msgid "Choose Application Packages" #~ msgstr "选择应用程序软件包" #~ msgid "FID Overlay" #~ msgstr "FID 版本" dell-recovery/po/fi.po0000664000000000000000000004755112311717746012123 0ustar # Finnish translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2011-10-07 11:12+0000\n" "Last-Translator: Timo Jyrinki \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-10-08 05:17+0000\n" "X-Generator: Launchpad (build 14110)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Dbusiin ei voi yhdistää" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Pääsy evätty" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "Poikkeus" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "Dell-palautus" #: ../Dell/recovery_gtk.py:198 #, fuzzy msgid "Copyright 2008-2012 Dell Inc." msgstr "Tekijänoikeudet 2008-2010 Dell Inc." #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Vahvista valinnat" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "Median tyyppi" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "Rakennetaan peruslevykuvaa" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Avataan kirjoittajaa." #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Palautusmedian luominen valmis" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Siltä varalta, että haluaisit arkistoida toisen kopion, on luotu levykuva " "tallennettu tiedostonimellä:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "Ei voida jatkaa" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" "Järjestelmässä ei vaikuttaisi olevan Dellin tehtaalla asennettua " "osiojaottelua." #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "Levykuvatiedosto" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Median tyyppi: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Palautusosio: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "Sisältyy" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr " (BTO-levykuvan rakennustila)" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" "Tämä integroi Dellin OEM FID -kehyksen ja ajuripaketit mukautettuun " "käyttöjärjestelmämedian levykuvaan. Voit luoda USB-muisti- tai DVD-levykuvan." #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "Sovelluspaketit" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "Ajuripaketit" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "Työkaluosio" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "FID-sisältö" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "Peruskäyttöjärjestelmäkuva" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "Rakennuksen yhteenveto" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "Peruslevykuvan jakelija" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "Peruslevykuvan julkaisu" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "BTO-peruslevykuva" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "Peruslevykuva" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Työkaluosio: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "Sovellus" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "Ajuri" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "Paketit" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "Sisällytä Dellin palautuspaketti" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "Koostetaan levykuvan osia" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "Ei ylimääräistä työkaluosiota" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "Kaikki SRV:t tulee olla täytetty, jotta voidaan jatkaa." #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "Käsitellään FISH-paketteja" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "Lisätään peruslevykuvaan" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "Valmistellaan sisäkkäistä levykuvaa" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "Rakennetaan Dell-työkaluosiota" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "Luodaan uudelleen UUID / rakennetaan uudelleen initramfs" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "Rakennetaan GRUB-ydinlevykuvaa" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Rakennetaan ISOa" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "Tarkista BTO-versio" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" "Järjestelmän valtuutusasetukset estävät raakalaitteiden (raw) lukemisen" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "Tarkista ISO-tiedot" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "Palauta tehdastilaan" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "Järjestelmän käytännöt estävät järjestelmän käynnistyksen muuttamisen" #: ../backend/com.dell.recoverymedia.policy.in.h:6 #, fuzzy msgid "Boot utility partition to flash BIOS" msgstr "Valitse työkaluosio" #: ../backend/com.dell.recoverymedia.policy.in.h:7 #, fuzzy msgid "Install Dell driver packages" msgstr "Sisällytä Dellin palautuspaketti" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "" "Järjestelmän valtuutusasetukset estävät raakalaitteiden (raw) lukemisen" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "Luo/koosta Dell-palautus-ISO-levykuva" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "Pyydä taustaohjelman sulkemista" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" "Järjestelmän valtuutusasetukset estävät prosessien sulkemisen ilman " "ilmoitusta" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "Kytke verkkoyhteydet päälle tai pois" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" "Järjestelmäkäytäntö estää verkon muuttamista ilman käyttäjän hyväksyntää" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Peru palautusmedian luonti" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "Haluatko varmasti perua palautusmedian luonnin?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Versio:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Olemassa oleva levykuva löytyi (mahdollisesti edelliseltä suorituskerralta). " "Haluatko poistaa tämän vanhan kopion ja luoda levykuvan uudelleen?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "DVD+/-RW-levy" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "Tämä vaatii kirjoitettavan DVD-levyn." #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "USB-Flash-asema" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "Tämä vaatii USB-aseman, jolla on noin 2GB vapaata tilaa-" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "Ei mediaa, luo levykuva" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Dell-palautusmedian luonti" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" "Tehdasasennuksen aikana sovelluksia asennetaan vain, jos tilausrekisteri " "(”SDR”) viittaa SRV:hen (”service release vehicle”). Tämä sisältää " "asennuksen aikana kyseltävät mahdolliset SRV:t." #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" "Käyttöjärjestelmän peruslevykuva tarjoaa suurimman osan BTO-levykuvan " "sisällöstä. Se voi olla puhdas käyttöjärjestelmän levykuva, tai olemassa " "oleva BTO-levykuva." #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "ISO-levykuva" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "Purettiin hakemisto" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "Palautusosio havaittiin" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "Valitse levykuva" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "Valitun levykuvan tiedot:" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "Lisää ”Dell Recovery”" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "Osa FID-laskoksesta vaatii dell-recovery-paketin sisällyttämistä." #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "Selaa etsiäksesi dell-recovery-pakettia" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "Valitse paketti" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "Rakenna dell-recovery-paketti tästä järjestelmästä" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "Asenna dpkg-repack" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" "Mahdolliset tarvittavat, levykuvaan integroitavat lisäajurit ja sovellukset " "voidaan lisätä tässä." #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" "BTO FID -kehysohjelmisto on ensimmäinen peruslevykuvaan lisättävä asia. Jos " "olet luomassa tätä olemassa olevasta BTO-yhteensopivasta levykuvasta, voit " "käyttää sisään rakennettua kehysohjelmistoa." #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "FID-kehysohjelmisto rakennettu BTO-levykuvaan" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "FID-kehysohjelmisto sisällytettynä debian-pakettiin" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "Valitun laskostuksen tiedot:" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "SRV:n syöttö" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "Syötä käytettävä SRV:" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" "BTO-levykuvat voivat valinnaisesti sisältää vianjäljitystyökaluja sisältävän " "työkaluosion." #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "Ei ylimääräistä työkaluosiota" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "Valitse työkaluosion sisältö" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "Työkaluosio havaittiin" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "Valitse sisältö" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "Valitse sisällön yksityiskohdat:" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "O_hje" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" "Tämä luo käyttöjärjestelmän palautusmedian, jota käyttämällä tietokone on " "mahdollista palauttaa tehtaalta tulleeseen tilaansa. Voit luoda USB-muisti- " "tai DVD-levykuvan" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" "Tämä palauttaa järjestelmän tilaan, jossa se oli tehtaalla toimitettaessa. " "Palautukseen käytetään kiintolevylle sisällytettyä palautusosiota." #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "Rakenna käyttöjärjestelmämedia" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "Palauta järjestelmä" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "Asenna git" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Dell-palautusmedialta järjestelmä voidaan palauttaa samaan tilaan, jossa se " "oli vastaanottaessasi järjestelmän." #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Median luominen on hyvin suositeltavaa. Sijoita se luomisen jälkeen " "turvalliseen paikkaan." #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "Palauta #OS# tehdastilaan" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "Tallenna palautusmedia ulkoiselle USB-muistivälineelle" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Huomaa: Tämä vaatii USB-muistivälineen, jolla on noin 2GB vapaata " "tilaa." #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "Tallenna palautusmedia DVD-levylle" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "Huomaa: Tämä vaatii kirjoitettavan DVD-levyn" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "Älä luo palautusmediaa tällä kertaa" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Palautusmedian voi luoda myöhemmin valitsemalla työkalun Järjestelmä-" "valikosta." #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "VIRHE: Tämä media on tarkoitettu vain Dell-järjestelmille." #~ msgid "Installation Mode" #~ msgstr "Asennustapa" #~ msgid "OIE Installation Mode" #~ msgstr "OIE-asennustapa" #~ msgid "Additional Success Script" #~ msgstr "Ylimääräinen komentojono onnistuttaessa" #~ msgid "Additional Fail Script" #~ msgstr "Ylimääräinen komentojono epäonnistuttaessa" #~ msgid "SUCCESS Script: " #~ msgstr "Komentojono onnistuttaessa: " #~ msgid "FAIL Script: " #~ msgstr "Komentojono epäonnistuttaessa: " #~ msgid "Building OIE Archive" #~ msgstr "Rakennetaan OIE-arkistoa" #~ msgid "" #~ "OIE compliant images can only be installed from ODM factory " #~ "environments. They will notify the user at completion of a success or " #~ "failure." #~ msgstr "" #~ "OIE-määritelmän täyttäviä levykuvia voidaan asentaa ainoastaan ODM-" #~ "tehdasympäristöissä. Ne kertovat valmistuttuaan käyttäjälle " #~ "onnistumisesta tai epäonnistumisesta." #~ msgid "Produce a standard installation image." #~ msgstr "Tuota tavallinen asennuskuva." #~ msgid "Produce an OIE compliant installation image." #~ msgstr "Tuota OIE-määritysten mukainen asennuskuva." #~ msgid "" #~ "OIE mode also allows you to provide additional SUCCESS and FAIL scripts " #~ "to be ran prior to notification the image is complete. These can each be " #~ "any executable program or script." #~ msgstr "" #~ "OIE-tila sallii myös ylimääräisten komentojonojen ajamisen " #~ "epäonnistumisen tai onnistumisen yhteydessä, ennen ilmoitusta levykuvan " #~ "valmistumisesta. Komennot voivat olla mikä tahansa suoritettava ohjelma " #~ "tai komentojono." #~ msgid "Set SUCCESS script" #~ msgstr "Aseta komentojono onnistumiselle" #~ msgid "Set FAIL script" #~ msgstr "Aseta komentojono epäonnistumiselle" #~ msgid "\n" #~ msgstr "\n" #~ msgid "Choose Media Type" #~ msgstr "Valitse median tyyppi" #~ msgid "Overlaying FID content" #~ msgstr "Laskostetaan FID-sisältöä" #~ msgid "No media, create ISO image" #~ msgstr "Ei mediaa/levyä, luo ISO-levykuva" #~ msgid "GIT Tree Status" #~ msgstr "GIT-puun tila" #~ msgid "FID GIT Tree" #~ msgstr "FID GIT-puu" #~ msgid "Fetch/Update GIT Tree" #~ msgstr "Hae/päivitä GIT-puu" #~ msgid "GIT Tags/Branches:" #~ msgstr "GIT-merkinnät/haarat:" #~ msgid "Show Details" #~ msgstr "Näytä yksityiskohdat" #~ msgid "" #~ "The GIT fetch is in progress. \n" #~ "This window will close automatically when the process is complete. \n" #~ "NOTE: Please be patient, the initial fetch may take a while." #~ msgstr "" #~ "GIT-nouto on käynnissä. \n" #~ "Tämä ikkuna sulkeutuu automaattisesti, kun toiminto on valmis. \n" #~ "HUOMAA: Ole kärsivällinen, sillä ensimmäinen nouto voi kestää " #~ "jonkin aikaa." #~ msgid "ERROR: git is not installed" #~ msgstr "VIRHE: git-ohjelmaa ei ole asennettu" #~ msgid "python-vte is missing" #~ msgstr "python-vte puuttuu" #~ msgid "Builder mode requires python-vte to function" #~ msgstr "Rakentaja vaatii python-vte:n toimiakseen" #~ msgid "Choose Base OS Image" #~ msgstr "Valitse käyttöjärjestelmän peruslevykuva" #~ msgid "Choose FID Overlay" #~ msgstr "Valitse FID-laskostus" #~ msgid "Choose Driver Packages" #~ msgstr "Valitse ajuripaketit" #~ msgid "Choose Application Packages" #~ msgstr "Valitse sovelluspaketit" #~ msgid "Missing Dell-Recovery" #~ msgstr "Puuttuva ”Dell-Recovery”" #~ msgid "Not present in ISO or GIT tree" #~ msgstr "Ei saatavalla ISOssa tai GIT-puussa" #~ msgid "FID Overlay" #~ msgstr "FID-laskos" dell-recovery/po/ga.po0000664000000000000000000002731112311717746012104 0ustar # Irish translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-01-26 15:14+0000\n" "Last-Translator: Aaron Mac Fhionnlaoich \n" "Language-Team: Irish \n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Cead Diúltaithe" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "" #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "" #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "" #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents installing packages." msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "Méaróg USB" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "Íomhá ISO" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" dell-recovery/po/eu.po0000664000000000000000000002723312311717746012131 0ustar # Basque translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-04-17 13:36+0000\n" "Last-Translator: Oier Mees \n" "Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Aukerak baieztatu" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "" #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "" #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "" #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents installing packages." msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "ISO irudia" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" dell-recovery/po/lt.po0000664000000000000000000003214512311717746012135 0ustar # Lithuanian translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2011-11-10 14:06+0000\n" "Last-Translator: Mantas Kriaučiūnas \n" "Language-Team: Lithuanian \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-11-11 04:54+0000\n" "X-Generator: Launchpad (build 14277)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Nepavyko prisijungti prie dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Priėjimas uždraustas" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Patvirtinkite pasirinkimus" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Atveriama CD/DVD įrašymo programa" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Atkūrimo laikmena sukurta" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Laikmenos tipas: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Atkūrimo skirsnis: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Įrankių skirsnis: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "Kuriamas Dell įrankių skirsnis" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Kuriamas ISO atvaizdis" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents installing packages." msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "Sukurti Dell sistemos atkūrimo atvaizdį (ISO failą)" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Nutraukti atkūrimo laikmenos generavimą" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "Ar tikrai norite nutraukti atkūrimo laikmenos generavimą?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Versija:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Radau jau sukurtą atkūrimo atvaizdžio failą. Ar norite išmesti šį failą ir " "iš naujo sukurti sistemos atkūrimo atvaizdį?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "DVD+/-RW diskas" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "USB \"Flash\" atmintukas" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Dell sistemos atkūrimo laikmenų įrankis" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "ISO atvaizdis" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "Išskleistas aplankas" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "Aptiktas atkūrimo skirsnis" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "Pasirinkite atvaizdį" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "Pasirinkto atvaizdžio informacija:" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" "Čia galite pridėti papildomas programas, aparatinės įrangos valdykles ar " "kitą programinę įrangą, kurią norite įdėti į sistemos atkūrimo atvaizdį." #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "Įdiegti GIT" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "Išsaugoti atkūrimo atvaizdį į išimamą USB \"flash\" atmintuką" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Pastaba: Šiuo atveju jums reikės USB \"flash\" atmintuko, kuriame yra " "bent 2 GB laisvos vietos." #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "Išsaugoti atkūrimo atvaizdį į DVD" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "Pastaba: Šiuo atveju jums reikės įrašomo DVD disko." #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "Negeneruoti atkūrimo laikmenos šiuo metu" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #~ msgid "Choose Media Type" #~ msgstr "Pasirinkite laikmenos tipą" #~ msgid "No media, create ISO image" #~ msgstr "tik sukurti ISO atvaizdžio failą" #~ msgid "Show Details" #~ msgstr "Rodyti išsamią informaciją" dell-recovery/po/Makefile0000775000000000000000000000110511751021273012577 0ustar DOMAIN=dell-recovery PO_FILES := $(wildcard *.po) all: update-po top_srcdir=../ # update the pot $(DOMAIN).pot: XGETTEXT_ARGS=--msgid-bugs-address=$(CONTACT) intltool-update -p -g $(DOMAIN) # merge the new stuff into the po files merge-po: $(PO_FILES) XGETTEXT_ARGS=--msgid-bugs-address=$(CONTACT) intltool-update -r -g $(DOMAIN); # create mo from the POs %.mo : %.po mkdir -p mo/$(subst .po,,$<)/LC_MESSAGES/ msgfmt $< -o mo/$(subst .po,,$<)/LC_MESSAGES/$(DOMAIN).mo # dummy target update-po: $(DOMAIN).pot $(patsubst %.po,%.mo,$(wildcard *.po)) clean: rm -rf mo dell-recovery/po/id.po0000664000000000000000000003111112311717746012102 0ustar # Indonesian translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-04-17 12:06+0000\n" "Last-Translator: Andika Triwidada \n" "Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Tak bisa menyambung ke dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Izin Ditolak" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Konfirmasi Pilihan" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Membuka Pembakar" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Proses Pembuatan Media Pemulihan Selesai" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Bila Anda ingin mengarsip salinan lain, image yang dibuat telah disimpan " "dengan nama berkas:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Tipe Media: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Partisi Pemulihan: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "Termasuk" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr " (Mode Pembangun Image BTO)" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "Ringkasan Pembangun" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Partisi Utilitas: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "Aplikasi" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "Driver" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "Paket" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "Menambahkan image dasar" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "Membangun Partisi Utilitas Dell" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Membangun ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 #, fuzzy msgid "Boot utility partition to flash BIOS" msgstr "Pilih Partisi Utilitas" #: ../backend/com.dell.recoverymedia.policy.in.h:7 #, fuzzy msgid "Install Dell driver packages" msgstr "Pilih Paket Driver" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents installing packages." msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "Image ISO" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #~ msgid "Choose Media Type" #~ msgstr "Pilih Tipe Media" #~ msgid "python-vte is missing" #~ msgstr "python-vte hilang" #~ msgid "Builder mode requires python-vte to function" #~ msgstr "Moda pembangun memerlukan python-vte agar berfungsi" #~ msgid "Choose Base OS Image" #~ msgstr "Pilih Image OS Dasar" #~ msgid "ERROR: git is not installed" #~ msgstr "GALAT: git tidak terpasang" #~ msgid "Choose Application Packages" #~ msgstr "Pilih Paket Aplikasi" dell-recovery/po/gl.po0000664000000000000000000004057512311717746012126 0ustar # Galician translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-04-17 00:59+0000\n" "Last-Translator: Fran Diéguez \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Non é posíbel conectarse a dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Permiso denegado" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Confirmar seleccións" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Abrindo a grabadora" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Rematouse o proceso de creación de soporte de recuperación" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Se quere arquivar outra copia, a imaxe xerada almacenouse baixo o nome de " "ficheiro:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Tipo de soporte: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Particion de recuperación: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "Incluido" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr " (Modo de construción de imaxes BTO)" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "Resumo do construtor" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Partición de utilidade: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "Aplicativo" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "Controlador" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "Paquetes" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "Todas as SRVs debe completarse para continuar." #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "Engadindo á imaxe base" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "Construindo a partición de utilidade de Dell" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "Rexerando o UUID / Reconstruindo o initramfs" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Creando a imaxe ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "Consultar a versión do BTO" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "A normativa do sistema impide ler dispositivos raw" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "Consultar información da imaxe ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 #, fuzzy msgid "Boot utility partition to flash BIOS" msgstr "Seleccione a partición de utilidade" #: ../backend/com.dell.recoverymedia.policy.in.h:7 #, fuzzy msgid "Install Dell driver packages" msgstr "Seleccione os paquetes de controladores" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "A normativa do sistema impide ler dispositivos raw" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "Crear/Ensamblar a imaxe ISO de recupración de Dell" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "Solicitar o pechado da infraestrutura" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "A normativa do sistema impide que peche procesos sen avisar" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Cancelar o creador do Soporte de recuperación" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" "Ten a certeza que quere cancelar o proceso de creación do Soporte de " "Recuperación?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Versión:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Xa existe una imaxe (posibelmente de unha execución anterior). Desexa " "eliminar esta copia antiga e volver a xerar a imaxe?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "Disco DVD+/-RW" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "ISto require un soporte DVD escribíbel." #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "Unidade Flash USB" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "Isto require unha unidade flash USB con aproximadamente 2GB libres." #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Creador de soportes de recuperación de Dell" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" "Durante a instalación da Factory, os aplicativos só están instalados se o " "rexistro de orde (SDR) se refire ao vehículo de liberación do servizo (SRV). " "Isto completa os posíbeis SRV para ser consultados durante a instalación." #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" "A imaxe base do sistema fornece a maioría do contido para unha imaxe BTO. " "Pode ser unha imaxe de sistema limpa ou unha imaxe BTO existente." #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "Imaxe ISO" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "O cartafol foi extraido" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "Detectouse a partición de recuperación" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "Seleccione unha imaxe" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "Detalles da imaxe seleccionada:" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "Engadir Dell Recovery" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "Explorar polo paquete de dell-recovery" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "Seleccionar paquete" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "Construir o paquete de dell-recovery para este sistema" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "Instalar dpkg-repack" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" "Calquera controlador engadido ou aplicativo que se necesite integrar na " "imaxe pode engadirse aquí." #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "Marco de traballo FID construida dentro de imaxe BTO" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "Entrada SRV" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "Insira un SRV a usar:" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" "As imaxes BTO poden incluír opcionalmente unha partición de Utilidade para " "as utilidades de diagnóstico." #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "Non hai unha Partición de utilidades adicional" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "Seleccione o contido para a Partición de utilidades" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "Partición de utilidades eliminada" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "Seleccione o contido" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "Detalles do contido seleccionados:" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "Instalar git" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "O soporte de recuperación de Dell pode usarse para restaurar o seu sistema " "ao mesmo estado que cando o comprou." #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "É moi recomendábel que xere un soporte e o almacene nun lugar seguro." #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "Gardar o soporte de recuperación nunha unidade flash USB externa" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Nota: Isto require una unidade USB flash con aproximadamente 2GB " "libres." #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "Gardar o soporte de recuperación nun DVD" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "Nota: Isto require un disco DVD grabable." #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "Non xerar o soporte de recuperación neste momento" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Pode xerar o soporte de recuperación máis tarde seleccionando a ferramenta " "no menú Sistema." #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "ERRO: Este soporte só é válido en sistemas Dell." #~ msgid "Choose Media Type" #~ msgstr "Seleccione o tipo de soporte" #~ msgid "No media, create ISO image" #~ msgstr "Sen soporte, crear unha imaxe ISO" #~ msgid "Fetch/Update GIT Tree" #~ msgstr "Obter/Actualizar o árbore de GIT" #~ msgid "GIT Tree Status" #~ msgstr "Estado da árbore GIT" #~ msgid "FID GIT Tree" #~ msgstr "Árbore de GIT FID" #~ msgid "GIT Tags/Branches:" #~ msgstr "Etiquetas/ramas de GIT:" #~ msgid "Show Details" #~ msgstr "Mostrar os detalles" #~ msgid "" #~ "The GIT fetch is in progress. \n" #~ "This window will close automatically when the process is complete. \n" #~ "NOTE: Please be patient, the initial fetch may take a while." #~ msgstr "" #~ "O proceso de obtención de GIT está en progreso. \n" #~ "Esta xanela pecharase automaticamente cando o proceso remate. \n" #~ "NOTA: Teña paciencia, o procexo iniciar de obtención pode levar un " #~ "anaco." #~ msgid "python-vte is missing" #~ msgstr "falta python-vte" #~ msgid "Builder mode requires python-vte to function" #~ msgstr "O modo Builder require python-vte para funcionar" #~ msgid "Choose Application Packages" #~ msgstr "Seleccione os paquetes de aplicativos" #~ msgid "Choose Base OS Image" #~ msgstr "Seleccione a imaxe base do OS" #~ msgid "ERROR: git is not installed" #~ msgstr "ERRO: git non está instalado" #~ msgid "Missing Dell-Recovery" #~ msgstr "Falta Dell-Recovery" #~ msgid "Not present in ISO or GIT tree" #~ msgstr "Non está presente na ISO ou na árbore de GIT" dell-recovery/po/nl.po0000664000000000000000000004044212311717746012126 0ustar # Dutch translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2011-02-26 20:56+0000\n" "Last-Translator: Rachid \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Kan geen verbinding maken met dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Toegang geweigerd" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 #, fuzzy msgid "Copyright 2008-2012 Dell Inc." msgstr "Copyright 2008-2010 Dell Inc." #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Bevestig uw keuzes" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Brander openen" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Aanmaken herstelmedium gereed" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Wilt u nog een kopie bewaren, het aangemaakte beeldbestand is opgeslagen " "onder de bestandsnaam:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "Kan niet doorgaan" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Mediumtype: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Herstelpartitie: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "Inbegrepen" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr " (BTO Image Builder Mode)" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "Bouwoverzicht" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Hulpmiddelen-partitie " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "Toepassing" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "Stuurprogramma" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "Pakketten" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "Om door te kunnen gaan moeten alle SRV's gevuld zijn." #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "Toevoegen aan basis-beeldbestand" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "Genester image voorbereiden" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "Dell hulpmiddelen-partitie wordt opgebouwd" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "Regenereren UUID/initramfs opnieuw opbouwen" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "GRUB kern-image voorbereiden" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "ISO wordt aangemaakt" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "Naar BTO-versie vragen" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "Systeem houdt lezen raw-apparaten tegen" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "ISO-informatie opvragen" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "Fabrieksinstellingen terugzetten" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 #, fuzzy msgid "Boot utility partition to flash BIOS" msgstr "Kies hulpmiddelen-partitie" #: ../backend/com.dell.recoverymedia.policy.in.h:7 #, fuzzy msgid "Install Dell driver packages" msgstr "Kies stuurprogrammapakketten" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "Systeem houdt lezen raw-apparaten tegen" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "Dell herstel-ISO aanmaken/samenstellen" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "Verzoek om de backend te sluiten" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" "Systeembeleid staat niet toe dat processen zonder melding worden gesloten" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Herstelmedia aanmaken annuleren" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "Weet u zeker dat u het herstelmediaproces wilt stoppen?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Versie:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Er is een bestaand beeldbestand gevonden (waarschijnlijk van een vorige " "keer). Wilt u deze oude kopie verwijderen en een nieuw beeldbestand aanmaken?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "Dvd+/-rw-schijf" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "Dit vereist beschrijfbare DVD's" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "Usb-stick" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "Dit vereist een usb-stick met ongeveer 2GB vrije ruimte." #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Dell herstelmedia aanmaken" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" "Tijdens de fabrieksinstallatie worden toepassingen alleen geïnstalleerd als " "de SDR verwijst naar de SRV. Dit vult de mogelijke SRV's in waarnaar tijdens " "de installatie gevraagd wordt." #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" "Het basis-OS-beeldbestand levert het grootste deel van de inhoud voor een " "BTO-beeldbestand. Het kan een Vanilla-OS-beeldbestand zijn, of een bestaand " "BTO-beeldbestand." #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "ISO-beeldbestand" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "Uitgepakte map" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "Gevonden herstelpartitie" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "Beeldbestand kiezen" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "Details voor beeldbestand selecteren:" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "Dell-herstel toevoegen" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "Blader voor een dell-herstelpakket" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "Pakket kiezen" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "Bouw dell-herstelpakket van dit systeem" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "Install dpkg-repack" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" "Alle stuurprogramma's en toepassingen die in het beeldbestand geïntegreerd " "moeten worden kunnen hier worden toegevoegd." #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "FID-framework opgenomen in BTO-beeldbestand" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "Details voor overlay selecteren:" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "Ingevoerde SRV" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "Voer de te gebruiken SRV in:" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" "BTO-beeldbestanden kunnen optioneel een hulpmiddelen-partitie voor " "diagnostische hulpmiddelen bevatten." #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "Geen aanvullende hulpmiddelen-partitie" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "Inhoud voor de hulpmiddelen-partitie kiezen" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "Gevonden hulpmiddelen-partitie" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "Inhoud kiezen" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "Details voor inhoud selecteren:" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "Git installeren" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Dell herstelmedia kan gebruikt worden om uw systeem terug te brengen in de " "staat waarin het geleverd werd." #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Het is ten zeerste aan te raden dat u media aanmaakt en op een veilige " "plaats bewaart." #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "Herstelmedia opslaan op een extern usb-station" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "Opmerking: Dit vereist een USB-stick met ongeveer 2 GB vrij." #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "Herstelmedia opslaan op dvd" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "Opmerking: Dit vereist een beschrijfbare DVD-schijf." #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "Op dit ogenblik herstelmedia niet genereren" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Herstelmedia kan later worden gegenereerd door het hulpmiddel te kiezen uit " "het menu Systeem." #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "FOUT: Dit medium is alleen geldig op Dell-systemen." #~ msgid "No media, create ISO image" #~ msgstr "Geen media, maak ISO-beeldbestand aan" #~ msgid "Show Details" #~ msgstr "Details tonen" #~ msgid "python-vte is missing" #~ msgstr "python-vte ontbreekt" #~ msgid "Builder mode requires python-vte to function" #~ msgstr "De bouwmodus vereist python-vte om te kunnen functioneren" #~ msgid "Choose Base OS Image" #~ msgstr "Kies Base OS Image" #~ msgid "ERROR: git is not installed" #~ msgstr "FOUT: git is niet geïnstalleerd" #~ msgid "Choose Application Packages" #~ msgstr "Kies toepassingespakketten" #~ msgid "Choose FID Overlay" #~ msgstr "Kies FID Overlay" #~ msgid "Missing Dell-Recovery" #~ msgstr "Dell-Recovery niet gevonden" #~ msgid "Not present in ISO or GIT tree" #~ msgstr "Niet aanwezig in ISO- of GIT-boom" #~ msgid "" #~ "The GIT fetch is in progress. \n" #~ "This window will close automatically when the process is complete. \n" #~ "NOTE: Please be patient, the initial fetch may take a while." #~ msgstr "" #~ "GIT is bezig met ophalen. \n" #~ "Dit venster sluit automatisch wanneer het proces voltooid is. \n" #~ "OPMERKING: Geduld a.u.b., het ophalen kan even duren." #~ msgid "GIT Tree Status" #~ msgstr "Status GIT-boomstructuur" #~ msgid "FID GIT Tree" #~ msgstr "FID GIT-boom" #~ msgid "Fetch/Update GIT Tree" #~ msgstr "GIT-boomstructuur ophalen/bijwerken" #~ msgid "GIT Tags/Branches:" #~ msgstr "GIT-tags/branches:" #~ msgid "Choose Media Type" #~ msgstr "Kies mediumtype" #~ msgid "Overlaying FID content" #~ msgstr "Overlayen FID-inhoud" dell-recovery/po/et.po0000664000000000000000000002747312311717746012136 0ustar # Estonian translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2011-03-25 20:08+0000\n" "Last-Translator: lyyser \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 #, fuzzy msgid "Copyright 2008-2012 Dell Inc." msgstr "Autoriõigus 2008-2010 Dell Inc" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Kinnitage valikud" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Kirjutaja avamine" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "Ei saa jätkata" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Meedia tüüp: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "" #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "Kaasa arvatud" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "" #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "Rakendus" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents installing packages." msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #~ msgid "Choose Media Type" #~ msgstr "Vali meedia tüüp" dell-recovery/po/sk.po0000664000000000000000000003066412311717746012137 0ustar # Slovak translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-01-26 15:17+0000\n" "Last-Translator: Mario Limonciello \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Nedá sa pripojiť na dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Zamietnutý prístup" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Potvrdiť výber" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Otváram napaľovanie" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Vytvorenie média pre obnovu úspešne ukončené" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Druh média: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Obnovenie časti disku: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "" #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Vytváranie ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "System policy zabraňuje čítaniu raw jednotiek" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "System policy zabraňuje čítaniu raw jednotiek" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Zrušiť vytvorenie média pre obnovu" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "Ste si istý, že chcete zrušiť proces vytvorenia média pre obnovu?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Bol nájdený existujúci obraz (pravdepodobne z predchádzajúceho spustenia). " "Prajete si odstrániť túto starú kópiu a regenerovať obraz?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "DVD+/-RW Disk" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "USB flash jednotka" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Vytvorenie média pre obnovu Dell" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "ISO obraz" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #~ msgid "Choose Media Type" #~ msgstr "Vyberte druh média" #~ msgid "No media, create ISO image" #~ msgstr "Žiadne médium, vytváram ISO obraz" dell-recovery/po/pt_BR.po0000664000000000000000000004106312311717746012523 0ustar # Brazilian Portuguese translation for dell-recovery # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2011-10-15 01:02+0000\n" "Last-Translator: André Gondim \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-10-16 05:15+0000\n" "X-Generator: Launchpad (build 14124)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Impossível conectar ao dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Permissão Negada." #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "Exceção" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "Recuperação Dell" #: ../Dell/recovery_gtk.py:198 #, fuzzy msgid "Copyright 2008-2012 Dell Inc." msgstr "Copyright 2008-2010 Dell Inc." #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Confirmar seleções" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "Tipo de mídia" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "Construindo imagem base" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Abrindo gravador" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Concluído o processo de criação do Recovery Media" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Se você deseja arquivar outra cópia, a imagem gerada foi armazenada sob o " "nome:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "Procedimento indisponível" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "O sistema não aparenta conter o layout da partição de fábrica da Dell." #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "Arquivo de imagem" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Tipo de mídia: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Partição de Recuperação: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "Incluído" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr " (Modo construtor de imagem BTO)" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" "Isso irá integrar uma estrutura Dell OEM FID e o pacote de driver inseridos " "em uma imagem personalizada do sistema operacional. Você terá a opção de " "criar uma imagem de um pendrive USB ou de DVD." #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "Pacotes de aplicativos" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "Pacotes de drivers" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "Partição do utilitário" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "Conteúdo FID" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "Imagem Base do SO" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "Construtor do resumo" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "Imagem base BTO" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "Imagem base" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Partição Utilitária: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "Aplicativo" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "Driver" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "Pacotes" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "Inserir pacote de recuperação da Dell" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "Sem partição adicional de utilitário" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "Adicionando à imagem base" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "Construindo partição de utilitário Dell" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "Regenerando UUID / Reconstruindo initramfs" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "Construindo imagem principal do GRUB" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Construindo a ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "Consultar versão do BTO" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "Política do sistema impede a leitura de dispositivos raw" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "Consultar informação do BTO" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "Restaurar para o estado de Fábrica" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "Política do sistema impede a alteração da inicialização" #: ../backend/com.dell.recoverymedia.policy.in.h:6 #, fuzzy msgid "Boot utility partition to flash BIOS" msgstr "Selecione a partição do utilitário" #: ../backend/com.dell.recoverymedia.policy.in.h:7 #, fuzzy msgid "Install Dell driver packages" msgstr "Inserir pacote de recuperação da Dell" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "Política do sistema impede a leitura de dispositivos raw" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "Criar/montar ISO recuperação da Dell" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "Política do sistema impede fechar processos sem avisar" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Cancelar o Recovery Media Creator" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" "Você tem certeza que quer cancelar o processo de criação da Mídia de " "Recuperação?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Versão:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Uma imagem existente foi encontrada (possivelmente de uma execução " "anterior). Você deseja remover essa cópia antiga e regerar a imagem?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "Disco DVD+/-RW" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "Isso requer mídia de DVD gravável." #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "Unidade Flash USB" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" "Isso requer uma unidade flash USB com aproximadamente 2 GB de espaço livre." #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "Sem mídia, criar imagem" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Criador de mídia de recuperação Dell" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "Imagem ISO" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "Partição de recuperação detectada" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "Escolher imagem" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "Detalhes da imagem selecionada:" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "Adicionar Dell Recovery" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "Procurar pelo pacote dell-recovery" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "Selecione o pacote" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "Montar um pacote dell-recovery deste sistema" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "Instalar dpkg-repack" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "Partição do utilitário detectada" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "Selecione o conteúdo" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "Detalhes do conteúdo selecionado:" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "Aj_uda" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" "Isso irá restaurar o sistema para o estado de fábrica usando a partição de " "recuperação armazenada no disco rígido." #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "Compilar a mídia do Sistema Operacional" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "Restaurar sistema" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "Instalar git" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "A Mídia de Recuperação da Dell poderá ser usada para restaurar o seu sistema " "para o mesmo estado de quando foi enviado para você." #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "É altamente recomendado criar uma mídia e armazená-la em um lugar seguro." "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "Restaurar #OS# para o estado de fábrica" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "Salvar mídia de recuperação na unidade flash USB" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Nota: Isso requer uma unidade flash USB com aproximadamente 2 GB de " "espaço livre." #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "Salvar mídia de recuperação no DVD" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "Nota: Isso requer mídia de DVD gravável." #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "Não criar mídia de recuperação neste momento" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "A mídia de recuperação poderá ser criada depois, escolhendo esta ferramenta " "a partir do menu Sistema." #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "ERRO: Esta mídia é válida somente em sistemas Dell." #~ msgid "Installation Mode" #~ msgstr "Modo de instalação" #~ msgid "SUCCESS Script: " #~ msgstr "Script SUCESSO: " #~ msgid "FAIL Script: " #~ msgstr "Script FALHA: " #~ msgid "Building OIE Archive" #~ msgstr "Construindo arquivo OIE" #~ msgid "Produce a standard installation image." #~ msgstr "Gerar uma imagem de instalação padrão." #~ msgid "\n" #~ msgstr "\n" #~ msgid "Choose Media Type" #~ msgstr "Escolher o tipo de mídia" #~ msgid "No media, create ISO image" #~ msgstr "Nenhuma mídia, criar imagem ISO" #~ msgid "Show Details" #~ msgstr "Mostrar detalhes" #~ msgid "python-vte is missing" #~ msgstr "python-vte perdido" #~ msgid "ERROR: git is not installed" #~ msgstr "ERRO: git não está instalado" #~ msgid "Missing Dell-Recovery" #~ msgstr "Dell-Recovery ausente" #~ msgid "" #~ "The GIT fetch is in progress. \n" #~ "This window will close automatically when the process is complete. \n" #~ "NOTE: Please be patient, the initial fetch may take a while." #~ msgstr "" #~ "A busca do GIT está em progresso. \n" #~ "Esta janela fechará automaticamente quando o processo estiver completo. \n" #~ "NOTA: Seja paciente, a primeira busca pode demorar um pouco." #~ msgid "Choose Driver Packages" #~ msgstr "Selecione o pacote de drivers" #~ msgid "Choose Application Packages" #~ msgstr "Selecione o pacote de aplicativos" #~ msgid "Builder mode requires python-vte to function" #~ msgstr "Modo construtor requer python-vte para funcionar" #~ msgid "Overlaying FID content" #~ msgstr "Sobrepondo o conteúdo FID" dell-recovery/po/hu.po0000664000000000000000000004734011764021036012124 0ustar # Hungarian translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-09-09 17:16-0500\n" "PO-Revision-Date: 2012-04-08 21:49+0000\n" "Last-Translator: Gabor Kelemen \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-04-09 04:57+0000\n" "X-Generator: Launchpad (build 15060)\n" #: ../Dell/recovery_gtk.py:92 msgid "Cannot connect to dbus" msgstr "Nem sikerült kapcsolódni a D-Bushoz" #: ../Dell/recovery_gtk.py:94 msgid "Permission Denied" msgstr "Hozzáférés megtagadva" #: ../Dell/recovery_gtk.py:101 msgid "Exception" msgstr "Kivétel" #: ../Dell/recovery_gtk.py:149 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "Dell helyreállító" #: ../Dell/recovery_gtk.py:150 msgid "Copyright 2008-2010 Dell Inc." msgstr "Copyright 2008-2010 Dell Inc." #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Erősítse meg választásait" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "Médiatípus" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "Alap lemezkép építése" #: ../Dell/recovery_basic_gtk.py:182 msgid "Opening Burner" msgstr "Író megnyitása" #: ../Dell/recovery_basic_gtk.py:207 msgid "Recovery Media Creation Process Complete" msgstr "A helyreállító adathordozó létrehozása kész" #: ../Dell/recovery_basic_gtk.py:208 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Ha másik példányt is szeretne archiválni, akkor az előállított lemezképet a " "következő néven találja:\n" #: ../Dell/recovery_basic_gtk.py:222 msgid "Unable to proceed" msgstr "Nem folytatható" #: ../Dell/recovery_basic_gtk.py:223 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "A rendszeren nincs Dell gyári partícióelrendezés." #: ../Dell/recovery_basic_gtk.py:334 msgid "Image File" msgstr "Lemezkép" #: ../Dell/recovery_basic_gtk.py:336 msgid "Media Type: " msgstr "Adathordozó típusa: " #: ../Dell/recovery_basic_gtk.py:339 ../Dell/recovery_basic_gtk.py:342 msgid "Recovery Partition: " msgstr "Helyreállító partíció: " #: ../Dell/recovery_basic_gtk.py:343 msgid "Included" msgstr "Beleértve" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:71 msgid " (BTO Image Builder Mode)" msgstr " (BTO lemezkép-összeállító mód)" #: ../Dell/recovery_advanced_gtk.py:73 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" "Ez egy Dell OEM FID keretrendszer- és illesztőprogram-csomagot fog " "integrálni személyre szabott OS lemezképre. Lehetősége lesz USB-kulcs vagy " "DVD lemezkép létrehozására." #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:92 msgid "Installation Mode" msgstr "Telepítési mód" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Application Packages" msgstr "Alkalmazáscsomagok" #: ../Dell/recovery_advanced_gtk.py:94 msgid "Driver Packages" msgstr "Illesztőprogram-csomagok" #: ../Dell/recovery_advanced_gtk.py:95 ../Dell/recovery_advanced_gtk.py:333 msgid "Utility Partition" msgstr "Szervizpartíció" #: ../Dell/recovery_advanced_gtk.py:96 msgid "FID Content" msgstr "FID tartalom" #: ../Dell/recovery_advanced_gtk.py:97 msgid "Base OS Image" msgstr "Alap operációsrendszer-lemezkép" #: ../Dell/recovery_advanced_gtk.py:194 msgid "Builder Summary" msgstr "Összegzés" #: ../Dell/recovery_advanced_gtk.py:195 msgid "Base Image Distributor" msgstr "Alap lemezkép terjesztője" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Base Image Release" msgstr "Alap lemezkép kiadása" #: ../Dell/recovery_advanced_gtk.py:200 msgid "BTO Base Image" msgstr "BTO alap lemezkép" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Base Image" msgstr "Alap lemezkép" #: ../Dell/recovery_advanced_gtk.py:207 msgid "Utility Partition: " msgstr "Szervizpartíció: " #: ../Dell/recovery_advanced_gtk.py:210 msgid "Application" msgstr "Alkalmazás" #: ../Dell/recovery_advanced_gtk.py:211 msgid "Driver" msgstr "Meghajtó" #: ../Dell/recovery_advanced_gtk.py:217 msgid "Packages" msgstr "Csomagok" #: ../Dell/recovery_advanced_gtk.py:223 msgid "Inject Dell Recovery Package" msgstr "Dell helyreállító csomag elhelyezése" #: ../Dell/recovery_advanced_gtk.py:226 msgid "OIE Installation Mode" msgstr "OIE telepítési mód" #: ../Dell/recovery_advanced_gtk.py:229 msgid "Additional Success Script" msgstr "További parancsfájl siker esetére" #: ../Dell/recovery_advanced_gtk.py:232 msgid "Additional Fail Script" msgstr "További parancsfájl hiba esetére" #. update gui #: ../Dell/recovery_advanced_gtk.py:242 msgid "Assembling Image Components" msgstr "Lemezkép összetevőinek összeállítása" #: ../Dell/recovery_advanced_gtk.py:336 msgid "No Additional Utility Partition" msgstr "Nincs kiegészítő szervizpartíció" #: ../Dell/recovery_advanced_gtk.py:532 msgid "All SRVs must be filled to proceed." msgstr "A folytatáshoz minden SRV-t ki kell tölteni." #: ../Dell/recovery_advanced_gtk.py:561 msgid "SUCCESS Script: " msgstr "SIKER parancsfájl: " #: ../Dell/recovery_advanced_gtk.py:565 msgid "FAIL Script: " msgstr "HIBA parancsfájl: " #: ../Dell/recovery_backend.py:313 msgid "Processing FISH packages" msgstr "FISH csomagok feldolgozása" #: ../Dell/recovery_backend.py:440 msgid "Adding in base image" msgstr "Hozzáadás az alapvető lemezképhez" #: ../Dell/recovery_backend.py:849 msgid "Preparing nested image" msgstr "Beágyazott lemezkép előkészítése" #: ../Dell/recovery_backend.py:873 msgid "Building Dell Utility Partition" msgstr "Dell szervizpartíció összeállítása" #: ../Dell/recovery_backend.py:937 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "UUID előállítása / initramfs újjáépítése" #: ../Dell/recovery_backend.py:966 msgid "Building GRUB core image" msgstr "GRUB alap lemezkép építése" #: ../Dell/recovery_backend.py:1033 msgid "Building OIE Archive" msgstr "OIE archívum építése" #: ../Dell/recovery_backend.py:1068 msgid "Building ISO" msgstr "ISO létrehozása" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Create/Assemble Dell Recovery ISO" msgstr "Dell helyreállító ISO létrehozása/összeállítása" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "Query BTO Version" msgstr "BTO-verzió lekérdezése" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "ISO-információk lekérdezése" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Request closing the backend" msgstr "A háttérprogram bezárásának kérése" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "Restore to Factory state" msgstr "Visszaállítás gyári állapotra" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "System policy prevents changing system bootup" msgstr "A rendszer házirendje megakadályozza a rendszerindítás módosítását" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "System policy prevents closing processes without notice" msgstr "" "A rendszer házirendje megakadályozza a folyamatok figyelmeztetés nélküli " "bezárását" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents reading raw devices" msgstr "A rendszer házirendje megakadályozza a nyers eszközök olvasását" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "System policy prohibits changing network without user consent" msgstr "" "A rendszer házirendje megakadályozza a hálózat módosítását a felhasználó " "beleegyezése nélkül" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Toggle Network Connectivity" msgstr "Hálózati kapcsolat módosítása" #: ../gtk/recovery_media_creator.ui.h:1 msgid "" msgstr "" #: ../gtk/recovery_media_creator.ui.h:2 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Már létezik lemezkép, valószínűleg egy előző futtatás eredményeként. El " "szeretné távolítani ezt a régi másolatot, és újra előállítani a lemezképet?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "Biztos, hogy megszakítja a helyreállító adathordozó létrehozását?" #: ../gtk/recovery_media_creator.ui.h:4 msgid "Cancel Recovery Media Creator" msgstr "Helyreállító adathordozó előállításának megszakítása" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "DVD+/-RW lemez" #: ../gtk/recovery_media_creator.ui.h:6 ../gtk/tool_selector.ui.h:3 msgid "Dell Recovery Media Creator" msgstr "Dell helyreállító-média készítő" #: ../gtk/recovery_media_creator.ui.h:7 msgid "No media, create image" msgstr "Nincs adathordozó, lemezkép létrehozása" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "Ehhez egy USB-kulcsra lesz szükség, körülbelül 2 GB szabad hellyel." #: ../gtk/recovery_media_creator.ui.h:9 msgid "This requires writable DVD media." msgstr "Ehhez egy írható DVD-re lesz szükség." #: ../gtk/recovery_media_creator.ui.h:10 msgid "USB Flash Drive" msgstr "USB Flash-meghajtó" #: ../gtk/recovery_media_creator.ui.h:11 msgid "Version:" msgstr "Verzió:" #: ../gtk/builder.ui.h:1 msgid "\n" msgstr "\n" #: ../gtk/builder.ui.h:3 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:6 msgid "Add Dell Recovery" msgstr "Dell helyreállító hozzáadása" #: ../gtk/builder.ui.h:7 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" "A lemezképbe integrálandó kiegészítő eszközmeghajtók vagy alkalmazások itt " "vehetők fel." #: ../gtk/builder.ui.h:8 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" "A BTO lemezképek tartalmazhatnak egy szervizpartíciót a diagnosztikai " "segédprogramok számára." #: ../gtk/builder.ui.h:9 msgid "Browse for a dell-recovery package" msgstr "Dell helyreállító csomag tallózása" #: ../gtk/builder.ui.h:10 msgid "Build dell-recovery package from this system" msgstr "Dell helyreállító csomag összeállítása a rendszerből" #: ../gtk/builder.ui.h:11 msgid "Choose Content" msgstr "Válassza ki a tartalmat" #: ../gtk/builder.ui.h:12 msgid "Choose Image" msgstr "Válasszon lemezképet" #: ../gtk/builder.ui.h:13 msgid "Choose package" msgstr "Válassza ki a csomagot" #: ../gtk/builder.ui.h:14 msgid "Detected Recovery Partition" msgstr "Helyreállító partíció észlelve" #: ../gtk/builder.ui.h:15 msgid "Detected Utility Partition" msgstr "Szervizpartíció észlelve" #: ../gtk/builder.ui.h:16 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" "A gyári telepítés során az alkalmazások csak akkor kerülnek telepítésre, ha " "a rendelési rekord (SDR) a SRV-re hivatkozik. Ez feltölti a telepítés során " "lekérdezhető lehetséges SRV-ket." #: ../gtk/builder.ui.h:17 msgid "Extracted Directory" msgstr "Kibontott könyvtár" #: ../gtk/builder.ui.h:18 msgid "FID Framework enclosed in debian package" msgstr "Debian csomagba csomagolt FID keretrendszer" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "BTO-lemezképbe épített FID-keretrendszer" #: ../gtk/builder.ui.h:20 msgid "ISO Image" msgstr "ISO lemezkép" #: ../gtk/builder.ui.h:21 msgid "Install dpkg-repack" msgstr "A dpkg-repack telepítése" #: ../gtk/builder.ui.h:22 msgid "No additional Utility Partition" msgstr "Nincs további szervizpartíció" #: ../gtk/builder.ui.h:23 msgid "" "OIE compliant images can only be installed from ODM factory environments. " "They will notify the user at completion of a success or failure." msgstr "" "Az OIE-megfelelő lemezképek csak ODM gyári környezetekben telepíthetők. Ezek " "értesítik a felhasználót a sikerről vagy sikertelenségről." #: ../gtk/builder.ui.h:24 msgid "" "OIE mode also allows you to provide additional SUCCESS and FAIL scripts to " "be ran prior to notification the image is complete. These can each be any " "executable program or script." msgstr "" "Az OIE mód lehetővé teszi további SIKER és HIBA parancsfájlok futtatását a " "lemezkép elkészüléséről szóló értesítés előtt. Ezek tetszőleges " "végrehajtható programok vagy parancsfájlok lehetnek." #: ../gtk/builder.ui.h:25 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" "A FID elrendezés része megköveteli egy dell-recovery csomag felvételét." #: ../gtk/builder.ui.h:26 msgid "Please enter the SRV to use:" msgstr "Adja meg a használandó SRV-t:" #: ../gtk/builder.ui.h:27 msgid "Produce a standard installation image." msgstr "Normál telepítő lemezkép előállítása." #: ../gtk/builder.ui.h:28 msgid "Produce an OIE compliant installation image." msgstr "OIE-megfelelő telepítő lemezkép előállítása." #: ../gtk/builder.ui.h:29 msgid "SRV Entry" msgstr "SRV-bejegyzés" #: ../gtk/builder.ui.h:30 msgid "Select content for Utility Partition" msgstr "Válassza ki a szervizpartíció tartalmát" #: ../gtk/builder.ui.h:31 msgid "Selected Content Details:" msgstr "Kiválasztott tartalom részletei" #: ../gtk/builder.ui.h:32 msgid "Selected Image Details:" msgstr "Kiválasztott lemezkép részletei:" #: ../gtk/builder.ui.h:33 msgid "Selected Overlay Details:" msgstr "Kiválasztott elrendezés részletei:" #: ../gtk/builder.ui.h:34 msgid "Set FAIL script" msgstr "HIBA parancsfájl beállítása" #: ../gtk/builder.ui.h:35 msgid "Set SUCCESS script" msgstr "SIKER parancsfájl beállítása" #: ../gtk/builder.ui.h:36 msgid "" "The BTO FID framework is the first thing injected into a base vanilla image. " " If you are generating from an existing BTO compatible image, you may use " "the built-in framework." msgstr "" "A BTO FID keretrendszer kerül elsőként telepítésre az eredeti alap " "lemezképbe. Ha egy meglévő BTO-kompatibilis lemezképből indult ki, akkor " "használhatja a beépített keretrendszert." #: ../gtk/builder.ui.h:37 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" "Az alaprendszer lemezképe biztosítja a BTO lemezkép tartalmának zömét. Ez " "lehet változatlan rendszer lemezkép, vagy meglévő BTO lemezkép." #: ../gtk/tool_selector.ui.h:1 msgid "Build OS Media" msgstr "OS média összeállítása" #: ../gtk/tool_selector.ui.h:4 msgid "Restore System" msgstr "Rendszer helyreállítása" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" "Ez létrehoz egy OS helyreállító adathordozót, amellyel a számítógép " "helyreállítható a gyári állapotára. Lehetősége lesz USB-kulcs vagy DVD " "lemezkép létrehozására." #: ../gtk/tool_selector.ui.h:6 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" "Ez a merevlemezen tárolt helyreállító partíció használatával helyreállítja a " "rendszert a gyári állapotára." #: ../gtk/tool_selector.ui.h:7 msgid "_Help" msgstr "_Súgó" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "ERROR: This media is only valid on Dell systems." msgstr "HIBA: Ez az adathordozó csak Dell rendszereken érvényes." #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Ajánlott előállítani az adathordozót, és biztonságos helyen tartani." #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Megjegyzés: Ehhez egy USB-kulcsra lesz szükség, körülbelül 2 GB " "szabad hellyel." #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Note: This requires writable DVD media." msgstr "Megjegyzés: Ehhez egy írható DVD-re lesz szükség." #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "A Dell helyreállító adathordozó segítségével rendszere visszaállítható a " "gyári állapotába." #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "Don't generate recovery media at this time" msgstr "Most nem hozok létre helyreállító adathordozót" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "A helyreállító adathordozó később is előállítható az eszköz kiválasztásával " "a Rendszer menüből." #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Restore #OS# to factory state" msgstr "#OS# helyreállítása a gyári állapotra" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Save recovery media to DVD" msgstr "Helyreállító adathordozó mentése DVD-re" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "Save recovery media to an external USB flash drive" msgstr "A helyreállító adathordozó mentése külső USB flash kulcsra." #~ msgid "Choose Media Type" #~ msgstr "Válassza ki az adathordozó típusát" #~ msgid "Overlaying FID content" #~ msgstr "FID-tartalom elhelyezése" #~ msgid "No media, create ISO image" #~ msgstr "Nincs adathordozó, ISO-lemezkép létrehozása" #~ msgid "FID GIT Tree" #~ msgstr "FID GIT fa" #~ msgid "Fetch/Update GIT Tree" #~ msgstr "GIT fa lekérése/frissítése" #~ msgid "GIT Tags/Branches:" #~ msgstr "GIT címkék/ágak:" #~ msgid "GIT Tree Status" #~ msgstr "GIT fa állapota" #~ msgid "Install git" #~ msgstr "Git telepítése" #~ msgid "Show Details" #~ msgstr "Részletek megjelenítése" #~ msgid "" #~ "The GIT fetch is in progress. \n" #~ "This window will close automatically when the process is complete. \n" #~ "NOTE: Please be patient, the initial fetch may take a while." #~ msgstr "" #~ "A GIT lekérés folyamatban van.\n" #~ "Ez az ablak automatikusan bezáródik a folyamat befejeződésekor. \n" #~ "MEGJEGYZÉS: Legyen türelemmel, a kiinduló lekérés sokáig tarthat." #~ msgid "Choose Driver Packages" #~ msgstr "Válassza ki az eszközmeghajtó-csomagokat" #~ msgid "python-vte is missing" #~ msgstr "A python-vte hiányzik" #~ msgid "Builder mode requires python-vte to function" #~ msgstr "Az összeállító mód működéséhez a python-vte szükséges" #~ msgid "Choose Utility Partition" #~ msgstr "Válassza ki a szervizpartíciót" #~ msgid "Choose Application Packages" #~ msgstr "Válassza ki az alkalmazáscsomagokat" #~ msgid "Choose Base OS Image" #~ msgstr "Válassza ki az alap rendszerlemezképet" #~ msgid "Choose FID Overlay" #~ msgstr "Válassza ki a FID-elrendezést" #~ msgid "ERROR: git is not installed" #~ msgstr "HIBA: a git nincs telepítve" #~ msgid "Missing Dell-Recovery" #~ msgstr "Hiányzó Dell helyreállító" #~ msgid "Not present in ISO or GIT tree" #~ msgstr "Nincs jelen az ISO-ban vagy a GIT fában" dell-recovery/po/tr.po0000664000000000000000000003254612311717746012150 0ustar # Turkish translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-09-02 16:44+0000\n" "Last-Translator: Fatih Dayioglu \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "dbus'a bağlanamadı" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "İzin verilmedi" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "İstisna" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "Dell Yedekleme" #: ../Dell/recovery_gtk.py:198 #, fuzzy msgid "Copyright 2008-2012 Dell Inc." msgstr "Tüm Hakları Saklıdır 2008-2010 Dell Inc." #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Seçimleri Onayla" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Yazıcı Açılıyor" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Geri alma Ortamı Oluşturma İşlemi Tamamlandı" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Ortam Türü: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Geri Alma Bölümü: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Araç Bölümü: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "Uygulama" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "Sürücü" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "Paketler" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "ISO Yapılıyor" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "Sistem ilkeleri, raw aygıtlarını okumayı engelliyor." #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 #, fuzzy msgid "Install Dell driver packages" msgstr "Sürücü Paketlerini Seçiniz" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "Sistem ilkeleri, raw aygıtlarını okumayı engelliyor." #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Geri Alma Ortamı Oluşturucuyu İptal Et" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "Geri Alma Ortamı oluşturma işlemini iptal etmek ister misiniz?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Sürüm:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Varolan bir görüntü bulunamadı (muhtemelen önceki bir çalışmadan). Bu eski " "kopyayı kaldırmak ve görüntüyü yeniden oluşturmak ister misiniz?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "DVD+/-RW Disk" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "USB Flash Sürücü" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Dell Geri Alma Ortam Oluşturucu" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "ISO Görüntüsü" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "_Yardım" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "Sistemi geri yükle" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Dell Yedekleme Ortamı'nı bilgisayarınızı ilk aldığınız günkü durumuna geri " "getirmek için kullanabilirsiniz." #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "Yedekleme ortamını harici USB flash belleğe kaydet" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Not: Bu işlem için yaklaşık olarak 2GB boş alana sahip USB flash " "belleğe ihtiyacınız vardır." #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "Yedekleme ortamını DVD'ye kaydet" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "Not: Bu işlem yazdırılabilir DVD gerektirir." #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "Bu seferlik yedekleme ortamı oluşturma" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Yedekleme Ortamı sistem menüsünden seçilecek araç yardımıyla daha sonra da " "oluşturulabilir." #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "HATA: Bu ortam sadece Dell sistemleri için geçerlidir." #~ msgid "Choose Media Type" #~ msgstr "Ortam Türünü Seçin" #~ msgid "No media, create ISO image" #~ msgstr "Ortam yok, ISO görüntüsü oluştur" #~ msgid "Choose Application Packages" #~ msgstr "Uygulama Paketlerini Seçiniz" #~ msgid "python-vte is missing" #~ msgstr "python-vte eksik" dell-recovery/po/da.po0000664000000000000000000003064312311717746012103 0ustar # Danish translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-01-26 15:11+0000\n" "Last-Translator: Jimmy Frydkær Dürr \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Kan ikke forbinde til dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Tilladelse nægtet" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Godkend valgene" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Åbner brænder" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Genskabelses Medie Oprettelses Proces Færdig" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Medietype: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Genskabelsespartiton: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Nyttepartition: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Bygger ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "Systempolitik forhindrer læsning af raw enheder" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "Systempolitik forhindrer læsning af raw enheder" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Annullér Gendannelsesmedie-opretter" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" "Er du sikker på du ønsker at annullére oprettelsen af Gendannelsesmediet?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Et eksisterende billede blev fundet (formentlig fra en tidligere kørsel). " "Ønsker du at fjerne den gamle kopi og regenerere billedet?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "DVD+/-RW Disc" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "USB Flash Drive" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Dell Gendannelsesmedie-opretter" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "ISO billede" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #~ msgid "No media, create ISO image" #~ msgstr "Ingen medie, opret ISO billede" #~ msgid "Choose Media Type" #~ msgstr "Vælg Medietype" dell-recovery/po/dell-recovery.pot0000644000000000000000000002702712312225641014444 0ustar # 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 , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-03-19 00:31-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "" #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "" #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "" #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1047 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1066 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1128 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1157 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1282 msgid "Building ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents installing packages." msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" dell-recovery/po/el.po0000664000000000000000000002720412311717746012116 0ustar # Greek translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-03-19 14:20+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Greek \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "" #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "" #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "" #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents installing packages." msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" dell-recovery/po/hr.po0000664000000000000000000003517712311717746012137 0ustar # Croatian translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-03-18 19:50+0000\n" "Last-Translator: Saša Teković \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Spajanje na dbus nije moguće" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Pristup odbijen" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Potvrdi odabir" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Otvaranje snimača" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Proces izrade medija oporavka dovršen" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Ako želite snimiti još jednu kopiju, generirana slika je spremljena pod " "nazivom:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Vrsta medija: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Particija oporavka: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "Obuhvaćeno" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Uslužna particija: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "Dodavanje u osnovnu sliku" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "Izgradnja Dell uslužne particije" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "Regeneriranje UUID-a / ponovna izgradnja initramfsa" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Izgradnja ISO-a" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "Upit BTO inačice" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "Politika sustava sprječava čitanje raw uređaja" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "Upit ISO informacija" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "Politika sustava sprječava čitanje raw uređaja" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "Stvori/Sastavi Dell ISO oporavka" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "Zatraži zatvaranje pozadinskog sustava" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "Politika sustava sprječava zatvaranje procesa bez najave" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Otkaži stvaratelja medija oporavka" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "Jeste li sigurni da želite otkazati proces izrade medija oporavka?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Inačica:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Pronađena je postojeća slika (vjerojatno od prethodnog pokretanja). Želite " "li obrisati staru sliku i stvoriti novu?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "DVD+/-RW medij" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "Ovo zahtijeva zapisivi DVD medij." #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "USB memorija" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "Ovo zahtijeva USB memoriju s oko 2 GB slobodnog prostora." #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Stvaratelj Dell medija oporavka" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" "Slika osnovnog sustava osigurava većinu sadržaja za BTO sliku. Ona može biti " "slika Vanilla OS-a ili postojeća BTO slika." #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "ISO slika" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "Raspakirani direktorij" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "Pronađena particija oporavka" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "Odaberite sliku" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "Detalji odabrane slike:" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" "Bilo koji dodatni upravljački programi ili aplikacije koje bi se trebale " "integrirati u sliku, mogu se dodati ovdje." #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "FID okvir ugrađen u BTO sliku" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "Detalji odabranog prekrivanja:" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "Instaliraj git" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Dell medij oporavka se može upotrijebiti za vraćanje sustava u prvotno " "stanje kakvo je bilo kada vam je on bio isporučen." #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Preporuka je da generirate medij i spremite ga na sigurno mjesto." #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "Spremi medij oporavka na vanjsku USB memoriju" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Napomena: Ovo zahtijeva USB memoriju s oko 2 GB slobodnog prostora." #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "Spremi medij oporavka na DVD" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "Napomena: Ovo zahtijeva zapisivi DVD medij." #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "Nemoj sada generirati medij oporavka" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Medij oporavka se može generirati kasnije, odabirom alata iz izbornika " "Sustav." #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "GREŠKA: Ovaj medij je važeći samo na Dellovim sustavima." #~ msgid "Choose Media Type" #~ msgstr "Odaberite vrstu medija" #~ msgid "Overlaying FID content" #~ msgstr "Prekrivanje FID sadržaja" #~ msgid "No media, create ISO image" #~ msgstr "Bez medija, stvori ISO sliku" #~ msgid "FID GIT Tree" #~ msgstr "FID GIT stablo" #~ msgid "Fetch/Update GIT Tree" #~ msgstr "Dohvati/ažuriraj GIT stablo" #~ msgid "GIT Tags/Branches:" #~ msgstr "GIT oznake/ogranci:" #~ msgid "" #~ "The GIT fetch is in progress. \n" #~ "This window will close automatically when the process is complete. \n" #~ "NOTE: Please be patient, the initial fetch may take a while." #~ msgstr "" #~ "U tijeku je GIT fetch. \n" #~ "Ovaj će se prozor zatvoriti automatski nakon što proces završi.\n" #~ "NAPOMENA: Molim budite strpljivi, inicijalno preuzimanje može " #~ "potrajati neko vrijeme." #~ msgid "GIT Tree Status" #~ msgstr "Stanje GIT stabla" #~ msgid "Show Details" #~ msgstr "Prikaži detalje" dell-recovery/po/uk.po0000664000000000000000000006072112311717746012136 0ustar # Ukrainian translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # # Yuri Chornoivan , 2010. msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2011-02-17 19:39+0000\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Не вдалося встановити зв’язок з D-Bus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Відмовлено у доступі" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "Виключення" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "Dell Recovery" #: ../Dell/recovery_gtk.py:198 #, fuzzy msgid "Copyright 2008-2012 Dell Inc." msgstr "© Dell Inc., 2008–2010" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Підтвердити вибір" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "Побудова основного образу" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Відкриття програми запису" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Процес створення носія для відновлення завершено" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Якщо ви бажаєте створити архів з ще однією копією, створений образ було " "збережено до файла з назвою:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "Не можна виконати дію" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" "У системі не міститься встановленого розділу з початковими даними Dell." #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "Файл образу" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Тип носія: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Розділ для відновлення: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "Включено" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr " (Режим збирання образу BTO)" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" "За допомогою цього пункту можна поєднати оболонку Dell OEM FID і набір " "пакунків з драйверами у один налаштований образ носія ОС. Ви зможете вибрати " "один з варіантів: створення образу флеш-картки USB або образу DVD." #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "Допоміжний розділ" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "Резюме збирання" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "Поширювач основного образу" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "Випуск основного образу" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "Основний образ BTO" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "Основний образ" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Допоміжний розділ: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "Програма" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "Драйвер" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "Пакунки" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "Додавання відновлювального пакунка Dell" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "Збирання компонентів образу" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "Не виявлено додаткового допоміжного розділу" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "Щоб перейти до наступного кроку, слід вказати всі SRV." #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "Обробка пакунків FISH" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "Додавання до основного образу" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "Приготування вкладеного образу" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "Створення допоміжного розділу Dell" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "Повторне створення UUID / Перебудова initramfs" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "Збирання основного образу GRUB" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Створення ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "Опитування версії BTO" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" "Системними правилами заборонено читання з пристроїв з необробленими даними" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "Опитування відомостей щодо ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "Відновити початковий стан" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "Системними правилами заборонено зміну системи завантаження" #: ../backend/com.dell.recoverymedia.policy.in.h:6 #, fuzzy msgid "Boot utility partition to flash BIOS" msgstr "Виберіть допоміжний розділ" #: ../backend/com.dell.recoverymedia.policy.in.h:7 #, fuzzy msgid "Install Dell driver packages" msgstr "Додавання відновлювального пакунка Dell" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "" "Системними правилами заборонено читання з пристроїв з необробленими даними" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "Створення/Збирання образу ISO для відновлення Dell" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "Запит на закриття допоміжної програми" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" "Системні правила забороняють завершення роботи процесів без сповіщення " "користувача" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Скасування створення носія для відновлення" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" "Ви справді бажаєте скасувати операцію зі створення носія для відновлення?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Версія:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Виявлено готовий образ (ймовірно, створений під час попереднього запуску). " "Бажаєте вилучити цю стару копію і повторно створити образ?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "Диск DVD+/-RW" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "Вам знадобиться придатний для запису носій даних DVD." #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "Флеш-диск USB" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "На флеш-диску USB має бути приблизно 2 ГБ вільного простору." #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "Без носія, створити образ" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Створення носія для відновлення Dell" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "<замінник дії>" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" "Програми встановлюються виробником, лише якщо запис порядку (SDR) " "посилається на засіб надання випусків (SRV). Таким чином, під час " "встановлення виконується опитування всіх можливих SRV." #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" "Образ ОС Base (базовий) містить переважну частину даних для образу BTO. Цим " "образом може бути образ ОС Vanilla (початковий) або поточний образ BTO." #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "Образ ISO" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "Каталог видобування" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "Виявлений розділ для відновлення" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "Вибір образу" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "Параметри позначеного образу:" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "Додати Dell Recovery" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "Для частини додатка FID слід включити пакунок dell-recovery." #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "Вказати пакунок dell-recovery" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "Виберіть пакунок" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "Зібрати пакунок dell-recovery за цією системою" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "Встановити dpkg-repack" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" "Тут можна додати будь-які додаткові драйвери і програми, які слід " "інтегрувати до образу." #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" "Оболонку BTO FID буде додано до основного образу першою. Якщо побудова " "образу відбувається на основі раніше створеного сумісного з BTO образу, ви " "можете скористатися вбудованою оболонкою." #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "Оболонка FID, вбудована до образу BTO" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "Оболонка FID, вкладене до пакунка debian" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "Параметри позначеного сховища:" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "Запис SRV" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "Вкажіть SRV, який слід використати:" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" "Образи BTO можуть додатково включати допоміжний розділ для діагностичних " "програм." #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "Не виявлено додаткового допоміжного розділу" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "Визначте вміст допоміжного розділу" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "Виявлений допоміжний розділ" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "Виберіть вміст" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "Подробиці щодо вибраних даних:" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "_Довідка" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" "За допомогою цього пункту можна створити носій для відновлення ОС, яким " "можна буде скористатися для відновлення операційної системи комп’ютера до " "стану, у якому вам її передав виробник обладнання. Ви зможете створити " "відновлювальний флеш-диск USB або диск DVD." #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" "За допомогою цього пункту можна відновити початковий стан вашої системи за " "допомогою розділу для відновлення, що зберігається на жорсткому диску." #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "Створення носія ОС" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "Відновити систему" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "Встановити git" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Носієм для відновлення Dell можна скористатися для відновлення вашої системи " "до стану, у якому вам було передано її виробником обладнання." #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Рекомендуємо вам створити такий носій і зберігати його у безпечному місці." "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "Відновлення #ОС# до початкового стану" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "Зберегти носій для відновлення на зовнішньому флеш-диску USB" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Зауваження: на флеш-диску USB має бути приблизно 2 ГБ вільного " "простору." #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "Зберегти носій для відновлення на DVD" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" "Зауваження: вам знадобиться придатний для запису носій даних DVD." #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "Не створювати носія для відновлення цього разу" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Носій для відновлення можна створити пізніше. Для цього слід скористатися " "пунктом відповідного інструменту з меню «Система»." #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" "ПОМИЛКА: цим носієм можна скористатися лише у системах виробництва " "Dell." #~ msgid "Installation Mode" #~ msgstr "Режим встановлення" #~ msgid "OIE Installation Mode" #~ msgstr "Режим встановлення OIE" #~ msgid "Additional Success Script" #~ msgstr "Додатковий скрипт для успішного завершення" #~ msgid "Additional Fail Script" #~ msgstr "Додатковий скрипт для завершення з помилками" #~ msgid "SUCCESS Script: " #~ msgstr "Скрипт SUCCESS: " #~ msgid "FAIL Script: " #~ msgstr "Скрипт FAIL: " #~ msgid "Building OIE Archive" #~ msgstr "Збирання архіву OIE" #~ msgid "" #~ "OIE compliant images can only be installed from ODM factory " #~ "environments. They will notify the user at completion of a success or " #~ "failure." #~ msgstr "" #~ "Сумісні з OIE образи можна встановлювати лише з середовищ виробника. " #~ "Після завершення їхнього створення програма сповістить користувача про " #~ "успішне виконання дії або помилки." #~ msgid "Produce a standard installation image." #~ msgstr "Створити стандартний образ для встановлення." #~ msgid "Produce an OIE compliant installation image." #~ msgstr "Створити образ для встановлення, сумісний з OIE." #~ msgid "" #~ "OIE mode also allows you to provide additional SUCCESS and FAIL scripts " #~ "to be ran prior to notification the image is complete. These can each be " #~ "any executable program or script." #~ msgstr "" #~ "У режимі OIE також можна визначати додаткові скрипти SUCCESS та FAIL, які " #~ "буде запущено до появи сповіщення щодо завершення створення образу. " #~ "Обидва скрипти можуть бути довільними виконуваними програмами або " #~ "скриптами." #~ msgid "Set SUCCESS script" #~ msgstr "Вказати скрипт SUCCESS" #~ msgid "Set FAIL script" #~ msgstr "Вказати скрипт FAIL" #~ msgid "\n" #~ msgstr "\n" #~ msgid "Choose Media Type" #~ msgstr "Вибір типу носія" #~ msgid "Overlaying FID content" #~ msgstr "Додаткові дані FID" #~ msgid "No media, create ISO image" #~ msgstr "Без носія, створити образ ISO" #~ msgid "" #~ "The GIT fetch is in progress. \n" #~ "This window will close automatically when the process is complete. \n" #~ "NOTE: Please be patient, the initial fetch may take a while." #~ msgstr "" #~ "Звантаження даних з GIT.\n" #~ "Це вікно буде автоматично закрито після завершення операції.\n" #~ "ЗАУВАЖЕННЯ: будь ласка, зачекайте, початкове звантаження даних " #~ "може бути досить тривалим." #~ msgid "FID GIT Tree" #~ msgstr "GIT-дерево FID" #~ msgid "Fetch/Update GIT Tree" #~ msgstr "Отримати/Оновити GIT-дерево" #~ msgid "GIT Tags/Branches:" #~ msgstr "Випуски/Версії GIT:" #~ msgid "GIT Tree Status" #~ msgstr "Стан GIT-дерева" #~ msgid "Show Details" #~ msgstr "Показати подробиці" #~ msgid "python-vte is missing" #~ msgstr "Не виявлено python-vte" #~ msgid "Builder mode requires python-vte to function" #~ msgstr "Для роботи у режимі збирання потрібен пакунок python-vte" #~ msgid "Choose Base OS Image" #~ msgstr "Виберіть базовий образ ОС" #~ msgid "Choose FID Overlay" #~ msgstr "Виберіть додаток FID" #~ msgid "Choose Driver Packages" #~ msgstr "Виберіть пакунки драйверів" #~ msgid "Choose Application Packages" #~ msgstr "Виберіть пакунки програм" #~ msgid "ERROR: git is not installed" #~ msgstr "ПОМИЛКА: git не встановлено" #~ msgid "Missing Dell-Recovery" #~ msgstr "Не виявлено Dell-Recovery" #~ msgid "Not present in ISO or GIT tree" #~ msgstr "Немає на ISO або у дереві GIT" #~ msgid "FID Overlay" #~ msgstr "Додаток FID" dell-recovery/po/vi.po0000664000000000000000000003005312311717746012130 0ustar # Vietnamese translation for dell-recovery # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2011-03-16 11:51+0000\n" "Last-Translator: Lê Trường An \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Không thể kết nối đến dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Không có đủ quyền" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "Ngoại lệ" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "Dell Recovery" #: ../Dell/recovery_gtk.py:198 #, fuzzy msgid "Copyright 2008-2012 Dell Inc." msgstr "Bản quyền 2008-2010 Dell Inc." #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "Tạo dựng hình ảnh cơ sở" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Đang mở trình ghi đĩa" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Hoàn tất tiến trình tạo tập tin đa phương tiện" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Nếu bạn muốn lưu trữ một bản sao khác, hình ảnh được tạo đã được lưu lại với " "tên:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "Không thể tiếp tục" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "" #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "" #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "" #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents installing packages." msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" dell-recovery/po/pt.po0000664000000000000000000003077712311717746012152 0ustar # Portuguese translation for dell-recovery # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-01-26 15:16+0000\n" "Last-Translator: Henrique P. Machado \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Não é possível conectar-se ao dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Permissão negada" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Confirma selecções" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Abrindo gravador" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Recovery Media Creation Processo Completo" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Tipo de media: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Recuperação de partição: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Utilitário de partição: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Gerando ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "Políticas do sistema previnem a leitura de dispositivos brutos" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "Políticas do sistema previnem a leitura de dispositivos brutos" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Cancelar Recovery Media Creator" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" "Você tem certeza que quer cancelar o processo de criação do Media Recovery?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Uma imagem existente foi encontrada (possivelmente de uma execução " "anterior). Você gostaria de remover esta cópia antiga e gerar novamente a " "imagem?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "DVD+/-RW Disc" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "Unidade USB" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Dell Recovery Media Creator" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "Imagem ISO" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #~ msgid "Choose Media Type" #~ msgstr "Escolha tipo de media" #~ msgid "No media, create ISO image" #~ msgstr "Nenhuma mídia, cria um arquivo ISO" dell-recovery/po/es.po0000664000000000000000000003730212311717746012125 0ustar # Spanish translation for dell-recovery # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2011-11-22 17:07+0000\n" "Last-Translator: Fitoschido \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-11-23 05:21+0000\n" "X-Generator: Launchpad (build 14336)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "No se puede conectar con dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Permiso denegado" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "Excepción" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "Dell Recovery" #: ../Dell/recovery_gtk.py:198 #, fuzzy msgid "Copyright 2008-2012 Dell Inc." msgstr "Copyright 2008-2010 Dell Inc." #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Confirmar selecciones" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "Tipo de soporte" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "Construyendo imagen base" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Abriendo grabadora" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Proceso de creación del soporte de recuperación finalizado" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Si desea archivar otra copia, la imagen generada ha sido archivada con el " "siguiente nombre:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "Imposible continuar" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" "El sistema parece no tener un esquema de particiones de fábrica de Dell." #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "Archivo de imagen" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Tipo de medio: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Particion de recuperación: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "Incluido" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr " (BTO Modo constructor de imagen)" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "Paquetes de aplicaciones" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "Paquetes de controladores" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "Resumen del constructor" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "Distribuidor de imagen base" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "Liberar imagen base" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "Imagen base BTO" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "Imagen base" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Partición de utilidad: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "Aplicación" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "Controlador" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "Paquetes" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "Inyectar paquete de Dell Recovery" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "Añadiendo en la imagen base" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "Regenerando UUID / Reconstruyendo initramfs" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Creando ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "Consulta versión BTO" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "La política del sistema impide leer dispositivos raw" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "Consultar información de ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "Restaurar a estado de fábrica" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "La política del sistema impide cambios al arranque" #: ../backend/com.dell.recoverymedia.policy.in.h:6 #, fuzzy msgid "Boot utility partition to flash BIOS" msgstr "Elija la utilidad de partición" #: ../backend/com.dell.recoverymedia.policy.in.h:7 #, fuzzy msgid "Install Dell driver packages" msgstr "Inyectar paquete de Dell Recovery" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "La política del sistema impide leer dispositivos raw" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "Crear/Ensamblar Dell Recovery ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "Petición de cierre del motor" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "Las políticas del sistema no permiten cerrar procesos sin notificación" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Cancelar Recovery Media Creator" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" "¿Seguro que quiere cancelar el proceso de creación del Medio de Recuperación?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Versión:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "Ya existe una imagen (posiblemente de una ejecución anterior). ¿Quiere " "eliminar esta copia antigua y volver a generar la imagen?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "Disco DVD+/-RW" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "Esto requiere un disco DVD editable." #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "Unidad flash USB" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "Esto requiere una llave USB con aproximadamente 2GB libres." #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Creador de soportes de recuperación de Dell" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "Imagen ISO" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "Directorio extraído" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "Detectada partición de recuperación" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "Escoger Imagen" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "Detalles de la imagen seleccionada:" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "Añadir la recuperación de Dell" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "Búsqueda de un paquete de recuperación de Dell" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "Elija el paquete" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "Construir el paquete dell-recovery desde este sistema" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "Instalar dpkg-repack" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "Entorno de trabajo PID construido en la imagen BTO" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "Detalles de superposición seleccionados:" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "Entrada SRV" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "Introduzca el SRV a usar:" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "Partición de utilidades detectada" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "Elegir contenido" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "Detalles de contenido seleccionados:" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "Instalar git" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "Guardar el disco de recuperación en una memoria flash USB externa" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Nota: Esto requiere una unidad USB flash con aproximadamente 2GB " "libres." #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "Guardar el disco de recuperación en un DVD" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "Nota: Esto requiere un disco DVD grabable." #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "El disco de recuperación se puede generar después eligiendo la herramienta " "en el menú Sistema." #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr " ERROR: Este medio sólo es válido en los sistemas Dell." #~ msgid "Installation Mode" #~ msgstr "Modo de instalación" #~ msgid "OIE Installation Mode" #~ msgstr "Modo de instalación OIE" #~ msgid "Produce a standard installation image." #~ msgstr "Producir una imagen de instalación estándar." #~ msgid "\n" #~ msgstr "\n" #~ msgid "Choose Media Type" #~ msgstr "Escoger tipo de medio" #~ msgid "No media, create ISO image" #~ msgstr "Sin medio, crear imagen ISO" #~ msgid "Show Details" #~ msgstr "Mostrar Detalles" #~ msgid "Choose Base OS Image" #~ msgstr "Elija la Imagen OS Base" #~ msgid "Not present in ISO or GIT tree" #~ msgstr "No esta presente en el árbol ISO o GIT" #~ msgid "python-vte is missing" #~ msgstr "falta python-vte" #~ msgid "ERROR: git is not installed" #~ msgstr "ERROR: git no está instalado" #~ msgid "Choose Application Packages" #~ msgstr "Elija los paquetes de aplicación" #~ msgid "Missing Dell-Recovery" #~ msgstr "Falta el recuperador Dell" #~ msgid "Choose FID Overlay" #~ msgstr "Elija FID Overlay" #~ msgid "Choose Driver Packages" #~ msgstr "Elija los paquetes del controlador" #~ msgid "GIT Tree Status" #~ msgstr "Estado de árbol GIT" #~ msgid "GIT Tags/Branches:" #~ msgstr "Etiquetas GIT/Ramas:" #~ msgid "Builder mode requires python-vte to function" #~ msgstr "El modo constructor requiere python-vte para funcionar" #~ msgid "Overlaying FID content" #~ msgstr "Superposición de contenido FID" dell-recovery/po/he.po0000664000000000000000000002777712311717746012131 0ustar # Hebrew translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-04-21 10:39+0000\n" "Last-Translator: Yaron \n" "Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "לא ניתן להתחבר אל dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "הגישה נדחתה" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "אימות הבחירה" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "תכנת הצריבה נפתחת" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "תהליך יצירת מדיית השחזור הושלם" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "סוג המדיה: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "מחיצת השחזור: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "נכלל" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "" #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 msgid "System policy prevents installing packages." msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "" #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "תמונת ISO" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 msgid "Install Drivers" msgstr "" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #~ msgid "Choose Media Type" #~ msgstr "יש לבחור בסוג המדיה" #~ msgid "python-vte is missing" #~ msgstr "python-vte חסר" dell-recovery/po/sv.po0000664000000000000000000003524012311717746012145 0ustar # Swedish translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-05 15:27-0600\n" "PO-Revision-Date: 2010-03-18 23:07+0000\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-11 04:46+0000\n" "X-Generator: Launchpad (build 13900)\n" #: ../Dell/recovery_gtk.py:108 msgid "Cannot connect to dbus" msgstr "Kan inte ansluta till dbus" #: ../Dell/recovery_gtk.py:110 msgid "Permission Denied" msgstr "Åtkomst nekad" #: ../Dell/recovery_gtk.py:117 msgid "Exception" msgstr "" #: ../Dell/recovery_gtk.py:197 ../gtk/dell-recovery-media.desktop.in.h:1 #: ../gtk/tool_selector.ui.h:2 msgid "Dell Recovery" msgstr "" #: ../Dell/recovery_gtk.py:198 msgid "Copyright 2008-2012 Dell Inc." msgstr "" #: ../Dell/recovery_basic_gtk.py:58 msgid "Confirm Selections" msgstr "Bekräfta" #: ../Dell/recovery_basic_gtk.py:59 msgid "Media Type" msgstr "" #: ../Dell/recovery_basic_gtk.py:168 msgid "Building Base image" msgstr "" #: ../Dell/recovery_basic_gtk.py:181 msgid "Opening Burner" msgstr "Öppnar brännare" #: ../Dell/recovery_basic_gtk.py:206 msgid "Recovery Media Creation Process Complete" msgstr "Återställningsmediat är färdigt" #: ../Dell/recovery_basic_gtk.py:207 msgid "" "If you would like to archive another copy, the generated image has been " "stored under the filename:\n" msgstr "" "Om du vill arkivera en annan kopia så har den genererade avbildningen " "lagrats med filnamnet:\n" #: ../Dell/recovery_basic_gtk.py:221 msgid "Unable to proceed" msgstr "" #: ../Dell/recovery_basic_gtk.py:222 msgid "" "System does not appear to contain Dell factory installed partition layout." msgstr "" #: ../Dell/recovery_basic_gtk.py:333 msgid "Image File" msgstr "" #: ../Dell/recovery_basic_gtk.py:335 msgid "Media Type: " msgstr "Mediatyp: " #: ../Dell/recovery_basic_gtk.py:338 ../Dell/recovery_basic_gtk.py:341 msgid "Recovery Partition: " msgstr "Återställningspartition: " #: ../Dell/recovery_basic_gtk.py:342 msgid "Included" msgstr "" #. wizard.resize(400,400) #: ../Dell/recovery_advanced_gtk.py:68 msgid " (BTO Image Builder Mode)" msgstr "" #: ../Dell/recovery_advanced_gtk.py:70 msgid "" "This will integrate a Dell OEM FID framework & driver package set into a " "customized OS media image. You will have the option to create an USB key or " "DVD image." msgstr "" #. insert builder pages in reverse order #: ../Dell/recovery_advanced_gtk.py:89 msgid "Application Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:90 msgid "Driver Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:91 ../Dell/recovery_advanced_gtk.py:295 msgid "Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:92 msgid "FID Content" msgstr "" #: ../Dell/recovery_advanced_gtk.py:93 msgid "Base OS Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:180 msgid "Builder Summary" msgstr "" #: ../Dell/recovery_advanced_gtk.py:181 msgid "Base Image Distributor" msgstr "" #: ../Dell/recovery_advanced_gtk.py:183 msgid "Base Image Release" msgstr "" #: ../Dell/recovery_advanced_gtk.py:186 msgid "BTO Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:189 msgid "Base Image" msgstr "" #: ../Dell/recovery_advanced_gtk.py:193 msgid "Utility Partition: " msgstr "Tillbehörspartition: " #: ../Dell/recovery_advanced_gtk.py:196 msgid "Application" msgstr "" #: ../Dell/recovery_advanced_gtk.py:197 msgid "Driver" msgstr "" #: ../Dell/recovery_advanced_gtk.py:203 msgid "Packages" msgstr "" #: ../Dell/recovery_advanced_gtk.py:209 msgid "Inject Dell Recovery Package" msgstr "" #. update gui #: ../Dell/recovery_advanced_gtk.py:219 msgid "Assembling Image Components" msgstr "" #: ../Dell/recovery_advanced_gtk.py:298 msgid "No Additional Utility Partition" msgstr "" #: ../Dell/recovery_advanced_gtk.py:494 msgid "All SRVs must be filled to proceed." msgstr "" #: ../Dell/recovery_backend.py:344 msgid "Processing FISH packages" msgstr "" #: ../Dell/recovery_backend.py:469 msgid "Adding in base image" msgstr "" #: ../Dell/recovery_backend.py:1050 msgid "Preparing nested image" msgstr "" #: ../Dell/recovery_backend.py:1069 msgid "Building Dell Utility Partition" msgstr "Bygger Dell-verktygspartition" #: ../Dell/recovery_backend.py:1131 msgid "Regenerating UUID / Rebuilding initramfs" msgstr "Återgenererar UUID / Bygger om initramfs" #: ../Dell/recovery_backend.py:1160 msgid "Building GRUB core image" msgstr "" #: ../Dell/recovery_backend.py:1285 msgid "Building ISO" msgstr "Bygger ISO" #: ../backend/com.dell.recoverymedia.policy.in.h:1 msgid "Query BTO Version" msgstr "Fråga BTO-version" #: ../backend/com.dell.recoverymedia.policy.in.h:2 msgid "System policy prevents reading raw devices" msgstr "Systemprincip förhindrar läsning av obehandlade enheter" #: ../backend/com.dell.recoverymedia.policy.in.h:3 msgid "Query ISO Information" msgstr "Fråga ISO-information" #: ../backend/com.dell.recoverymedia.policy.in.h:4 msgid "Restore to Factory state" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:5 msgid "System policy prevents changing system bootup" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:6 msgid "Boot utility partition to flash BIOS" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:7 msgid "Install Dell driver packages" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:8 #, fuzzy msgid "System policy prevents installing packages." msgstr "Systemprincip förhindrar läsning av obehandlade enheter" #: ../backend/com.dell.recoverymedia.policy.in.h:9 msgid "Create/Assemble Dell Recovery ISO" msgstr "Skapa/Bygg ISO för Dell-återställning" #: ../backend/com.dell.recoverymedia.policy.in.h:10 msgid "Request closing the backend" msgstr "Begär stängning av bakänden" #: ../backend/com.dell.recoverymedia.policy.in.h:11 msgid "System policy prevents closing processes without notice" msgstr "" "Systemets policy förhindrar att processer stängs utan att informera om det" #: ../backend/com.dell.recoverymedia.policy.in.h:12 msgid "Toggle Network Connectivity" msgstr "" #: ../backend/com.dell.recoverymedia.policy.in.h:13 msgid "System policy prohibits changing network without user consent" msgstr "" #: ../gtk/dell-driver-installer.desktop.in.h:1 msgid "Dell Driver Installer" msgstr "" #: ../gtk/recovery_media_creator.ui.h:1 msgid "Cancel Recovery Media Creator" msgstr "Avbryt skapandet av återställningsmedia" #: ../gtk/recovery_media_creator.ui.h:2 msgid "Are you sure you want to cancel the Recovery Media creation process?" msgstr "" "Är du säker på att du vill avbryta processen för att skapa " "återställningsmedia?" #: ../gtk/recovery_media_creator.ui.h:3 msgid "Version:" msgstr "Version:" #: ../gtk/recovery_media_creator.ui.h:4 msgid "" "An existing image was found (possibly from a previous run). Would you like " "to remove this old copy and regenerate the image?" msgstr "" "En befintlig avbildning hittades (eventuellt från en tidigare körning). Vill " "du ta bort den gamla kopian och generera avbildningen igen?" #: ../gtk/recovery_media_creator.ui.h:5 msgid "DVD+/-RW Disc" msgstr "DVD+/-RW-skiva" #: ../gtk/recovery_media_creator.ui.h:6 msgid "This requires writable DVD media." msgstr "Detta kräver ett skrivbart DVD-media." #: ../gtk/recovery_media_creator.ui.h:7 msgid "USB Flash Drive" msgstr "USB-enhet" #: ../gtk/recovery_media_creator.ui.h:8 msgid "This requires a USB flash drive with approximately 2GB free." msgstr "Detta kräver en USB-lagringsenhet med ungefär 2 GB ledigt utrymme." #: ../gtk/recovery_media_creator.ui.h:9 msgid "No media, create image" msgstr "" #: ../gtk/recovery_media_creator.ui.h:10 ../gtk/tool_selector.ui.h:1 msgid "Dell Recovery Media Creator" msgstr "Skapa återställningsmedia för Dell" #: ../gtk/recovery_media_creator.ui.h:11 msgid "" msgstr "" #: ../gtk/builder.ui.h:1 msgid "" "During Factory Installation, applications are only installed if the order " "record (SDR) refers to the service release vehicle (SRV). This populates " "the possible SRVs to be queried during installation." msgstr "" #: ../gtk/builder.ui.h:2 msgid "" "The Base OS image provides the majority of the content for a BTO image. It " "can be a Vanilla OS image, or existing BTO Image." msgstr "" "Base OS-avbildningen tillhandahåller majoriteten av innehållet för en BTO-" "avbildning. Det kan vara en Vanilla OS-avbildning eller befintlig BTO-" "avbildning." #: ../gtk/builder.ui.h:3 msgid "ISO Image" msgstr "ISO-avbildning" #: ../gtk/builder.ui.h:4 msgid "Extracted Directory" msgstr "Extraherad katalog" #: ../gtk/builder.ui.h:5 msgid "Detected Recovery Partition" msgstr "Identifierade återställningspartition" #: ../gtk/builder.ui.h:6 msgid "Choose Image" msgstr "Välj avbildning" #: ../gtk/builder.ui.h:7 msgid "Selected Image Details:" msgstr "Detaljer om vald avbildning:" #: ../gtk/builder.ui.h:8 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../gtk/builder.ui.h:11 msgid "Add Dell Recovery" msgstr "" #: ../gtk/builder.ui.h:12 msgid "" "Part of the FID overlay requires a dell-recovery package to be included." msgstr "" #: ../gtk/builder.ui.h:13 msgid "Browse for a dell-recovery package" msgstr "" #: ../gtk/builder.ui.h:14 msgid "Choose package" msgstr "" #: ../gtk/builder.ui.h:15 msgid "Build dell-recovery package from this system" msgstr "" #: ../gtk/builder.ui.h:16 msgid "Install dpkg-repack" msgstr "" #: ../gtk/builder.ui.h:17 msgid "" "Any add-on drivers or applications that need to be integrated into the image " "can be added here." msgstr "" #: ../gtk/builder.ui.h:18 msgid "" "The BTO FID framework is the first thing injected into a base vanilla " "image. If you are generating from an existing BTO compatible image, you may " "use the built-in framework." msgstr "" #: ../gtk/builder.ui.h:19 msgid "FID framework built into BTO image" msgstr "FID-ramverk inbyggd i BTO-avbildningen" #: ../gtk/builder.ui.h:20 msgid "FID Framework enclosed in debian package" msgstr "" #: ../gtk/builder.ui.h:21 msgid "Selected Overlay Details:" msgstr "Detaljer om vald overlay:" #: ../gtk/builder.ui.h:22 msgid "SRV Entry" msgstr "" #: ../gtk/builder.ui.h:23 msgid "Please enter the SRV to use:" msgstr "" #: ../gtk/builder.ui.h:24 msgid "" "BTO images can optionally include a Utility Partition for diagnostic " "utilities." msgstr "" #: ../gtk/builder.ui.h:25 msgid "No additional Utility Partition" msgstr "" #: ../gtk/builder.ui.h:26 msgid "Select content for Utility Partition" msgstr "" #: ../gtk/builder.ui.h:27 msgid "Detected Utility Partition" msgstr "" #: ../gtk/builder.ui.h:28 msgid "Choose Content" msgstr "" #: ../gtk/builder.ui.h:29 msgid "Selected Content Details:" msgstr "" #: ../gtk/tool_selector.ui.h:3 msgid "_Help" msgstr "" #: ../gtk/tool_selector.ui.h:4 msgid "" "This will create OS Recovery Media that can be used to restore the computer " "to its factory shipped state. You will have the option to create an USB key " "or DVD image." msgstr "" #: ../gtk/tool_selector.ui.h:5 msgid "" "This will restore the system to the factory shipped state using the recovery " "partition stored on the hard drive." msgstr "" #: ../gtk/tool_selector.ui.h:6 msgid "Build OS Media" msgstr "" #: ../gtk/tool_selector.ui.h:7 msgid "Restore System" msgstr "" #: ../gtk/tool_selector.ui.h:8 msgid "" "This will install a Dell driver package that you downloaded from the " "Internet." msgstr "" #: ../gtk/tool_selector.ui.h:9 #, fuzzy msgid "Install Drivers" msgstr "Installera git" #: ../gtk/tool_selector.ui.h:10 msgid "This will flash a DOS based BIOS image." msgstr "" #: ../gtk/tool_selector.ui.h:11 msgid "Flash BIOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:1 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Återställningsmedia för Dell kan användas för att återställa din dator till " "samma tillstånd som den befann sig i när den levererades till dig." #: ../ubiquity/stepRecoveryMedia.ui.h:2 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Det rekommenderas starkt att du genererar ett media och lagrar det på en " "säker plats." #: ../ubiquity/stepRecoveryMedia.ui.h:3 msgid "Restore #OS# to factory state" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:4 msgid "Flash BIOS image from DOS" msgstr "" #: ../ubiquity/stepRecoveryMedia.ui.h:5 msgid "Save recovery media to an external USB flash drive" msgstr "Spara återställningsmedia till en extern USB-lagringsenhet" #: ../ubiquity/stepRecoveryMedia.ui.h:6 msgid "" "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Observera: Detta kräver en USB-lagringsenhet med ungefär 2 GB ledigt " "utrymme." #: ../ubiquity/stepRecoveryMedia.ui.h:7 msgid "Save recovery media to DVD" msgstr "Spara återställningsmedia till DVD" #: ../ubiquity/stepRecoveryMedia.ui.h:8 msgid "Note: This requires writable DVD media." msgstr "Observera: Detta kräver ett skrivbart DVD-media." #: ../ubiquity/stepRecoveryMedia.ui.h:9 msgid "Don't generate recovery media at this time" msgstr "Generera inte återställningsmedia för tillfället" #: ../ubiquity/stepRecoveryMedia.ui.h:10 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Återställningsmedia kan genereras senare genom att välja verktyget från " "System-menyn." #: ../ubiquity/stepRecoveryMedia.ui.h:11 msgid "ERROR: This media is only valid on Dell systems." msgstr "FEL: Detta media är endast giltigt på Dell-system." #~ msgid "Choose Media Type" #~ msgstr "Välj mediatyp" #~ msgid "No media, create ISO image" #~ msgstr "Inget media, skapa ISO-avbildning" #~ msgid "Show Details" #~ msgstr "Visa detaljer" #~ msgid "GIT Tree Status" #~ msgstr "Status för GIT-trädet" #~ msgid "Fetch/Update GIT Tree" #~ msgstr "Hämta/Uppdatera GIT-trädet" #~ msgid "GIT Tags/Branches:" #~ msgstr "GIT-taggar/Grenar:" #~ msgid "" #~ "The GIT fetch is in progress. \n" #~ "This window will close automatically when the process is complete. \n" #~ "NOTE: Please be patient, the initial fetch may take a while." #~ msgstr "" #~ "GIT-hämtningen är igång. \n" #~ "Detta fönster kommer automatiskt att stängas när processen är färdig. \n" #~ "OBSERVERA: Var god vänta. Den initiala hämtningen kan ta tid." #~ msgid "FID GIT Tree" #~ msgstr "FID GIT-träd" dell-recovery/late/0000775000000000000000000000000011751021273011446 5ustar dell-recovery/late/scripts/0000775000000000000000000000000012312225642013135 5ustar dell-recovery/late/scripts/FAIL-SCRIPT0000775000000000000000000000431511756524445014621 0ustar #!/bin/sh # # # # Script called in the event that a postinstall (chroot) script fails # # Copyright 2008-2010 Dell Inc. # Mario Limonciello # Hatim Amro # Michael E Brown # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. # BE AWARE THAT THIS SCRIPT IS CALLED FROM OUTSIDE THE CHROOT. # The OS is mounted under $TARGET . /usr/share/dell/scripts/fifuncs "target" set -x set -e IFHALT "(FAIL) Clean-Up .." if [ "$BOOTDEV" = "$TARGETDEV" ]; then #cleanup potentially stale mount points for mountpoint in $MOUNT_CLEANUP; do umount -l $mountpoint done if [ -d "/isodevice" ]; then RP="/isodevice" else RP="/cdrom" fi mount -o remount,rw $RP IFHALT "Resetting grub fail state" [ -s $RP/factory/grubenv ] || rm -f $RP/factory/grubenv grub-editenv $RP/factory/grubenv set recordfail=1 if [ -x /dell/fist/tal ]; then IFHALT "Reporting logs to DMP" cp -f $TARGET/$LOG/chroot.sh.log /tmp/fist.err /dell/fist/tal PutFiles /tmp/fist.err sync elif [ ! -d /sys/firmware/efi ]; then grub-setup -d $RP/factory $BOOTDEV fi #If we have another script to run, do it if [ -f /cdrom/scripts/chroot-scripts/FAIL-SCRIPT ]; then IFHALT "(FAIL) Report to logs.. Done!" /cdrom/scripts/chroot-scripts/FAIL-SCRIPT fi fi IFHALT "(FAIL) Clean-Up.. Done!" dell-recovery/late/scripts/upgrade-fish-package.py0000775000000000000000000000323012043102601017445 0ustar #!/usr/bin/python3 # A helper script to upgrade an existing FISH package to new format (2012+) import atexit import tempfile import tarfile import argparse import os.path import lsb_release from Dell.recovery_common import walk_cleanup from Dell.recovery_xml import BTOxml import sys parser = argparse.ArgumentParser() parser.add_argument('fname', nargs='?') parser_args = parser.parse_args() if not parser_args.fname or not os.path.exists(parser_args.fname): print("Call this script with the path to an existing FISH package as an input") sys.exit(1) if parser_args.fname.endswith('.fish.tar.gz'): print ("This is likely already upgraded, please provide a package that doesn't end in .fish.tar.gz") sys.exit(1) description = raw_input("Enter a description for this FISH package.\n") #extract old FISH package package_dir = tempfile.mkdtemp() atexit.register(walk_cleanup, package_dir) rfd = tarfile.open(parser_args.fname) rfd.extractall(package_dir) xml_file = os.path.join(package_dir, 'prepackage.dell') #write XML object xml_obj = BTOxml() if os.path.exists(xml_file): xml_obj.load_bto_xml(xml_file) xml_obj.replace_node_contents('os', lsb_release.get_lsb_information()['RELEASE']) xml_obj.append_fish('driver', description, 'n/a') xml_obj.write_xml(xml_file) #repack FISH package output_dirname = os.path.dirname(parser_args.fname) output_fname = parser_args.fname.split('.tar.gz')[0].split('.tgz')[0] + '.fish.tar.gz' wfd = tarfile.open(output_fname, 'w:gz') for obj in os.listdir(package_dir): wfd.add(os.path.join(package_dir, obj), obj) print ("Wrote updated FISH package to %s") % output_fname print ("File contents:") wfd.list() wfd.close() dell-recovery/late/scripts/chroot.sh0000775000000000000000000000771112021454752015003 0ustar #!/bin/sh # # # # Prepares the installed system for entering into postinstall phase # Calls the postinatll phase script (run_chroot) # Cleans up after postinstall completes # # Copyright 2008-2010 Dell Inc. # Mario Limonciello # Hatim Amro # Michael E Brown # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. set -x set -e export TARGET=/target if [ -d "/isodevice" ]; then DEVICE=$(mount | sed -n 's/\ on\ \/isodevice.*//p') else DEVICE=$(mount | sed -n 's/\ on\ \/cdrom.*//p') fi export BOOTDEV=${DEVICE%%[0-9]*} DEVICE=$(mount | sed -n 's/\ on\ \/target.*//p') export TARGETDEV=${DEVICE%%[0-9]*} LOG="var/log" if [ -d "$TARGET/$LOG/installer" ]; then LOG="$LOG/installer" fi export LOG if [ -d "$TARGET/$LOG" ]; then exec > $TARGET/$LOG/chroot.sh.log 2>&1 chroot $TARGET chattr +a $LOG/chroot.sh.log else export TARGET=/ exec > $TARGET/$LOG/chroot.sh.log 2>&1 fi # Nobulate Here. # This way if we die early we'll RED Screen if [ -x /dell/fist/tal ]; then /dell/fist/tal nobulate 0 fi if [ "$1" != "success" ]; then . /usr/share/dell/scripts/FAIL-SCRIPT exit 1 fi echo "in $0" # Execute FAIL-SCRIPT if we exit for any reason (abnormally) trap ". /usr/share/dell/scripts/FAIL-SCRIPT" TERM INT HUP EXIT QUIT mount --bind /dev $TARGET/dev MOUNT_CLEANUP="$TARGET/dev $MOUNT_CLEANUP" if ! mount | grep "$TARGET/run"; then mount --bind /run $TARGET/run MOUNT_CLEANUP="$TARGET/run $MOUNT_CLEANUP" fi if ! mount | grep "$TARGET/proc"; then mount -t proc targetproc $TARGET/proc MOUNT_CLEANUP="$TARGET/proc $MOUNT_CLEANUP" fi if ! mount | grep "$TARGET/sys"; then mount -t sysfs targetsys $TARGET/sys MOUNT_CLEANUP="$TARGET/sys $MOUNT_CLEANUP" fi if ! mount | grep "$TARGET/cdrom"; then mount --bind /cdrom $TARGET/cdrom MOUNT_CLEANUP="$TARGET/cdrom $MOUNT_CLEANUP" fi if [ ! -L $TARGET/media/cdrom ]; then ln -s /cdrom $TARGET/media/cdrom DIR_CLEANUP="$TARGET/media/cdrom $DIR_CLEANUP" fi #Make sure fifuncs and target_chroot are available if [ ! -d $TARGET/usr/share/dell/scripts ]; then mkdir -p $TARGET/usr/share/dell/scripts DIR_CLEANUP="$TARGET/usr/share/dell/scripts $DIR_CLEANUP" mount --bind /usr/share/dell/scripts $TARGET/usr/share/dell/scripts MOUNT_CLEANUP="$TARGET/usr/share/dell/scripts $MOUNT_CLEANUP" fi #If we are loop mounted, this will have been done during the ubiquity if [ -d /isodevice ]; then MOUNT_CLEANUP="$TARGET/isodevice $MOUNT_CLEANUP" fi export MOUNT_CLEANUP #Make sure that WinPE isn't in our menus (happens in uEFI case) if [ -d /dell/fist ] && ! grep "^GRUB_DISABLE_OS_PROBER" $TARGET/etc/default/grub >/dev/null; then echo "GRUB_DISABLE_OS_PROBER=true" >> $TARGET/etc/default/grub fi #Run chroot scripts chroot $TARGET /usr/share/dell/scripts/target_chroot.sh for mountpoint in $MOUNT_CLEANUP; do umount -l $mountpoint done unset MOUNT_CLEANUP for directory in $DIR_CLEANUP; do rm -rf $directory done chroot $TARGET chattr -a $LOG/chroot.sh.log sync;sync # reset traps, as we are now exiting normally trap - TERM INT HUP EXIT QUIT . /usr/share/dell/scripts/SUCCESS-SCRIPT $BOOT_DEV $BOOT_PART_NUM dell-recovery/late/scripts/SUCCESS-SCRIPT0000775000000000000000000000703111756524452015212 0ustar #!/bin/sh # # # # Called in the event that postinstall (chroot) steps complete successfully # # Copyright 2008-2010 Dell Inc. # Mario Limonciello # Hatim Amro # Michael E Brown # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. # BE AWARE THAT THIS SCRIPT IS CALLED FROM OUTSIDE THE CHROOT. # The OS is mounted under $TARGET . /usr/share/dell/scripts/fifuncs "target" set -x set -e IFHALT "(SUCCESS) Clean-Up .." #Record a list of all installed packages from post-phase to prevent ubiquity removing them. if [ -f "$TARGET/var/lib/ubiquity/installed-packages" ]; then chroot $TARGET dpkg --get-selections | grep -v ubiquity | awk '{print $1}' > \ $TARGET/var/lib/ubiquity/installed-packages fi #Fixup APT how we want it for a successful oem-config run rm -f $TARGET/var/lib/apt/lists/*Packages rm -f $TARGET/etc/apt/sources.list.d/dell.list #https://bugs.launchpad.net/ubuntu/+source/choose-mirror/+bug/550694 sed -i "s/http:\/\/.*.archive.ubuntu.com/http:\/\/archive.ubuntu.com/" $TARGET/etc/apt/sources.list if [ "$BOOTDEV" = "$TARGETDEV" ]; then if [ -d "/isodevice" ]; then RP="/isodevice" else RP="/cdrom" fi mount -o remount,rw $RP IFHALT "Resetting grub fail state" mkdir -p $RP/factory grub-editenv $RP/factory/grubenv unset recordfail grub-editenv $RP/factory/grubenv unset install_in_progress grub-editenv $RP/factory/grubenv set install_finished=1 #Set the right partition active and restore MBR /tmp/set_bootable IFHALT "Clean up FI Env..." rm -rf $RP/scripts/chroot-scripts/os-post/95-set_UTC_TZ.sh rm -rf $RP/misc/dell-unsupported.py rm -rf $RP/misc/run-tz-fix rm -rf $RP/misc/tz_offset.py rm -rf $RP/misc/drmk.zip rm -rf $RP/command.com rm -rf $RP/autoexec.bat rm -rf $RP/dellbio.bin rm -rf $RP/dellrmk.bin rm -rf $RP/linld.com rm -rf $RP/cmd.cfg rm -rf $RP/up.zip rm -rf $RP/up.tgz rm -rf $RP/upimg.bin rm -rf $RP/upimg.gz rm -rf $RP/SDR rm -rf $RP/*.SDR rm -rf $RP/srv rm -rf $RP/factory/*.dll rm -rf $RP/factory/*.exe rm -rf $RP/factory/*.bat rm -rf $RP/.disk/casper-uuid* IFHALT "Report the LOG..." if [ -f /dell/fist/tal ]; then cp $TARGET/$LOG/chroot.sh.log /tmp/fist.log /dell/fist/tal PutFiles /tmp/fist.log rm -rf /cdrom/debs/fist fi #If we have another script to run, do it if [ -f $RP/scripts/chroot-scripts/SUCCESS-SCRIPT ]; then $RP/scripts/chroot-scripts/SUCCESS-SCRIPT rm -f $RP/scripts/chroot-scripts/SUCCESS-SCRIPT rm -f $RP/scripts/chroot-scripts/FAIL-SCRIPT IFHALT "(SUCCESS) Report to logs.. Done!" fi fi IFHALT "(SUCCESS) Clean-Up .. Done!" dell-recovery/late/scripts/target_chroot.sh0000775000000000000000000000360711751021273016346 0ustar #!/bin/bash # # # # Individually launches each postinstall (chroot) script # Both Python (.py) and Shell (.sh) scripts are supported # Scripts are launched in this order: # > fish # > os-post # # Copyright 2008-2010 Dell Inc. # Mario Limonciello # Hatim Amro # Michael E Brown # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. . /usr/share/dell/scripts/fifuncs "" set -x set -e trap 'echo Command FAILED: $i' ERR echo "in $0" [ -f /cdrom/superhalt.flg ] && touch /tmp/superhalt.flg IFHALT "Chroot-scripts execution start..." for d in /cdrom/scripts/chroot-scripts/fish /isodevice/scripts/chroot-scripts/fish /usr/share/dell/scripts/non-negotiable /cdrom/scripts/chroot-scripts/os-post do if [ -d "$d" ]; then IFHALT "Executing Scripts in DIR: $d" for i in $(find $d -type f -executable | sort); do echo "running chroot script: $i" > /dev/tty12 IFHALT $i ext=`echo $i | sed 's/^.*\.//'` $i done fi done IFHALT "Done with chroot scripts" dell-recovery/late/scripts/fifuncs0000775000000000000000000000435011751021273014522 0ustar #!/bin/sh # # # # Common functions that can be used for postinstall (chroot) scripts # # Copyright 2008-2010 Dell Inc. # Mario Limonciello # Hatim Amro # Michael E Brown # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. wd=""$1"" screenmsg() { echo $* > /dev/tty1 2>&1 } IFHALT() { if [ -f /$wd/tmp/superhalt.flg ]; then touch /tmp/halt.flg screenmsg "Halting ---> "$1 set +x while [ -f /tmp/halt.flg ]; do sleep 2 done set -x else screenmsg "Message --->: $1" fi } match_system_device() { if [ "$1" = "usb" ]; then VENDOR_FILE="idVendor" DEVICE_FILE="idProduct" elif [ "$1" = "pci" ]; then VENDOR_FILE="vendor" DEVICE_FILE="device" else echo "$1 bus is not supported" return 1 fi if [ -z "$2" ] || [ -z "$3" ]; then echo "Need Vendor and Product arguments" return 1 fi DEVICES=$(find -L /sys/bus/$1/devices -maxdepth 2 -name $DEVICE_FILE) for file in $DEVICES; do CHECK_DEVICE=$(cat $file) DIRECTORY=$(dirname $file) CHECK_VENDOR=$(cat $DIRECTORY/$VENDOR_FILE) if [ "$CHECK_VENDOR" != "$2" ] && [ "$CHECK_VENDOR" != "0x$2" ]; then continue fi if [ "$CHECK_DEVICE" = "$3" ] || [ "$CHECK_DEVICE" = "0x$3" ]; then return 0 fi done return 1 } dell-recovery/late/scripts/pool.sh0000775000000000000000000000602311751021273014446 0ustar #!/bin/sh # # # # Builds a pool from important stuff in /cdrom # * Expects to be called as root w/ /cdrom referring to our stuff # # Copyright 2010 Dell Inc. # Mario Limonciello # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. # vim:ts=8:sw=8:et:tw=0 [ -d /cdrom/debs ] #Persistent mode has a tendency to break the dynamic apt cache if grep -q persistent /proc/cmdline 2>/dev/null; then rm -f /etc/apt/sources.list.d/dell.list fi #This allows things that aren't signed to be installed if [ ! -f /etc/apt/apt.conf.d/00AllowUnauthenticated ]; then cat > /etc/apt/apt.conf.d/00AllowUnauthenticated << EOF APT::Get::AllowUnauthenticated "true"; Aptitude::CmdLine::Ignore-Trust-Violations "true"; EOF fi #Prevents apt-get from complaining about unmounting and mounting the hard disk if [ ! -f /etc/apt/apt.conf.d/00NoMountCDROM ]; then cat > /etc/apt/apt.conf.d/00NoMountCDROM << EOF APT::CDROM::NoMount "true"; Acquire::cdrom { mount "/cdrom"; "/cdrom/" { Mount "true"; UMount "true"; }; AutoDetect "false"; }; EOF fi if [ ! -f /etc/apt/sources.list.d/dell.list ]; then #extra sources need to be disabled for this if find /etc/apt/sources.list.d/ -type f | grep sources.list.d; then mkdir -p /etc/apt/sources.list.d.old mv /etc/apt/sources.list.d/* /etc/apt/sources.list.d.old fi #Produce a dynamic list for dir in /cdrom/debs /isodevice/debs; do if [ -d "$dir" ]; then cd $dir apt-ftparchive packages ../../$dir | sed "s/^Filename:\ ..\//Filename:\ .\//" >> /Packages fi done if [ -f /Packages ]; then echo "deb file:/ /" > /etc/apt/sources.list.d/dell.list fi #add the static list to our file apt-cdrom -m add if grep "^deb cdrom" /etc/apt/sources.list >> /etc/apt/sources.list.d/dell.list; then sed -i "/^deb\ cdrom/d" /etc/apt/sources.list fi #fill up the cache mv /etc/apt/sources.list /etc/apt/sources.list.ubuntu apt-get update #cleanup mv /etc/apt/sources.list.ubuntu /etc/apt/sources.list rm -f /Packages if [ -d /etc/apt/sources.list.d.old ]; then mv /etc/apt/sources.list.d.old/* /etc/apt/sources.list.d rm -rf /etc/apt/sources.list.d.old fi fi dell-recovery/late/scripts/oem_config.sh0000775000000000000000000000326512311717746015621 0ustar #!/bin/sh # # # # Setup the early env before oem config or cleanup after # # Copyright 2010-2011 Dell Inc. # Mario Limonciello # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. # vim:ts=8:sw=8:et:tw=0 # # $1 -> early/late # # for early: # $2 -> /cdrom or /isodevice if [ "$1" = "early" ]; then DEVICE=$(python3 << EOF from Dell.recovery_common import find_partitions print(find_partitions()[1]) EOF ) mkdir -p $2 mount $DEVICE $2 if [ -f "$2/factory/grubenv" ]; then grub-editenv $2/factory/grubenv unset install_finished fi mount -o remount,ro $2 if [ -f "$2/ubuntu.iso" ]; then mount -o loop $2/ubuntu.iso /cdrom fi /usr/share/dell/scripts/pool.sh elif [ "$1" = "late" ]; then if [ -d "/isodevice" ]; then umount /isodevice rm -rf /isodevice fi rm -f /etc/apt/sources.list.d/dell.list else echo "Unknown arguments $1 $2" fi dell-recovery/late/chroot_scripts/0000775000000000000000000000000012312225642014513 5ustar dell-recovery/late/chroot_scripts/50-handle-docs.sh0000775000000000000000000000267211751021273017464 0ustar #!/bin/bash # # <50-handle-docs.sh> # # Copies important documents to a folder on the user's desktop # # Copyright 2008 Dell Inc. # Mario Limonciello # Hatim Amro # Michael E Brown # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. . /usr/share/dell/scripts/fifuncs "" IFHALT "Copying Vendor Documents..." if [ -d /cdrom/docs ] && [ "$(ls -A /cdrom/docs)" ]; then mkdir -p /usr/share/doc/dell cp -a /cdrom/docs/* /usr/share/doc/dell [ ! -d "/etc/skel/Desktop" ] && mkdir -p /etc/skel/Desktop ln -s /usr/share/doc/dell /etc/skel/Desktop fi IFHALT "Done with copying vendor documents..." dell-recovery/late/chroot_scripts/02-grub.sh0000775000000000000000000000216512021454752016237 0ustar #!/bin/sh # # <02-grub> # # Rerun update-grub for any changes from added packages or logical # partition support that was added. # # Copyright 2010 Dell Inc. # Mario Limonciello # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. . /usr/share/dell/scripts/fifuncs "" IFHALT "Rerun GRUB update" /usr/sbin/update-grub IFHALT "Done with GRUB update" dell-recovery/late/chroot_scripts/00-dkms-autoinstaller.sh0000775000000000000000000000232411751021273021112 0ustar #!/bin/sh # # <00-dkms-autoinstaller> # # Runs the DKMS autoinstaller service to ensure all modules have # been built # # Copyright 2010 Dell Inc. # Mario Limonciello # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. . /usr/share/dell/scripts/fifuncs "" IFHALT "Check all DKMS modules are built" if [ -x /usr/lib/dkms/dkms_autoinstaller ]; then /usr/lib/dkms/dkms_autoinstaller start fi IFHALT "Done with final DKMS module build check" dell-recovery/late/chroot_scripts/95-set_UTC_TZ.sh0000775000000000000000000000612411751021273017233 0ustar #!/bin/sh # # <95-set_UTC_TZ.sh> # # This Script will run only run if the manufacturing site was on /proc/cmdline # # This script will update Local Time To UTC(GMT) # The offsets in the dictionary below were lifted # from the file tztable.xpe used by our sister group. # # Copyright 2008-2011 Dell Inc. # Mario Limonciello # Hatim Amro # Michael E Brown # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. # *********** Warning *************** # the time offset for ICC tz_offset.py was adjusted # from 5:30 to 5 # ==== Do we need to change this??? for arg in $(cat /proc/cmdline); do if echo $arg | grep "MFGSITE=" 2>&1 >/dev/null; then SITE=$(echo $arg | cut -d'=' -f2) fi done if [ -n "$SITE" ]; then cat > /etc/init.d/run-tz-fix < /etc/init.d/tz_offset.py <> /etc/init.d/tz_offset.py cat > /etc/init.d/tz_offset.py < # # Installs additional drivers using Jockey # In order to be able to support updated drivers in the factory # it will build an apt pool of updated drivers and register # them with apt prior to the Jockey run. This ensures # that each driver only gets installed once # # Copyright 2009 Dell Inc. # Mario Limonciello # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. import subprocess import os DONT_BUILD_DKMS_FILE = "/tmp/do_not_build_dkms_module" class ProcessJockey(): def find_and_install_drivers(self): '''Uses jockey to detect and install necessary drivers''' #If we installed in a different language, this might actually not be working properly otherwise os.environ['LANG'] = 'C' os.environ['LANGUAGE'] = 'C' #spawn jockey backend inside the chroot (if we let service activation do it, it would be outside the chroot) backend = subprocess.Popen(["/usr/share/jockey/jockey-backend"]) code = backend.poll() if (code and code != 0): print("Error starting jockey backend") exit(code) #call out jockey detection algorithms ret = subprocess.Popen(["jockey-text", "-l"],stdout=subprocess.PIPE, universal_newlines=True) output = ret.communicate()[0] code = ret.wait() if (code != 0): print("jockey returned a non-zero return code") output = output.split('\n') #Build and array of things to install install = [] biggest_nv = '' for line in output: if len(line) > 0: if 'nvidia' in line: if not biggest_nv or (biggest_nv and line.split()[0] > biggest_nv.split()[0]): biggest_nv = line elif 'Disabled' in line: print("Marking for installation: %s" % line.split()[0]) install.append(line.split()[0]) #Append the selected nvidia driver if len(biggest_nv) > 0 and 'Disabled' in biggest_nv: print("Marking for installation: %s" % biggest_nv.split()[0]) install.append(biggest_nv.split()[0]) #Install any detected drivers if len(install) > 0: #Disable modprobe during installation fake_binaries = ['/sbin/modprobe', '/usr/sbin/update-initramfs', '/sbin/modinfo'] for binary in fake_binaries: os.rename(binary, '%s.REAL' % binary) with open(binary, 'w') as f: print("""\ #!/bin/sh echo 1>&2 echo 'Warning: Fake %s called, doing nothing.' 1>&2 exit 0""" % binary, file=f) os.chmod(binary, 0o755) #Perform installation for item in install: print("Installing: %s" % item) if item == "xorg:fglrx": with open(DONT_BUILD_DKMS_FILE,'w'): pass ret = subprocess.Popen(["jockey-text", "-e", item], stdout=subprocess.PIPE, universal_newlines=True) output = ret.communicate()[0] code = ret.wait() if (code != 0): print("Error installing: %s" % item) if os.path.exists(DONT_BUILD_DKMS_FILE): os.remove(DONT_BUILD_DKMS_FILE) #Re-enable fake binaries for binary in fake_binaries: os.rename('%s.REAL' % binary, binary) #Update initramfs now ret = subprocess.Popen(["/usr/sbin/update-initramfs", "-u"], stdout=subprocess.PIPE, universal_newlines=True) output = ret.communicate()[0] code = ret.wait() if (code != 0): print("Error updating initramfs") else: print("No Jockey supported drivers necessary") backend.terminate() if code: exit(code) if __name__ == "__main__": if os.path.exists('/usr/share/jockey/jockey-backend'): processor = ProcessJockey() processor.find_and_install_drivers() else: print("Jockey isn't installed on target. Unable to detect drivers") dell-recovery/debian/0000775000000000000000000000000012312225644011745 5ustar dell-recovery/debian/dell-recovery.install0000664000000000000000000000001411751021273016102 0ustar etc lib usr dell-recovery/debian/dell-recovery.postinst0000664000000000000000000000204712311717746016341 0ustar #!/bin/sh -e . /usr/share/debconf/confmodule case "$1" in configure) #if there is a UP while installing, add 98_dell_bios if [ -d /dev/disk/by-label ]; then up=$(find /dev/disk/by-label/ -iname dellutility) fi if [ ! -f /etc/grub.d/98_dell_bios ] && [ -n "$up" ] && grep -v "boot=casper" /proc/cmdline 2>&1 1>/dev/null && [ ! -d /sys/firmware/efi ]; then upgrade_script=$(tempfile) cat > $upgrade_script << EOF #!/usr/bin/python3 import Dell.recovery_common as magic magic.create_up_boot_entry("Flash BIOS using DOS") EOF python3 $upgrade_script rm $upgrade_script update-grub fi #reload dbus so this works immediately if status dbus >/dev/null 2>&1; then service dbus reload || true fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 dell-recovery/debian/po/0000775000000000000000000000000012312222156012356 5ustar dell-recovery/debian/po/ms.po0000664000000000000000000001467312311717746013365 0ustar # Malay translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2009-06-21 07:02+0000\n" "Last-Translator: Ibrahim Elias \n" "Language-Team: Malay \n" "Language: ms\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Cipta Media Recovery Dell" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "Permission Denied" #~ msgstr "Kebenaran ditolak" #~ msgid "Cannot connect to dbus" #~ msgstr "Tidak boleh sambung ke dbus" #~ msgid "Opening Burner" #~ msgstr "Buka Burner" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Proses Recovery Medi Creation Selesai" #~ msgid "Recovery Partition: " #~ msgstr "Partition Recovery: " #~ msgid "Media Type: " #~ msgstr "Jenis Media: " #~ msgid "Confirm Selections" #~ msgstr "Confirm Pilihan" #~ msgid "Choose Media Type" #~ msgstr "Pilih Jenis Media" #~ msgid "Utility Partition: " #~ msgstr "Partition Utiliti: " #~ msgid "ISO Image" #~ msgstr "Imej ISO" #~ msgid "System policy prevents reading raw devices" #~ msgstr "Polisi sistem menghalang baca raw device" #~ msgid "" #~ msgstr "" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Batal Media Recovery Creator" #~ msgid "Building ISO" #~ msgstr "Membina ISO" #~ msgid "DVD+/-RW Disc" #~ msgstr "DVD+/-RW Disk" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "Adakah anda pasti untuk batal proses cipta Media Recovery?" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Imej yang telah ada dijumpai (kemungkinan dari jalan sebelum ini). Adakah " #~ "anda mahu untuk buang salinan lama ini dan regenerate imej?" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Dell Recovery Media Creator" #~ msgid "USB Flash Drive" #~ msgstr "USB Flash Drive" #~ msgid "No media, create ISO image" #~ msgstr "Tiada media, cipta imej ISO" dell-recovery/debian/po/is.po0000664000000000000000000001150612311717746013351 0ustar # Icelandic translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2010-03-18 15:27+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Icelandic \n" "Language: is\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "ISO Image" #~ msgstr "ISO diskmynd" dell-recovery/debian/po/ru.po0000664000000000000000000002412412311717746013364 0ustar # Russian translation for dell-recovery # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2012-05-04 15:41-0500\n" "PO-Revision-Date: 2012-10-15 11:53+0000\n" "Last-Translator: Eugene Marshal \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-10-16 04:47+0000\n" "X-Generator: Launchpad (build 16137)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Сборка носителя средства восстановления Dell..." #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Oткрытие программы записи..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "Средство восстановления Dell" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "Тип восстановления" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" "Носитель средства восстановления Dell может использоваться для " "восстановления первоначальной рабочей среды." #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" "Рекомендуется создать резервную копию всех важных данных до запуска этого " "инструмента." #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "Восстановление разделов Linux" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" "Это позволит собрать все разделы ОС и разделы подкачки в первоначальное " "состояние." #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "ВНИМАНИЕ: Все личные файлы и изменения будут утеряны." #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "Восстановить рабочую среду на жёстком диске полностью" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "Это позволит собрать все средства восстановления и разделы ОС." #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "Восстановить только раздел Linux OS." #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "Эта возможность позволяет вам изменить размер существующих разделов." #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" "ОШИБКА: Этот носитель средства восстановления, совместим только с системами " "Dell и Alienware." #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "Сборка раздела восстановления" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "ПРИМЕЧАНИЕ: Пожалуйста, подождите, это может занять некоторое время." #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "Система будет перезапущена автоматически несколько раз." #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Создать носитель восстановления Dell" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Диск восстановления Dell может использоваться для восстановления " "первоначального состояния компьютера." #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Настоятельно рекомендуем вам создать носитель и сохранить его в безопасном " "месте." #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "Сохранить диск восстановления на USB-накопитель" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Примечание: Необходимо использовать USB-флеш с доступным объёмом не менее 2 " "ГБ." #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "Сохранить диск восстановления на DVD" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "Примечаниe: Необходимо использовать записываемый диск DVD." #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "Не создавать диск восстановления сейчас" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Носитель средства восстановления можно создать позже, выбрав инструмент из " "системного меню." #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "ОШИБКА: Этот носитель совместим только с системами Dell." #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "Лицензионное соглашение конечного пользователя Dell" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "Я прочитал(а) и принимаю эти условия." #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "Восстановить #OS# в первоначальное состояние" #~ msgid "Choose Media Type" #~ msgstr "Выберите тип носителя" #~ msgid "Media Type: " #~ msgstr "Тип носителя: " #~ msgid "ISO Image" #~ msgstr "Образ ISO" #~ msgid "DVD+/-RW Disc" #~ msgstr "Диск DVD+/-RW" #~ msgid "USB Flash Drive" #~ msgstr "Съёмный USB диск (флэшка)" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Создание диска восстановления завершено" #~ msgid "Building ISO" #~ msgstr "Создание образа ISO" #~ msgid "Confirm Selections" #~ msgstr "Подтвердить выбор" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Создание дисков восстановления Dell" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Отменить работу по созданию диска восстановления" #~ msgid "No media, create ISO image" #~ msgstr "Нет диска, создаётся образ ISO" #~ msgid "Recovery Partition: " #~ msgstr "Восстановление раздела: " #~ msgid "Permission Denied" #~ msgstr "Доступ запрещён" #~ msgid "Cannot connect to dbus" #~ msgstr "Невозможно соединиться с dbus" #~ msgid "Opening Burner" #~ msgstr "Открытие программы записи" #~ msgid "Utility Partition: " #~ msgstr "Средство раздела: " #~ msgid "System policy prevents reading raw devices" #~ msgstr "Системная политика предотвращает чтение RAW устройств" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Был обнаружен существующий образ (возможно от предыдущего запуска). Вы " #~ "действительно хотите удалить устаревшую копию и создать новый образ?" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "" #~ "Вы уверены, что хотите отказаться от процесса создания аварийного диска " #~ "восстановления?" dell-recovery/debian/po/sq.po0000664000000000000000000001161412311717746013361 0ustar # Albanian translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2009-06-30 04:52+0000\n" "Last-Translator: Vilson Gjeci \n" "Language-Team: Albanian \n" "Language: sq\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "DVD+/-RW Disc" #~ msgstr "DVD+/-RW Disk" #~ msgid "USB Flash Drive" #~ msgstr "USB Flash Drive" dell-recovery/debian/po/bg.po0000664000000000000000000002306312311717746013327 0ustar # Bulgarian translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2010-12-14 08:49+0000\n" "Last-Translator: Boyan Sotirov \n" "Language-Team: Bulgarian \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Изграждане на Dell Recovery Media..." #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Отваряне на записвачка..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" "Този Dell Recovery Media може да бъде използван за възстановаване на " "оригиналния фабричен софтуер." #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" "Препоръчително е да направите резервно копие на всички важни данни преди да " "пуснете този инструмент." #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "Възстановяване на Linux OS дялове" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" "Това ще изгради наново всички дялове на операционната система и swap " "дяловете до фабричните." #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "ПРЕДУПРЕЖДЕНИЕ: Всички лични файлове и промени ще бъдат загубени." #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "Възстановяване на целия твърд диск" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "Това ще изгради наново всички помощни, възстановаващи и OS дялове." #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "Възстановяване само на Linux OS дял." #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" "Тази опция ви позволява да промените размера на който и дае съществуващ дял." #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "БЕЛЕЖКА: Моля бъдете търпеливи, това може да отнеме време." #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Създаване на Dell носител за възстановяване" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Dell Recovery Media може да се използва за възстановяване на вашата система " "до същото състояние в което тя ви е била доставена." #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Силна се препоръчва да генерирате носител и да го съхранявате на безопасно " "място." #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "Запазване на носителя за възстановяване на външен USB флаш диск" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Бележка: Това изисква USB флаш диск с приблизително 2 GB свободно " "пространство." #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "Запазване на носителя за възстановяване на DVD" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "Бележка: Това изисква записваем DVD носител." #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "Не генерирай носител за възстановяване по това време" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Recovery Media може да бъде генериран по-късно като се избере инструмента то " "менюто Система" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "ГРЕШКА: Този носител е валиден само на системи Dell." #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "Dell Лицензно споразумение с крайния клиент" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "Opening Burner" #~ msgstr "Отваряне на записващо устройство" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Създаването на носител за възстановяване завърши" #~ msgid "Recovery Partition: " #~ msgstr "Дял за възстановяване: " #~ msgid "Media Type: " #~ msgstr "Тип носител: " #~ msgid "Confirm Selections" #~ msgstr "Потвърждение на изборите" #~ msgid "Choose Media Type" #~ msgstr "Изберете тип носител" #~ msgid "Utility Partition: " #~ msgstr "Програма за възстановяване: " #~ msgid "ISO Image" #~ msgstr "ISO образ" #~ msgid "Building ISO" #~ msgstr "Създаване на ISO" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Отказ" #~ msgid "DVD+/-RW Disc" #~ msgstr "DVD+/-RW диск" #~ msgid "" #~ msgstr "" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Създаване на Dell носител за възстановяване" #~ msgid "USB Flash Drive" #~ msgstr "USB флаш памет" #~ msgid "No media, create ISO image" #~ msgstr "Няма носител, създаване на ISO образ" #~ msgid "Permission Denied" #~ msgstr "Достъпът отказан" #~ msgid "Cannot connect to dbus" #~ msgstr "Невъзможна връзката с dbus" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "" #~ "Сигурни ли сте, че искате да откажете процеса по създаване на Recovery " #~ "Media?" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Съществуващ имидж беше открит (вероятно от предишно пускане). Искате ли " #~ "да премахнете това старо копие и да регенерирате имиджа?" #~ msgid "System policy prevents reading raw devices" #~ msgstr "" #~ "Системните политики не позволяват четенето на блокови (raw) устройства" dell-recovery/debian/po/de.po0000664000000000000000000002070412311717746013326 0ustar # German translation for dell-recovery # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2012-01-06 15:50+0000\n" "Last-Translator: Dennis Baudys \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Dell-Wiederherstellungsmedium wird erstellt …" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Brenner wird geöffnet …" #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "Dell Recovery" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "Wiederherstellungstyp" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" "Dieses Dell-Wiederherstellungsmedium kann verwendet werden, um die " "ursprünglich installierte Software wiederherzustellen." #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" "Sie sollten alle wichtigen Daten sichern, bevor Sie dieses Programm " "ausführen." #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "Linux-Betriebssystempartitionen wiederherstellen" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" "Stellt alle Betriebssystem- und Swap-Partitionen nach den Vorgaben wieder " "her." #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "WARNUNG: Alle persönlichen Daten und Änderungen werden verloren gehen." #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "Gesamte Festplatte wiederherstellen." #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" "Stellt alle Werkzeug-, Wiederherstellungs- und Betriebssystempartitionen " "wieder her." #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "Nur Linux-Betriebssystempartition wiederherstellen." #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" "Diese Option ermöglicht es Ihnen, die Größen aller bestehenden Partitionen " "zu ändern." #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" "FEHLER: Dieses Wiederherstellungsmedium funktioniert nur mit Dell- und " "Alienware-Systemen." #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "Wiederherstellungspartition wird erstellt" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "HINWEIS: Bitte haben Sie Geduld, dies könnte eine Weile dauern." #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "Ihr Rechner wird automatisch mehrere Male neu starten." #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Erstelle Dell Recovery Medien" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Dell-Wiederherstellungsmedien können zum Zurücksetzen Ihres Systems (in den " "Zustand, in dem es Ihnen geliefert wurde) verwendet werden." #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Es wird dringend geraten, ein Wiederherstellungsmedium zu erstellen und an " "einem sicheren Ort aufzubewahren." #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" "Wiederherstellungsmedium auf einem externen USB-Flash-Laufwerk speichern" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "HINWEIS: Ein USB-Flash-Laufwerk mit ungefähr 2GB freiem Speicher wird " "benötigt." #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "Wiederherstellungsmedium auf DVD speichern" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "HINWEIS: Eine beschreibbare DVD wird benötigt." #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "Wiederherstellungsmedium jetzt nicht erstellen" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Das Wiederherstellungsmedium kann später erstellt werden, indem Sie das " "Werkzeug im System-Menü wählen." #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "FEHLER: Dieses Medium kann nur auf Dell-Systemen verwendet werden." #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "Dell-Endbenutzer-Lizenzvereinbarung" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "Werkszustand von #OS# wiederherstellen" #~ msgid "" #~ msgstr "" #~ msgid "Media Type: " #~ msgstr "Medientyp: " #~ msgid "Choose Media Type" #~ msgstr "Medientyp wählen" #~ msgid "Recovery Partition: " #~ msgstr "Wiederherstellungspartition: " #~ msgid "Utility Partition: " #~ msgstr "Dienstpartition: " #~ msgid "Permission Denied" #~ msgstr "Zugriff verweigert" #~ msgid "ISO Image" #~ msgstr "ISO-Abbild" #~ msgid "Cannot connect to dbus" #~ msgstr "Keine Verbindung zum D-Bus" #~ msgid "System policy prevents reading raw devices" #~ msgstr "Systemrichtlinie verhindert das Lesen von Raw-Devices" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "" #~ "Sind Sie sich sicher, dass Sie den Erstellungsprozess des " #~ "Wiederherstellungsdatenträgers abbrechen möchten?" #~ msgid "Opening Burner" #~ msgstr "Brenner wird geöffnet" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Erstellungsvorgang des Wiederherstellungsmediums abgeschlossen" #~ msgid "Confirm Selections" #~ msgstr "Auswahl bestätigen" #~ msgid "Building ISO" #~ msgstr "ISO wird erstellt" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Dell-Wiederherstellungsmedien-Ersteller" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Ein existierendes Abbild wurde gefunden (wahrscheinlich von einer " #~ "vorherigen Aufruf dieser Anwendung). Möchten Sie diese alte Kopie löschen " #~ "und das Abbild neu erstellen?" #~ msgid "DVD+/-RW Disc" #~ msgstr "DVD+/-RW-Disk" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Wiederherstellungsmedien-Ersteller abbrechen" #~ msgid "USB Flash Drive" #~ msgstr "USB-Flash-Laufwerk" #~ msgid "No media, create ISO image" #~ msgstr "Kein Medium, ISO-Abbild erzeugen" dell-recovery/debian/po/fr.po0000664000000000000000000001526712311717746013355 0ustar # French translation for dell-recovery # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2010-12-14 04:47+0000\n" "Last-Translator: Omega13 \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Construction du média DELL de restauration" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Ouverture du graveur..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Créer le média de restauration Dell" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "DVD+/-RW Disc" #~ msgstr "Disque DVD+/-RW" #~ msgid "" #~ msgstr "" #~ msgid "USB Flash Drive" #~ msgstr "Lecteur flash USB" #~ msgid "Opening Burner" #~ msgstr "Ouverture du graveur" #~ msgid "Confirm Selections" #~ msgstr "Confirmer les sélections" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Processus de création de supports de restauration terminé" #~ msgid "ISO Image" #~ msgstr "Image ISO" #~ msgid "Recovery Partition: " #~ msgstr "Partition de Restauration: " #~ msgid "Permission Denied" #~ msgstr "Permission refusée" #~ msgid "Cannot connect to dbus" #~ msgstr "Impossible de se connecter à dbus" #~ msgid "No media, create ISO image" #~ msgstr "Aucun média, créer une image ISO" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Une image existante a été trouvée (probablement d'une exécution " #~ "précédente). Voulez-vous enlever cette ancienne copie et régénérer " #~ "l'image ?" #~ msgid "Building ISO" #~ msgstr "Construction de l'ISO" #~ msgid "Media Type: " #~ msgstr "Type de média : " #~ msgid "Choose Media Type" #~ msgstr "Choisir un type de média" #~ msgid "System policy prevents reading raw devices" #~ msgstr "" #~ "Les rêgles système empêchent une lecture en brut sur des périphériques." #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Annuler la création du média de restauration Dell" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "" #~ "Êtes vous sur de vouloir annuler le processus de création du média de " #~ "restauration Dell?" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Créateur du média de restauration Dell" dell-recovery/debian/po/templates.pot0000664000000000000000000001124012311717746015113 0ustar # 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 , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" dell-recovery/debian/po/cs.po0000664000000000000000000001202112311717746013334 0ustar # Czech translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2009-10-25 16:46+0000\n" "Last-Translator: Kuvaly [LCT] \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Vytvořit Dell Recovery Media" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "Permission Denied" #~ msgstr "Nedostatečná oprávnění" #~ msgid "ISO Image" #~ msgstr "ISO obraz" #~ msgid "Choose Media Type" #~ msgstr "Vyberte typ média" #~ msgid "Building ISO" #~ msgstr "Stavba ISO" dell-recovery/debian/po/lv.po0000664000000000000000000001411312311717746013354 0ustar # Latvian translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2010-12-14 05:23+0000\n" "Last-Translator: Pēteris Krišjānis \n" "Language-Team: Latvian \n" "Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Būvē Dell atkopšanas mēdiju..." #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Atver rakstītāju..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" "Šis Dell atkopšanas mēdijs var tikt izmantots, lai atjaunotu oriģinālo " "fabrikas programmatūru." #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" "Jums tiek rekomendēts rezervēt visus svarīgos datus pirms šī rīka palaišanas." #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "Atjaunot Linux OS sadaļas" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" "Šis pārbūvēs visas OS un maiņvietas sadaļas pēc fabrikas noklusētajiem " "iestatījumiem." #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "BRĪDINĀJUMS: Visi peroniskie faili un izmaiņas tiks zaudētas." #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "Atjaunot visu cieto disku." #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "Pārbūvēt visas utilītu, atjaunošanas un OS sadaļas." #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "Atjaunot tikai Linux OS sadaļu." #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "Šī opcija ļaus jums izmainīt izmēru jebkurām eksistējošajām sadaļām." #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "PIEZĪME: Lūdzu, esat pacietīgi, tas aizņems kādu laiku." #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Dell atkopšanas mēdijs var tikt izmantots, lai atjaunotu jūsu sistēmu tādā " "stāvoklī, kādā jūs to iegādājāties." #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Ir ļoti ieteicams, ka jūs izveidojiet mēdiju un noglabājiet to drošā vietā." #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "Saglabāt atkopšanas mēdiju ārējā USB zibatmiņas diskā" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Piezīme: nepieciešams USB zibatmiņas dzinis ar apmēram 2GB brīvas vietas." #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "Saglabāt atkopšanas mēdiju DVD" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "Piezīme: nepieciešams rakstāms DVD mēdijs." #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "Šoreiz neizveidot atkopšanas mēdiju" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Atkopšanas mēdijs var tikt izveidots vēlāk, izvēloties doto rīku no Sistēmas " "izvēlnes." #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "KĻŪDA: šis mēdijs ir derīgs tikai Dell sistēmām." #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" dell-recovery/debian/po/POTFILES.in0000664000000000000000000000006311751021273014135 0ustar [type: gettext/rfc822deb] dell-recovery.templates dell-recovery/debian/po/nb.po0000664000000000000000000001162512311717746013337 0ustar # Norwegian Bokmal translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2009-03-18 22:29+0000\n" "Last-Translator: Kenneth Langdalen \n" "Language-Team: Norwegian Bokmal \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "DVD+/-RW Disc" #~ msgstr "DVD+/-RW-plate" #~ msgid "Choose Media Type" #~ msgstr "Velg mediatype" dell-recovery/debian/po/zh_TW.po0000664000000000000000000001175412311717746013776 0ustar # Chinese (Traditional) translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2009-12-24 17:12+0000\n" "Last-Translator: Kevin Huang \n" "Language-Team: Chinese (Traditional) \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "Permission Denied" #~ msgstr "權限不足" #~ msgid "Cannot connect to dbus" #~ msgstr "連接不到dbus" #~ msgid "Opening Burner" #~ msgstr "啟動燒錄機" dell-recovery/debian/po/pl.po0000664000000000000000000001316412311717746013353 0ustar # Polish translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2010-12-14 05:28+0000\n" "Last-Translator: Marcin Kwidzinski \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Tworzenie nośnika naprawy systemu Dell.." #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Otwieranie nagrywarki ..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "DVD+/-RW Disc" #~ msgstr "Dysk DVD+-RW" #~ msgid "USB Flash Drive" #~ msgstr "Dysk USB Flash" #~ msgid "Confirm Selections" #~ msgstr "Potwierdź wybory" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Proces Tworzenia Dysku Odzyskiwania Zakończony" #~ msgid "Media Type: " #~ msgstr "Typ nośnika: " #~ msgid "Choose Media Type" #~ msgstr "Wybierz typ nośnika" #~ msgid "ISO Image" #~ msgstr "Obraz ISO" #~ msgid "Permission Denied" #~ msgstr "Dostęp zabroniony" #~ msgid "Cannot connect to dbus" #~ msgstr "Nie można się połączyć z dbus" #~ msgid "Recovery Partition: " #~ msgstr "Partycja przywracania " #~ msgid "Utility Partition: " #~ msgstr "Partycja Narzędziowa " #~ msgid "Opening Burner" #~ msgstr "Otwieranie nagrywarki" dell-recovery/debian/po/it.po0000664000000000000000000002046312311717746013354 0ustar # Italian translation for dell-recovery # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2012-05-04 15:41-0500\n" "PO-Revision-Date: 2012-05-24 14:40+0000\n" "Last-Translator: Claudio Arseni \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-25 04:41+0000\n" "X-Generator: Launchpad (build 15288)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Creazione supporto di ripristino Dell..." #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Apertura masterizzatore..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "Ripristino sistemi Dell" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "Tipo di ripristino" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" "Questo supporto di ripristino Dell può essere utilizzato per riportare il " "software alle impostazioni di fabbrica." #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" "È consigliato effettuare un backup di tutti i dati importanti prima di " "eseguire questa applicazione." #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "Ripristina le partizioni del sistema operativo Linux" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" "Questo riporterà tutte le partizioni del sistema operativo e l'area di swap " "alle impostazioni di fabbrica predefinite." #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "Attenzione: tutti i file e le modifiche personali verranno persi." #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "Ripristina l'intero disco." #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" "Questo rigenererà tutte le partizioni di utilità, recupero e del sistema " "operativo." #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "Ripristina solo la partizione Linux." #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" "Questa opzione permette di ridimensionare qualsiasi partizione esistente." #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" "Errore: questo supporto di ripristino funziona solo su sistemi Dell e " "Alienware." #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "Creazione partizione di ripristino" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "Nota: attendere, l'operazione potrebbe impiegare alcuni minuti." #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "Il sistema verrà riavviato automaticamente più volte." #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Crea suppporto di recupero Dell" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Il supporto di ripristino Dell può essere utilizzato per ripristinare il " "sistema allo stato iniziale." #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "È consigliato generare il supporto e conservarlo in un luogo sicuro." #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "Salvare il supporto di ripristino in una unità flash USB esterna" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "Nota: richiede un'unità flash USB con almeno 2GB di spazio libero." #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "Salvare il supporto di ripristino in un DVD" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "Nota: sono richiesti supporti DVD scrivibili." #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "Non generare supporti di ripristino in questo momento" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "I supporti di ripristino possono essere generati successivamente scegliendo " "il programma dal menù Sistema." #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "Errore: questo supporto può essere utilizzato solo su sistemi Dell." #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "Accordo di licenza per l'utente finale" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "Ho letto e accetto queste condizioni." #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "Ripristinare il sistema operativo alle impostazioni di fabbrica" #~ msgid "DVD+/-RW Disc" #~ msgstr "Disco DVD+/-RW" #~ msgid "" #~ msgstr "" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Creazione supporto di recupero Dell" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Annulla creazione supporto di recupero" #~ msgid "USB Flash Drive" #~ msgstr "Unità flash USB" #~ msgid "Opening Burner" #~ msgstr "Apertura del masterizzatore" #~ msgid "Media Type: " #~ msgstr "Tipo di supporto: " #~ msgid "Choose Media Type" #~ msgstr "Scegliere il tipo di supporto" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Processo di creazione del supporto di recupero completato" #~ msgid "Permission Denied" #~ msgstr "Permesso negato" #~ msgid "ISO Image" #~ msgstr "Immagine ISO" #~ msgid "Building ISO" #~ msgstr "Generazione ISO" #~ msgid "Utility Partition: " #~ msgstr "Partizione di utilità: " #~ msgid "No media, create ISO image" #~ msgstr "No, crea immagine ISO" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "È stata trovata un'immagine precedente. Rimuovere la vecchia copia e " #~ "rigenerare l'immagine?" #~ msgid "Cannot connect to dbus" #~ msgstr "Impossibile connettersi a D-Bus" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "" #~ "Annullare veramente il processo di creazione del supporto di recupero?" #~ msgid "Recovery Partition: " #~ msgstr "Partizione di recupero: " #~ msgid "Confirm Selections" #~ msgstr "Conferma selezioni" #~ msgid "System policy prevents reading raw devices" #~ msgstr "La politica di sistema impedisce la lettura di dispositivi raw" dell-recovery/debian/po/zh_CN.po0000664000000000000000000001675412311717746013751 0ustar # Simplified Chinese translation for dell-recovery # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2010-12-14 05:39+0000\n" "Last-Translator: Eleanor Chen \n" "Language-Team: Simplified Chinese \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "创建 Dell 恢复介质..." #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "打开刻录机..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "戴尔系统恢复" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "恢复类型" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "此 Dell 还原镜像可以用来恢复到出厂系统。" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "在运行此工具前,建议备份您所有的重要数据和信息。" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "恢复 Linux 操作系统分区" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "重新建立所有操作系统和 swap 分区回到出厂状态。" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "警告: 所有个人文件和设定都会丢失。" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "还原整个硬盘" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "重新建立所有 utility 分区, 还原分区和操作系统分区。" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "仅还原 Linux 系统分区。" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "此选项允许您重新分配现有分区大小。" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "制作还原分区" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "注意: 正在运行,请稍候。" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "制作 Dell 恢复光盘" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "Dell 还原盘可以把您的电脑恢复到出厂系统。" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "强烈建议您创建还原盘,然后把它存放在安全的地方。" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "保存恢复盘到外接的 USB 闪存盘" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "注意: 需要大约 2G 空间的 USB 驱动盘。" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "保存为 DVD 恢复盘" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "注意:需要可写入的 DVD 光盘。" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "这次不生成恢复盘" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "可以在“系统”菜单里选择“工具”,稍后再生成恢复盘。" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "错误:此光盘只能用于 Dell 系统。" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "Dell 最终用户协议" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "我已阅读并接受上述条款" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "DVD+/-RW Disc" #~ msgstr "DVD+/-RW 光盘" #~ msgid "USB Flash Drive" #~ msgstr "USB 闪存驱动器" #~ msgid "Confirm Selections" #~ msgstr "确认选择" #~ msgid "Permission Denied" #~ msgstr "权限不足" #~ msgid "ISO Image" #~ msgstr "ISO 镜像" #~ msgid "Cannot connect to dbus" #~ msgstr "无法连接到 dbus" #~ msgid "Opening Burner" #~ msgstr "打开光盘刻录器" #~ msgid "System policy prevents reading raw devices" #~ msgstr "系统策略阻止读取 raw 设备" #~ msgid "" #~ msgstr "<启动标识符>" #~ msgid "Building ISO" #~ msgstr "制作 ISO 光盘镜像" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "发现已经存在的镜像(可能是上次运行产生的)。是否删除旧的镜像,并重新生成新镜" #~ "像?" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Dell 恢复光盘创建程序" #~ msgid "No media, create ISO image" #~ msgstr "没有刻录光盘,只创建 ISO 镜像文件" #~ msgid "Utility Partition: " #~ msgstr "工具分区 " #~ msgid "Choose Media Type" #~ msgstr "选择存储介质类型" #~ msgid "Recovery Partition: " #~ msgstr "还原分区: " #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "恢复介质创建完成" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "中止恢复介质创建程序" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "确定要中止创建恢复光盘吗?" #~ msgid "Media Type: " #~ msgstr "恢复盘类型: " dell-recovery/debian/po/fi.po0000664000000000000000000002012112311717746013325 0ustar # Finnish translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2012-05-04 15:41-0500\n" "PO-Revision-Date: 2012-03-23 05:24+0000\n" "Last-Translator: Timo Jyrinki \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Rakennetaan Dell-palautusmediaa..." #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Avataan kirjoittajaa..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "Dell-palautus" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "Palautuksen tyyppi" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" "Tätä Dell-palautusmediaa voidaan käyttää tehdasohjelmistojen palauttamiseksi." #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" "Kaikkien tärkeiden tietojen varmuuskopiointi ennen työkalun suorittamista on " "suositeltavaa." #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "Palauta Linux-käyttöjärjestelmäosiot" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" "Tämä rakentaa uudelleen kaikki käyttöjärjestelmä- ja sivutusosiot " "tehdasoletuksin." #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "VAROITUS: Kaikki henkilökohtaiset tiedot ja muutokset hävitetään." #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "Palauta koko kiintolevy." #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" "Tämä rakentaa kaikki työkalu-, palautus- ja käyttöjärjestelmäosiot uudelleen." #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "Palauta vain Linux-käyttöjärjestelmäosio." #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "Tällä valinnalla voidaan muuttaa olemassa olevien osioiden kokoa." #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" "Virhe: Tämä palautusmedia toimii vain Dell- ja Alienware-järjestelmissä." #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "Rakennetaan palautusosiota" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" "HUOM: Ole kärsivällinen, toiminnon suorittaminen saattaa kestään pitkään." #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "Järjestelmä käynnistyy automaattisesti uudelleen useita kertoja." #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Luo Dell-palautusmedia" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Dell-palautusmedialta järjestelmä voidaan palauttaa samaan tilaan, jossa se " "oli vastaanottaessasi järjestelmän." #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Median luominen ja sen säilyttäminen turvallisessa paikassa on hyvin " "suositeltavaa." #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "Tallenna palautusmedia ulkoiselle USB-muistivälineelle" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "Huom: Tämä vaatii USB-muistitikun, jolla on noin 2GB vapaata tilaa." #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "Tallenna palautusmedia DVD-levylle" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "Huom: Tämä vaatii kirjoitettavan DVD-levyn." #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "Älä luo palautusmediaa tällä kertaa" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Palautusmedian voi luoda myöhemmin valitsemalla työkalun Järjestelmä-" "valikosta." #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "VIRHE: Tämä media on kelvollinen vain Dell-järjestelmissä." #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "Dellin loppukäyttäjän lisenssiehdot" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "Palauta #OS# tehdastilaan" #~ msgid "DVD+/-RW Disc" #~ msgstr "DVD+/-RW-levy" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Peru palautusmedian luonti" #~ msgid "USB Flash Drive" #~ msgstr "USB-Flash-asema" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Dell-palautusmedian luonti" #~ msgid "Opening Burner" #~ msgstr "Avataan kirjoittajaa." #~ msgid "Media Type: " #~ msgstr "Median tyyppi: " #~ msgid "Confirm Selections" #~ msgstr "Vahvista valinnat" #~ msgid "Choose Media Type" #~ msgstr "Valitse median tyyppi" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Palautusmedian luominen valmis" #~ msgid "" #~ msgstr "" #~ msgid "Permission Denied" #~ msgstr "Pääsy evätty" #~ msgid "Cannot connect to dbus" #~ msgstr "Dbusiin ei voi yhdistää" #~ msgid "Recovery Partition: " #~ msgstr "Palautusosio: " #~ msgid "Utility Partition: " #~ msgstr "Työkaluosio: " #~ msgid "ISO Image" #~ msgstr "ISO-levykuva" #~ msgid "System policy prevents reading raw devices" #~ msgstr "" #~ "Järjestelmän valtuutusasetukset estävät raakalaitteiden (raw) lukemisen" #~ msgid "Building ISO" #~ msgstr "Rakennetaan ISOa" #~ msgid "No media, create ISO image" #~ msgstr "Ei mediaa/levyä, luo ISO-levykuva" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "Haluatko varmasti perua palautusmedian luonnin?" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Olemassa oleva levykuva löytyi (mahdollisesti edelliseltä " #~ "suorituskerralta). Haluatko poistaa tämän vanhan kopion ja luoda " #~ "levykuvan uudelleen?" dell-recovery/debian/po/ga.po0000664000000000000000000001170112311717746013322 0ustar # Irish translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2009-08-23 14:12+0000\n" "Last-Translator: Aaron Mac Fhionnlaoich \n" "Language-Team: Irish \n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "USB Flash Drive" #~ msgstr "Méaróg USB" #~ msgid "Permission Denied" #~ msgstr "Cead Diúltaithe" #~ msgid "ISO Image" #~ msgstr "Íomhá ISO" dell-recovery/debian/po/lt.po0000664000000000000000000001460312311717746013356 0ustar # Lithuanian translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2011-11-10 14:07+0000\n" "Last-Translator: Mantas Kriaučiūnas \n" "Language-Team: Lithuanian \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Atveriama CD/DVD rašymo programa" #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "Choose Media Type" #~ msgstr "Pasirinkite laikmenos tipą" #~ msgid "Cannot connect to dbus" #~ msgstr "Nepavyko prisijungti prie dbus" #~ msgid "Permission Denied" #~ msgstr "Priėjimas uždraustas" #~ msgid "Opening Burner" #~ msgstr "Atveriama CD/DVD įrašymo programa" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Atkūrimo laikmena sukurta" #~ msgid "Recovery Partition: " #~ msgstr "Atkūrimo skirsnis: " #~ msgid "Media Type: " #~ msgstr "Laikmenos tipas: " #~ msgid "Confirm Selections" #~ msgstr "Patvirtinkite pasirinkimus" #~ msgid "Utility Partition: " #~ msgstr "Įrankių skirsnis: " #~ msgid "ISO Image" #~ msgstr "ISO atvaizdis" #~ msgid "Building ISO" #~ msgstr "Kuriamas ISO atvaizdis" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Dell sistemos atkūrimo laikmenų įrankis" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Nutraukti atkūrimo laikmenos generavimą" #~ msgid "USB Flash Drive" #~ msgstr "USB \"Flash\" atmintukas" #~ msgid "DVD+/-RW Disc" #~ msgstr "DVD+/-RW diskas" #~ msgid "No media, create ISO image" #~ msgstr "tik sukurti ISO atvaizdžio failą" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "Ar tikrai norite nutraukti atkūrimo laikmenos generavimą?" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Radau jau sukurtą atkūrimo atvaizdžio failą. Ar norite išmesti šį failą " #~ "ir iš naujo sukurti sistemos atkūrimo atvaizdį?" dell-recovery/debian/po/gl.po0000664000000000000000000001765612311717746013354 0ustar # Galician translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2010-12-14 04:56+0000\n" "Last-Translator: Mario Limonciello \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Construindo o soporte de Dell Recovery..." #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Abrindo a grabadora..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "Tipo de recuperación" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" "Este soporte de Dell Recovery pode ser usado para restaurar o software " "orixianl de fábrica." #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" "É recomendábel facer unha copia de seguridade antes de usar esta ferramenta." #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "Restaurar as particións do SO Linux" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" "Isto reconstruirá todas as particións do SO e de intercambio ás predefinidas " "polo fabricante." #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "AVISO: Todos os seus ficheiros e cambios persoais perderanse." #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "Restaurar todo o disco ríxido." #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" "Isto reconstruirá toda as particións do SO, recuperación e intercambio." #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "Restaurar só as particións do SO Linux." #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" "Esta opción permítelle redimensionar calquera das particións existentes." #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "NOTA: Teña paciencia, isto pode lever uns minutos." #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "O soporte de Recuperación de Dell pode usarse para restaurar o seu sistema " "ao mesmo estado que cando o comprou." #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "É moi recomendábel que xere un soporte e o almacene nun lugar seguro." #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "Gardar o soporte de recuperación nunha unidade flash USB externa" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Nota: Isto require unha unidade flash USB con aproximadamente 2GB libres." #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "Gardar o soporte de recuperación a un DVD" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "Nota: Isto require un soporte DVD escribíbel." #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "Non xerar o soporte de recuperación neste momento" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Pode xerar o soporte de recuperación máis tarde seleccionando a ferramenta " "no menú do sistema." #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "ERRO: Este soporte só é válido para sistemas Dell." #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "Choose Media Type" #~ msgstr "Seleccione o tipo de soporte" #~ msgid "Permission Denied" #~ msgstr "Permiso denegado" #~ msgid "Cannot connect to dbus" #~ msgstr "Non é posíbel conectarse a dbus" #~ msgid "Opening Burner" #~ msgstr "Abrindo a grabadora" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Rematouse o proceso de creación de soporte de recuperación" #~ msgid "Media Type: " #~ msgstr "Tipo de soporte: " #~ msgid "ISO Image" #~ msgstr "Imaxe ISO" #~ msgid "Recovery Partition: " #~ msgstr "Particion de recuperación: " #~ msgid "Confirm Selections" #~ msgstr "Confirmar seleccións" #~ msgid "Utility Partition: " #~ msgstr "Partición de utilidade: " #~ msgid "Building ISO" #~ msgstr "Creando a imaxe ISO" #~ msgid "" #~ msgstr "" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Xa existe una imaxe (posibelmente de unha execución anterior). Desexa " #~ "eliminar esta copia antiga e volver a xerar a imaxe?" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Creador de soportes de recuperación de Dell" #~ msgid "DVD+/-RW Disc" #~ msgstr "Disco DVD+/-RW" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Cancelar o creador do Soporte de recuperación" #~ msgid "USB Flash Drive" #~ msgstr "Unidade Flash USB" #~ msgid "No media, create ISO image" #~ msgstr "Sen soporte, crear unha imaxe ISO" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "" #~ "Ten a certeza que quere cancelar o proceso de creación do Soporte de " #~ "Recuperación?" #~ msgid "System policy prevents reading raw devices" #~ msgstr "A normativa do sistema impide ler dispositivos raw" dell-recovery/debian/po/nl.po0000664000000000000000000001472612311717746013356 0ustar # Dutch translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2009-12-08 12:30+0000\n" "Last-Translator: cumulus007 \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Dell herstelmedia aanmaken" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "Permission Denied" #~ msgstr "Toegang geweigerd" #~ msgid "Cannot connect to dbus" #~ msgstr "Kan geen verbinding maken met dbus" #~ msgid "Opening Burner" #~ msgstr "Brander openen" #~ msgid "Recovery Partition: " #~ msgstr "Herstelpartitie: " #~ msgid "Building ISO" #~ msgstr "ISO wordt aangemaakt" #~ msgid "ISO Image" #~ msgstr "ISO-beeldbestand" #~ msgid "System policy prevents reading raw devices" #~ msgstr "Systeem houdt lezen raw-apparaten tegen" #~ msgid "" #~ msgstr "" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Dell herstelmedia aanmaken" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Herstelmedia aanmaken annuleren" #~ msgid "No media, create ISO image" #~ msgstr "Geen media, maak ISO-beeldbestand aan" #~ msgid "DVD+/-RW Disc" #~ msgstr "Dvd+/-rw-schijf" #~ msgid "USB Flash Drive" #~ msgstr "Usb-stick" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "Weet u zeker dat u het herstelmediaproces wilt stoppen?" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Er is een bestaand beeldbestand gevonden (waarschijnlijk van een vorige " #~ "keer). Wilt u deze oude kopie verwijderen en een nieuw beeldbestand " #~ "aanmaken?" #~ msgid "Utility Partition: " #~ msgstr "Hulpmiddelen-partitie " #~ msgid "Confirm Selections" #~ msgstr "Bevestig uw keuzes" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Aanmaken herstelmedium gereed" #~ msgid "Choose Media Type" #~ msgstr "Kies mediumtype" #~ msgid "Media Type: " #~ msgstr "Mediumtype: " dell-recovery/debian/po/et.po0000664000000000000000000001177512311717746013356 0ustar # Estonian translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2010-05-19 19:47+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "Media Type: " #~ msgstr "Meedia tüüp: " #~ msgid "Opening Burner" #~ msgstr "Kirjutaja avamine" #~ msgid "Confirm Selections" #~ msgstr "Kinnitage valikud" #~ msgid "Choose Media Type" #~ msgstr "Vali meedia tüüp" dell-recovery/debian/po/sk.po0000664000000000000000000001504112311717746013351 0ustar # Slovak translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2010-12-14 05:33+0000\n" "Last-Translator: Mario Limonciello \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Vytvoriť Dell médium pre obnovu..." #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Otváram napaľovačku..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Vytvoriť Dell Medium pre zotavenie" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "Permission Denied" #~ msgstr "Zamietnutý prístup" #~ msgid "Cannot connect to dbus" #~ msgstr "Nedá sa pripojiť na dbus" #~ msgid "Opening Burner" #~ msgstr "Otváram napaľovanie" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Vytvorenie média pre obnovu úspešne ukončené" #~ msgid "Media Type: " #~ msgstr "Druh média: " #~ msgid "Confirm Selections" #~ msgstr "Potvrdiť výber" #~ msgid "ISO Image" #~ msgstr "ISO obraz" #~ msgid "Choose Media Type" #~ msgstr "Vyberte druh média" #~ msgid "System policy prevents reading raw devices" #~ msgstr "System policy zabraňuje čítaniu raw jednotiek" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Zrušiť vytvorenie média pre obnovu" #~ msgid "Building ISO" #~ msgstr "Vytváranie ISO" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Bol nájdený existujúci obraz (pravdepodobne z predchádzajúceho " #~ "spustenia). Prajete si odstrániť túto starú kópiu a regenerovať obraz?" #~ msgid "DVD+/-RW Disc" #~ msgstr "DVD+/-RW Disk" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "Ste si istý, že chcete zrušiť proces vytvorenia média pre obnovu?" #~ msgid "USB Flash Drive" #~ msgstr "USB flash jednotka" #~ msgid "No media, create ISO image" #~ msgstr "Žiadne médium, vytváram ISO obraz" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Vytvorenie média pre obnovu Dell" #~ msgid "Recovery Partition: " #~ msgstr "Obnovenie časti disku: " #~ msgid "" #~ msgstr "" dell-recovery/debian/po/pt_BR.po0000664000000000000000000002053212311717746013743 0ustar # Brazilian Portuguese translation for dell-recovery # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2011-10-15 01:00+0000\n" "Last-Translator: Celio Alves \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Construindo Mídia de Recuperação da Dell..." #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Abrindo gravador..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "Recuperação Dell" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "Tipo de recuperação" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" "Esta Mídia de Recuperação da Dell poderá ser usada para restaurar o software " "original de fábrica." #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" "É recomendado que você faça um backup de todos os dados importantes antes de " "executar esta ferramenta." #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "Restaurar partições dos sistemas linux" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" "Isso irá reconstruir todo o Sistema e as partições swap para os padrões da " "fabrica." #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "AVISO: Todos os arquivos pessoais e modificações serão perdidas." #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "Restaurar o disco rígido inteiro." #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" "Isto irá recriar todas as partições do utilitário, de recuperação e do " "Sistema Operacional" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "Restaurar apenas a partição do sistema linux." #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" "Esta opção permite que você redimensione quaisquer partições existentes." #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" "ERRO: Esta mídia de recuperação funciona apenas nos sistemas Dell e " "Alienware." #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "Construindo a partição de recuperação" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "NOTA: Por favor, seja paciente. Isto pode demorar um pouco." #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "Seu sistema irá reinicializar várias vezes." #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Criar Mídia de Recuperação Dell" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "A Mídia de Recuperação da Dell poderá ser usada para restaurar o seu sistema " "para o mesmo estado de quando foi enviado para você." #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "É altamente recomendado você criar uma mídia e armazená-la em um lugar " "seguro." #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "Salvar mídia de recuperação na unidade flash USB" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Nota: Isto requer uma unidade flash USB com aproximadamente 2 GB de espaço " "livre." #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "Salvar mídia de recuperação no DVD" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "Nota: Isto requer mídia de DVD gravável." #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "Não criar mídia de recuperação neste momento" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "A mídia de recuperação poderá ser criada depois, escolhendo esta ferramenta " "a partir do menu Sistema." #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "ERRO: Esta mídia é válida somente nos sistemas Dell." #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "Licença do usuário final Dell" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "Restaurar #OS# para o estado de fábrica" #~ msgid "DVD+/-RW Disc" #~ msgstr "Disco DVD+/-RW" #~ msgid "" #~ msgstr "" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Cancelar o Recovery Media Creator" #~ msgid "USB Flash Drive" #~ msgstr "Unidade Flash USB" #~ msgid "Opening Burner" #~ msgstr "Abrindo gravador" #~ msgid "Media Type: " #~ msgstr "Tipo de mídia: " #~ msgid "Confirm Selections" #~ msgstr "Confirmar seleções" #~ msgid "Choose Media Type" #~ msgstr "Escolher o tipo de mídia" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Concluído o processo de criação do Recovery Media" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Criador de mídia de recuperação Dell" #~ msgid "ISO Image" #~ msgstr "Imagem ISO" #~ msgid "Permission Denied" #~ msgstr "Permissão Negada." #~ msgid "Cannot connect to dbus" #~ msgstr "Impossível conectar ao dbus" #~ msgid "System policy prevents reading raw devices" #~ msgstr "Política do sistema impede a leitura de dispositivos raw" #~ msgid "Building ISO" #~ msgstr "Construindo a ISO" #~ msgid "Recovery Partition: " #~ msgstr "Partição de Recuperação: " #~ msgid "Utility Partition: " #~ msgstr "Partição Utilitária: " #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Uma imagem existente foi encontrada (possivelmente de uma execução " #~ "anterior). Você deseja remover essa cópia antiga e regerar a imagem?" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "" #~ "Você tem certeza que quer cancelar o processo de criação da Mídia de " #~ "Recuperação?" #~ msgid "No media, create ISO image" #~ msgstr "Nenhuma mídia, criar imagem ISO" dell-recovery/debian/po/hu.po0000664000000000000000000002062312311717746013352 0ustar # Hungarian translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2012-05-04 15:41-0500\n" "PO-Revision-Date: 2012-04-08 16:39+0000\n" "Last-Translator: Gabor Kelemen \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Dell helyreállító adathordozó összeállítása…" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Író megnyitása…" #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "Dell helyreállító" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "Helyreállítás típusa" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" "Ezen Dell helyreállító adathordozó segítségével visszaállítható az eredeti " "gyári szoftver." #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" "Az eszköz futtatása előtt ajánlott mentést készíteni minden fontos adatról." #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "Linux partíciók helyreállítása" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" "Az összes rendszer- és swap partíció visszaállítása a gyári " "alapértelmezésekre." #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "FIGYELMEZTETÉS: minden személyes fájl és módosítás elvész." #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "Teljes merevlemez visszaállítása." #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "Az összes szerviz-, helyreállítási és rendszerpartíció visszaállítása." #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "Csak a Linux rendszerpartíció helyreállítása." #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "Ez lehetővé teszi a meglévő partíciók átméretezését." #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" "HIBA: ez a helyreállító média csak Dell és Alienware rendszereken működik." #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "Helyreállítási partíció építése" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "MEGJEGYZÉS: Legyen türelemmel, a kiinduló lekérés sokáig tarthat." #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "A rendszer többször is automatikusan újra fog indulni." #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Dell Recovery Media létrehozása" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "A Dell helyreállító adathordozó segítségével rendszere visszaállítható a " "gyári állapotába." #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "Ajánlott előállítani az adathordozót, és biztonságos helyen tartani." #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "A helyreállító adathordozó mentése külső USB flash kulcsra." #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Megjegyzés: Ehhez egy USB-kulcsra lesz szükség, körülbelül 2 GB szabad " "hellyel." #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "Helyreállító adathordozó mentése DVD-re" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "Megjegyzés: Ehhez egy írható DVD-re lesz szükség." #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "Most nem hozok létre helyreállító adathordozót" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "A helyreállító adathordozó később is előállítható az eszköz kiválasztásával " "a Rendszer menüből." #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "HIBA: Ez az adathordozó csak Dell rendszereken érvényes." #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "Dell végfelhasználói licencszerződés" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "#OS# helyreállítása a gyári állapotra" #~ msgid "Opening Burner" #~ msgstr "Író megnyitása" #~ msgid "DVD+/-RW Disc" #~ msgstr "DVD+/-RW lemez" #~ msgid "Building ISO" #~ msgstr "ISO létrehozása" #~ msgid "Choose Media Type" #~ msgstr "Válassza ki az adathordozó típusát" #~ msgid "Permission Denied" #~ msgstr "Hozzáférés megtagadva" #~ msgid "Cannot connect to dbus" #~ msgstr "Nem sikerült kapcsolódni a D-Bushoz" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "A helyreállító adathordozó létrehozása kész" #~ msgid "Recovery Partition: " #~ msgstr "Helyreállító partíció: " #~ msgid "Media Type: " #~ msgstr "Adathordozó típusa: " #~ msgid "Confirm Selections" #~ msgstr "Erősítse meg választásait" #~ msgid "Utility Partition: " #~ msgstr "Szervizpartíció: " #~ msgid "ISO Image" #~ msgstr "ISO lemezkép" #~ msgid "System policy prevents reading raw devices" #~ msgstr "A rendszer házirendje megakadályozza a nyers eszközök olvasását" #~ msgid "" #~ msgstr "" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Dell helyreállító-média készítő" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Helyreállító adathordozó előállításának megszakítása" #~ msgid "USB Flash Drive" #~ msgstr "USB Flash-meghajtó" #~ msgid "No media, create ISO image" #~ msgstr "Nincs adathordozó, ISO-lemezkép létrehozása" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "Biztos, hogy megszakítja a helyreállító adathordozó létrehozását?" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Már létezik lemezkép, valószínűleg egy előző futtatás eredményeként. El " #~ "szeretné távolítani ezt a régi másolatot, és újra előállítani a " #~ "lemezképet?" dell-recovery/debian/po/tr.po0000664000000000000000000002017212311717746013362 0ustar # Turkish translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2010-12-14 05:37+0000\n" "Last-Translator: Mario Limonciello \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Dell Yedekleme Ortamı Yapılandırılıyor..." #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Yazıcı Açılıyor..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "Dell Yedekleme" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "Yedekleme Türü" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" "Bu Dell Yedekleme Ortamı orjinal fabrika yazılımını geri yüklemede " "kullanılabilir." #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "Bu aracı çalıştırmadan tüm önemli bilgilerinizi yedeklemeniz önerilir." #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "Linux İşletim Sistemine sahip bölümleri geri yükle" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" "Bu işlem tüm işletim sistemi ve takas alanı bölümlerini varsayılan fabrika " "ayarlarına göre yeniden yapılandıracaktır." #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "UYARI: Tüm kişisel dosya ve değişiklikleriniz kaybolacak." #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "Tüm sabit diski geri yükle." #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" "Bu işlem tüm araçlar, yedekleme ve işletim sistemi bölümlerini yeniden " "yapılandıracak." #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "Sadece Linux İS. bölümünü geri yükle." #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "Bu seçenek var olan bölümleri yeniden boyutlandırmanıza izin verir." #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "Yedekleme Bölümü Yapılandırılıyor" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "NOT: Lütfen sabırlı olun, bu işlem biraz zaman alabilir." #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Dell Geri Alma Ortamı Oluştur" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Dell Yedekleme Ortamı'nı bilgisayarınızı ilk aldığınız günkü durumuna geri " "getirmek için kullanabilirsiniz." #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Yedekleme ortamı oluşturmanız ve bunu güvenli bir şekilde saklamanız " "şiddetle önerilir." #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "Yedekleme ortamını harici USB flash belleğe kaydet" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Not: Bu işlem tahmini olarak 2 GB boş alanı bulunan USB flash bellek " "gerektirir." #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "Yedekleme ortamını DVD'ye kaydet" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "Not: Bu işlem yazdırılabilir bir DVD gerektirir." #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "Bu seferlik yedekleme ortamı oluşturma" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Yedekleme Ortamı sistem menüsünden seçilecek araç yardımıyla daha sonra da " "oluşturulabilir." #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" "Yedekleme Ortamı sistem menüsünden seçilecek araç yardımıyla daha sonra da " "oluşturulabilir." #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "Dell Son Kullanıcı Lisans Sözleşmesi" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "Choose Media Type" #~ msgstr "Ortam Türünü Seçin" #~ msgid "Permission Denied" #~ msgstr "İzin verilmedi" #~ msgid "Cannot connect to dbus" #~ msgstr "dbus'a bağlanamadı" #~ msgid "Opening Burner" #~ msgstr "Yazıcı Açılıyor" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Geri alma Ortamı Oluşturma İşlemi Tamamlandı" #~ msgid "Recovery Partition: " #~ msgstr "Geri Alma Bölümü: " #~ msgid "Media Type: " #~ msgstr "Ortam Türü: " #~ msgid "Confirm Selections" #~ msgstr "Seçimleri Onayla" #~ msgid "Utility Partition: " #~ msgstr "Araç Bölümü: " #~ msgid "ISO Image" #~ msgstr "ISO Görüntüsü" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Geri Alma Ortamı Oluşturucuyu İptal Et" #~ msgid "Building ISO" #~ msgstr "ISO Yapılıyor" #~ msgid "DVD+/-RW Disc" #~ msgstr "DVD+/-RW Disk" #~ msgid "" #~ msgstr "" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Dell Geri Alma Ortam Oluşturucu" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "Geri Alma Ortamı oluşturma işlemini iptal etmek ister misiniz?" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Varolan bir görüntü bulunamadı (muhtemelen önceki bir çalışmadan). Bu " #~ "eski kopyayı kaldırmak ve görüntüyü yeniden oluşturmak ister misiniz?" #~ msgid "USB Flash Drive" #~ msgstr "USB Flash Sürücü" #~ msgid "No media, create ISO image" #~ msgstr "Ortam yok, ISO görüntüsü oluştur" #~ msgid "System policy prevents reading raw devices" #~ msgstr "Sistem ilkeleri, raw aygıtlarını okumayı engelliyor." dell-recovery/debian/po/da.po0000664000000000000000000001477412311717746013334 0ustar # Danish translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2009-05-23 16:53+0000\n" "Last-Translator: Jimmy Frydkær Dürr \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Opret Dell Gendannelsesmeide" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "Opening Burner" #~ msgstr "Åbner brænder" #~ msgid "Permission Denied" #~ msgstr "Tilladelse nægtet" #~ msgid "Cannot connect to dbus" #~ msgstr "Kan ikke forbinde til dbus" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Genskabelses Medie Oprettelses Proces Færdig" #~ msgid "Confirm Selections" #~ msgstr "Godkend valgene" #~ msgid "ISO Image" #~ msgstr "ISO billede" #~ msgid "" #~ msgstr "" #~ msgid "Building ISO" #~ msgstr "Bygger ISO" #~ msgid "DVD+/-RW Disc" #~ msgstr "DVD+/-RW Disc" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Et eksisterende billede blev fundet (formentlig fra en tidligere kørsel). " #~ "Ønsker du at fjerne den gamle kopi og regenerere billedet?" #~ msgid "USB Flash Drive" #~ msgstr "USB Flash Drive" #~ msgid "No media, create ISO image" #~ msgstr "Ingen medie, opret ISO billede" #~ msgid "Recovery Partition: " #~ msgstr "Genskabelsespartiton: " #~ msgid "Media Type: " #~ msgstr "Medietype: " #~ msgid "Choose Media Type" #~ msgstr "Vælg Medietype" #~ msgid "Utility Partition: " #~ msgstr "Nyttepartition: " #~ msgid "System policy prevents reading raw devices" #~ msgstr "Systempolitik forhindrer læsning af raw enheder" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Annullér Gendannelsesmedie-opretter" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "" #~ "Er du sikker på du ønsker at annullére oprettelsen af Gendannelsesmediet?" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Dell Gendannelsesmedie-opretter" dell-recovery/debian/po/hr.po0000664000000000000000000001723312311717746013352 0ustar # Croatian translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2010-12-14 05:00+0000\n" "Last-Translator: Mario Limonciello \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Izgradnja Dell medija oporavka..." #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Otvaranje snimača..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "Vrsta oporavka" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" "Ovaj se Dell medij oporavka može upotrijebiti za vraćanje izvornog " "tvorničkog softvera." #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" "Preporuka je da prije pokretanja ovog alata napravite sigurnosnu kopiju " "važnih podataka." #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "Vrati particije Linux OS-a" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "Ovo će vratiti sve swap particije i particije OS-a u tvorničko stanje." #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "UPOZORENJE: Sve osobne datoteke i promjene će biti izgubljene." #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "Vrati cijeli tvrdi disk" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "Ovo će vratiti sve uslužne particije i particije OS-a i oporavka." #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "Vrati samo particiju Linux OS-a." #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "Ova mogućnost vam dopušta promjenu veličine postojećih particija." #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "NAPOMENA: Molim budite strpljivi, ovo može potrajati neko vrijeme." #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Dell medij oporavka se može upotrijebiti za vraćanje sustava u prvotno " "stanje kakvo je bilo kada vam je on bio isporučen." #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "Preporuka je da generirate medij i spremite ga na sigurno mjesto." #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "Spremi medij oporavka na vanjsku USB memoriju" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "Napomena: ovo zahtijeva USB memoriju s oko 2 GB slobodnog prostora." #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "Spremi medij oporavka na DVD" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "Napomena: Ovo zahtijeva zapisivi DVD medij." #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "Nemoj sada generirati medij oporavka" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Medij oporavka se može generirati kasnije, odabirom alata iz izbornika " "Sustav." #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "GREŠKA: Ovaj je medij važeći samo na Dellovim sustavima." #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "Permission Denied" #~ msgstr "Pristup odbijen" #~ msgid "Choose Media Type" #~ msgstr "Odaberite vrstu medija" #~ msgid "Cannot connect to dbus" #~ msgstr "Spajanje na dbus nije moguće" #~ msgid "Opening Burner" #~ msgstr "Otvaranje snimača" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Proces izrade medija oporavka dovršen" #~ msgid "Recovery Partition: " #~ msgstr "Particija oporavka: " #~ msgid "Media Type: " #~ msgstr "Vrsta medija: " #~ msgid "Confirm Selections" #~ msgstr "Potvrdi odabir" #~ msgid "Utility Partition: " #~ msgstr "Uslužna particija: " #~ msgid "ISO Image" #~ msgstr "ISO slika" #~ msgid "System policy prevents reading raw devices" #~ msgstr "Politika sustava sprječava čitanje raw uređaja" #~ msgid "Building ISO" #~ msgstr "Izgradnja ISO-a" #~ msgid "" #~ msgstr "" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Stvaratelj Dell medija oporavka" #~ msgid "DVD+/-RW Disc" #~ msgstr "DVD+/-RW medij" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Otkaži stvaratelja medija oporavka" #~ msgid "USB Flash Drive" #~ msgstr "USB memorija" #~ msgid "No media, create ISO image" #~ msgstr "Bez medija, stvori ISO sliku" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "Jeste li sigurni da želite otkazati proces izrade medija oporavka?" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Pronađena je postojeća slika (vjerojatno od prethodnog pokretanja). " #~ "Želite li obrisati staru sliku i stvoriti novu?" dell-recovery/debian/po/uk.po0000664000000000000000000002414412311717746013357 0ustar # Ukrainian translation for dell-recovery # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the dell-recovery package. # # Yuri Chornoivan , 2010. msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2011-02-17 19:29+0000\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Побудова носія для відновлення Dell..." #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Відкриття програми запису..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "Dell Recovery" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "Тип відновлення" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" "За допомогою цього носія для відновлення Dell ви зможете відновити початкове " "програмне забезпечення записане виробником обладнання." #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" "Перш ніж запускати цей інструмент, будь ласка, створіть резервні копії всіх " "важливих для вас даних." #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "Відновити розділи ОС Linux" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "Буде повернуто типові параметри розмітки розділів ОС та свопінгу." #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" "ПОПЕРЕДЖЕННЯ: всі особисті файли та внесені вами до системи зміни буде " "втрачено." #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "Відновити весь жорсткий диск." #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" "Буде відтворено всі допоміжні і відновлювальні розділи, а також розділи ОС." #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "Відновити лише розділ ОС Linux." #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" "За допомогою цього пункту ви зможете змінити розміри будь-якого з поточних " "розділів." #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" "ПОМИЛКА: цей носій для відновлення системи працює лише у системах Dell і " "Alienware." #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "Збирання допоміжного розділу" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "ЗАУВАЖЕННЯ: будь ласка, зачекайте." #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Створення носіїв для відновлення систем Dell" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Носієм для відновлення Dell можна скористатися для відновлення вашої системи " "до стану, у якому вам було передано її виробником обладнання." #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Рекомендуємо вам створити такий носій і зберігати його у безпечному місці." #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "Зберегти носій для відновлення на зовнішньому флеш-диску USB" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Зауваження: на флеш-диску USB має бути приблизно 2 ГБ вільного простору." #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "Зберегти носій для відновлення на DVD" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "Зауваження: вам знадобиться придатний для запису носій даних DVD." #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "Не створювати носія для відновлення цього разу" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Носій для відновлення можна створити пізніше. Для цього слід скористатися " "пунктом відповідного інструменту з меню «Система»." #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" "ПОМИЛКА: цим носієм можна скористатися лише у системах виробництва Dell." #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "Ліцензійна угода Dell з кінцевим користувачем" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "Відновлення #ОС# до початкового стану" #~ msgid "Permission Denied" #~ msgstr "Відмовлено у доступі" #~ msgid "Opening Burner" #~ msgstr "Відкриття програми запису" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Процес створення носія для відновлення завершено" #~ msgid "Cannot connect to dbus" #~ msgstr "Не вдалося встановити зв’язок з D-Bus" #~ msgid "Choose Media Type" #~ msgstr "Вибір типу носія" #~ msgid "ISO Image" #~ msgstr "Образ ISO" #~ msgid "Media Type: " #~ msgstr "Тип носія: " #~ msgid "Utility Partition: " #~ msgstr "Допоміжний розділ: " #~ msgid "Recovery Partition: " #~ msgstr "Розділ для відновлення: " #~ msgid "Confirm Selections" #~ msgstr "Підтвердити вибір" #~ msgid "Building ISO" #~ msgstr "Створення ISO" #~ msgid "System policy prevents reading raw devices" #~ msgstr "" #~ "Системними правилами заборонено читання з пристроїв з необробленими даними" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Створення носія для відновлення Dell" #~ msgid "" #~ msgstr "<замінник дії>" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Виявлено готовий образ (ймовірно, створений під час попереднього " #~ "запуску). Бажаєте вилучити цю стару копію і повторно створити образ?" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "" #~ "Ви справді бажаєте скасувати операцію зі створення носія для відновлення?" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Скасування створення носія для відновлення" #~ msgid "DVD+/-RW Disc" #~ msgstr "Диск DVD+/-RW" #~ msgid "No media, create ISO image" #~ msgstr "Без носія, створити образ ISO" #~ msgid "USB Flash Drive" #~ msgstr "Флеш-диск USB" dell-recovery/debian/po/pt.po0000664000000000000000000001522112311717746013357 0ustar # Portuguese translation for dell-recovery # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2010-12-14 05:29+0000\n" "Last-Translator: Henrique P. Machado \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Construindo a Mídia de recuperação Dell" #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Abrindo o gravador..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Cria mídia do Dell Recovery" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "DVD+/-RW Disc" #~ msgstr "DVD+/-RW Disc" #~ msgid "Confirm Selections" #~ msgstr "Confirma selecções" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Cancelar Recovery Media Creator" #~ msgid "Choose Media Type" #~ msgstr "Escolha tipo de media" #~ msgid "Opening Burner" #~ msgstr "Abrindo gravador" #~ msgid "Media Type: " #~ msgstr "Tipo de media: " #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Recovery Media Creation Processo Completo" #~ msgid "Permission Denied" #~ msgstr "Permissão negada" #~ msgid "ISO Image" #~ msgstr "Imagem ISO" #~ msgid "Cannot connect to dbus" #~ msgstr "Não é possível conectar-se ao dbus" #~ msgid "System policy prevents reading raw devices" #~ msgstr "Políticas do sistema previnem a leitura de dispositivos brutos" #~ msgid "Building ISO" #~ msgstr "Gerando ISO" #~ msgid "Recovery Partition: " #~ msgstr "Recuperação de partição: " #~ msgid "Utility Partition: " #~ msgstr "Utilitário de partição: " #~ msgid "" #~ msgstr "" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Dell Recovery Media Creator" #~ msgid "USB Flash Drive" #~ msgstr "Unidade USB" #~ msgid "No media, create ISO image" #~ msgstr "Nenhuma mídia, cria um arquivo ISO" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "" #~ "Você tem certeza que quer cancelar o processo de criação do Media " #~ "Recovery?" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Uma imagem existente foi encontrada (possivelmente de uma execução " #~ "anterior). Você gostaria de remover esta cópia antiga e gerar novamente a " #~ "imagem?" dell-recovery/debian/po/es.po0000664000000000000000000002015612311717746013346 0ustar # Spanish translation for dell-recovery # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2011-06-04 11:28+0000\n" "Last-Translator: Fitoschido \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Construyendo disco de recuperación Dell..." #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Abriendo copiador..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "Recuperación de Dell" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "Tipo de recuperación" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" "Este disco de recuperación Dell se puede usar para restaurar el software " "original del fabricante." #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" "Es importante hacer una copia de seguridad de todos los datos antes de " "ejecutar esta herramienta." #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "Restaurar particiones Linux" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" "Esto reconstruirá todos los SO y particiones de intercambio a los " "predeterminados por el fabricante." #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "AVISO: Todos los archivos personales y cambios se perderán." #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "Restaurar todo el disco duro." #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" "Esto reconstruirá todas las utilidades, recuperaciones y particiones de SO." #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "Restaurar sólo la partición Linux" #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "Esta opción le permite redimensionar cualquier partición existente." #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" "ERROR: Este medio de recuperación solo funciona en sistemas Dell y Alienware." #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "Construyendo partición de recuperación" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "NOTA: Tenga paciencia, esto llevará un tiempo." #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Crear medio de recuperación DELL" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "El disco de recuperación Dell se puede usar para restaurar sus sistema al " "mismo estado que cuando lo adquirió." #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Es muy recomendable que genere un disco y lo guarde en un lugar seguro." #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "Guardar el disco de recuperación en una memoria flash USB externa" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "Nota: Requiere un disco flash USB con aproximadamente 2GB libre." #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "Guardar el disco de recuperación en un DVD" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "Nota: requiere un DVD re-escribible." #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "No generar disco de recuperación en este momento" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "El disco de recuperación se puede generar después eligiendo la herramienta " "en el menú Sistema." #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "ERROR: Este disco sólo es válido en sistemas Dell." #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "Acuerdo de licencia de usuario final Dell" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "Restaurar #OS# al estado de fábrica" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Cancelar Recovery Media Creator" #~ msgid "DVD+/-RW Disc" #~ msgstr "Disco DVD+/-RW" #~ msgid "" #~ msgstr "" #~ msgid "Opening Burner" #~ msgstr "Abriendo grabadora" #~ msgid "Media Type: " #~ msgstr "Tipo de medio: " #~ msgid "Confirm Selections" #~ msgstr "Confirmar selecciones" #~ msgid "Choose Media Type" #~ msgstr "Escoger tipo de medio" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Creador de soportes de recuperación de Dell" #~ msgid "Recovery Partition: " #~ msgstr "Particion de recuperación: " #~ msgid "Cannot connect to dbus" #~ msgstr "No se puede conectar con dbus" #~ msgid "No media, create ISO image" #~ msgstr "Sin medio, crear imagen ISO" #~ msgid "System policy prevents reading raw devices" #~ msgstr "La política del sistema impide leer dispositivos raw" #~ msgid "Permission Denied" #~ msgstr "Permiso denegado" #~ msgid "ISO Image" #~ msgstr "Imagen ISO" #~ msgid "Utility Partition: " #~ msgstr "Partición de utilidad: " #~ msgid "Building ISO" #~ msgstr "Creando ISO" #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "" #~ "¿Seguro que quiere cancelar el proceso de creación del Medio de " #~ "Recuperación?" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Proceso de creación del soporte de recuperación finalizado" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "Ya existe una imagen (posiblemente de una ejecución anterior). ¿Quiere " #~ "eliminar esta copia antigua y volver a generar la imagen?" #~ msgid "USB Flash Drive" #~ msgstr "Unidad flash USB" dell-recovery/debian/po/sv.po0000664000000000000000000001777012311717746013377 0ustar # Swedish translation for dell-recovery # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the dell-recovery package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: dell-recovery\n" "Report-Msgid-Bugs-To: dell-recovery@packages.debian.org\n" "POT-Creation-Date: 2013-02-25 18:38-0600\n" "PO-Revision-Date: 2010-12-14 05:36+0000\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-05-05 05:00+0000\n" "X-Generator: Launchpad (build 15195)\n" #. Type: text #. Description #: ../dell-recovery.templates:17001 msgid "Building Dell Recovery Media..." msgstr "Bygger återställningsmedia för Dell..." #. Type: text #. Description #: ../dell-recovery.templates:19001 msgid "Opening Burner..." msgstr "Öppnar brännare..." #. Type: text #. Description #: ../dell-recovery.templates:20001 msgid "Dell Recovery" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:21001 msgid "Recovery Type" msgstr "Återställningstyp" #. Type: text #. Description #: ../dell-recovery.templates:22001 msgid "" "This Dell Recovery Media can be used to restore the original factory " "software." msgstr "" "Detta återställningsmedia för Dell kan användas för att återställa " "programvara till de ursprungliga fabriksinställningarna." #. Type: text #. Description #: ../dell-recovery.templates:23001 msgid "" "It is recommended you back up all important data before running this tool." msgstr "" "Det rekommenderas att du säkerhetskopierar allt viktigt data innan du kör " "detta verktyg." #. Type: text #. Description #: ../dell-recovery.templates:24001 msgid "Restore Linux OS partitions" msgstr "Återställ partitioner för Linux" #. Type: text #. Description #: ../dell-recovery.templates:25001 msgid "This will rebuild all OS and swap partitions to factory defaults." msgstr "" "Detta kommer att bygga om alla partitioner för operativsystem och " "växlingsutrymme till fabriksinställningarna." #. Type: text #. Description #. Type: text #. Description #: ../dell-recovery.templates:26001 ../dell-recovery.templates:29001 msgid "WARNING: All personal files and changes will be lost." msgstr "VARNING: Alla personliga filer och ändringar kommer att förloras." #. Type: text #. Description #: ../dell-recovery.templates:27001 msgid "Restore entire hard drive." msgstr "Återställ hela hårddisken." #. Type: text #. Description #: ../dell-recovery.templates:28001 msgid "This will rebuild all utility, recovery, and OS partitions." msgstr "" "Detta kommer att bygga om alla partitioner för verktyg, återställning och " "operativsystem." #. Type: text #. Description #: ../dell-recovery.templates:30001 msgid "Restore only Linux OS partition." msgstr "Återställ endast partition för Linux." #. Type: text #. Description #: ../dell-recovery.templates:31001 msgid "This option allows you to resize any existing partitions." msgstr "Detta alternativ låter dig ändra storlek på befintliga partitioner." #. Type: text #. Description #: ../dell-recovery.templates:32001 msgid "" "ERROR: This recovery media only functions on Dell and Alienware systems." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:33001 msgid "Building Recovery Partition" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:34001 msgid "NOTE: Please be patient, this may take a while." msgstr "OBSERVERA: Var god vänta, detta kan ta en stund." #. Type: text #. Description #: ../dell-recovery.templates:35001 msgid "Your system will restart automatically several times." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:36001 msgid "Create Dell Recovery Media" msgstr "Skapa Dell återställningmedia" #. Type: text #. Description #: ../dell-recovery.templates:37001 msgid "" "Dell Recovery Media can be used to restore your system to the same state as " "when it was first shipped to you." msgstr "" "Återställningsmedia för Dell kan användas för att återställa din dator till " "samma tillstånd som den befann sig i när den levererades till dig." #. Type: text #. Description #: ../dell-recovery.templates:38001 msgid "" "It is highly recommended that you generate media and store it in a safe " "place." msgstr "" "Det rekommenderas starkt att du genererar ett media och lagrar det på en " "säker plats." #. Type: text #. Description #: ../dell-recovery.templates:39001 msgid "Save recovery media to an external USB flash drive" msgstr "Spara återställningsmedia till en extern USB-lagringsenhet" #. Type: text #. Description #: ../dell-recovery.templates:40001 msgid "Note: This requires a USB flash drive with approximately 2GB free." msgstr "" "Observera: Detta kräver en USB-lagringsenhet med ungefär 2 GB ledigt utrymme." #. Type: text #. Description #: ../dell-recovery.templates:41001 msgid "Save recovery media to DVD" msgstr "Spara återställningsmedia till DVD" #. Type: text #. Description #: ../dell-recovery.templates:42001 msgid "Note: This requires writable DVD media." msgstr "Observera: Detta kräver ett skrivbart DVD-media." #. Type: text #. Description #: ../dell-recovery.templates:43001 msgid "Don't generate recovery media at this time" msgstr "Generera inte återställningsmedia för tillfället" #. Type: text #. Description #: ../dell-recovery.templates:44001 msgid "" "Recovery Media can be generated later by choosing the tool from the System " "menu." msgstr "" "Återställningsmedia kan genereras senare genom att välja verktyget från " "System-menyn." #. Type: text #. Description #: ../dell-recovery.templates:45001 msgid "ERROR: This media is only valid on Dell systems." msgstr "FEL: Detta media är endast giltigt på Dell-system." #. Type: text #. Description #: ../dell-recovery.templates:46001 msgid "Dell End User License Agreement" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:47001 msgid "I have read and accept these terms." msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:48001 msgid "Flash BIOS image from DOS" msgstr "" #. Type: text #. Description #: ../dell-recovery.templates:49001 msgid "Restore #OS# to factory state" msgstr "" #~ msgid "DVD+/-RW Disc" #~ msgstr "DVD+/-RW-skiva" #~ msgid "" #~ msgstr "" #~ msgid "Dell Recovery Media Creator" #~ msgstr "Skapa återställningsmedia för Dell" #~ msgid "Cancel Recovery Media Creator" #~ msgstr "Avbryt skapandet av återställningsmedia" #~ msgid "USB Flash Drive" #~ msgstr "USB-enhet" #~ msgid "Opening Burner" #~ msgstr "Öppnar brännare" #~ msgid "Media Type: " #~ msgstr "Mediatyp: " #~ msgid "Confirm Selections" #~ msgstr "Bekräfta" #~ msgid "Choose Media Type" #~ msgstr "Välj mediatyp" #~ msgid "Recovery Media Creation Process Complete" #~ msgstr "Återställningsmediat är färdigt" #~ msgid "Recovery Partition: " #~ msgstr "Återställningspartition: " #~ msgid "Permission Denied" #~ msgstr "Åtkomst nekad" #~ msgid "System policy prevents reading raw devices" #~ msgstr "Systemprincip förhindrar läsning av obehandlade enheter" #~ msgid "Building ISO" #~ msgstr "Bygger ISO" #~ msgid "Utility Partition: " #~ msgstr "Tillbehörspartition: " #~ msgid "Are you sure you want to cancel the Recovery Media creation process?" #~ msgstr "" #~ "Är du säker på att du vill avbryta processen för att skapa " #~ "återställningsmedia?" #~ msgid "Cannot connect to dbus" #~ msgstr "Kan inte ansluta till dbus" #~ msgid "ISO Image" #~ msgstr "ISO-avbildning" #~ msgid "No media, create ISO image" #~ msgstr "Inget media, skapa ISO-avbildning" #~ msgid "" #~ "An existing image was found (possibly from a previous run). Would you " #~ "like to remove this old copy and regenerate the image?" #~ msgstr "" #~ "En befintlig avbildning hittades (eventuellt från en tidigare körning). " #~ "Vill du ta bort den gamla kopian och generera avbildningen igen?" dell-recovery/debian/dell-recovery.mime0000664000000000000000000000006612043102601015360 0ustar application/x-dell-driver; dell-driver-installer '%s' dell-recovery/debian/dell-recovery.templates0000664000000000000000000001464512311717746016463 0ustar Template: dell-recovery/destination Type: string Default: none Description: for internal use; determines whether to generate recovery media Template: dell-recovery/recovery_type Type: string Default: dynamic Description: for internal use;determines whether to offer the bootstrap ubiquity plugin to the user. valid: [dynamic, factory, usb, dvd] Template: dell-recovery/up_partition Type: string Default: dynamic Description: for internal use; determines where the destination UP partition is Template: dell-recovery/rp_partition Type: string Default: dynamic Description: for internal use; determines where the destination RP partition is Template: dell-recovery/os_partition Type: string Default: dynamic Description: for internal use; determines where the destination OS partition is Template: dell-recovery/swap_partition Type: string Default: dynamic Description: for internal use; determines where the destination swap partition is Template: dell-recovery/recovery_partition_filesystem Type: string Default: 0c Description: for internal use; determines the filesystem of the recovery partition Template: dell-recovery/active_partition Type: string Default: dynamic Description: for internal use; sets which partition is active after successful installation This is only used when the disk_layout is 'msdos'. It will otherwise be ignored. Template: dell-recovery/fail_partition Type: string Default: dynamic Description: for internal use; sets which partition is active after failed installation This is only used when the disk layout is 'msdos'. It will otherwise be ignored. Template: dell-recovery/disable-driver-install Type: string Default: Description: for internal use; determines any *-modaliases packages that should be removed Template: dell-recovery/swap Type: string Default: dynamic Description: for internal use; determines swap behavior; binary enable (true/false) or dynamically determined based on disk size (dynamic) Template: dell-oobe/user-interface Type: string Default: dynamic Description: for internal use; determines the default UI; (une/ude) or dynamically determined based on LOB/screen rez (dynamic) Template: dell-recovery/dual_boot Type: boolean Default: false Description: for internal use; enables the factory installed dual boot solution. Template: dell-recovery/dual_boot_layout Type: string Default: primary Description: for internal use; sets the disk drive layout used for a factory installed dual boot solution. valid: [primary, logical] Template: dell-recovery/disk_layout Type: string Default: msdos Description: for internal use; when preseeded, determines the disk layout type to use Template: dell-recovery/oie_mode Type: boolean Default: false Description: for internal use; enables ODM image mode Template: dell-recovery/build_start Type: text _Description: Building Dell Recovery Media... Template: dell-recovery/build_progress Type: text Description: ${MESSAGE} (${PERCENT})... Template: dell-recovery/burning Type: text _Description: Opening Burner... Template: ubiquity/text/dell_recovery_title Type: text _Description: Dell Recovery Template: ubiquity/text/recovery_type_title Type: text _Description: Recovery Type Template: ubiquity/text/bootstrap_information_label Type: text _Description: This Dell Recovery Media can be used to restore the original factory software. Template: ubiquity/text/bootstrap_warning_label Type: text _Description: It is recommended you back up all important data before running this tool. Template: ubiquity/text/hdd_recovery Type: text _Description: Restore Linux OS partitions Template: ubiquity/text/hdd_info Type: text _Description: This will rebuild all OS and swap partitions to factory defaults. Template: ubiquity/text/hdd_warning_label Type: text _Description: WARNING: All personal files and changes will be lost. Template: ubiquity/text/automated_recovery Type: text _Description: Restore entire hard drive. Template: ubiquity/text/automated_info Type: text _Description: This will rebuild all utility, recovery, and OS partitions. Template: ubiquity/text/automated_warning_label Type: text _Description: WARNING: All personal files and changes will be lost. Template: ubiquity/text/interactive_recovery Type: text _Description: Restore only Linux OS partition. Template: ubiquity/text/interactive_info Type: text _Description: This option allows you to resize any existing partitions. Template: ubiquity/text/genuine_bootstrap_warning_label Type: text _Description: ERROR: This recovery media only functions on Dell and Alienware systems. Template: ubiquity/text/status_warning_label Type: text _Description: Building Recovery Partition Template: ubiquity/text/status_info_label Type: text _Description: NOTE: Please be patient, this may take a while. Template: ubiquity/text/status_restart_label Type: text _Description: Your system will restart automatically several times. Template: ubiquity/text/recovery_heading_label Type: text _Description: Create Dell Recovery Media Template: ubiquity/text/recovery_information_label Type: text _Description: Dell Recovery Media can be used to restore your system to the same state as when it was first shipped to you. Template: ubiquity/text/recovery_warning_label Type: text _Description: It is highly recommended that you generate media and store it in a safe place. Template: ubiquity/text/save_to_usb Type: text _Description: Save recovery media to an external USB flash drive Template: ubiquity/text/usb_warning_label Type: text _Description: Note: This requires a USB flash drive with approximately 2GB free. Template: ubiquity/text/save_to_dvd Type: text _Description: Save recovery media to DVD Template: ubiquity/text/dvd_warning_label Type: text _Description: Note: This requires writable DVD media. Template: ubiquity/text/save_to_none Type: text _Description: Don't generate recovery media at this time Template: ubiquity/text/no_media_warning Type: text _Description: Recovery Media can be generated later by choosing the tool from the System menu. Template: ubiquity/text/genuine_recovery_warning_label Type: text _Description: ERROR: This media is only valid on Dell systems. Template: ubiquity/text/eula_heading_label Type: text _Description: Dell End User License Agreement Template: ubiquity/text/accept_button Type: text _Description: I have read and accept these terms. Template: ubiquity/text/98_grub_menu Type: text _Description: Flash BIOS image from DOS Template: ubiquity/text/99_grub_menu Type: text _Description: Restore #OS# to factory state dell-recovery/debian/dell-recovery-casper.links0000664000000000000000000000013211751021273017030 0ustar usr/share/dell/casper/hooks/dell-bootstrap usr/share/initramfs-tools/hooks/dell-bootstrap dell-recovery/debian/source/0000775000000000000000000000000011751021273013243 5ustar dell-recovery/debian/source/format0000664000000000000000000000001511751021273014452 0ustar 3.0 (native) dell-recovery/debian/source/lintian-overrides0000664000000000000000000000026211756541334016636 0ustar dell-recovery source: unknown-field-in-dsc original-maintainer dell-recovery source: changelog-should-mention-nmu dell-recovery source: source-nmu-has-incorrect-version-number * dell-recovery/debian/dell-recovery-bootloader.postinst0000664000000000000000000000060111751021273020451 0ustar #!/bin/sh -e . /usr/share/debconf/confmodule case "$1" in configure) /usr/share/dell/grub/build-binaries.sh ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 dell-recovery/debian/dell-recovery.preinst0000664000000000000000000000214511751021273016127 0ustar #!/bin/sh set -e # Remove a no-longer used conffile (from http://wiki.debian.org/DpkgConffileHandling) rm_conffile() { PKGNAME="$1" CONFFILE="$2" if [ -e "$CONFFILE" ]; then md5sum="`md5sum \"$CONFFILE\" | sed -e \"s/ .*//\"`" old_md5sum="`dpkg-query -W -f='${Conffiles}' $PKGNAME | sed -n -e \"\\\\'^ $CONFFILE[[:space:]]'{s/ obsolete$//;s/.* //p}\"`" if [ "$md5sum" != "$old_md5sum" ]; then echo "Obsolete conffile $CONFFILE has been modified by you." echo "Saving as $CONFFILE.dpkg-bak ..." mv -f "$CONFFILE" "$CONFFILE".dpkg-bak else echo "Removing obsolete conffile $CONFFILE ..." rm -f "$CONFFILE" fi fi } case "$1" in upgrade) [ -L /etc/skel/Desktop/dell-recovery-media.desktop ] && rm /etc/skel/Desktop/dell-recovery-media.desktop if dpkg --compare-versions "$2" le "0.33"; then rm -f /etc/skel/Desktop/dell-recovery-media.desktop fi if dpkg --compare-versions "$2" le-nl "0.45"; then rm_conffile dell-recovery "/etc/grub.d/06_dell_theme" fi esac #DEBHELPER# dell-recovery/debian/lintian-overrides0000664000000000000000000000105311751021273015323 0ustar dell-recovery: too-long-short-description-in-templates ubiquity/text/bootstrap_information_label dell-recovery: too-long-short-description-in-templates ubiquity/text/recovery_information_label dell-recovery: too-long-short-description-in-templates ubiquity/text/recovery_warning_label dell-recovery: too-long-short-description-in-templates ubiquity/text/no_media_warning dell-recovery: using-first-person-in-templates ubiquity/text/accept_button dell-recovery: no-debconf-config dell-recovery: debconf-is-not-a-registry usr/share/ubiquity/dell-bootstrap dell-recovery/debian/dell-recovery.sharedmimeinfo0000664000000000000000000000047212043102601017424 0ustar Dell Driver Package for Linux dell-recovery/debian/dell-recovery-bootloader.dirs0000664000000000000000000000002611751021273017530 0ustar var/lib/dell-recovery dell-recovery/debian/control0000664000000000000000000000405012311717746013357 0ustar Source: dell-recovery Section: utils Priority: optional Maintainer: Mario Limonciello XSBC-Original-Maintainer: Mario Limonciello Build-Depends: debhelper (>= 7.0.50~), python3-all, python3-distutils-extra, po-debconf, pyflakes, grub-pc-bin, grub-efi-amd64-bin, lsb-release X-Python3-Version: >= 3.2 Homepage: http://linux.dell.com/ Vcs-Bzr: http://bazaar.launchpad.net/~dell-team/dell-recovery/trunk Standards-Version: 3.9.5 Package: dell-recovery Architecture: all Depends: ${python3:Depends}, ${misc:Depends}, python3-dbus, python3-apt, gir1.2-gtk-3.0, policykit-1, uuid-runtime, udisks2, policykit-1-gnome, genisoimage, dpkg-repack, python-gobject (>= 2.28), python-debian, lzma | xz-utils (>= 5.1.1alpha+20120614-1) | xz-lzma, fonts-dejavu-core Replaces: dell-artwork, dell-oobe Conflicts: dell-oobe Recommends: usb-creator-gtk, brasero | nautilus-cd-burner, lsb-release, python-aptdaemon.gtk3widgets, parted, python3-progressbar Enhances: oem-config-gtk, ubiquity-frontend-gtk Suggests: grub-pc Description: Dell Recovery Media Creation Package This package is used to produce a Dell recovery media image. It then uses known open source tools to write the image to a USB flash drive or DVD writer. Package: dell-recovery-casper Architecture: all Depends: dell-recovery, casper, ubiquity, ${misc:Depends} Description: Dell Recovery Casper Hooks This package provides hooks to allow the dell-recovery bootstrap to run directly from casper without any other modifications to the media. Package: dell-recovery-bootloader Architecture: all Depends: dell-recovery, ubiquity, ${misc:Depends} Conflicts: mingw32-binutils Recommends: grub-pc-bin, grub-efi-amd64-bin, mingw-w64, quilt, autogen, autoconf, libtool, bison, flex, dpkg-dev Description: Bootloader images for Dell's factory process This package is used to generate GRUB2 bootable images that are injected into the Dell Linux factory installation process. . This package doesn't have much use outside of the Dell environment but is safe to install on other systems. dell-recovery/debian/dell-recovery-bootloader.install0000664000000000000000000000004111751021273020232 0ustar grub/patches usr/share/dell/grub dell-recovery/debian/dell-recovery.manpages0000664000000000000000000000002011751021273016224 0ustar dell-recovery.1 dell-recovery/debian/compat0000664000000000000000000000000211751021273013141 0ustar 7 dell-recovery/debian/dell-recovery-bootloader.postrm0000664000000000000000000000036511751021273020121 0ustar #!/bin/sh set -e if [ "$1" = "purge" ]; then TARGET=/var/lib/dell-recovery FILES="boot.img core.img grub.cfg grubenv grubx64.efi grub-setup.exe" for file in $FILES; do rm -f $TARGET/$file done rm -rf $TARGET/iso fi #DEBHELPER# dell-recovery/debian/copyright0000664000000000000000000005120611751021273013702 0ustar This package was debianized by Mario Limonciello on Tue, 4 March 2008 16:41:23 -0500 Author & Copyright: © 2008-2012 Dell Inc. -------------------------------------------------------------------------------- Grub Theme License: CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. License THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. 1. Definitions "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License. "Creative Commons Compatible License" means a license that is listed at http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. 2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. 3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; to Distribute and Publicly Perform the Work including as incorporated in Collections; and, to Distribute and Publicly Perform Adaptations. For the avoidance of doubt: Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. 4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested. You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. 5. Representations, Warranties and Disclaimer UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 7. Termination This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. 8. Miscellaneous Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. -------------------------------------------------------------------------------- Package License: This Package 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 package 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 package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA On Debian & Ubuntu systems, a complete copy of the GPL can be found under /usr/share/common-licenses/GPL The Debian packaging is © 2008-2009, Dell Inc. and is licensed under the GPL. dell-recovery/debian/rules0000775000000000000000000000252012311717746013034 0ustar #!/usr/bin/make -f #optipng makes png's indexed which GRUB2 doesn't understand export NO_PNG_PKG_MANGLE=1 %: dh $@ --with=python3 check: # Sanity-check before upload. find -name debian -prune -o -name \*.py -print | xargs py3compile find -type f \( -name \*.pyc -o -name \*.pyo \) -print0 | xargs -0r rm -f find -type d -name __pycache__ -print0 | xargs -0r rm -rf # Check the syntax of any shell scripts. set -e; for x in $$(find -type f -print0 | xargs -0 file -i | grep "text/x-shellscript" | cut -d':' -f1); do \ sh -n $$x; \ done # Check the syntax of any Python scripts. ./tests/run-pyflakes # Check that we can build all the GRUB binaries (don't actually ship these though) # build without the MINGW32 binary as it would require apt-get source to work on binary build PATCHES=/dev/null ./tests/grub-binaries override_dh_clean: check dh_clean cd $(CURDIR)/po; make clean override_dh_auto_clean: set -ex; for python in $(shell py3versions -r); do \ $$python setup.py build; \ done; override_dh_auto_build: set -ex; for python in $(shell py3versions -r); do \ $$python setup.py build; \ done; override_dh_auto_install: set -ex; for python in $(shell py3versions -r); do \ $$python setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb; \ done; override_dh_python3: dh_python3 --shebang=/usr/bin/python3 dell-recovery/debian/changelog0000664000000000000000000026055512312225633013632 0ustar dell-recovery (1.31) trusty; urgency=low * refresh grub2 patches for trusty grub2 2.02~beta2-7. * fix some deprecated usage of python3 w/ gtk * drop argument in find_partitions() * Update to udisks2. Drop support for older udisks and devkit-disks (LP: #1288253) * debian/control: new standards version * set booting kernel name to vmlinuz.efi now. * drop old GRUB patches, only want to be booting to trusty+ now. * disable dereference in building initrd. -- Mario Limonciello Wed, 19 Mar 2014 00:30:55 -0500 dell-recovery (1.30.1) trusty; urgency=medium * Rewrite the python shebang path to /usr/bin/python3. -- Matthias Klose Thu, 20 Feb 2014 16:06:21 +0100 dell-recovery (1.30) saucy; urgency=low [ Michael Vogt ] * debian/dell-recovery.postinst: - use python3 -c 'import Dell' as its py3 only (LP: #1199776) -- Mario Limonciello Mon, 30 Sep 2013 13:13:56 -0500 dell-recovery (1.29) saucy; urgency=low [ Mario Limonciello ] * fix the prefix for grub2 ISO bootloader build. * Add a basic tool for installing a BIOS update. * During postinst if the BIOS update GRUB option wasn't installed during OOBE, add it. * Fix udev rules for udisks1->udisks2. * Correct some misuses of request_mount causing crashes (LP: #1173688) * Modify the ubiquity desktop file to run in automatic mode too in case it was executed from that desktop file. * Correct some deprecated GI imports. [ Martin Pitt ] * Dell/driver_gtk.py: Port from ConsoleKit to logind. -- Mario Limonciello Thu, 02 May 2013 13:04:19 -0500 dell-recovery (1.28) raring; urgency=low [ Mario Limonciello ] * Add another override for post rts deliverables to on ISO grub configuration. * Disable swap in very large memory configurations ( >32GB ). * Split out swap test to avoid code duplication. * Move os-prober test out of chroot section to guarantee passing in other scenarios. * Remove unused UUID statement from bootstrap. * If preseeded to 'factory', automatically install to the first hard disk on the system. * Fix a typographical error causing dell-recovery.seed, gfx.seed, and wlan.seed to not get loaded. * Make the debconf updates work in stage 1 in the 'factory' preseeded automagic case. * Rebase GRUB patches on GRUB 2.00 * recovery_backend: Set the genisoimage call to nonblocking on Popen. * merge in precise GRUB patch reworks. * build using ming-w64 rather than mingw32. * drop extra has_key reference. * grub-setup -> grub-bios-setup * drop support for oneiric and precise. enough has changed that the code base won't work there anymore. * Merge translations from LP. New Driver Tool: * Drop ancient modalias installation on 01-jockey late script. * 01-jockey: Call update-initramfs w/ full path. * recovery_xml: Return all matching nodes for a tag, not just one. * recovery_common: Cleanup standalone files if in walk_cleanup list. * recovery_common: Add an environment feature to fetch_output. * recovery_common/dell-bootstrap: move ISO_MOUNT and CDROM_MOUNT. * recovery_common/dell-bootstrap: Move upgrade and autoinstall calculation. * Introduce new driver package installation tool. * Add a helper script that can be used to manually upgrade an old format package to be usable in driver package installation tool. * Don't install signed bootloaders in the OS, require that we're booted into them from the ISO and install from there. [ Liu Hao-Ran ] * No longer run with nomodeset to prevent kernel oops on quantal kernels. * Set the security host for preseed. * Add secure boot support. * Adjust string for dell-recovery/disable-driver-install (LP: #1103810) -- Mario Limonciello Mon, 25 Feb 2013 13:24:02 -0600 dell-recovery (1.27build1) raring; urgency=low * Rebuild against python3.3. -- Dmitrijs Ledkovs Fri, 26 Oct 2012 18:55:48 +0100 dell-recovery (1.27) quantal; urgency=low [ Mario Limonciello ] * Forwardport fix from precise branch to fix 64GB SSD recipe. * Add support to override preseed and GRUB cmdline configurations for updated gfx and wlan peripherals. [ Shih-Yuan Lee ] * Add debug support for SVGDIR. [ Adam Conrad ] * xz-lzma has been rolled into xz-utils, as of 5.1.1alpha+20120614-1 -- Mario Limonciello Wed, 20 Jun 2012 07:56:47 -0500 dell-recovery (1.26) quantal; urgency=low * Capture more debugging information in genisoimage failures in logs. * Fix logic for adding updated dell-recovery deb to avoid double inclusions. * Strip stdout when capturing information in debug mode. * Add an extra stanza indicating what to do with existing EFI partitions to workaround the regression caused by the fix to bug 855871. -- Mario Limonciello Mon, 11 Jun 2012 18:24:08 -0500 dell-recovery (1.25) quantal; urgency=low [ Mario Limonciello ] * Pass the destination as found in the SDR to target system. * Drop OIE support. Only used for 10.10 release. * Fix lintian NMU override to include wildcard. * debian/control: bump to standards 3.9.3. * In builder mode, don't allow proceeding with an unknown base image. * For default distributor (via lsb_release), make sure it's lower case. * Don't allow the create_ubuntu backend to even attempt making ISO images when the recovery partition only contains Windows. * Enable logging by default on the backend to /var/log/dell-recovery.log * Increase the debugging logging covereage on the backend. * Output exceptions sent from the backend to frontend terminal too. * Increase debugging logging for uuid writer. * If no language set, preseed en_US.UTF-8 instead of en. * Python 3 port: - dell-bootstrap: Set the bootloader path to a raw string literal. - ubiquity plugins: set shebang to python3 to match other ubiquity plugins. - For fetch_output's subprocess call, encode data sent as utf8. - Import GLib from gi.repository. - Drop the debian_support version test in the GTK frontend. Older versions of dell-recovery will fail in more creative ways now. - Add a quick hack around debian_support version test in the backend until python3 support for python-debian shows up. - Remove unused utf8_strings argument in python3 dbus. - Drop python2 compatibility. - debian/control: Add python3 build depends/depends/python stanzas - debian/rules: Build for only python3. - debian/control: drop python-vte - debian/control: update to python3-progressbar recommends (not yet in ubuntu though). - Update bto autobuilder for changes in python3-progressbar. - Fix dbus service activation unicode issues by sourcing /etc/default/locale before spawning service. - Write new UUID in binary mode. * Update translations from launchpad. * dell-recovery-bootloader: - Add a quantal set of patches. Currently duplicated from precise. Expectation is that during quantal GRUB2 will be updated and these would no longer be symlinks to precise, so this will avoid an upgrade problem. [ Colin Watson ] * Port to Python 3: - Use Python 3-compatible print functions. - Use "except Exception as e" syntax rather than the old-style "except Exception, e". - Use "raise Exception(value)" syntax rather than the old-style "raise Exception, value". - Only pass unicode=True to gettext.install in Python 2. - Open subprocesses with universal_newlines=True when expecting to read text from them. On Python 2, this only enables \r\n conversion and the like, but on Python 3 this also causes subprocess-related file objects to read str rather than bytes. - Use 'isinstance(obj, collections.Callable)' instead of 'callable(obj)' in Python 3. - Open files in binary mode where necessary. - Use new-style octal literals. - Use "key in mapping" rather than "mapping.has_key(key)". - Port to python-apt 0.8 API. - Use "dict.items()" rather than "dict.iteritems()". - Make XML handling more explicit about binary/text distinctions so that it works with Python 3. - Modernise use of unittest methods. -- Mario Limonciello Thu, 31 May 2012 17:11:43 -0500 dell-recovery (1.24) precise; urgency=low * Disable memory check for swap determination. -- Mario Limonciello Mon, 23 Apr 2012 17:15:25 -0500 dell-recovery (1.23) precise; urgency=low * Disable unnecessary efiemu in the 32 bit factory bootloader. Prevents failed postinst due to grub2 1.99-18ubuntu1. -- Mario Limonciello Thu, 22 Mar 2012 17:02:41 -0500 dell-recovery (1.22) precise; urgency=low * Drop new_autotools.patch. It's no longer necessary with GRUB2 1.99-17ubuntu1. -- Mario Limonciello Wed, 07 Mar 2012 16:31:31 -0600 dell-recovery (1.21) precise; urgency=low * If any directories are found in /kernel on the CD, symlink them into /lib/modules on the overlayfs to ensure that alternate kernels can be loaded. * If 'prepackage.dell' is found in a tarball, ignore it. Only applicable for other tools that will be processing packages. * Merge translations from launchpad. -- Mario Limonciello Tue, 14 Feb 2012 18:57:06 -0600 dell-recovery (1.20) precise; urgency=low * Backport support for newer autotools to the precise set of grub patches. (LP: #928881) * Make the oneiric patches individual symlinks to precise patches rather than a full symlinked directory. - Add a preinst to clean up the old scenario. * debian/control: - Bump standards version. * Make 99_dell_recovery executable in source package. * Override more lintian warnings we don't care about. -- Mario Limonciello Thu, 09 Feb 2012 00:54:49 -0600 dell-recovery (1.19) precise; urgency=low * B-d on lsb-release too. -- Mario Limonciello Mon, 16 Jan 2012 16:12:34 -0600 dell-recovery (1.18) precise; urgency=low * Fix bootloader build test so it works on machines without dell-recovery already installed too to avoid a circular dependency. -- Mario Limonciello Mon, 16 Jan 2012 15:37:10 -0600 dell-recovery (1.17) precise; urgency=low * When showing the install complete screen, set the timeout to -1. * Include the 'vbe' module in factory mode too. * Add a test to make sure most GRUB binaries will build in the chroot. * Build depends on grub-efi-amd64-bin and grub-pc-bin to make sure we test building those bootloaders. * Remove the theme README (unnecessary) * Disable PNG optimization. Causes problems with GRUB2 theme (GRUB2 can't read indexed PNG's). * Make GRUB2 theme text white instead of black. -- Mario Limonciello Mon, 16 Jan 2012 14:50:35 -0600 dell-recovery (1.16) precise; urgency=low * When building binaries in grub/build-binaries.sh, also build an i386-pc DVD/USB bootloader. -- Mario Limonciello Tue, 10 Jan 2012 09:39:21 -0600 dell-recovery (1.15) precise; urgency=low * Update all screenshots in the help document to a current version. * Include a GRUB2 theme based on the default GRUB2 upstream theme. * If either an i386-pc or x86_64-efi based GRUB is found in the base image copy the theme in place. * If copying in the GRUB theme, check that the dejavu fonts are already generated. If not, create them. * In the grub.cfg files sourced before loading the common one on ISO/USB boot, load the appropriate backends first. -- Mario Limonciello Mon, 09 Jan 2012 19:45:45 -0600 dell-recovery (1.14) precise; urgency=low * Correct the location that GRUBCFG gets written in the binary writing tool. * Remove all instances of #UUID# not just the ones that start on the line. -- Mario Limonciello Tue, 03 Jan 2012 17:26:26 -0600 dell-recovery (1.13) precise; urgency=low [ Mario Limonciello ] * Include some updated patches from tyson for XML parsing in bad BIOS scenarios. * If no matching rec_part initially (blank disk) then don't crash * Don't build grub.cfg again if building binaries from bootstrap. * Query the release that we're running on to figure out whether to use patches for that release when building grub-setup.exe. * Include patches for both trunk and precise. * Fix file cleanup for dell-recovery-bootloader during purge. [ David Chen ] * Update the maximum size of a partition in the ubuntu.seed recipe to make sure partman doesn't make bad decisions about swap partition size when working with a >=2TB HDD. -- Mario Limonciello Wed, 14 Dec 2011 18:02:03 -0500 dell-recovery (1.12) precise; urgency=low [ Mario Limonciello ] * Update bootloader patches to current grub2-trunk. * Add support to run GRUB2 binary builder out of tree via environment variables. * Add a 10 second countdown and automatic reboot at the end of stage 1. * Call emergency.sh as LAST item in casper. * If running in persistent mode, forcefully regenerate the apt-cache on boot. * Copy files using a blacklist excluding casper-rw rather than an all inclusive whitelist. Fixes problems with persistence and dell-recovery. * Update the GPT utility partition creation logic. (LP: #877858) * Capture the state of all packages after post install scripts to prevent bad interactions with remove_oem_extras after ubiquity r5804 * Update README for more current information. * Don't regenerate the UUID during stage 1 anymore. Instead, pre-populate the disk's UUID on the kernel command line of the target install. Requires casper 1.290 or later to work. * Add some preseeded language fixes that are reactive to casper 1.289 from precise and 1.287.1 from oneiric. (LP: #888298) - Don't preseed the language in a standard preseed file as it overrides casper's attempt at setting the language. - Don't let dell-bootstrap set language based on locale. Only have it set English if no other language has been specified yet. * Create a flag on the disk filesystem to indicate an install is in progress. * Remove the casper UUID in SUCCESS_SCRIPT as well as stage 1 of recovery. This will prevent the RP from booting unless the UUID is present on /proc/cmdline. * Don't include grubenv in the files that go in /factory on install media. * Include a grub.cfg script that will be copied into the recovery media and source the proper location of installs in progress. * Always set install_finished on completion to ensure sticks aren't booted again. * Unset install_finished when mounting the RP during OOBE. [ Kent Baxley ] * Preseed chinese installs as zh_CN.UTF-8 rather than just zh_CN. Fixes translation problems for chinese factory installs. (LP: #879114) [ Chen Hsin-Yi ] * Encode all strings stored in XML as UTF-8. (LP: #890113) * Add a unit test to test for bug 890113. [ Chris Townsend ] * Fix pyflakes error of assigned but unused variable 'e' from UTF-8 XML patch. -- Mario Limonciello Thu, 17 Nov 2011 19:04:21 -0600 dell-recovery (1.11) oneiric; urgency=low * If dell-eula is in the pool mark it for installation. No changes for livefs type installs. * Only do the extra check for OS prober disable when using FIST. * Update translations from launchpad. -- Mario Limonciello Thu, 06 Oct 2011 16:07:30 -0500 dell-recovery (1.09) oneiric; urgency=low * In EFI installs, make sure to preseed the disk layout question to ensure the MBR isn't rewritten in the cleanup stages. * In late scripts, double check that os-prober is disabled. On EFI installs GRUB gets reinstalled, so the conffile might not persist. -- Mario Limonciello Wed, 28 Sep 2011 13:42:11 -0500 dell-recovery (1.08) oneiric; urgency=low * grub-setup.exe: ignore failures in the embedding test that may be caused by seek errors. * grub-setup.exe: set root_dev to dest_dev for the case that DEVICE needs to be specified (avoiding having to add -r for the same argument). -- Mario Limonciello Mon, 26 Sep 2011 16:05:30 -0500 dell-recovery (1.07) oneiric; urgency=low * Whoops, actually make the change I was talking about in 1.06. -- Mario Limonciello Wed, 14 Sep 2011 10:29:41 -0500 dell-recovery (1.06) oneiric; urgency=low * Recommends on dpkg-dev to fix mingw32 grub-setup.exe build. -- Mario Limonciello Wed, 14 Sep 2011 10:18:50 -0500 dell-recovery (1.05) oneiric; urgency=low * If binaries already have been built for dell-recovery-bootloader, don't build them again. * Clean up all dell-recovery-bootloader built binaries on purge. * Drop devicekit-disks references. * Add extra variables to hide EFI recovery partition as well as legacy recovery partition. * Add support to build grub-setup.exe for a mingw32 target in postinst. * Add depends of ubiquity for dell-recovery-bootloader and -casper to force them to be removed during OOBE. -- Mario Limonciello Tue, 13 Sep 2011 12:52:05 -0500 dell-recovery (1.04) oneiric; urgency=low * Drop all code related to setting default u/i. The u/i is always unity now, it will be 2D or 3D depending on the level of support of the graphics stack. * Pass utf8_strings=True to connect_to_signal handlers to fix handling of unicode directories for storing ISOs * Update translations from launchpad. -- Mario Limonciello Fri, 09 Sep 2011 17:52:51 -0500 dell-recovery (1.03) oneiric; urgency=low * Move all the "code" from dell-recovery-bootloader to it's own script so that it can be invoked from other places too. * Store all GRUB configs in /factory from now. Don't use /boot/grub as that's where the on disk bootloaders will land for EFI as well as later MBR installs. * Don't use grub-install at all. Always build bootloader binaries ourselves that rely items in /factory. * Set up the FAIL and SUCCESS scripts to work out of /factory for grubenv. * Reinstall GRUB to the MBR on fail if fist isn't around and not EFI. * Add missing RP declaration in FAIL-SCRIPT. * Lookup the recovery partition on demand during oem-config early command in case the devices were different during install. * Depending on when FAIL_COMMAND happened, we might have mountpoints. Clean them up. * Delay the write of the new MBR until the last step in the set active partition command. -- Mario Limonciello Thu, 08 Sep 2011 17:55:42 -0500 dell-recovery (1.02) oneiric; urgency=low * Install prebuilt GRUB to MBR and newly built GRUB to RP when possible. - This allows a more complete emulation of factory process by reusing the prebuilt GRUB in the recovery scenario too. - The GRUB on the RP will only be used to RED screen after the MBR is replaced. * Only delete *.{dll|exe|bat} from /factory so that prebuilt GRUB binaries can be reused in other scenarios too. * Include the embedded GRUB configuration for prebuilt i386 and x86_efi-efi binaries. * Allow building both x86_64 and i386-pc prebuilt images if the -bin packages are installed for both. * Recommends grub-pc-bin and grub-efi-amd64-bin instead of grub-pc and grub-efi-amd64. -- Mario Limonciello Wed, 07 Sep 2011 14:03:58 -0500 dell-recovery (1.01) oneiric; urgency=low * produce both i386-pc and x86_64-efi outputs in dell-recovery-bootloader. * Don't install grub to the RP during stage 2 anymore (no longer necessary with grub-setup in PE). * During stage 1 of recovery, if a pre-built EFI bootloader is present, install that rather than building a new one. -- Mario Limonciello Wed, 31 Aug 2011 14:31:11 -0500 dell-recovery (1.00) oneiric; urgency=low [ Kent Baxley ] * Move lzma and xz-lzma to "Depends" instead of "Recommends" * Fixed parted syntax error when naming the EFI System Partition in dell-boostrap.py [ Mario Limonciello ] * Clean up a bunch of pyflakes warnings and unused imports. * Add python syntax tests to clean rule, borrowed from ubiquity, Thanks Evan. * Merge with the natty EFI branch: - Add some new options for preseeding UP and RP. - Default the UP, RP, OS, Swap partitions to be dynamically determined. - Add a partition map to configure for either EFI, dual boot, or MBR installs. - Name the EFI system partition "EFI System Partition" to match partman-efi. - Match case insensitive on labels when trying to find partitions. * Default the recovery partition to be called 'OS' * Import translations from launchpad. * Merge the oneiric PyGI branch. - Convert all ubiquity pages to PyGI/Gtk3 - Convert OIE to PyGI -- Mario Limonciello Thu, 18 Aug 2011 12:26:57 -0700 dell-recovery (0.99) oneiric; urgency=low [ Kent Baxley ] * Fixed versioning comparison error in recovery_advanced_gtk.py. * Fixed memory calculation issue. (LP: #817610) [ Mario Limonciello ] * Convert the userspace application and daemon to PyGI and GTK3. * Correct chroot.sh's test for a symlink. * Fix the path of the driver disable func in dell-bootstrap. (LP: #790108) * Update late bind mounts to use /run rather than /var/run. * Add missing debhelper token to dell-recovery-bootloader postrm * Add missing ${misc:Depends} to other packages in debian/control. * Update standards version. * Switch to dh_python2. * Add recommends for lzma (needed on the backend when creating custom ISOs) * Drop support for GIT FID overlays. It's been unused for about 1 year now. All FID overlays should be in packages. * Fix the spacing in the tool_selector widgets from GTK3 transition. * Fix the line wrapping in the builder widgets from GTK3 transition. * Move both of the built in pages outside of the wizard declaration to make them easier to edit. * Update the network manager sleep/wake call for stuff used with the new API. * Prepopulate the new Gtk.Assistant sidebar with titles rather than individually. * Shorten titles of all pages since they now show in Gtk.Assistant sidebar. * Fix python aptdaemon for gtk3 transition. * Merge the natty EFI fixes branch: - Don't fail if /mnt/efi already exists in EFI install. - Install to EFI with the correct command. - Copy conf files to EFI system partition when applicable. - Set up the GRUB graphics and terminal for EFI. - Drop grub-pc to Recommends on dell-recovery-bootloader, but offer reduced functionality in the postinst when doing so to stop the installer from throwing a hissy fit about removing the bootloader package. - Disable failsafe graphics by default when installing in EFI mode. - Name the EFI system partition "ESP". * Import translations from LP. -- Mario Limonciello Wed, 03 Aug 2011 13:06:52 -0500 dell-recovery (0.98.2) natty-proposed; urgency=low * Fixed memory calculation issue. (LP: #817610) -- Kent Baxley Thu, 28 Jul 2011 11:02:55 -0500 dell-recovery (0.98.1) natty-proposed; urgency=low * Move os-prober out of $PATH if installing to a single OS machine to prevent WinPE from setting off os-prober during grub-installer. (LP: #771560) -- Mario Limonciello Tue, 26 Apr 2011 20:27:21 -0500 dell-recovery (0.98) natty; urgency=low * Check the extensions of all initrd's found in casper directories to avoid clashing in images that have more than one kernel in the squashfs. (LP: #737058) -- Mario Limonciello Mon, 25 Apr 2011 13:01:07 -0500 dell-recovery (0.97) natty; urgency=low * dell-default-ui: If chinese install, force to 2D unity. -- Mario Limonciello Fri, 15 Apr 2011 10:38:19 -0500 dell-recovery (0.96) natty; urgency=low * Revert "Check UP for SDR in MFG Media". Caused problems with factory process. -- Mario Limonciello Thu, 14 Apr 2011 16:07:45 -0500 dell-recovery (0.95) natty; urgency=low * If destination in SDR on recovery partition is CN, set the language to zh_CN. * Check UP for SDR in MFG Media. -- Mario Limonciello Mon, 11 Apr 2011 16:05:07 -0500 dell-recovery (0.94) natty; urgency=low * debs go into debs not debs/main. -- Mario Limonciello Fri, 08 Apr 2011 12:22:39 -0500 dell-recovery (0.93) natty; urgency=low * Fix missing OIE argument in recovery media generation from OOBE. * Sleep the network for the duration of the install in stage 2. -- Mario Limonciello Thu, 07 Apr 2011 16:06:44 -0500 dell-recovery (0.92) natty; urgency=low * casper/bootstrap: If an MBR was backed up before install started, restore it * ubiquity/bootstrap: If an MBR was backed up before install, don't restore DRMK or syslinux MBR's. * late: On bind mounts, create a compatibility symlink for /media/cdrom. - Fxies installation of packages in late. -- Mario Limonciello Wed, 30 Mar 2011 15:06:03 -0500 dell-recovery (0.91) natty; urgency=low * Move the choose-mirror sed workaround into SUCCESS_SCRIPT. Fixes problems with apt cache during install. (LP: #737066) * Explicitly remove all APT Package lists at the end of install to guarantee success during oem-config. -- Mario Limonciello Tue, 22 Mar 2011 20:04:32 -0500 dell-recovery (0.90) natty; urgency=low * Remove grubenv in dell-recovery-bootloader postinst too. * Make sure to align partitions properly and to start on 1M boundary instead. * Force a cleanup of memory used for apt cache. -- Mario Limonciello Thu, 17 Mar 2011 16:54:39 -0500 dell-recovery (0.89) natty; urgency=low * Fix a corner case found for injecting dell recovery. -- Mario Limonciello Fri, 04 Mar 2011 12:17:16 -0600 dell-recovery (0.88) natty; urgency=low * Don't run os-prober during install unless dual boot. * debian/control: - Depends on dpkg-repack. * If the dell-recovery instance is running from the same series (eg natty) as the recovery partition: - Check the latest version in the recovery partition - Compare to the running version. - If the running version is newer, include it in the new image that was generated. - This is meant for the SRU case. If an SRU is pushed for say 0.88.1 then that SRU could be included in target media too. -- Mario Limonciello Thu, 03 Mar 2011 16:40:41 -0600 dell-recovery (0.87) natty; urgency=low * Fix disk creation in non DRMK case. * A bit of an experiment: - Force installation to run in safe graphics mode. -- Mario Limonciello Wed, 02 Mar 2011 14:25:55 -0600 dell-recovery (0.86) natty; urgency=low * Drop the hack for LP: #650703 now that there is a proper solution in ubiquity. -- Mario Limonciello Sun, 20 Feb 2011 06:08:39 -0600 dell-recovery (0.85) natty; urgency=low * Add a hack for LP: #650703 to not allow oem-config to start on the rc runlevel stopping to prevent a race between gdm and oem-config. - If a proper solution is added to oem-config/ubiquity, this hack can be dropped. -- Mario Limonciello Mon, 14 Feb 2011 18:40:40 -0600 dell-recovery (0.84) natty; urgency=low * OIE Archives: use tar format instead of tar.gz. - This is mostly because of limitations of tar.exe for WinPE. - A lot of the content (debs and squashfs) are already compressed using gzip, bz2, or lzma anyway. * Include a grubenv in factory config. * In recovery partition grub.cfg, use $prefix rather than hardcoding. * In recovery partition grub.cfg, use -- to delimit the end of line. * After SUCCESS, clean up the factory directory (regardless of if this was a factory install). -- Mario Limonciello Thu, 10 Feb 2011 17:45:27 -0600 dell-recovery (0.83) natty; urgency=low * Move the UP partition writing code to common so it can be called more easily outside of ubiquity if necessary. * Rewrite the UP bootsector if running in OIE mode. * dell-recovery-bootloader: - Set the prefix to /factory. * In OIE mode, generate a gzip'ed tarball rather than ISO image. * Create OIE images in their own directory. * Create an OIE diskpart recipe with the OIE image (w/ cushion of 300mb). * Update translations from Launchpad. * Update OIE help page for above changes. -- Mario Limonciello Thu, 10 Feb 2011 00:33:54 -0600 dell-recovery (0.82) natty; urgency=low * Preseed the new ubiquity/poweroff parameter to false for the standard recovery process to allow the reboot to work by default. * Update SUCCESS/FAIL late scripts to the updated location for grubenv. -- Mario Limonciello Sat, 05 Feb 2011 01:16:46 -0600 dell-recovery (0.81) natty; urgency=low * In the wizard and in bto autobuilder offer a new option to run an image in OIE mode. This connects the image through all of the plumbing from 0.80 and also disables it after the first successful run through. * With several different distinct installation methods, we don't know how we booted necessarily. However, for a utility partition to function, a DOS MBR is required by the end of install. Test the MD5 of the first 440 bytes of the MBR to make sure that it's one that we support. * Add support on the OIE page to specify custom scripts for SUCCESS or FAIL scenarios. - Update the BTO autobuilder - Update the GTK page - Update the backend - Update the documentation * Update translations from launchpad. -- Mario Limonciello Thu, 03 Feb 2011 18:44:44 -0600 dell-recovery (0.80) natty; urgency=low * If the kernel command line option 'oie' is found, enable OIE green/red screen. * Turn off OIE image runs after install. * BTO Autobuilder: - Touch the file as the user running autobuilder so it's owned by them rather than root when finished. - Add support for [native] isos. * Don't propogate dell-recovery configuration options through the command line. Instead store them in preseed/dell-recovery.seed on the recovery partition. * Support reading in old preseed/dell-recovery.seed from recovery partition before starting. * Fix the default preseed to not ask questions about the keyboard for newer versions of console-setup in natty. * Make OIE a debian template that can be preseeded and enabled from the GUI. -- Mario Limonciello Tue, 01 Feb 2011 02:18:38 -0600 dell-recovery (0.79) natty; urgency=low * Update UI setting logic to the current names of sessions in 11.04. It will still need to be adjusted based upon requirements. * Run usb-creator-gtk under dbus-launch too. It seems to allow more errors to propogate up when necessary. * Disable UI overrides. Default to Unity on all devices for now. -- Mario Limonciello Thu, 20 Jan 2011 15:54:44 -0600 dell-recovery (0.78) natty; urgency=low * Correct a rounding error when calculating the size of the resultant utility partition during recovery that would cause otherwise failed recoveries. * Add a more in depth workaround for bug 700910. * Create 'reset' modalias files to block driver installation. * Automatically mark all upgradable packages in the apt cache for upgrade. * Store ISOs created during OOBE in the user's Downloads directory * Add an optional method to directly invoke the burner during first boot. (disabled initially) * Attempt to invoke 'usb-creator-gtk' as the user 'oem' to help work around SIGSEGV's happening when launched as root. -- Mario Limonciello Tue, 18 Jan 2011 20:26:15 -0600 dell-recovery (0.77) natty; urgency=low * bootstrap: set the proper types in the population array. New GTK seems to be more picky. -- Mario Limonciello Wed, 12 Jan 2011 10:33:12 -0600 dell-recovery (0.76) natty; urgency=low [ Mario Limonciello ] * Add a new binary package, dell-recovery-bootloader. * Translate the recovery line that is inserted into grub.cfg based upon the initial language selected during OOBE. * Include a Chinese translation of the above. * Use dbus-launch to start brasero (LP: #698347) * Remove superfolous --set parameters in grub.cfg's. * Adjust to current modules available in natty for bootloader postinst. * If the utility partition is corrupted, abort DRMK install, but don't cause the installer to crash. * If a package specifies a modaliases field, don't mark it for automatic installation if it's in debs/main. * Mark Jockey to install both free and non-free drivers. * On native BTO compatible images make sure to record in bto.xml that they're native during stage1. * On native BTO compatible images also record the date during stage1. * Add a test for bug 700910. If encountered, skip that phase of install. * Update translations from Launchpad. [ Bryan Kemp ] * Updated Error string for non Dell/Alienware Systems * Added support for Alienware platforms -- Mario Limonciello Tue, 11 Jan 2011 01:46:01 -0600 dell-recovery (0.75) natty; urgency=low * Adjust the memory calculation to use /sys/firmware/memmap as dmi-available-memory is no longer available in natty. * Check for an omsk recovery option in /proc/cmdline and in the squashfs during the initrd. If it's found, don't run standard recovery/install. * Make sure /var/log/syslog actually exists before backing it up. * Check for running on an omsk image, and force dual boot to true if so. * During OOBE save the first set language as the language that recovery from HDD is ran as. (LP: #687480) * When the grub menu is regenerated, make sure LANG is properly set. * Fix widget translation for gtk Buttons. * Fix a backend crash when running in a more translated chinese. * Fix a backend crash with unicode paths. * Make sure the GRUB locale is properly set before rebooting in recovery. * Update translations from launchpad. -- Mario Limonciello Tue, 14 Dec 2010 23:25:52 -0600 dell-recovery (0.74) natty; urgency=low * Reset the location that grub is installed and looked for on the RP to be /boot/grub rather than /grub. - This has implications for the dual boot configuration. Now to activate a reinstall, /boot/grub/grub.cfg needs to be placed on the recovery partition. The logic will still prefer one on the OS paritition however. - This also means that 0.74 and later are incompatible with any earlier BTO frameworks. If this is used on something earlier than 11.04, then the integrated BTO framework from this package should be used instead. * If an image already provides a grub.cfg or common.cfg in /boot/grub, back it up to $file.old while building a recovery partition and restore it when rebuilding the image again. * Check that the RP is actually a Linux RP before adding to the grub.cfg. * Test for 99_dell_recovery rather than trusting find_partitions when offering the recovery from the OS option. -- Mario Limonciello Wed, 10 Nov 2010 17:35:46 -0600 dell-recovery (0.73) natty; urgency=low * Fix the dual boot seed's command a little * Add support to boot loopback mounted ISO images on the recovery partition. - They must be titled 'ubuntu.iso' to function because some parts of the code can't dynamically detect the filename. * Run oem-config early and late commands from a shell script rather than a long chained list of && commands. * Remove the functionality of setting the pool command. * Add a new black_tree function that copies files off of a blacklist. * Only mount the ISO for SDR explosion when in a non-standalone ISO. * Add support for installing to a primary or logical partition. * When installing in logical partition mode, generate g2ldr on the partition of the primary OS. - This will chainload a /grub/grub.cfg from the recovery partition for recovery purposes. - This will chainload a /boot/grub/grub.cfg from the Linux OS partition for standard purposes. * Copy grub configuration files to the RP in dual boot mode so they can be executed from a Windows utility. * Build g2ldr earlier so that it can be used during install. -- Mario Limonciello Wed, 03 Nov 2010 00:49:00 -0500 dell-recovery (0.72) natty; urgency=low * Pull a lot of the FID tree directly into this package. * Add a new package, dell-recovery-casper intended to be installed in a livefs seed in order to add dell-recovery support directly to an initrd. * Detect if there is no scripts/bootstrap.sh in image, then try to put it into the initrd. * Set the recovery_type to a new "dynamic" setting by default. This will probe for recovery partitions to find one that matches the booted device. * Modify the dual boot seed option to now be boolean. * Add support for a deb only FID overlay. * Test the initrd for containing 99dell_bootstrap too. * Show a spinner while testing the initrd (it can take a while now). * Produce a bto.xml rather than a collection of bto_* files. * Allow any return arguments for dbus_sync calls. * Only write out an xml file with padding if it's a new file. * Merge in the manufacturing site time zone logic. * Move the utility partition code out of this package and into a new dell-drmk package. * Add missing dependency on genisoimage. -- Mario Limonciello Fri, 15 Oct 2010 16:48:24 -0500 dell-recovery (0.71) maverick; urgency=low * Adjust the sandybridge blacklist to match that in the latest compiz. (LP: #644372) * Ubiquity bootstrap: sync before reboots. -- Mario Limonciello Tue, 21 Sep 2010 09:40:31 -0500 dell-recovery (0.70) maverick; urgency=low * Fix recovery from recovery of a recovery. (LP: #643889) -- Mario Limonciello Mon, 20 Sep 2010 16:10:17 -0500 dell-recovery (0.69) maverick; urgency=low * Unset dbus session address before spawning burning apps for recovery media. - Recent versions of ubiquity (2.3.18+) set the dbus session address in the environment. This causes issues because root can't speak on the session bus (and that's what plugininstall.py runs as). -- Mario Limonciello Fri, 17 Sep 2010 13:34:42 -0500 dell-recovery (0.68) maverick; urgency=low * Add another id to blacklist for sugar bay. Thanks Robert Hooker! * Include the architecture in the target ISO names. * Add one more rotational character to allow a full rotation. * Dynamically populate the list of available UI's. * For atom class, if une-efl is available, set to that by default. -- Mario Limonciello Thu, 16 Sep 2010 19:11:45 -0500 dell-recovery (0.67) maverick; urgency=low * Parse the architecture of debs in debs/main to help figure out which to install. * Modify the dell-default-ui logic to match goals better for 10.10. * Run dell-default-ui during install rather than on first boot. * Preseed any advanced questions in case this is non-RP install. * Update the text for the restart dialog. * In the swap recipe fixup, detect large memory (>= 4GB) and don't create swap in these scenarios either. * Fix the efi set_advanced logic to not accidentally force msdos. -- Mario Limonciello Mon, 13 Sep 2010 17:29:23 -0500 dell-recovery (0.66) maverick; urgency=low [ Mario Limonciello ] * If boot/grub/efi.img is found, create a mutlti-catalog ISO image. * Support FISH packages of nested archives for OIE. * Support media that uses GRUB to boot. * Mark a boot as an EFI boot if /sys/firmware/efi exists too. * Run grub-install in EFI mode too (it will use efibootmgr for us) * Fix Y-align on some labels. * If a disk is grub based, don't include the isolinux directory in the ISO. * Be more rigid about the scenarios that grub gets reinstalled on first boot. * Don't run part of the recovery plugin in bootstrap mode. * If dmi-available-memory isn't available (such as x86_64), fall back to /proc/meminfo. * No need to run efibootmgr to cleanup after install, the OS handles it. * Fixup creating media from recovery partitions containing eltorito.img. * Make sure the image complete dialog is centered. * Import translations from launchpad. [ Peter Petrakis ] * Autobuilder Frontend: - Cleanup of help text. - Add support to set iso prefix. - Add support to set specific dell-recovery package. - Add an option to skip the local git tree update. -- Mario Limonciello Thu, 09 Sep 2010 19:29:19 -0500 dell-recovery (0.65) maverick; urgency=low [ Mario Limonciello ] * Save files in XDG Downloads directory by default (LP: #616671) * Re-encode strings to utf8 when checking ISOs in builder mode. (LP: #616663) * Remove unused misc import in dell-recovery ubiquity plugin. * If choosing resize mode, still hide the UI pieces that make the page grow. * Clean up pylint warnings and errors in the ubiquity plugins. * Don't allow the bootstrap plugin to run if not in automatic mode. * Hide the plugin_widgets page in factory mode to prevent the app from growing and showing the wrong sized slideshow. [ Peter Petrakis ] * Add bto-autobuilder for standalone build features. (LP: #619452) -- Mario Limonciello Tue, 17 Aug 2010 15:42:17 -0500 dell-recovery (0.64) maverick; urgency=low [ Mario Limonciello ] * Use the newly available progress bar from all ubiquity plugins to display status while building the RP. * Split out the propagated kernel options into their own file, to make sure they are common to the RP after install too. * If common.cfg is missing, don't flip out. * Make sure that BOOT_IMAGE is not propagating into the RP. * Always output the name of the plugin in debug strings. * Fix backwards list for une/ude in UI chooser. * Correct a rounding regression with the switch to parted for making partitions. * Add some additional debugging for all installs to share more about the creation of the UP and grub. * Strip the stray characters at the end of extra command line. * Backup the logs to the RP at the end of building RP for later debug purposes. * When booting grub from partition 4, search that partition before the rp for a common.cfg [ Peter Petrakis ] * Record the base iso used in the bto_manifest * Calculate the md5sum of each driver fish and record it in bto_md5sum -- Mario Limonciello Tue, 10 Aug 2010 20:16:46 -0500 dell-recovery (0.63) maverick; urgency=low * Fix a regression with tgz type fish packages from previous pylint cleanup due to tarfile not containing an __exit__ method. * When operating on a newer ubiquity version, hide the progress_section at window bottom. * Drop the title string on the bootstrap page. It looks funny. * Don't propagate BOOT_IMAGE either to target system. * Add a title string to the recovery page, it looks funny without it. -- Mario Limonciello Thu, 05 Aug 2010 17:43:39 -0500 dell-recovery (0.62) maverick; urgency=low * Work around a bug with interactions between a non-KMS plymouth and casper running when VT7 is active by not running casper stop if 'noprompt' is not present in /proc/cmdline. * Add a (hidden) advanced settings popup window for dell-bootstrap. * New side effects for the advanced settings popup: - All advanced configuration options get propogated to the /proc/cmdline used during installation (off the RP). - The number of callbacks, set_, and get_ functions needed to be reduced to allow code to be reused. - All template questions that were used a lot were reused multiple times now have common definitions to avoid keeping the strings all over. - Set the table of advanced features inactive when running on non-genuine HW and also when running in HDD recovery mode. * Set type as the last action in updating the UI to avoid dual boot settings mucking with it. * Drop the dell-language ubiquity plugin. It was only used to keep a constant title, which ubiqutiy now has support for. * Merge in the dell-default-ui plugin from dell-oobe (which is now unnecessary). * Merge translations from launchpad. -- Mario Limonciello Mon, 02 Aug 2010 18:37:18 -0500 dell-recovery (0.61) maverick; urgency=low [ Mario Limonciello ] * Be clearer in the logging what "Fixed up device" means. * Don't show an error for being unable to run dell-recovery in non-oem mode. * Don't override the ubiquity title with a hack anymore. Rely on doing this via ubiquity/custom_title_text in the preseed. * Make adjustments to be compatible with the ubiquity Maverick redesign. - Don't modify step_label. - Add a plugin_title key so that we show title_section. * Update deprecated ParseSection for TagSection in dell-bootstrap. * Add a new method to the backend that causes the system to be prepared to run in recovery mode on the next boot. * Correct usage of the builtin function 'filter'. Thanks Peter Petrakis. * Add basic support for a new start page that isn't part of GTKAsssitant allowing the use of menus, more dialogs, and launching restoration directly from a frontend. * Cleanup a variety of warnings that pylint was throwing. * Update translations from launchpad. -- Mario Limonciello Sat, 24 Jul 2010 17:52:27 -0500 dell-recovery (0.60) maverick; urgency=low * When genisoimage fails, be more informative in it's error message to the user about why it may have failed. * Merge translations from launchpad. * Mark some more strings translatable that previously weren't. * For FISH scripts, just execute them rather than special casing python and shell. This means all scripts need #!/bin/sh or #!/bin/python at the top. * If FIST is found, don't extract the UP. This means factory process ( of some sort ) * Reverse the order of calling /tmp/set_active_partition and SUCCESS_SCRIPT to prevent problems with BTO Anywhere. * When calling scripts in non-negotiable, don't use exec. (LP: #602414) * Update for deprecated isInstalled to use is_installed instead. * Add a new tri-state knob for configuring the behavior of swap dell-recovery/swap = (true, [dynamic], false) - false will force swap on - false will force swap off - dynamic (default) will detect small drives (<=64GB). If one of these is found, disable the creation of a swap partition. (LP: #601780) * Disable terminal spawning if debug-ubiquity mode is enabled since the same effect can be achieved with ctrl-alt-T. * Drop support for running in virtualbox. If it's actually desirable, vbox has support to modify the DMI information. * For grub conffiles, write out in the new 10.10 syntax when working with newer media. * Write out a UUID to search for in the grub conffile in the event that it's not actually on hd0. -- Mario Limonciello Thu, 17 Jun 2010 15:09:45 -0500 dell-recovery (0.59) maverick; urgency=low * Add a new preseedable option to set a disk layout (supports mbr or gpt). - During install if we are in GPT mode (but not EFI), then install grub to the partition as our success failover * If we detect /proc/efi on the system, force the disk layout to gpt. * Use efibootmgr to twiddle the NVRAM to set the active device if on an EFI system. * Drop old fdisk based hacks for making partition tables when in mbr mode. - Now use a parted wrapper. - python-parted would be nice to use, but would add another dependency. - parted_server/partman would be nice too, but are a little cumbersome to work with outside the context of d-i or ubiquity partitioning. * Don't try to build a recovery partition if we detect that we are booted to the same device. * Drop kexec support. * When working in gpt mode, workaround a partman-partitioning bug that would otherwise prevent the bootloader from being installed. -- Mario Limonciello Fri, 11 Jun 2010 16:33:48 -0500 dell-recovery (0.58) lucid; urgency=low * Adjust alignment from ubiquity changes in v2.2.23. - Bootstrap page now has yalign 0 and no fixed width - Recovery Media creation page, yalign 0 and remove some fixed widths * Merge translations from launchpad. -- Mario Limonciello Mon, 26 Apr 2010 14:59:06 -0500 dell-recovery (0.57) lucid; urgency=low [ Mario Limonciello ] * Import translations from launchpad. * Add the ability to disable nvidia driver installation during install too. * Add an additional postinstallation script directory for non-negotiable items shipped with this package. * Add a script to call the DKMS autoinstallation script to catch any modules that may have failed to build/install during install such as PAE kernels. (LP: #563906) * match_system_device: Don't allow matching anything without a 0x preceding it. - Still allows base 16 ints - Still allows base 16 ints encapsulated in a string * Invert topdown for match system device. * Ignore devices / vendor id that are too long. * Add a test to test all devices on a system to the source package. [ James Ferguson ] * match_system_device: Don't recursively follow symlinks after the first level. -- Mario Limonciello Wed, 21 Apr 2010 23:12:35 -0500 dell-recovery (0.56) lucid; urgency=low * Handle the exception that no casper UUID or no initrd are in the image by displaying it more nicely. - Although we can probably work around this, it will be troublesome down the road, so it's better to catch it and notify the user it's a broken image. * Try harder to detect the locale chosen at bootstrap. * Filter more gfxboot menu selections from propagating through the system from the locale that they had selected. * Default to use git:// protocol rather than http://. It's far quicker for checkouts anyhow. * Render the icon at 128x128 to avoid GTK warnings. * Don't remove any items during SDR or UP explosion. Rely on them being cleaned up at during the success command instead. * Shuffle the widgets around on the bootstrap page so that they stop getting clipped when translations are loaded. * Move gtk.Spinner into an eventbox so that glade doesn't nuke it every time the gtk.Builder file is modified. * Fix up the padding a little bit on the create recovery media page. * Import translations from launchpad. * Set the cancel button to an imported Cancel rather than always english. -- Mario Limonciello Sat, 17 Apr 2010 12:55:03 -0500 dell-recovery (0.55) lucid; urgency=low * Add support for type 0x27 partitions (NTFS Win7 Recovery partition). * When first building the UP, check for all possible upimg filenames. * Add two binary files taken directory from factory process that are used to produce a compatible MBR and PBR such that DellDiags can be launched from a BIOS menu. * Use some crafty maneuvering to create the UP using parted rather than mkfs.vfat. The latter appears to not properly fill out bytes 11-35 of the PBR causing it to not be bootable. * Take the necessary bytes out of the two binary files to place them in place, making the PBR properly bootable. * debian/control: - Drop recommends for syslinux since we use our own mbr now. * When operating in ubiquity debug mode, expose exceptions even if we're in a factory boot. * If we didn't include an autoexec.bat/config.sys (as is the case from normal DellDiags releases), then make the files we need to be bootable. * Update icon to new Dell branding icon and render it at a higher resolution. * Do a better job at filtering command line options that shouldn't propagate to the target system. * Replace dell-dvd png with an svg so that is scales better at high resolution. * Filter extra kernel command line arguments in all scenarios, not just if dell-recovery is in the kernel command line. * Shuffle the dell-bootstrap plugin to come before language again. - This will allow us to use debian-installer/language to preseed the install to a particular language. - This also allows the rest of the UI to be customized besides just the dell-bootstrap plugin. * Fix translation support. We should be able to load translations for all widgets now. * Introduce a 3rd ubiquity plugin that forces the title of the parent window. This is necessary because bootstrap runs before the language page, which which reset the title again. - Only load it if we don't have dell-recovery/recovery_type on kernel command line (which means factory mode) * Adjust the names of some of the templates to not show items as bold in the bootstrap plugin. -- Mario Limonciello Thu, 15 Apr 2010 00:55:47 -0500 dell-recovery (0.54) lucid; urgency=low * Fix a crash in HDD mode from get_selected_device not being initialized in that context. * Import translations from launchpad. -- Mario Limonciello Sun, 11 Apr 2010 00:38:17 -0500 dell-recovery (0.53) lucid; urgency=low * Add a preseedable template to mark which partition should be active after a successful installation. - For an installation that is resizing another OS, don't set this key. * Pull in portions of the SUCCESS, FAIL, and chroot scripts to this package. - The ones on the recovery partition will still be executed if they exist, but they will also be removed after execution. * Produce a shell script to make sure that sfdisk is called on the right device. * Don't copy kernel command line parameters to the extra debug options in the recovery partition grub.cfg * Don't propagate debian-installer preseeds through. * Add a preseedsable template to mark which partition should be active after a failed installation. * If active or failed partition isn't preseeded, set a sane default for the resize case. * Don't propagate any ubiquity (automatic-ubiquity, debug-ubiquity) kernel command lines through to the actual system install. * When in dual boot mode, don't install grub onto the RP. * When in dual boot mode, calculate the size of and produce additional partitions for the other OS to install into. * When in dual boot mode, install grub onto the 4th partition so that install can kick itself off. * When in dual boot mode, don't offer the resize options. -- Mario Limonciello Sat, 10 Apr 2010 10:30:05 -0500 dell-recovery (0.52) lucid; urgency=low * dell-bootstrap: - Actually append drivers to the to_remove list - Allow multiple drivers to be blocked from install (by comma separated list). - On the debug image, output the version number. - Enable some level of translation. It's still got some issues, but is better than before. * Add an argument to check the currently installed version. * Only import GTK for the necessary pieces. * backend: - Add a new function: query_have_dell_recovery that will determine if a dell-recovery deb or rpm is on the filesystem of an image or in a BTO tree. * builder: - If dell-recovery isn't included in the chosen image or in the chosen FID tree, then support injecting it into the image. - Make sure to clean up dynamic buttons when necessary. * Don't allow building the list store if git was installed and removed. * Catch exceptions when errors happen installing packages. * Import translations from launchpad. -- Mario Limonciello Mon, 05 Apr 2010 22:50:45 -0500 dell-recovery (0.51) lucid; urgency=low * Don't fail reinstall if missing an SDR. * Import translations from launchpad. * Add a new template: dell-recovery/disable-driver-install, which will block the installation of a preseeded list of drivers during postinstall phase from Jockey. * When running in ubiquity debug mode, spawn a terminal to use. * Add a new dual boot template used to enable a dual boot preseed. * Propagate the dual boot parameters through the command line on installation * Add a new template: dell-recovery/dual_boot_seed. - This template's primary purpose is to add an additional seed to stack on the default seed. - When configured, the dell-recovery, dell-oobe, and dell-eula packages will not be installed. - For this to work, you need to be using casper 1.215 or later. -- Mario Limonciello Thu, 01 Apr 2010 19:07:49 -0500 dell-recovery (0.50) lucid; urgency=low * Add some strings that may be used in a EULA plugin. * Set the orientation to vertical on some vboxes that were showing horizontal. * GTK Frontend: - Raise exceptions when having errors initializing the backend. * BTO Frontend: - Rename fish page to drivers page - Guard drivers page from same file multiple times - Add a new applications page that matches applications to SRVs * Backend: - Support building a folder of SRVs that will be processed in the ubiquity frontend. * Bootstrap: - Add support to scan the RP for an SDR and explode SRVs that match it. - Automatically remove all SRVs after explosion. -- Mario Limonciello Wed, 31 Mar 2010 03:31:26 -0500 dell-recovery (0.49) lucid; urgency=low * Another correction that should help widget translation in BTO builder mode. * If the media contains a pool script, then configure it to be called during the oem-config early command. * When propagating kernel parameters, filter out any dell-recovery/ specific ones. * Ensure that the recovery partition is mounted read only during the OOBE. * Add a new template for preseeding the pool rebuild command used during install as well as during OOBE early preparation. * Import translations from launchpad. -- Mario Limonciello Mon, 29 Mar 2010 01:16:58 -0500 dell-recovery (0.48) lucid; urgency=low * Dell/recovery_common.py: - Introduce a python version of create-new-uuid that is more flexible on names of casper uuid's and formats of initrds. - Move walk_cleanup here. * Dell/recovery_backend.py: - Don't preserve symlinks on the overlay of the FID tree. Can cause issues during generation. - Move the walk_cleanup function out - Use the python version of create-new-uuid instead. * debian/control: - Recommends for parted. - Drop git-core from recommends. it will be pulled in during runtime if needed. * ubiquity/bootstrap: - Hide loopback devices from being offered. - Always replace a grub.cfg on the recovery partition. - Automatically propagate any extra kernel command line options (after --) into the installed system and any grub menu recovery options. - Add the builder into the ubiquity array of builders so it can be translated. * ubiquity/dell-recovery: - Add the builder into the ubiquity array of builders so it can be translated. * Update text for reboot dialog to not tell people to take out their media so soon. It's actually OK now to do an install with the media in the drive too. * Mark all BTO image builder strings for translation too. * Enable translation for all GTK based frontends, not just standard. * create-new-uuid: - Drop, superceded by a python version * Update translations from launchpad. -- Mario Limonciello Sat, 27 Mar 2010 05:05:35 -0500 dell-recovery (0.47) lucid; urgency=low * Fix timestamp on stepDellBootstrap.ui to fix FTBFS. * Update translations from launchpad. -- Mario Limonciello Wed, 24 Mar 2010 20:18:49 -0500 dell-recovery (0.46) lucid; urgency=low * Default to a 32mb UP rather than no UP if upimg.bin is missing. * Add support to also extract a .zip or .tgz for a UP rather than an image. * Move the UP explosion step to the beginning of install rather than during the RP build. * Allow handling early exceptions. For interactive type installs, show the error. For noninteractive installs, the error will be logged in syslog. * Offer in the frontend to produce an image with a utility partition in BTO mode. * Fix the frontend to declare the intro page as an intro page and all other pages as progress pages. * Move the declarations of valid up names to recovery_common. * In the backend, clear out any existing UP's in an image if we are providing a new one. * Add logic to process .zip and .tgz type UP's in the backend. * Update translations from launchpad. * Install the 99_dell_recovery in /usr/share/dell/grub rather than /usr/share/dell. * Move grub.cfg from the ubuntu-fid tree into dell-recovery. * Move the functions for dynamically filling out grub files into recovery_common. * Dynamically fill grub.cfg's partition and OS information out. * Clean up the text for the reboot dialog to clarify the action that needs to happen. * Add a tooltip to the dell-dvd image to show the device the recovery media is mounted on, for debug purposes. * Convert the swap detection unmount routine to use udisks. * Convert the install disk detection routine to use udisks. * No longer rely on the preseeded value for partman-auto/disks. We'll be detecting entirely independently now for that. * Since we can more accurately detect disks, don't enable EDD for any of the default boot options anymore. * Set the default recovery partition grub menu colors to red/white rather than red/black to better emulate what we see in the factory with failures. * Detect invalid recovery partition filesystems and notify the user. * Send the detected potential devices list to the frontend. * Allow the user to select a different disk than the first one in the UI if they would like to. * Add support for FAT32 LBA. * Default to FAT32 LBA. -- Mario Limonciello Wed, 24 Mar 2010 19:34:52 -0500 dell-recovery (0.45) lucid; urgency=low * Remove the bootsplash theming as it may be adding an unnecessary delta to boot speed. * Only install dell-recovery if we have an RP during the install and will be going through the OOBE from the Linux side. * Hide NTFS based WinRE partitions (whether they have linux content or not) * Add basic support for installing from alternative partition types. - Support NTFS and VFAT initially - Don't hardcode the mount type when mounting freshly formatted partitions. - Don't install grub to an NTFS RP during factory install, kexec, or post reboot situations. - Iterate the labels before the devices. Inefficient, but saves us trouble from the wrong device getting picked up early. - Allow detection of recovery partitions to pick up NTFS w/ the right label (RECOVERY) * Use udisks to find the details for the RP rather than parsing files manually in /dev * Don't install the grub.d line on all systems with dell-recovery. Instead during OOBE, detect if there is an RP and conditionally install it. * During the backend's create_ubuntu function, check for .disk/info to verify this is really a partition containing Ubuntu. * Adjust spacing on the bootstrap page. * Don't show HDD recovery if not genuine. * Dynamically fill the content of the 99_dell_recovery during OOBE. * Catch errors trying to cleanup during unmount on the backend. * Import translations from launchpad. -- Mario Limonciello Fri, 19 Mar 2010 16:08:52 -0500 dell-recovery (0.44) lucid; urgency=low Ubiquity bootstrap plugin: * Run after the language page rather than before all pages. This should allow the UI to be fully translated (if available). * Set the icon for recovery media to 'desktop' rather than 'start-here'. The default 'start-here' icon isn't very visible. * Use partx to force an update to the kernel about what devices are on the system after removing them using parted during bootstrap. * Also cleanup extended partitions. Some assumptions are made here, so this might need to be expanded upon if it breaks. * Update boot background to reflect new branding. * Add help text to explain the minimum size necessary for flash drives. * Move the info_window into the main window rather than as a popup. * Clean up some unnecessary widgets from the bootstrap page. * Hide close/minimize from any popup windows. * Draw attention away from the steps portion of the window by setting it non sensitive and hiding it when the recovery partition build starts. * Fix whitelist building for dell-bootstrap to not miss files in the root directory. Recovery Backend: * List out any FISH packages in a bto_manifest that gets stored in the ISO. -- Mario Limonciello Tue, 16 Mar 2010 13:40:15 -0500 dell-recovery (0.43) lucid; urgency=low * Add a new function to recovery_common to support checking if the devices in a system match an ID. * Use sysfs to read dmi info rather than dmidecode. * Add all the strings from the ubiquity pages to debian/templates, which should enable translation for all of them. * Don't raise permissions for check vendor anymore since it's just parsing. * Always try to install dell-recovery, and adobe-flashplugin even if they aren't in debs/main. * Don't show device nodes on the summary page. * Merge translations from launchpad. -- Mario Limonciello Thu, 11 Mar 2010 18:39:51 -0600 dell-recovery (0.42) lucid; urgency=low * Unbreak BTO image builder mode from previous commit. -- Mario Limonciello Tue, 09 Mar 2010 18:38:29 -0600 dell-recovery (0.41) lucid; urgency=low * Ask for PW only after last wizard page. -- Mario Limonciello Tue, 09 Mar 2010 09:52:19 -0600 dell-recovery (0.40) lucid; urgency=low * Create separate udev rules for devkit and udisks since they need to match on different things. * ubiquity/dell-recovery.py: - Only show the page if a dvd or usb burner is available. No use showing when the only option is "None" - Update the Install class to use current ubiquity functions. * ubiquity/dell-bootstrap.py: - Only touch the oem-config run file if oem-config was preseeded. - Allow starting from a partition called RECOVERY in case we came from a Win7 RE. -- Mario Limonciello Sun, 07 Mar 2010 01:12:28 -0600 dell-recovery (0.39) lucid; urgency=low * dell-bootstrap: - Unset oem-config/{early,late}_commands when doing an install that doesn't include an RP. - Fill in the data dynamically for the oem-config early command. - Reference partition numbers and /cdrom mount from variables to more easily change later as necessary. - Use the casper init script to cache all the binaries and libraries needed to reboot. * Allow setting the OS and Swap partitions that are cleared during install from preseed parameters, dell-recovery/{os_partition, swap_partition} * Remove unused has_separator from ubiquity bootstrap plugin. * Adjust 99_dell_recovery to refer to ubuntu.seed instead for reinstall. * Don't allow the recovery window to be closed or minimized. * Disable kexec by default. It appears to cause problems on non-KMS HW. -- Mario Limonciello Fri, 05 Mar 2010 17:48:57 -0600 dell-recovery (0.38) lucid; urgency=low * dell-bootstrap: - Don't eject the media for the user. This appears to cause some problems with current daily media in that portions of the squashfs needed for displaying that dialog haven't yet been cached. -- Mario Limonciello Tue, 23 Feb 2010 15:47:48 -0600 dell-recovery (0.37) lucid; urgency=low * Port another missed area from devkit-disks to udisks. * debian/control: - drop python-central build depends. - Enhances: ubiquity-frontend-gtk - Recommends: syslinux * Add a function to ensure this is running on Dell hardware during OEM config. * Move white_tree into common to allow it to be used by the ubiquity GUI too. * Introduce bootstrap mode if the package is installed pre-ubiquity run. - (N/A) for oem-config run. - Causes the bootstrap/ portion of git to be unnecessary - Pulls in some of the post install portions of git to earlier in the install. - (LP: #525136) * debian/postinst: - Don't fail if dbus can't be reloaded. * Only ask for permissions to mount hard drives, feel free to loop mount devices without additional permissions. -- Mario Limonciello Mon, 22 Feb 2010 19:21:08 -0600 dell-recovery (0.36) lucid; urgency=low * Fix translations stuff so that we only use one template (dell-recovery) that should be imported from Launchpad in a mergable branch. * Don't continually loop mount ISOs when they are selected in the GUI. Most systems run out of loopback devices at 7 and dell-recovery doesn't like that too much. * Encode strings that sent over dbus when mounting directories (LP: #514452) * debian/control: - Add a depends on udisks. * Add support for UDisks, followed by falling back to Devkit-disks and lastly HAL. * Convert package to dh7 rather than cdbs. * Convert package to a v3 source package. -- Mario Limonciello Tue, 16 Feb 2010 17:39:18 -0600 dell-recovery (0.35) lucid; urgency=low * Correct a minor error that prevented the backend from running when a utility partition was present but upimg.bin wasn't on the recovery partition. -- Mario Limonciello Fri, 15 Jan 2010 17:03:11 -0600 dell-recovery (0.34) lucid; urgency=low * Put all the builder code into it's own python file to clean up the frontend code. Move the logic to determine if to use builder into the main startup script instead. * Remove extraneous builder_ prefix from all builder specific functions. * Fix running in builder mode on a non-preloaded system. * Clean up arguments in main launcher script that determines whether or not to be running in builder mode. * Move the logic to increment the BTO version into the various frontends rather than incrementing during the backend query_bto_version method. * Only offer DVD burning if DVD burning hardware is on the system. * Rather than just greying out the DVD burner radio buttons when DVD burning hardware isn't available, hide the widgets all together to avoid confusion as to why the widget is greyed out. * Clean up the OEM config page to line up the widgets and add some nicer icons. * Add icons for the normal GTK frontend's media selection page. * Don't show the full path on the summary page. Prevents the GUI from growing in size (in normal circumstances) in builder mode. * Use query_iso_information in the frontend rather than query_bto_version to ensure the information being queried is reflective of the OS on the RP not the running OS. * Move the default value of 'A00' when no BTO version is defined into the increment_bto_version function used in recovery_common. * Automatically close the fetch window when complete. * Don't show the terminal for fetching, but allow it to be expanded. * Add a cancel button to the fetch if the user wants to abort it. * Add a pulsing thread to the backend so that it can report during activities that it has no idea when they will be done. * If the progress is -1% done, pulse the bar in the GTK frontend * In the OEM-Config frontend, show some ASCII characters when we don't know the true progress. -- Mario Limonciello Thu, 14 Jan 2010 18:29:58 -0600 dell-recovery (0.33) lucid; urgency=low [ Mario Limonciello ] * Split out the common stuff that is used by the backend and frontend into a common python script. * Don't require an utility partition to declare a system a preloaded system. During development it's possible that UP's aren't included. * Move the function to find burners into -common so alternative frontends can use it. * Introduce an OEM-Config plugin to force the user to at least be questioned to create recovery media for the first time. * Don't install an icon on new users' desktops anymore since the questions are posed via OEM-config. * Clean up the old icon from the skel folder in case other new users are made. * debian/control: Mark as enhances for oem-config-gtk * Fix "Error parsing subject struct" when running on Lucid (no apparent regressions on Karmic with this fix) * Since .desktop file is no longer on the desktop, rename it's action to be more appropriate. * Add a lintian overrides file for errors that are irrelevant. * Add translation support to templates for strings shown only in Ubiquity. * If git-core isn't installed, but the user is running in builder mode, offer to install it using aptdaemon if available. * debian/control: Recommends on python-aptdaemon-gtk * Prevent a crash if the git server is unaccessible when trying to fetch the list of items. [ Javier Collado ] * Use re to parse the BTO version number more flexibly. -- Mario Limonciello Wed, 06 Jan 2010 16:23:02 -0600 dell-recovery (0.32) karmic; urgency=low * Now that Dell's internal tools have support for FISH packages that are single debs, pdfs, python scripts or shell scripts not published in FI format, allow them on the FISH page. -- Mario Limonciello Thu, 03 Dec 2009 21:58:20 -0600 dell-recovery (0.31) karmic; urgency=low * Add support for reading .discinfo from RHEL disks. * When reading in a base image, set self.distributor before updating git info. * If lsb_release isn't available, set some sane variables. * Strip out the possible enterprise and server bits from lsb_release. * Catch exceptions when spawning the backend and try to log them if possible to improve debugability. * Hook up the command line argument --target to actually do things. * Test for "Download" in ~ before just assuming "Downloads" is our ideal dir. * In the backend, clobber all files with FID overlay regardless of date. This helps billerica images as well as FID changes that were created before an image was published. -- Mario Limonciello Wed, 18 Nov 2009 09:32:02 -0600 dell-recovery (0.30) karmic; urgency=low * Make the regeneration of the UUID optional, and only if the appropriate files are present. Allows Billerica images to proceed a little bit further. * Iterate the list of items in .disk/info to find the first floating point number to assign to the release series. -- Mario Limonciello Mon, 09 Nov 2009 17:32:32 -0600 dell-recovery (0.29) karmic; urgency=low * Add a short README directing users to the right places for HOWTOs. * Don't show X-rev tags in builder mode if A-rev tags are present unless an extra command line argument is added. * Don't erroneously call builder_fid_toggled a whole bunch of times when choosing an ISO image. * Optionally allow choosing branches via a command line override. Useful for one-off projects where tip is known stable. -- Mario Limonciello Thu, 05 Nov 2009 15:44:17 -0600 dell-recovery (0.28) karmic; urgency=low * if .disk/info exists, just assume ubuntu rather than trying to read a string out of it. Prevents issues with moblin and kubuntu images. * drop python-vte to recommends, and don't fail if it can't import. Just provide a warning about how builder mode will likely not work. * depends on policykit-1-gnome to ensure that the proper things to allow this to work on KDE are installed. -- Mario Limonciello Tue, 03 Nov 2009 13:21:17 -0600 dell-recovery (0.27) karmic; urgency=low * Don't import gtk.glade. It's not used anymore. * Set the backend timeout to 0. Prevents the app timing out inbetween long runs. * If the recovery partition is not detected, offer to run the application in BTO image builder mode. There aren't many other uses for it. -- Mario Limonciello Mon, 02 Nov 2009 12:22:18 -0600 dell-recovery (0.26) karmic; urgency=low * Introduce a builder mode that can be used for generating BTO images from their different components. * Rename existing method query_version to query_bto_version and only check it at the last step in case it gets filled earlier (with builder mode) * Correct an error in the backend handling code for when an image can't mount. * debian/control: - Depends on python-vte for builder git features. - Recommends on git-core, usb-creator-gtk - Bump standards version * Don't ask a question about where to store the ISO. Instead, lets always assume it ends up in Downloads. This is useful now because usb-creator will look there anyway by default. * Apply markup to the summary page in both modes. * Close the backend when we are finished, either from the close dialog or the success dialog. -- Mario Limonciello Fri, 30 Oct 2009 17:26:57 -0500 dell-recovery (0.25) karmic; urgency=low * Add support to the backend for querying/incrementing the version of the ISO via RP/bto_version. * Add support for the override the version of the ISO via a frontend command line argument. * Add support for the backend to write out RP/bto_version during ISO generation if it doesn't exist, and replace it if it does. * Add support for both initrd.lz and initrd.gz * sync bin/create-new-uuid with casper to add lzma support. * Rename the create function to create_ubuntu as realistically it's an ubuntu only backend. We'll need to evaluate a separate backend for other OSes, and then maybe create a common backend function that can be shared. * If the RP is already mounted before starting, try to use that old mount point if at all possible when querying existing BTO version. * Don't delete .exe and .sys files from the RP, just ignore them when creating an image. * Mount the RP read only. We really shouldn't be changing it with this tool anyway. This has huge side effects on how we have to recreate files in a temporary directory that will have to be changing rather than loop mounting them around. * Replace all string addition with os.path.join to avoid missing '/' characters. * Move all mounting and unmounting logic into singular functions. * Only unmount directories that we've mounted * Try to use existing system mount points if already mounted if possible. * Add support for producing an image from a directory, rather than mount point. * debian/postinst: - Refresh dbus rules on package install so it works immediately. * Be more informative about the status indicators. -- Mario Limonciello Mon, 19 Oct 2009 13:37:05 -0500 dell-recovery (0.24) karmic; urgency=low * Port over to polkit-1. * debian/control: - Depends on policykit-1. * Update translations from launchpad. -- Mario Limonciello Tue, 29 Sep 2009 16:24:36 -0500 dell-recovery (0.23) karmic; urgency=low * boot: - Use initrd.lz as Ubuntu 9.10+ switched to this. -- Mario Limonciello Thu, 30 Jul 2009 12:50:37 -0500 dell-recovery (0.22) karmic; urgency=low * recovery_frontend: - Support using usb-creator, usb-creator-gtk, or usb-creator-kde for burning ISO images to a USB stick. -- Mario Limonciello Mon, 27 Jul 2009 11:48:32 -0500 dell-recovery (0.21) karmic; urgency=low * boot: - Update to new syntax for the grub2 in Ubuntu 9.10. * udev: - Rename rule to have priority of 96. didn't work at 95. -- Mario Limonciello Wed, 22 Jul 2009 18:36:01 -0500 dell-recovery (0.20) karmic; urgency=low * udev: - Add a udev rule so that devicekit-disks will hide Dell recovery partitions on factory shipped Linux systems. * recovery_frontend: - Add support for devicekit-disks. If this fails, fall back to HAL. * debian/control: - Depends on devicekit-disks or hal for system detection. - Drop depends on python-glade2 * Migrate from libglade to gtkbuilder. -- Mario Limonciello Wed, 22 Jul 2009 18:13:20 -0500 dell-recovery (0.19) karmic; urgency=low * Add a manpage showing current usage. * COPYING: - Put a copy of the GPL2, not GPL3. * debian/control: - Set maintainer to have an @ubuntu.com - Add bzr info. - Set section more sanely to utils. - Set standards version to 3.8.1 (no changes necessary). - Add a Suggests for grub-pc. The app works fine without it, but is more feature-filled with it installed. * debian/changelog: - Update to be GPL2, not GPL3. -- Mario Limonciello Sat, 23 May 2009 14:28:45 -0500 dell-recovery (0.18) jaunty; urgency=low * Only fill in the UP or RP variables independently if they are already empty. * Don't offer a retry dialog in the event a burning fails. Some burners don't actually have reliable return codes. -- Mario Limonciello Tue, 28 Apr 2009 14:46:34 -0500 dell-recovery (0.17) jaunty; urgency=low * Add support for command line arguments. * Update string indicating recovery is complete. -- Mario Limonciello Fri, 10 Apr 2009 16:28:49 -0500 dell-recovery (0.16) jaunty; urgency=low * Add a COPYING file w/ license for when we start to make tarballs. * Add a CHANGES file (which is really just a symlink to debian/changelog) * Detect the filesystem of the rp. A Linux RP is vfat. Anything else means that it's not an RP. (Windows RP is ntfs-3g) -- Mario Limonciello Thu, 09 Apr 2009 17:55:03 -0500 dell-recovery (0.15) jaunty; urgency=low * Downgrade usb-creator to Recommends * Add brasero | nautilus-cd-burner to Recommends. * Add support for not using a burner. If none of the burning software above was detected, then we'll just default to creating an ISO somewhere. * Touch the file we are creating before actually creating it from the dbus backend. This makes the file owned by the first user who touched it (Us!) rather than root:root from the dbus backend. * Add optional support to use lsb-release to show information about what release this ISO is being generated for. * Fix a GTKWarning about a separator setting that was getting ignored. * Add translation support to the .desktop file. * Drop first run note. It wasn't working anyway. * Update translations from launchpad. * Add missing ${misc:Depends} to debian/control. * Update description in debian/control. * Add some artwork from dell-recovery directly to this package. * Remove explicitly hardcoded paths from .desktop file. * Explicitly set icon path in glade file instead. * Rename all translations from dell-recovery-LANG to LANG. See launchpad answers #66257 for more information. * Merge in grub2 bootsplash stuff to this package. We'll only show the bootsplash when the package is installed. This rids us of the last dependency on dell-artwork. * Update 06_dell_theme to not use deprecated methods from grub2 anymore. -- Mario Limonciello Thu, 02 Apr 2009 13:34:55 -0500 dell-recovery (0.14) jaunty; urgency=low * Rather than calling the backend with a gksudo wrapper, use policy kit to authorize it's call. * Call the backend via an async dbus call. The method to do this was borrowed from Jockey as normal async calls were mixing up exceptions and what not. * Rename progress_dialogs.glade to the more appropriate recovery_media_creator.glade. * Check for CD and USB burning applications when initializing the UI. If a particular type isn't found, then don't allow the application to run. * Add 99_dell_recovery (taken from china customizations) to the install. This will prepare dell-recovery for when grub2 is made default. * Update 99_dell_recovery to match the string that we have for grub1 -- Mario Limonciello Tue, 31 Mar 2009 18:18:02 -0500 dell-recovery (0.13) jaunty; urgency=low * Don't enable or disable volume manager anymore. Not necessary with the HAL FDI file we ship now. * Split up all activity between a frontend and backend script. This allows the GUI to run without root priv's and the actual script to run with root priv's. -- Mario Limonciello Tue, 24 Mar 2009 17:21:17 -0500 dell-recovery (0.12) jaunty; urgency=low * Cleanup an isolinux directory if it exists at the same time as a syslinux directory. * If the UP already exists, say if we are recovering from a recovery, no need to go and make it again. * Use brasero instead of nautilus-cd-burner since nautilus cd burner is no longer included in 9.04. -- Mario Limonciello Mon, 23 Mar 2009 15:13:01 -0500 dell-recovery (0.11) jaunty; urgency=low * Don't build the MBR backup when creating recovery media. We'll dynamically create the partition table instead. * Don't gzip the UP. We've plenty of space on the DVD media, so might as well speed up the process of backup and recovery. -- Mario Limonciello Tue, 17 Mar 2009 11:46:34 -0500 dell-recovery (0.10) jaunty; urgency=low * debian/control: - Drop dependency on menu. * debian/links: - Install actual .desktop file to /etc/skel rather than symlink. * import translations from launchpad. * Don't allow this tool to run on systems without a UP and RP. This is an undefined case that would likely fail anyway. -- Mario Limonciello Tue, 03 Mar 2009 12:39:41 -0600 dell-recovery (0.9) jaunty; urgency=low * Update FDI file for changes in jaunty. -- Mario Limonciello Wed, 25 Feb 2009 12:16:57 -0600 dell-recovery (0.8) jaunty; urgency=low * Add HAL FDI file for hiding recovery partition (LP: #325008) * Add updated translations from launchpad. -- Mario Limonciello Tue, 03 Feb 2009 14:38:41 -0600 dell-recovery (0.7) intrepid; urgency=low * Import more translations from launchpad. -- Mario Limonciello Wed, 26 Nov 2008 10:18:46 -0600 dell-recovery (0.6) intrepid; urgency=low * Add translations from launchpad. -- Mario Limonciello Tue, 25 Nov 2008 20:59:31 -0600 dell-recovery (0.5) intrepid; urgency=low * Move syslinux.cfg if it exists to isolinux.cfg. -- Mario Limonciello Tue, 25 Nov 2008 02:16:47 -0600 dell-recovery (0.4) intrepid; urgency=low * Allow retrying failed burns. This works around what appears to be either a GTK or nautilus-cd-burner bug where nautilus-cd-burner is crashing immediately. * Clean up some warnings on startup. * Remove old separators that were not necessary. * Add taskbar hints to all relevant dialogs. -- Mario Limonciello Mon, 24 Nov 2008 12:58:58 -0600 dell-recovery (0.3) intrepid; urgency=low * New release. - Move syslinux to isolinux in case we want to recover from a recovery. * Filter out all .sys files in / so that there aren't errors later with usb-creator. -- Mario Limonciello Wed, 05 Nov 2008 13:59:32 -0600 dell-recovery (0.2) intrepid; urgency=low * New release. - Adds USB Drive support - Adds a popup nag dialog * debian/control: - Bump standards version - Depend upon usb-creator for USB support. -- Mario Limonciello Fri, 31 Oct 2008 17:24:13 -0400 dell-recovery (0.1) hardy; urgency=low * Initial Release. -- Mario Limonciello Fri, 21 Mar 2008 18:58:40 -0500 dell-recovery/debian/dell-recovery-bootloader.preinst0000664000000000000000000000030511751021273020253 0ustar #!/bin/sh set -e LINK=/usr/share/dell/grub/patches/oneiric case "$1" in upgrade) if dpkg --compare-versions "$2" le "1.19" && [ -L $LINK ]; then rm -f $LINK fi esac #DEBHELPER# dell-recovery/udev/0000775000000000000000000000000012311717746011476 5ustar dell-recovery/udev/96-dell-recovery-partition.rules0000664000000000000000000000140212311717746017566 0ustar ACTION!="add|change", GOTO="dell_rp_end" SUBSYSTEM!="block", GOTO="dell_rp_end" #Factory shipped Dell linux boxes will always have #the second partition as a vfat with label "OS" or "install" #shouldn't clash with windows factory shipped systems #which may have "OS" as the third partition ENV{ID_FS_TYPE}=="vfat", ENV{ID_FS_LABEL}=="OS|install", ENV{UDISKS_PARTITION_NUMBER}=="2", ENV{UDISKS_IGNORE}="1", ENV{UDISKS_PARTITION_SCHEME}=="mbr" ENV{ID_FS_TYPE}=="vfat", ENV{ID_FS_LABEL}=="OS|install", ENV{UDISKS_PARTITION_NUMBER}=="3", ENV{UDISKS_IGNORE}="1", ENV{UDISKS_PARTITION_SCHEME}=="gpt" ENV{ID_FS_TYPE}=="ntfs", ENV{ID_FS_LABEL}=="RECOVERY", ENV{UDISKS_PARTITION_NUMBER}=="2", ENV{UDISKS_IGNORE}="1", ENV{UDISKS_PARTITION_SCHEME}=="mbr" LABEL="dell_rp_end" dell-recovery/CHANGES0000777000000000000000000000000011751021273014603 2debian/changelogustar dell-recovery/dell-recovery.10000664000000000000000000000161311751021273013360 0ustar .TH "DELL-RECOVERY-MEDIA" "1" "23 MAY 2009" "" "" .SH "NAME" dell\-recovery \- dell recovery suite .SH "DESCRIPTION" \fBdell\-recovery\fP is a tool for generating recovery media for Dell factory shipped systems. This media can then be used to rebuild a system with a factory image in the event of a hard drive failure. .SH "USAGE" dell\-recovery [\-h|\-\-help] [-u|\-\-up UP] [\-r|\-\-rp RP] [\-m|\-\-media TYPE] [\-|\-\-target TARGET] [\-o|\-\-overwrite] \-h, \-\-help Shows the application usage \-u, \-\-up Override detected utility partition with this file. \-r, \-\-rp Override detected recovery partition with this file. \-m, \-\-media Specify the media type to be burning [usb,dvd,iso] \-t, \-\-target Specify the location to store the image. \-o, \-\-overwrite Automatically override existing files. .SH "AUTHOR" \fBdell\-recovery\fP is by Mario Limonciello dell-recovery/build/0000755000000000000000000000000012311724102011610 5ustar dell-recovery/build/share/0000755000000000000000000000000012043102664012717 5ustar dell-recovery/build/share/applications/0000755000000000000000000000000012043102665015406 5ustar dell-recovery/build/share/applications/dell-recovery-media.desktop0000644000000000000000000000075712311724102022635 0ustar [Desktop Entry] Version=1.0 Encoding=UTF-8 Name=Dell Recovery Name[de]=Dell-Wiederherstellung Name[es]=Dell Recovery Name[fi]=Dell-palautus Name[hu]=Dell helyreállító Name[it]=Ripristino sistemi Dell Name[pt_BR]=Recuperação Dell Name[ru]=Утилита восстановления Dell Recovery Name[tr]=Dell Yedekleme Name[uk]=Dell Recovery Name[vi]=Dell Recovery Name[zh_CN]=戴尔系统恢复 Type=Application Terminal=false Exec=dell-recovery Icon=dell-dvd Categories=System;Settings dell-recovery/build/share/applications/dell-driver-installer.desktop0000644000000000000000000000031612311724102023177 0ustar [Desktop Entry] Version=1.0 Encoding=UTF-8 Name=Dell Driver Installer Type=Application Terminal=false Exec=dell-driver-installer Icon=dell-dvd Categories=System;Settings MimeType=application/x-dell-driver dell-recovery/build/share/polkit-1/0000755000000000000000000000000012043102664014357 5ustar dell-recovery/build/share/polkit-1/actions/0000755000000000000000000000000012043102664016017 5ustar dell-recovery/build/share/polkit-1/actions/com.dell.recoverymedia.policy0000644000000000000000000004712112311724102023572 0ustar Dell Recovery Media Creation Tool https://launchpad.net/dell-recovery dell-dvd Query BTO Version Запитване за BTO версия Sol·licitud de la versió de BTO BTO-Version abfragen Consulta versión BTO Tarkista BTO-versio Consultar a versión do BTO Upit BTO inačice BTO-verzió lekérdezése Interrogazione versione BTO Naar BTO-versie vragen Consultar versão do BTO Запрос версии BTO Fråga BTO-version Опитування версії BTO 查询 BTO 版本 System policy prevents reading raw devices Системните политики не позволяват четенето на блокови (raw) устройства La política del sistema no permet llegir dispositius en cru Systempolitik forhindrer læsning af raw enheder Systemrichtlinie verhindert das Lesen von Raw-Devices La política del sistema impide leer dispositivos raw Järjestelmän valtuutusasetukset estävät raakalaitteiden (raw) lukemisen Les rêgles système empêchent une lecture en brut sur des périphériques. A normativa do sistema impide ler dispositivos raw Politika sustava sprječava čitanje raw uređaja A rendszer házirendje megakadályozza a nyers eszközök olvasását La politica di sistema impedisce la lettura di dispositivi raw Polisi sistem menghalang baca raw device Systeem houdt lezen raw-apparaten tegen Políticas do sistema previnem a leitura de dispositivos brutos Política do sistema impede a leitura de dispositivos raw Системная политика предотвращает чтение RAW устройств System policy zabraňuje čítaniu raw jednotiek Systemprincip förhindrar läsning av obehandlade enheter Sistem ilkeleri, raw aygıtlarını okumayı engelliyor. Системними правилами заборонено читання з пристроїв з необробленими даними 系统策略阻止读取 raw 设备 yes yes yes Query ISO Information Запитване за ISO информация Sol·licitud d'informació de l'ISO ISO-Informationen abfragen Consultar información de ISO Tarkista ISO-tiedot Consultar información da imaxe ISO Upit ISO informacija ISO-információk lekérdezése Interrogazione infromazioni ISO ISO-informatie opvragen Consultar informação do BTO Запрос информации об ISO Fråga ISO-information Опитування відомостей щодо ISO 查询 ISO 信息 System policy prevents reading raw devices Системните политики не позволяват четенето на блокови (raw) устройства La política del sistema no permet llegir dispositius en cru Systempolitik forhindrer læsning af raw enheder Systemrichtlinie verhindert das Lesen von Raw-Devices La política del sistema impide leer dispositivos raw Järjestelmän valtuutusasetukset estävät raakalaitteiden (raw) lukemisen Les rêgles système empêchent une lecture en brut sur des périphériques. A normativa do sistema impide ler dispositivos raw Politika sustava sprječava čitanje raw uređaja A rendszer házirendje megakadályozza a nyers eszközök olvasását La politica di sistema impedisce la lettura di dispositivi raw Polisi sistem menghalang baca raw device Systeem houdt lezen raw-apparaten tegen Políticas do sistema previnem a leitura de dispositivos brutos Política do sistema impede a leitura de dispositivos raw Системная политика предотвращает чтение RAW устройств System policy zabraňuje čítaniu raw jednotiek Systemprincip förhindrar läsning av obehandlade enheter Sistem ilkeleri, raw aygıtlarını okumayı engelliyor. Системними правилами заборонено читання з пристроїв з необробленими даними 系统策略阻止读取 raw 设备 yes yes yes Restore to Factory state Auslieferungszustand wiederherstellen Restaurar a estado de fábrica Palauta tehdastilaan Visszaállítás gyári állapotra Ripristina le impostazioni di fabbrica Fabrieksinstellingen terugzetten Restaurar para o estado de Fábrica Восстановить первоначальное состояние Відновити початковий стан 恢复到出厂状态 System policy prevents changing system bootup Systemverwaltungsrichtlinien verhindern das Ändern der Systemstarteinstellungen La política del sistema impide cambios al arranque Järjestelmän käytännöt estävät järjestelmän käynnistyksen muuttamisen A rendszer házirendje megakadályozza a rendszerindítás módosítását La politica del sistema previene la modifica delle impostazioni di avvio Política do sistema impede a alteração da inicialização Политика системы предотвращает изменение загрузки системы Системними правилами заборонено зміну системи завантаження 系统策略阻止改变系统启动项 auth_admin_keep auth_admin_keep auth_admin_keep Boot utility partition to flash BIOS System policy prevents changing system bootup Systemverwaltungsrichtlinien verhindern das Ändern der Systemstarteinstellungen La política del sistema impide cambios al arranque Järjestelmän käytännöt estävät järjestelmän käynnistyksen muuttamisen A rendszer házirendje megakadályozza a rendszerindítás módosítását La politica del sistema previene la modifica delle impostazioni di avvio Política do sistema impede a alteração da inicialização Политика системы предотвращает изменение загрузки системы Системними правилами заборонено зміну системи завантаження 系统策略阻止改变系统启动项 auth_admin_keep auth_admin_keep auth_admin_keep Install Dell driver packages System policy prevents installing packages. auth_admin_keep auth_admin_keep auth_admin_keep Create/Assemble Dell Recovery ISO Създаване/Сглобяване на Dell Recovery ISO Dell-Wiederherstellungs-ISO-Abbild erstellen/zusammenstellen Crear/Ensamblar Dell Recovery ISO Luo/koosta Dell-palautus-ISO-levykuva Crear/Ensamblar a imaxe ISO de recupración de Dell Stvori/Sastavi Dell ISO oporavka Dell helyreállító ISO létrehozása/összeállítása Creazione/Assemblaggio ISO recupero Dell Sukurti Dell sistemos atkūrimo atvaizdį (ISO failą) Dell herstel-ISO aanmaken/samenstellen Criar/montar ISO recuperação da Dell Создать/Собрать диск восстановления Dell Skapa/Bygg ISO för Dell-återställning Створення/Збирання образу ISO для відновлення Dell 创建/集成 Dell 系统恢复 ISO System policy prevents reading raw devices Системните политики не позволяват четенето на блокови (raw) устройства La política del sistema no permet llegir dispositius en cru Systempolitik forhindrer læsning af raw enheder Systemrichtlinie verhindert das Lesen von Raw-Devices La política del sistema impide leer dispositivos raw Järjestelmän valtuutusasetukset estävät raakalaitteiden (raw) lukemisen Les rêgles système empêchent une lecture en brut sur des périphériques. A normativa do sistema impide ler dispositivos raw Politika sustava sprječava čitanje raw uređaja A rendszer házirendje megakadályozza a nyers eszközök olvasását La politica di sistema impedisce la lettura di dispositivi raw Polisi sistem menghalang baca raw device Systeem houdt lezen raw-apparaten tegen Políticas do sistema previnem a leitura de dispositivos brutos Política do sistema impede a leitura de dispositivos raw Системная политика предотвращает чтение RAW устройств System policy zabraňuje čítaniu raw jednotiek Systemprincip förhindrar läsning av obehandlade enheter Sistem ilkeleri, raw aygıtlarını okumayı engelliyor. Системними правилами заборонено читання з пристроїв з необробленими даними 系统策略阻止读取 raw 设备 auth_admin_keep auth_admin_keep auth_admin_keep Request closing the backend Заявка за затваряне на бекенда Sol·licitud de tancament del rerefons Das Schließen des Backends anfordern Petición de cierre del motor Pyydä taustaohjelman sulkemista Solicitar o pechado da infraestrutura Zatraži zatvaranje pozadinskog sustava A háttérprogram bezárásának kérése Richiesta chiusura backend Verzoek om de backend te sluiten Запрос закрытия бэкэнда Begär stängning av bakänden Запит на закриття допоміжної програми 请求关闭后台 System policy prevents closing processes without notice Системните политики не позволяват затварянето на процес без известие Systemrichtlinie verhindert das Schließen von Prozessen ohne Benachrichigung Las políticas del sistema no permiten cerrar procesos sin notificación Järjestelmän valtuutusasetukset estävät prosessien sulkemisen ilman ilmoitusta A normativa do sistema impide que peche procesos sen avisar Politika sustava sprječava zatvaranje procesa bez najave A rendszer házirendje megakadályozza a folyamatok figyelmeztetés nélküli bezárását La politica di sistema impedisce la chiusura dei processi senza avviso Systeembeleid staat niet toe dat processen zonder melding worden gesloten Política do sistema impede fechar processos sem avisar Системная политика предотвращает закрытие процессов без дополнительного уведомления пользователя Systemets policy förhindrar att processer stängs utan att informera om det Системні правила забороняють завершення роботи процесів без сповіщення користувача 系统策略不允许不经提示即结束进程。 yes yes yes Toggle Network Connectivity Netzwerkverbindung ändern Kytke verkkoyhteydet päälle tai pois Hálózati kapcsolat módosítása Commuta connettività di rete System policy prohibits changing network without user consent Die Systemrichtlinien untersagen die Änderung des Netzwerks ohne die Einwilligung des Benutzers Järjestelmäkäytäntö estää verkon muuttamista ilman käyttäjän hyväksyntää A rendszer házirendje megakadályozza a hálózat módosítását a felhasználó beleegyezése nélkül La politica di sistema proibisce il cambio della rete senza il consenso dell'utente yes yes yes dell-recovery/build/mo/0000755000000000000000000000000012043102664012230 5ustar dell-recovery/build/mo/ca/0000755000000000000000000000000012043102664012613 5ustar dell-recovery/build/mo/ca/LC_MESSAGES/0000755000000000000000000000000012043102664014400 5ustar dell-recovery/build/mo/ca/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000615212311724101017507 0ustar #4/L  & ;DG    ,H OcY (%N(c*<!2BV_  $ ENP+0## G Z s 4 T " * < [ c !{ # @  0 &O <v U , 6 M a   " #   ! (BTO Image Builder Mode)Adding in base imageApplicationAre you sure you want to cancel the Recovery Media creation process?Builder SummaryBuilding Dell Utility PartitionBuilding ISOCancel Recovery Media CreatorCannot connect to dbusChoose ImageConfirm SelectionsDVD+/-RW DiscDell Recovery Media CreatorDriverISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: IncludedMedia Type: Opening BurnerPackagesPermission DeniedQuery BTO VersionQuery ISO InformationRecovery Media Creation Process CompleteRecovery Partition: Regenerating UUID / Rebuilding initramfsRequest closing the backendSystem policy prevents reading raw devicesThis requires a USB flash drive with approximately 2GB free.This requires writable DVD media.USB Flash DriveUtility Partition: Version:Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-12-14 05:43+0000 Last-Translator: Mario Limonciello Language-Team: Catalan Language: ca MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) (mode de creació d'imatge BTO)S'està afegint a la imatge baseAplicacióSegur que voleu cancel·lar el procés de creació del suport de recuperació?Resum del creadorS'està creant la partició d'eines de DellS'està creant l'ISOCancel·la el creador de suports de recuperacióNo s'ha pogut connectar amb el DbusEscolliu la imatgeConfirmeu les seleccionsDisc DVD+/-RWCreador de suports de l'eina de recuperació de DellControladorImatge ISOSi voleu arxivar una altra còpia, la imatge generada s'ha emmagatzemat amb el nom: InclòsTipus de suport: S'està obrint l'enregistradorPaquetsS'ha denegat el permísSol·licitud de la versió de BTOSol·licitud d'informació de l'ISOS'ha completat el procés de creació del suport de recuperacióPartició de recuperació: S'està regenerant l'UUID / recreant l'initramfsSol·licitud de tancament del rerefonsLa política del sistema no permet llegir dispositius en cruAixò requereix un llapis de memòria USB amb aproximadament 2 GB d'espai disponible.Això requereix un suport DVD enregistrable.Llapis de memòria USBPartició d'eines: Versió:dell-recovery/build/mo/lt/0000755000000000000000000000000012043102664012647 5ustar dell-recovery/build/mo/lt/LC_MESSAGES/0000755000000000000000000000000012043102664014434 5ustar dell-recovery/build/mo/lt/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000637212311724101017547 0ustar ) I.}-_D P p} ! *:e y (2 =Uey$f'>P ; , M )d    6  *% P *l   #   # %8 B^ #          Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Any add-on drivers or applications that need to be integrated into the image can be added here.Are you sure you want to cancel the Recovery Media creation process?Building Dell Utility PartitionBuilding ISOCancel Recovery Media CreatorCannot connect to dbusChoose ImageConfirm SelectionsCreate/Assemble Dell Recovery ISODVD+/-RW DiscDell Recovery Media CreatorDetected Recovery PartitionDon't generate recovery media at this timeExtracted DirectoryISO ImageMedia Type: Opening BurnerPermission DeniedRecovery Media Creation Process CompleteRecovery Partition: Save recovery media to DVDSave recovery media to an external USB flash driveSelected Image Details:USB Flash DriveUtility Partition: Version:Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2011-11-10 14:06+0000 Last-Translator: Mantas Kriaučiūnas Language-Team: Lithuanian Language: lt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-11-11 04:54+0000 X-Generator: Launchpad (build 14277) Pastaba: Šiuo atveju jums reikės USB "flash" atmintuko, kuriame yra bent 2 GB laisvos vietos.Pastaba: Šiuo atveju jums reikės įrašomo DVD disko.Radau jau sukurtą atkūrimo atvaizdžio failą. Ar norite išmesti šį failą ir iš naujo sukurti sistemos atkūrimo atvaizdį?Čia galite pridėti papildomas programas, aparatinės įrangos valdykles ar kitą programinę įrangą, kurią norite įdėti į sistemos atkūrimo atvaizdį.Ar tikrai norite nutraukti atkūrimo laikmenos generavimą?Kuriamas Dell įrankių skirsnisKuriamas ISO atvaizdisNutraukti atkūrimo laikmenos generavimąNepavyko prisijungti prie dbusPasirinkite atvaizdįPatvirtinkite pasirinkimusSukurti Dell sistemos atkūrimo atvaizdį (ISO failą)DVD+/-RW diskasDell sistemos atkūrimo laikmenų įrankisAptiktas atkūrimo skirsnisNegeneruoti atkūrimo laikmenos šiuo metuIšskleistas aplankasISO atvaizdisLaikmenos tipas: Atveriama CD/DVD įrašymo programaPriėjimas uždraustasAtkūrimo laikmena sukurtaAtkūrimo skirsnis: Išsaugoti atkūrimo atvaizdį į DVDIšsaugoti atkūrimo atvaizdį į išimamą USB "flash" atmintukąPasirinkto atvaizdžio informacija:USB "Flash" atmintukasĮrankių skirsnis: Versija:dell-recovery/build/mo/zh_TW/0000755000000000000000000000000012043102664013263 5ustar dell-recovery/build/mo/zh_TW/LC_MESSAGES/0000755000000000000000000000000012043102664015050 5ustar dell-recovery/build/mo/zh_TW/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000117212311724101020154 0ustar <\pqL] mCannot connect to dbusOpening BurnerPermission DeniedProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-01-26 14:32+0000 Last-Translator: FULL NAME Language-Team: Chinese (Traditional) Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) 連接不到dbus啟動燒錄機權限不足dell-recovery/build/mo/he/0000755000000000000000000000000012043102664012624 5ustar dell-recovery/build/mo/he/LC_MESSAGES/0000755000000000000000000000000012043102664014411 5ustar dell-recovery/build/mo/he/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000204112311724101017511 0ustar  l  % .;J(\$.Skz 8 Cannot connect to dbusConfirm SelectionsISO ImageIncludedMedia Type: Opening BurnerPermission DeniedRecovery Media Creation Process CompleteRecovery Partition: Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-04-21 10:39+0000 Last-Translator: Yaron Language-Team: Hebrew Language: he MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) לא ניתן להתחבר אל dbusאימות הבחירהתמונת ISOנכללסוג המדיה: תכנת הצריבה נפתחתהגישה נדחתהתהליך יצירת מדיית השחזור הושלםמחיצת השחזור: dell-recovery/build/mo/nb/0000755000000000000000000000000012043102664012627 5ustar dell-recovery/build/mo/nb/LC_MESSAGES/0000755000000000000000000000000012043102664014414 5ustar dell-recovery/build/mo/nb/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000105612311724101017521 0ustar 4L`a dr DVD+/-RW DiscProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-01-26 15:14+0000 Last-Translator: Mario Limonciello Language-Team: Norwegian Bokmal Language: nb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) DVD+/-RW-platedell-recovery/build/mo/sv/0000755000000000000000000000000012043102664012660 5ustar dell-recovery/build/mo/sv/LC_MESSAGES/0000755000000000000000000000000012043102664014445 5ustar dell-recovery/build/mo/sv/LC_MESSAGES/dell-recovery.mo0000644000000000000000000001243212311724101017552 0ustar /C 73UkI. }:D *H _l! m9*U" c %2ASe({P( 3 O 2j   7 * }2 < !   3 <   ; ^8 V 8 'U &)1[v (%'4&^- #Y`)|$<'DL^9D&  '-+. ,& !*#$ /")(%  ERROR: This media is only valid on Dell systems.It is highly recommended that you generate media and store it in a safe place.Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Are you sure you want to cancel the Recovery Media creation process?Building Dell Utility PartitionBuilding ISOCancel Recovery Media CreatorCannot connect to dbusChoose ImageConfirm SelectionsCreate/Assemble Dell Recovery ISODVD+/-RW DiscDell Recovery Media CreatorDell Recovery Media can be used to restore your system to the same state as when it was first shipped to you.Detected Recovery PartitionDon't generate recovery media at this timeExtracted DirectoryFID framework built into BTO imageISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: Media Type: Opening BurnerPermission DeniedQuery BTO VersionQuery ISO InformationRecovery Media Creation Process CompleteRecovery Media can be generated later by choosing the tool from the System menu.Recovery Partition: Regenerating UUID / Rebuilding initramfsRequest closing the backendSave recovery media to DVDSave recovery media to an external USB flash driveSelected Image Details:Selected Overlay Details:System policy prevents closing processes without noticeSystem policy prevents reading raw devicesThe Base OS image provides the majority of the content for a BTO image. It can be a Vanilla OS image, or existing BTO Image.This requires a USB flash drive with approximately 2GB free.This requires writable DVD media.USB Flash DriveUtility Partition: Version:Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-03-18 23:07+0000 Last-Translator: Daniel Nylander Language-Team: Swedish Language: sv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) FEL: Detta media är endast giltigt på Dell-system.Det rekommenderas starkt att du genererar ett media och lagrar det på en säker plats.Observera: Detta kräver en USB-lagringsenhet med ungefär 2 GB ledigt utrymme.Observera: Detta kräver ett skrivbart DVD-media.En befintlig avbildning hittades (eventuellt från en tidigare körning). Vill du ta bort den gamla kopian och generera avbildningen igen?Är du säker på att du vill avbryta processen för att skapa återställningsmedia?Bygger Dell-verktygspartitionBygger ISOAvbryt skapandet av återställningsmediaKan inte ansluta till dbusVälj avbildningBekräftaSkapa/Bygg ISO för Dell-återställningDVD+/-RW-skivaSkapa återställningsmedia för DellÅterställningsmedia för Dell kan användas för att återställa din dator till samma tillstånd som den befann sig i när den levererades till dig.Identifierade återställningspartitionGenerera inte återställningsmedia för tillfälletExtraherad katalogFID-ramverk inbyggd i BTO-avbildningenISO-avbildningOm du vill arkivera en annan kopia så har den genererade avbildningen lagrats med filnamnet: Mediatyp: Öppnar brännareÅtkomst nekadFråga BTO-versionFråga ISO-informationÅterställningsmediat är färdigtÅterställningsmedia kan genereras senare genom att välja verktyget från System-menyn.Återställningspartition: Återgenererar UUID / Bygger om initramfsBegär stängning av bakändenSpara återställningsmedia till DVDSpara återställningsmedia till en extern USB-lagringsenhetDetaljer om vald avbildning:Detaljer om vald overlay:Systemets policy förhindrar att processer stängs utan att informera om detSystemprincip förhindrar läsning av obehandlade enheterBase OS-avbildningen tillhandahåller majoriteten av innehållet för en BTO-avbildning. Det kan vara en Vanilla OS-avbildning eller befintlig BTO-avbildning.Detta kräver en USB-lagringsenhet med ungefär 2 GB ledigt utrymme.Detta kräver ett skrivbart DVD-media.USB-enhetTillbehörspartition: Version:dell-recovery/build/mo/id/0000755000000000000000000000000012043102664012624 5ustar dell-recovery/build/mo/id/LC_MESSAGES/0000755000000000000000000000000012043102664014411 5ustar dell-recovery/build/mo/id/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000330212311724101017512 0ustar \   <I`s zc  ((Qfz7OXl  ]8 AN_ e(r   (BTO Image Builder Mode)Adding in base imageApplicationBuilder SummaryBuilding Dell Utility PartitionBuilding ISOCannot connect to dbusConfirm SelectionsDriverISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: IncludedMedia Type: Opening BurnerPackagesPermission DeniedRecovery Media Creation Process CompleteRecovery Partition: Utility Partition: Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-04-17 12:06+0000 Last-Translator: Andika Triwidada Language-Team: Indonesian Language: id MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) (Mode Pembangun Image BTO)Menambahkan image dasarAplikasiRingkasan PembangunMembangun Partisi Utilitas DellMembangun ISOTak bisa menyambung ke dbusKonfirmasi PilihanDriverImage ISOBila Anda ingin mengarsip salinan lain, image yang dibuat telah disimpan dengan nama berkas: TermasukTipe Media: Membuka PembakarPaketIzin DitolakProses Pembuatan Media Pemulihan SelesaiPartisi Pemulihan: Partisi Utilitas: dell-recovery/build/mo/hr/0000755000000000000000000000000012043102664012641 5ustar dell-recovery/build/mo/hr/LC_MESSAGES/0000755000000000000000000000000012043102664014426 5ustar dell-recovery/build/mo/hr/LC_MESSAGES/dell-recovery.mo0000644000000000000000000001254312311724101017536 0ustar 2C<HIL7cUI.;j}_D]  !$ FTmp*%"9 \cf   () PR  (   2 K c 7} * } <^ !     ~  B H J$2ovt3C!#B`p |L$j S #/>Qas&O3'Hp-91,|^9! 7D Y /*0.1!#)$-&'" 2%,+  (  ERROR: This media is only valid on Dell systems.It is highly recommended that you generate media and store it in a safe place.Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.Adding in base imageAn existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Any add-on drivers or applications that need to be integrated into the image can be added here.Are you sure you want to cancel the Recovery Media creation process?Building Dell Utility PartitionBuilding ISOCancel Recovery Media CreatorCannot connect to dbusChoose ImageConfirm SelectionsCreate/Assemble Dell Recovery ISODVD+/-RW DiscDell Recovery Media CreatorDell Recovery Media can be used to restore your system to the same state as when it was first shipped to you.Detected Recovery PartitionDon't generate recovery media at this timeExtracted DirectoryFID framework built into BTO imageISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: IncludedMedia Type: Opening BurnerPermission DeniedQuery BTO VersionQuery ISO InformationRecovery Media Creation Process CompleteRecovery Media can be generated later by choosing the tool from the System menu.Recovery Partition: Regenerating UUID / Rebuilding initramfsRequest closing the backendSave recovery media to DVDSave recovery media to an external USB flash driveSelected Image Details:Selected Overlay Details:System policy prevents closing processes without noticeSystem policy prevents reading raw devicesThe Base OS image provides the majority of the content for a BTO image. It can be a Vanilla OS image, or existing BTO Image.This requires a USB flash drive with approximately 2GB free.This requires writable DVD media.USB Flash DriveUtility Partition: Version:Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-03-18 19:50+0000 Last-Translator: Saša Teković Language-Team: Croatian Language: hr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) GREŠKA: Ovaj medij je važeći samo na Dellovim sustavima.Preporuka je da generirate medij i spremite ga na sigurno mjesto.Napomena: Ovo zahtijeva USB memoriju s oko 2 GB slobodnog prostora.Napomena: Ovo zahtijeva zapisivi DVD medij.Dodavanje u osnovnu slikuPronađena je postojeća slika (vjerojatno od prethodnog pokretanja). Želite li obrisati staru sliku i stvoriti novu?Bilo koji dodatni upravljački programi ili aplikacije koje bi se trebale integrirati u sliku, mogu se dodati ovdje.Jeste li sigurni da želite otkazati proces izrade medija oporavka?Izgradnja Dell uslužne particijeIzgradnja ISO-aOtkaži stvaratelja medija oporavkaSpajanje na dbus nije mogućeOdaberite slikuPotvrdi odabirStvori/Sastavi Dell ISO oporavkaDVD+/-RW medijStvaratelj Dell medija oporavkaDell medij oporavka se može upotrijebiti za vraćanje sustava u prvotno stanje kakvo je bilo kada vam je on bio isporučen.Pronađena particija oporavkaNemoj sada generirati medij oporavkaRaspakirani direktorijFID okvir ugrađen u BTO slikuISO slikaAko želite snimiti još jednu kopiju, generirana slika je spremljena pod nazivom: ObuhvaćenoVrsta medija: Otvaranje snimačaPristup odbijenUpit BTO inačiceUpit ISO informacijaProces izrade medija oporavka dovršenMedij oporavka se može generirati kasnije, odabirom alata iz izbornika Sustav.Particija oporavka: Regeneriranje UUID-a / ponovna izgradnja initramfsaZatraži zatvaranje pozadinskog sustavaSpremi medij oporavka na DVDSpremi medij oporavka na vanjsku USB memorijuDetalji odabrane slike:Detalji odabranog prekrivanja:Politika sustava sprječava zatvaranje procesa bez najavePolitika sustava sprječava čitanje raw uređajaSlika osnovnog sustava osigurava većinu sadržaja za BTO sliku. Ona može biti slika Vanilla OS-a ili postojeća BTO slika.Ovo zahtijeva USB memoriju s oko 2 GB slobodnog prostora.Ovo zahtijeva zapisivi DVD medij.USB memorijaUslužna particija: Inačica:dell-recovery/build/mo/fr/0000755000000000000000000000000012043102664012637 5ustar dell-recovery/build/mo/fr/LC_MESSAGES/0000755000000000000000000000000012043102664014424 5ustar dell-recovery/build/mo/fr/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000470012311724101017530 0ustar   I#.m}D _l    (#L*aFIQh:[3"1Tf( ;: LV        Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Are you sure you want to cancel the Recovery Media creation process?Building ISOCancel Recovery Media CreatorCannot connect to dbusChoose ImageConfirm SelectionsDVD+/-RW DiscDell Recovery Media CreatorISO ImageMedia Type: Opening BurnerPermission DeniedRecovery Media Creation Process CompleteRecovery Partition: System policy prevents reading raw devicesUSB Flash DriveVersion:Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-02-15 15:09+0000 Last-Translator: Emilien Klein Language-Team: French Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) Note : Cela nécessite une clé USB avec approximativement 2GiO de libre.Note : Cela nécessite un disque DVD inscriptible.Une image existante a été trouvée (probablement d'une exécution précédente). Voulez-vous enlever cette ancienne copie et régénérer l'image ?Êtes vous sur de vouloir annuler le processus de création du média de restauration Dell?Construction de l'ISOAnnuler la création du média de restauration DellImpossible de se connecter à dbusChoisir une imageConfirmer les sélectionsDisque DVD+/-RWCréateur du média de restauration DellImage ISOType de média : Ouverture du graveurPermission refuséeProcessus de création de supports de restauration terminéPartition de Restauration: Les rêgles système empêchent une lecture en brut sur des périphériques.Lecteur flash USBVersion :dell-recovery/build/mo/tr/0000755000000000000000000000000012043102664012655 5ustar dell-recovery/build/mo/tr/LC_MESSAGES/0000755000000000000000000000000012043102664014442 5ustar dell-recovery/build/mo/tr/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000707212311724101017553 0ustar $<5\0147KI.} zD    .<mX*   (1(CPl2*/Zj~* - ?D l 6 (  A  ) H ] o } w (% N X a s    1 c F \ "p 5 8 (1  #"  $!  ERROR: This media is only valid on Dell systems.Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?ApplicationAre you sure you want to cancel the Recovery Media creation process?Building ISOCancel Recovery Media CreatorCannot connect to dbusConfirm SelectionsDVD+/-RW DiscDell RecoveryDell Recovery Media CreatorDell Recovery Media can be used to restore your system to the same state as when it was first shipped to you.Don't generate recovery media at this timeDriverExceptionISO ImageMedia Type: Opening BurnerPackagesPermission DeniedRecovery Media Creation Process CompleteRecovery Media can be generated later by choosing the tool from the System menu.Recovery Partition: Restore SystemSave recovery media to DVDSave recovery media to an external USB flash driveSystem policy prevents reading raw devicesUSB Flash DriveUtility Partition: Version:_HelpProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-09-02 16:44+0000 Last-Translator: Fatih Dayioglu Language-Team: Turkish Language: tr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) HATA: Bu ortam sadece Dell sistemleri için geçerlidir.Not: Bu işlem için yaklaşık olarak 2GB boş alana sahip USB flash belleğe ihtiyacınız vardır.Not: Bu işlem yazdırılabilir DVD gerektirir.Varolan bir görüntü bulunamadı (muhtemelen önceki bir çalışmadan). Bu eski kopyayı kaldırmak ve görüntüyü yeniden oluşturmak ister misiniz?UygulamaGeri Alma Ortamı oluşturma işlemini iptal etmek ister misiniz?ISO YapılıyorGeri Alma Ortamı Oluşturucuyu İptal Etdbus'a bağlanamadıSeçimleri OnaylaDVD+/-RW DiskDell YedeklemeDell Geri Alma Ortam OluşturucuDell Yedekleme Ortamı'nı bilgisayarınızı ilk aldığınız günkü durumuna geri getirmek için kullanabilirsiniz.Bu seferlik yedekleme ortamı oluşturmaSürücüİstisnaISO GörüntüsüOrtam Türü: Yazıcı AçılıyorPaketlerİzin verilmediGeri alma Ortamı Oluşturma İşlemi TamamlandıYedekleme Ortamı sistem menüsünden seçilecek araç yardımıyla daha sonra da oluşturulabilir.Geri Alma Bölümü: Sistemi geri yükleYedekleme ortamını DVD'ye kaydetYedekleme ortamını harici USB flash belleğe kaydetSistem ilkeleri, raw aygıtlarını okumayı engelliyor.USB Flash SürücüAraç Bölümü: Sürüm:_Yardımdell-recovery/build/mo/sq/0000755000000000000000000000000012043102664012653 5ustar dell-recovery/build/mo/sq/LC_MESSAGES/0000755000000000000000000000000012043102664014440 5ustar dell-recovery/build/mo/sq/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000112312311724101017540 0ustar <\pq t2 5C DVD+/-RW DiscUSB Flash DriveProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-01-26 15:18+0000 Last-Translator: Vilson Gjeci Language-Team: Albanian Language: sq MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) DVD+/-RW DiskUSB Flash Drivedell-recovery/build/mo/sk/0000755000000000000000000000000012043102664012645 5ustar dell-recovery/build/mo/sk/LC_MESSAGES/0000755000000000000000000000000012043102664014432 5ustar dell-recovery/build/mo/sk/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000370412311724101017541 0ustar L}DY    '4C(U~*nqF`%p !    15g0      An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Are you sure you want to cancel the Recovery Media creation process?Building ISOCancel Recovery Media CreatorCannot connect to dbusConfirm SelectionsDVD+/-RW DiscDell Recovery Media CreatorISO ImageMedia Type: Opening BurnerPermission DeniedRecovery Media Creation Process CompleteRecovery Partition: System policy prevents reading raw devicesUSB Flash DriveProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-01-26 15:17+0000 Last-Translator: Mario Limonciello Language-Team: Slovak Language: sk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) Bol nájdený existujúci obraz (pravdepodobne z predchádzajúceho spustenia). Prajete si odstrániť túto starú kópiu a regenerovať obraz?Ste si istý, že chcete zrušiť proces vytvorenia média pre obnovu?Vytváranie ISOZrušiť vytvorenie média pre obnovuNedá sa pripojiť na dbusPotvrdiť výberDVD+/-RW DiskVytvorenie média pre obnovu DellISO obrazDruh média: Otváram napaľovanieZamietnutý prístupVytvorenie média pre obnovu úspešne ukončenéObnovenie časti disku: System policy zabraňuje čítaniu raw jednotiekUSB flash jednotkadell-recovery/build/mo/pt/0000755000000000000000000000000012043102664012653 5ustar dell-recovery/build/mo/pt/LC_MESSAGES/0000755000000000000000000000000012043102664014440 5ustar dell-recovery/build/mo/pt/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000403212311724101017542 0ustar \}Di   - 7DS(e*NL %  ,7GX)j?       An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Are you sure you want to cancel the Recovery Media creation process?Building ISOCancel Recovery Media CreatorCannot connect to dbusConfirm SelectionsDVD+/-RW DiscDell Recovery Media CreatorISO ImageMedia Type: Opening BurnerPermission DeniedRecovery Media Creation Process CompleteRecovery Partition: System policy prevents reading raw devicesUSB Flash DriveUtility Partition: Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-01-26 15:16+0000 Last-Translator: Henrique P. Machado Language-Team: Portuguese Language: pt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) Uma imagem existente foi encontrada (possivelmente de uma execução anterior). Você gostaria de remover esta cópia antiga e gerar novamente a imagem?Você tem certeza que quer cancelar o processo de criação do Media Recovery?Gerando ISOCancelar Recovery Media CreatorNão é possível conectar-se ao dbusConfirma selecçõesDVD+/-RW DiscDell Recovery Media CreatorImagem ISOTipo de media: Abrindo gravadorPermissão negadaRecovery Media Creation Processo CompletoRecuperação de partição: Políticas do sistema previnem a leitura de dispositivos brutosUnidade USBUtilitário de partição: dell-recovery/build/mo/is/0000755000000000000000000000000012043102664012643 5ustar dell-recovery/build/mo/is/LC_MESSAGES/0000755000000000000000000000000012043102664014430 5ustar dell-recovery/build/mo/is/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000105212311724101017531 0ustar 4L` akt  ISO ImageIncludedProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-03-18 15:25+0000 Last-Translator: Sveinn í Felli Language-Team: Icelandic Language: is MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) ISO diskmyndInnifaliðdell-recovery/build/mo/ms/0000755000000000000000000000000012043102664012647 5ustar dell-recovery/build/mo/ms/LC_MESSAGES/0000755000000000000000000000000012043102664014434 5ustar dell-recovery/build/mo/ms/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000365112311724101017544 0ustar \}Di   - 7DS(e*:2 my   %!G(\      An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Are you sure you want to cancel the Recovery Media creation process?Building ISOCancel Recovery Media CreatorCannot connect to dbusConfirm SelectionsDVD+/-RW DiscDell Recovery Media CreatorISO ImageMedia Type: Opening BurnerPermission DeniedRecovery Media Creation Process CompleteRecovery Partition: System policy prevents reading raw devicesUSB Flash DriveUtility Partition: Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-01-26 15:14+0000 Last-Translator: Ibrahim Elias Language-Team: Malay Language: ms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) Imej yang telah ada dijumpai (kemungkinan dari jalan sebelum ini). Adakah anda mahu untuk buang salinan lama ini dan regenerate imej?Adakah anda pasti untuk batal proses cipta Media Recovery?Membina ISOBatal Media Recovery CreatorTidak boleh sambung ke dbusConfirm PilihanDVD+/-RW DiskDell Recovery Media CreatorImej ISOJenis Media: Buka BurnerKebenaran ditolakProses Recovery Medi Creation SelesaiPartition Recovery: Polisi sistem menghalang baca raw deviceUSB Flash DrivePartition Utiliti: dell-recovery/build/mo/uk/0000755000000000000000000000000012043102664012647 5ustar dell-recovery/build/mo/uk/LC_MESSAGES/0000755000000000000000000000000012043102664014434 5ustar dell-recovery/build/mo/uk/LC_MESSAGES/dell-recovery.mo0000644000000000000000000003473012311724101017546 0ustar d<\7UIC .   # } _ D 6 R Oa   "  , E U i       !" D R ` m|  *!LS &(:"c c % 9FfH-D]o(P(=Yw 2$6NJh-7*D}<q!wp/e|}7_MDU432, +E "q J  0 =.!5l!!P!A "L"h""!"W"# ,#@:#{#=w$4$V$A%MP%&%&A&>'Z'i'!(7(GH( ((R(R).k)0))`)&;*=b*:*$*%+6&+[]++,,I,F-D_-!-0--B.mI.A.8.72/9j//o%0021Q13i 4_u44w6 (869'L9!t9#9 99 c#E,N7SDP<6F(8&=)*2\?0%/5A+B TV!R3ZMY$4dKHX^_>:UCQ G-O`@'J 1";I]9WL. [ab (BTO Image Builder Mode)ERROR: This media is only valid on Dell systems.It is highly recommended that you generate media and store it in a safe place.Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.Add Dell RecoveryAdding in base imageAll SRVs must be filled to proceed.An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Any add-on drivers or applications that need to be integrated into the image can be added here.ApplicationAre you sure you want to cancel the Recovery Media creation process?Assembling Image ComponentsBTO Base ImageBTO images can optionally include a Utility Partition for diagnostic utilities.Base ImageBase Image DistributorBase Image ReleaseBrowse for a dell-recovery packageBuild OS MediaBuild dell-recovery package from this systemBuilder SummaryBuilding Base imageBuilding Dell Utility PartitionBuilding GRUB core imageBuilding ISOCancel Recovery Media CreatorCannot connect to dbusChoose ContentChoose ImageChoose packageConfirm SelectionsCreate/Assemble Dell Recovery ISODVD+/-RW DiscDell RecoveryDell Recovery Media CreatorDell Recovery Media can be used to restore your system to the same state as when it was first shipped to you.Detected Recovery PartitionDetected Utility PartitionDon't generate recovery media at this timeDriverDuring Factory Installation, applications are only installed if the order record (SDR) refers to the service release vehicle (SRV). This populates the possible SRVs to be queried during installation.ExceptionExtracted DirectoryFID Framework enclosed in debian packageFID framework built into BTO imageISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: Image FileIncludedInject Dell Recovery PackageInstall dpkg-repackMedia Type: No Additional Utility PartitionNo additional Utility PartitionNo media, create imageOpening BurnerPackagesPart of the FID overlay requires a dell-recovery package to be included.Permission DeniedPlease enter the SRV to use:Preparing nested imageProcessing FISH packagesQuery BTO VersionQuery ISO InformationRecovery Media Creation Process CompleteRecovery Media can be generated later by choosing the tool from the System menu.Recovery Partition: Regenerating UUID / Rebuilding initramfsRequest closing the backendRestore #OS# to factory stateRestore SystemRestore to Factory stateSRV EntrySave recovery media to DVDSave recovery media to an external USB flash driveSelect content for Utility PartitionSelected Content Details:Selected Image Details:Selected Overlay Details:System does not appear to contain Dell factory installed partition layout.System policy prevents changing system bootupSystem policy prevents closing processes without noticeSystem policy prevents reading raw devicesThe BTO FID framework is the first thing injected into a base vanilla image. If you are generating from an existing BTO compatible image, you may use the built-in framework.The Base OS image provides the majority of the content for a BTO image. It can be a Vanilla OS image, or existing BTO Image.This requires a USB flash drive with approximately 2GB free.This requires writable DVD media.This will create OS Recovery Media that can be used to restore the computer to its factory shipped state. You will have the option to create an USB key or DVD image.This will integrate a Dell OEM FID framework & driver package set into a customized OS media image. You will have the option to create an USB key or DVD image.This will restore the system to the factory shipped state using the recovery partition stored on the hard drive.USB Flash DriveUnable to proceedUtility PartitionUtility Partition: Version:_HelpProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2011-02-17 19:39+0000 Last-Translator: Yuri Chornoivan Language-Team: Ukrainian Language: uk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) (Режим збирання образу BTO)<замінник дії>ПОМИЛКА: цим носієм можна скористатися лише у системах виробництва Dell.Рекомендуємо вам створити такий носій і зберігати його у безпечному місці.Зауваження: на флеш-диску USB має бути приблизно 2 ГБ вільного простору.Зауваження: вам знадобиться придатний для запису носій даних DVD.Додати Dell RecoveryДодавання до основного образуЩоб перейти до наступного кроку, слід вказати всі SRV.Виявлено готовий образ (ймовірно, створений під час попереднього запуску). Бажаєте вилучити цю стару копію і повторно створити образ?Тут можна додати будь-які додаткові драйвери і програми, які слід інтегрувати до образу.ПрограмаВи справді бажаєте скасувати операцію зі створення носія для відновлення?Збирання компонентів образуОсновний образ BTOОбрази BTO можуть додатково включати допоміжний розділ для діагностичних програм.Основний образПоширювач основного образуВипуск основного образуВказати пакунок dell-recoveryСтворення носія ОСЗібрати пакунок dell-recovery за цією системоюРезюме збиранняПобудова основного образуСтворення допоміжного розділу DellЗбирання основного образу GRUBСтворення ISOСкасування створення носія для відновленняНе вдалося встановити зв’язок з D-BusВиберіть вмістВибір образуВиберіть пакунокПідтвердити вибірСтворення/Збирання образу ISO для відновлення DellДиск DVD+/-RWDell RecoveryСтворення носія для відновлення DellНосієм для відновлення Dell можна скористатися для відновлення вашої системи до стану, у якому вам було передано її виробником обладнання.Виявлений розділ для відновленняВиявлений допоміжний розділНе створювати носія для відновлення цього разуДрайверПрограми встановлюються виробником, лише якщо запис порядку (SDR) посилається на засіб надання випусків (SRV). Таким чином, під час встановлення виконується опитування всіх можливих SRV.ВиключенняКаталог видобуванняОболонка FID, вкладене до пакунка debianОболонка FID, вбудована до образу BTOОбраз ISOЯкщо ви бажаєте створити архів з ще однією копією, створений образ було збережено до файла з назвою: Файл образуВключеноДодавання відновлювального пакунка DellВстановити dpkg-repackТип носія: Не виявлено додаткового допоміжного розділуНе виявлено додаткового допоміжного розділуБез носія, створити образВідкриття програми записуПакункиДля частини додатка FID слід включити пакунок dell-recovery.Відмовлено у доступіВкажіть SRV, який слід використати:Приготування вкладеного образуОбробка пакунків FISHОпитування версії BTOОпитування відомостей щодо ISOПроцес створення носія для відновлення завершеноНосій для відновлення можна створити пізніше. Для цього слід скористатися пунктом відповідного інструменту з меню «Система».Розділ для відновлення: Повторне створення UUID / Перебудова initramfsЗапит на закриття допоміжної програмиВідновлення #ОС# до початкового стануВідновити системуВідновити початковий станЗапис SRVЗберегти носій для відновлення на DVDЗберегти носій для відновлення на зовнішньому флеш-диску USBВизначте вміст допоміжного розділуПодробиці щодо вибраних даних:Параметри позначеного образу:Параметри позначеного сховища:У системі не міститься встановленого розділу з початковими даними Dell.Системними правилами заборонено зміну системи завантаженняСистемні правила забороняють завершення роботи процесів без сповіщення користувачаСистемними правилами заборонено читання з пристроїв з необробленими данимиОболонку BTO FID буде додано до основного образу першою. Якщо побудова образу відбувається на основі раніше створеного сумісного з BTO образу, ви можете скористатися вбудованою оболонкою.Образ ОС Base (базовий) містить переважну частину даних для образу BTO. Цим образом може бути образ ОС Vanilla (початковий) або поточний образ BTO.На флеш-диску USB має бути приблизно 2 ГБ вільного простору.Вам знадобиться придатний для запису носій даних DVD.За допомогою цього пункту можна створити носій для відновлення ОС, яким можна буде скористатися для відновлення операційної системи комп’ютера до стану, у якому вам її передав виробник обладнання. Ви зможете створити відновлювальний флеш-диск USB або диск DVD.За допомогою цього пункту можна поєднати оболонку Dell OEM FID і набір пакунків з драйверами у один налаштований образ носія ОС. Ви зможете вибрати один з варіантів: створення образу флеш-картки USB або образу DVD.За допомогою цього пункту можна відновити початковий стан вашої системи за допомогою розділу для відновлення, що зберігається на жорсткому диску.Флеш-диск USBНе можна виконати діюДопоміжний розділДопоміжний розділ: Версія:_Довідкаdell-recovery/build/mo/da/0000755000000000000000000000000012043102664012614 5ustar dell-recovery/build/mo/da/LC_MESSAGES/0000755000000000000000000000000012043102664014401 5ustar dell-recovery/build/mo/da/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000373712311724101017516 0ustar \}Di   - 7DS(e*L7 $   %5-Hv0      An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Are you sure you want to cancel the Recovery Media creation process?Building ISOCancel Recovery Media CreatorCannot connect to dbusConfirm SelectionsDVD+/-RW DiscDell Recovery Media CreatorISO ImageMedia Type: Opening BurnerPermission DeniedRecovery Media Creation Process CompleteRecovery Partition: System policy prevents reading raw devicesUSB Flash DriveUtility Partition: Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-01-26 15:11+0000 Last-Translator: Jimmy Frydkær Dürr Language-Team: Danish Language: da MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) Et eksisterende billede blev fundet (formentlig fra en tidligere kørsel). Ønsker du at fjerne den gamle kopi og regenerere billedet?Er du sikker på du ønsker at annullére oprettelsen af Gendannelsesmediet?Bygger ISOAnnullér Gendannelsesmedie-opretterKan ikke forbinde til dbusGodkend valgeneDVD+/-RW DiscDell Gendannelsesmedie-opretterISO billedeMedietype: Åbner brænderTilladelse nægtetGenskabelses Medie Oprettelses Proces FærdigGenskabelsespartiton: Systempolitik forhindrer læsning af raw enhederUSB Flash DriveNyttepartition: dell-recovery/build/mo/et/0000755000000000000000000000000012043102664012640 5ustar dell-recovery/build/mo/et/LC_MESSAGES/0000755000000000000000000000000012043102664014425 5ustar dell-recovery/build/mo/et/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000136612311724101017536 0ustar T   ApplicationConfirm SelectionsIncludedMedia Type: Opening BurnerUnable to proceedProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2011-03-25 20:08+0000 Last-Translator: lyyser Language-Team: Estonian Language: et MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) RakendusKinnitage valikudKaasa arvatudMeedia tüüp: Kirjutaja avamineEi saa jätkatadell-recovery/build/mo/zh_CN/0000755000000000000000000000000012043102664013231 5ustar dell-recovery/build/mo/zh_CN/LC_MESSAGES/0000755000000000000000000000000012043102664015016 5ustar dell-recovery/build/mo/zh_CN/LC_MESSAGES/dell-recovery.mo0000644000000000000000000002305512311724101020126 0ustar a$,89<V7mUI.E t  # } _= D   O i t  "  ,   ! A Z g     !  m4   *   (" >cH 3BHK(PD( !2<$oJ-+7Y*}k<!&Hp#5IRX7(C`G02)HtrN 6'Ck(I -L*e / <I Y#f; 9 R_  $C _Lj  0 F /P       N!f!*w!! !! !!/"0"I"e""-"'"3"#$#H#}#4N$ $u${%?%% %% & & "&HT4?N1 :`U,[RQ/SP !"CX;>9#2\FKY(WZ6J 3L&'5O-]8V%a<M=0 $I. ED7* A+_B@)G^ (BTO Image Builder Mode)ERROR: This media is only valid on Dell systems.It is highly recommended that you generate media and store it in a safe place.Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.Add Dell RecoveryAdding in base imageAll SRVs must be filled to proceed.An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Any add-on drivers or applications that need to be integrated into the image can be added here.ApplicationAre you sure you want to cancel the Recovery Media creation process?Assembling Image ComponentsBTO Base ImageBTO images can optionally include a Utility Partition for diagnostic utilities.Base ImageBase Image DistributorBase Image ReleaseBrowse for a dell-recovery packageBuild OS MediaBuild dell-recovery package from this systemBuilder SummaryBuilding Base imageBuilding Dell Utility PartitionBuilding GRUB core imageBuilding ISOCancel Recovery Media CreatorCannot connect to dbusChoose ContentChoose ImageChoose packageConfirm SelectionsCreate/Assemble Dell Recovery ISODVD+/-RW DiscDell RecoveryDell Recovery Media CreatorDell Recovery Media can be used to restore your system to the same state as when it was first shipped to you.Detected Recovery PartitionDetected Utility PartitionDon't generate recovery media at this timeDriverDuring Factory Installation, applications are only installed if the order record (SDR) refers to the service release vehicle (SRV). This populates the possible SRVs to be queried during installation.ExceptionExtracted DirectoryFID Framework enclosed in debian packageFID framework built into BTO imageISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: IncludedInject Dell Recovery PackageInstall dpkg-repackMedia Type: No Additional Utility PartitionNo additional Utility PartitionOpening BurnerPackagesPart of the FID overlay requires a dell-recovery package to be included.Permission DeniedPlease enter the SRV to use:Preparing nested imageProcessing FISH packagesQuery BTO VersionQuery ISO InformationRecovery Media Creation Process CompleteRecovery Media can be generated later by choosing the tool from the System menu.Recovery Partition: Regenerating UUID / Rebuilding initramfsRequest closing the backendRestore SystemRestore to Factory stateSRV EntrySave recovery media to DVDSave recovery media to an external USB flash driveSelect content for Utility PartitionSelected Content Details:Selected Image Details:Selected Overlay Details:System does not appear to contain Dell factory installed partition layout.System policy prevents changing system bootupSystem policy prevents closing processes without noticeSystem policy prevents reading raw devicesThe BTO FID framework is the first thing injected into a base vanilla image. If you are generating from an existing BTO compatible image, you may use the built-in framework.The Base OS image provides the majority of the content for a BTO image. It can be a Vanilla OS image, or existing BTO Image.This requires a USB flash drive with approximately 2GB free.This requires writable DVD media.This will create OS Recovery Media that can be used to restore the computer to its factory shipped state. You will have the option to create an USB key or DVD image.This will integrate a Dell OEM FID framework & driver package set into a customized OS media image. You will have the option to create an USB key or DVD image.This will restore the system to the factory shipped state using the recovery partition stored on the hard drive.USB Flash DriveUnable to proceedUtility PartitionUtility Partition: Version:_HelpProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2011-01-20 02:20+0000 Last-Translator: Li Jin Language-Team: Simplified Chinese Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:47+0000 X-Generator: Launchpad (build 13900) (BTO 镜像创建模式)<启动标识符>错误:本介质只适合 Dell 电脑使用。强烈建议创建还原镜像并保存在安全的地方。提示:这要求 USB 闪存盘至少有 2GB 的可用空间。提示:这需要可写的 DVD 盘片。添加 Dell Recovery添加到原始镜像必须填写所有 SRV 后才能继续。发现已经存在的镜像(可能是上次运行产生的)。是否删除旧的镜像,并重新生成新镜像?要将额外附加的驱动或应用集成到镜像里,请在这里添加。应用程序确定要中止创建恢复光盘吗?组装镜像各个部分BTO (工厂按单定制)基准镜像BTO 镜像可以包括或不包括带有诊断工具的 Utility 分区。基准镜像基准镜像发布者基准镜像发布浏览 dell-recovery 软件包建立操作系统光盘从此系统创建 dell-recovery 软件包生成器统计建立基准镜像建立 Dell 工具分区建立GRUB核心镜像制作 ISO 光盘镜像中止恢复介质创建程序无法连接到 dbus选择内容选择镜像选择软件包确认选择创建/集成 Dell 系统恢复 ISODVD+/-RW 光盘戴尔系统恢复Dell 恢复光盘创建程序Dell 还原盘可以把您的电脑恢复到出厂系统。已检出的恢复分区已检出的工具分区这次不生成恢复盘驱动程序在工厂安装中,所有要安装的应用程序会根据 SDR 中的 SRV 来安装。 所有可能的 SRV 都要放入其中,在安装中会被查寻 。异常报错已展开的目录工厂安装构架封装入Debian包FID 框架建立 BTO 镜像ISO 镜像如果您想存档其它副本,生成的镜像以下述文件名保存: 包含加入戴尔恢复系统包安装 dpkg-repack恢复盘类型: 没有实用工具分区无附加工具分区打开光盘刻录器软件包某些FID overlay需要包含戴尔恢复包。权限不足请输入要使用的 SRV :准备内建的镜像处理工厂预安装包查询 BTO 版本查询 ISO 信息恢复介质创建完成可以在“系统”菜单里选择“工具”,稍后再生成恢复盘。还原分区: 重新生成 UUID / 重新构建 initramfs请求关闭后台恢复系统恢复到出厂状态SRV 条目将恢复介质保存为 DVD将恢复介质保存为外接的 USB 闪存盘选择工具分区内容已选择的内容详情:选中的镜像的详情:选中的覆盖详情:系统没有包含戴尔工厂安装分区。系统策略阻止改变系统启动项系统策略不允许不经提示即结束进程。系统策略阻止读取 raw 设备工厂安装构架应首先放入基准系统中。如果使用已兼容工厂安装的镜像,可以使用镜像内已有的构架。原始 OS 镜像为 BTO 镜像提供了主要内容。它可能是 Vanilla OS 镜像,或一个已经存在的 BTO 镜像。需要有至少 2GB 空间的 USB 闪存驱动器。需要可写入的 DVD 光盘。生成操作系统恢复镜像来恢复计算机至出厂状态。可以选择以此建立USB存储盘或DVD光盘。将会合并戴尔OEM安装包和驱动程序到操作系统镜像中。可以选择以此建立USB存储盘或DVD光盘。从硬盘上的恢复分区中把系统恢复至出厂状态。USB 闪存驱动器无法继续实用工具分区工具分区 版本:帮助(_H)dell-recovery/build/mo/hu/0000755000000000000000000000000012043102664012644 5ustar dell-recovery/build/mo/hu/LC_MESSAGES/0000755000000000000000000000000012043102664014431 5ustar dell-recovery/build/mo/hu/LC_MESSAGES/dell-recovery.mo0000644000000000000000000003245612043102664017554 0ustar zH I K N h 7 U I .W     # } _  D F b Oq   "',6cs  &3BU!s  m;W*r }  (" c  oz  5KH2&K,r(PA(V 2$JoJ-)7W*=}<%!b+p=Yi{Z\%_BR\9=!%# $@ .e a>! !!I!+ "6"cI""""""'#;#<W# ##(##$$?-$%m$$$$$$8%P%_%&t%g%$&(&3D& x&&&e'n'' '+'+' 'q ( |( ((((( ((% ) 1)+R)~)))*++L+i++&++-+4,H,b,2,o,%-1B-)t-*--"-..,+.BX.+.!.#.% /3/ S/5t/J/Z/EP0i011HW2)223w74"4444 55&5 ).zoD+qbn TV9w<%K`C3Y\W";0LlJP1 /,N&gxI-6^Zt:#h sF'i>umeOHGMpU7 RcAX]Q_k*@y2B5aj[E=dr?Sf8v(!$4 (BTO Image Builder Mode)ERROR: This media is only valid on Dell systems.It is highly recommended that you generate media and store it in a safe place.Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.Add Dell RecoveryAdding in base imageAdditional Fail ScriptAdditional Success ScriptAll SRVs must be filled to proceed.An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Any add-on drivers or applications that need to be integrated into the image can be added here.ApplicationApplication PackagesAre you sure you want to cancel the Recovery Media creation process?Assembling Image ComponentsBTO Base ImageBTO images can optionally include a Utility Partition for diagnostic utilities.Base ImageBase Image DistributorBase Image ReleaseBase OS ImageBrowse for a dell-recovery packageBuild OS MediaBuild dell-recovery package from this systemBuilder SummaryBuilding Base imageBuilding Dell Utility PartitionBuilding GRUB core imageBuilding ISOBuilding OIE ArchiveCancel Recovery Media CreatorCannot connect to dbusChoose ContentChoose ImageChoose packageConfirm SelectionsCopyright 2008-2010 Dell Inc.Create/Assemble Dell Recovery ISODVD+/-RW DiscDell RecoveryDell Recovery Media CreatorDell Recovery Media can be used to restore your system to the same state as when it was first shipped to you.Detected Recovery PartitionDetected Utility PartitionDon't generate recovery media at this timeDriverDriver PackagesDuring Factory Installation, applications are only installed if the order record (SDR) refers to the service release vehicle (SRV). This populates the possible SRVs to be queried during installation.ExceptionExtracted DirectoryFAIL Script: FID ContentFID Framework enclosed in debian packageFID framework built into BTO imageISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: Image FileIncludedInject Dell Recovery PackageInstall dpkg-repackInstallation ModeMedia TypeMedia Type: No Additional Utility PartitionNo additional Utility PartitionNo media, create imageOIE Installation ModeOIE compliant images can only be installed from ODM factory environments. They will notify the user at completion of a success or failure.OIE mode also allows you to provide additional SUCCESS and FAIL scripts to be ran prior to notification the image is complete. These can each be any executable program or script.Opening BurnerPackagesPart of the FID overlay requires a dell-recovery package to be included.Permission DeniedPlease enter the SRV to use:Preparing nested imageProcessing FISH packagesProduce a standard installation image.Produce an OIE compliant installation image.Query BTO VersionQuery ISO InformationRecovery Media Creation Process CompleteRecovery Media can be generated later by choosing the tool from the System menu.Recovery Partition: Regenerating UUID / Rebuilding initramfsRequest closing the backendRestore #OS# to factory stateRestore SystemRestore to Factory stateSRV EntrySUCCESS Script: Save recovery media to DVDSave recovery media to an external USB flash driveSelect content for Utility PartitionSelected Content Details:Selected Image Details:Selected Overlay Details:Set FAIL scriptSet SUCCESS scriptSystem does not appear to contain Dell factory installed partition layout.System policy prevents changing system bootupSystem policy prevents closing processes without noticeSystem policy prevents reading raw devicesSystem policy prohibits changing network without user consentThe BTO FID framework is the first thing injected into a base vanilla image. If you are generating from an existing BTO compatible image, you may use the built-in framework.The Base OS image provides the majority of the content for a BTO image. It can be a Vanilla OS image, or existing BTO Image.This requires a USB flash drive with approximately 2GB free.This requires writable DVD media.This will create OS Recovery Media that can be used to restore the computer to its factory shipped state. You will have the option to create an USB key or DVD image.This will integrate a Dell OEM FID framework & driver package set into a customized OS media image. You will have the option to create an USB key or DVD image.This will restore the system to the factory shipped state using the recovery partition stored on the hard drive.Toggle Network ConnectivityUSB Flash DriveUnable to proceedUtility PartitionUtility Partition: Version:_HelpProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2011-09-09 17:16-0500 PO-Revision-Date: 2012-04-08 21:49+0000 Last-Translator: Gabor Kelemen Language-Team: Hungarian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2012-04-09 04:57+0000 X-Generator: Launchpad (build 15060) (BTO lemezkép-összeállító mód)HIBA: Ez az adathordozó csak Dell rendszereken érvényes.Ajánlott előállítani az adathordozót, és biztonságos helyen tartani.Megjegyzés: Ehhez egy USB-kulcsra lesz szükség, körülbelül 2 GB szabad hellyel.Megjegyzés: Ehhez egy írható DVD-re lesz szükség.Dell helyreállító hozzáadásaHozzáadás az alapvető lemezképhezTovábbi parancsfájl hiba esetéreTovábbi parancsfájl siker esetéreA folytatáshoz minden SRV-t ki kell tölteni.Már létezik lemezkép, valószínűleg egy előző futtatás eredményeként. El szeretné távolítani ezt a régi másolatot, és újra előállítani a lemezképet?A lemezképbe integrálandó kiegészítő eszközmeghajtók vagy alkalmazások itt vehetők fel.AlkalmazásAlkalmazáscsomagokBiztos, hogy megszakítja a helyreállító adathordozó létrehozását?Lemezkép összetevőinek összeállításaBTO alap lemezképA BTO lemezképek tartalmazhatnak egy szervizpartíciót a diagnosztikai segédprogramok számára.Alap lemezképAlap lemezkép terjesztőjeAlap lemezkép kiadásaAlap operációsrendszer-lemezképDell helyreállító csomag tallózásaOS média összeállításaDell helyreállító csomag összeállítása a rendszerbőlÖsszegzésAlap lemezkép építéseDell szervizpartíció összeállításaGRUB alap lemezkép építéseISO létrehozásaOIE archívum építéseHelyreállító adathordozó előállításának megszakításaNem sikerült kapcsolódni a D-BushozVálassza ki a tartalmatVálasszon lemezképetVálassza ki a csomagotErősítse meg választásaitCopyright 2008-2010 Dell Inc.Dell helyreállító ISO létrehozása/összeállításaDVD+/-RW lemezDell helyreállítóDell helyreállító-média készítőA Dell helyreállító adathordozó segítségével rendszere visszaállítható a gyári állapotába.Helyreállító partíció észlelveSzervizpartíció észlelveMost nem hozok létre helyreállító adathordozótMeghajtóIllesztőprogram-csomagokA gyári telepítés során az alkalmazások csak akkor kerülnek telepítésre, ha a rendelési rekord (SDR) a SRV-re hivatkozik. Ez feltölti a telepítés során lekérdezhető lehetséges SRV-ket.KivételKibontott könyvtárHIBA parancsfájl: FID tartalomDebian csomagba csomagolt FID keretrendszerBTO-lemezképbe épített FID-keretrendszerISO lemezképHa másik példányt is szeretne archiválni, akkor az előállított lemezképet a következő néven találja: LemezképBeleértveDell helyreállító csomag elhelyezéseA dpkg-repack telepítéseTelepítési módMédiatípusAdathordozó típusa: Nincs kiegészítő szervizpartícióNincs további szervizpartícióNincs adathordozó, lemezkép létrehozásaOIE telepítési módAz OIE-megfelelő lemezképek csak ODM gyári környezetekben telepíthetők. Ezek értesítik a felhasználót a sikerről vagy sikertelenségről.Az OIE mód lehetővé teszi további SIKER és HIBA parancsfájlok futtatását a lemezkép elkészüléséről szóló értesítés előtt. Ezek tetszőleges végrehajtható programok vagy parancsfájlok lehetnek.Író megnyitásaCsomagokA FID elrendezés része megköveteli egy dell-recovery csomag felvételét.Hozzáférés megtagadvaAdja meg a használandó SRV-t:Beágyazott lemezkép előkészítéseFISH csomagok feldolgozásaNormál telepítő lemezkép előállítása.OIE-megfelelő telepítő lemezkép előállítása.BTO-verzió lekérdezéseISO-információk lekérdezéseA helyreállító adathordozó létrehozása készA helyreállító adathordozó később is előállítható az eszköz kiválasztásával a Rendszer menüből.Helyreállító partíció: UUID előállítása / initramfs újjáépítéseA háttérprogram bezárásának kérése#OS# helyreállítása a gyári állapotraRendszer helyreállításaVisszaállítás gyári állapotraSRV-bejegyzésSIKER parancsfájl: Helyreállító adathordozó mentése DVD-reA helyreállító adathordozó mentése külső USB flash kulcsra.Válassza ki a szervizpartíció tartalmátKiválasztott tartalom részleteiKiválasztott lemezkép részletei:Kiválasztott elrendezés részletei:HIBA parancsfájl beállításaSIKER parancsfájl beállításaA rendszeren nincs Dell gyári partícióelrendezés.A rendszer házirendje megakadályozza a rendszerindítás módosításátA rendszer házirendje megakadályozza a folyamatok figyelmeztetés nélküli bezárásátA rendszer házirendje megakadályozza a nyers eszközök olvasásátA rendszer házirendje megakadályozza a hálózat módosítását a felhasználó beleegyezése nélkülA BTO FID keretrendszer kerül elsőként telepítésre az eredeti alap lemezképbe. Ha egy meglévő BTO-kompatibilis lemezképből indult ki, akkor használhatja a beépített keretrendszert.Az alaprendszer lemezképe biztosítja a BTO lemezkép tartalmának zömét. Ez lehet változatlan rendszer lemezkép, vagy meglévő BTO lemezkép.Ehhez egy USB-kulcsra lesz szükség, körülbelül 2 GB szabad hellyel.Ehhez egy írható DVD-re lesz szükség.Ez létrehoz egy OS helyreállító adathordozót, amellyel a számítógép helyreállítható a gyári állapotára. Lehetősége lesz USB-kulcs vagy DVD lemezkép létrehozására.Ez egy Dell OEM FID keretrendszer- és illesztőprogram-csomagot fog integrálni személyre szabott OS lemezképre. Lehetősége lesz USB-kulcs vagy DVD lemezkép létrehozására.Ez a merevlemezen tárolt helyreállító partíció használatával helyreállítja a rendszert a gyári állapotára.Hálózati kapcsolat módosításaUSB Flash-meghajtóNem folytathatóSzervizpartícióSzervizpartíció: Verzió:_Súgódell-recovery/build/mo/de/0000755000000000000000000000000012043102664012620 5ustar dell-recovery/build/mo/de/LC_MESSAGES/0000755000000000000000000000000012043102664014405 5ustar dell-recovery/build/mo/de/LC_MESSAGES/dell-recovery.mo0000644000000000000000000002747612311724101017530 0ustar kt ! $ > 7U U I .- \ n # } _%  D   O f q  "  ,   , L e r     !  #m?*&  ("B eco   #0PpH.GY(oP('Cap 2$ 8JR-7*=.l}<!p@$Is:X6>X6tzW m![}X $%>(d/$ + ,= j    < !!'*!R!$!!."I" Q"_" r#|# #.#)# #t$ y$ $'$$ $ $*$$%"6%Y%p%Bw%%7%(&.&M&b&>}&j&''3E'%y'&''%' (*(HA(5( (!(")P&)Pw)M)5*`L**+H?,&,,~-.....//./7/ T O^)g9=/Ei3'.>KLFY,#XM I6"JQN0D_ 4[H*78!jVAURWhZ%kB(5S ;c]a:1C feG@?2\db+$P&<-` (BTO Image Builder Mode)ERROR: This media is only valid on Dell systems.It is highly recommended that you generate media and store it in a safe place.Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.Add Dell RecoveryAdding in base imageAll SRVs must be filled to proceed.An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Any add-on drivers or applications that need to be integrated into the image can be added here.ApplicationApplication PackagesAre you sure you want to cancel the Recovery Media creation process?Assembling Image ComponentsBTO Base ImageBTO images can optionally include a Utility Partition for diagnostic utilities.Base ImageBase Image DistributorBase Image ReleaseBase OS ImageBrowse for a dell-recovery packageBuild OS MediaBuild dell-recovery package from this systemBuilder SummaryBuilding Base imageBuilding Dell Utility PartitionBuilding GRUB core imageBuilding ISOCancel Recovery Media CreatorCannot connect to dbusChoose ContentChoose ImageChoose packageConfirm SelectionsCreate/Assemble Dell Recovery ISODVD+/-RW DiscDell RecoveryDell Recovery Media CreatorDell Recovery Media can be used to restore your system to the same state as when it was first shipped to you.Detected Recovery PartitionDetected Utility PartitionDon't generate recovery media at this timeDriverDriver PackagesDuring Factory Installation, applications are only installed if the order record (SDR) refers to the service release vehicle (SRV). This populates the possible SRVs to be queried during installation.ExceptionExtracted DirectoryFID ContentFID Framework enclosed in debian packageFID framework built into BTO imageISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: Image FileIncludedInject Dell Recovery PackageInstall dpkg-repackMedia TypeMedia Type: No Additional Utility PartitionNo additional Utility PartitionNo media, create imageOpening BurnerPackagesPart of the FID overlay requires a dell-recovery package to be included.Permission DeniedPlease enter the SRV to use:Preparing nested imageProcessing FISH packagesQuery BTO VersionQuery ISO InformationRecovery Media Creation Process CompleteRecovery Media can be generated later by choosing the tool from the System menu.Recovery Partition: Regenerating UUID / Rebuilding initramfsRequest closing the backendRestore #OS# to factory stateRestore SystemRestore to Factory stateSRV EntrySave recovery media to DVDSave recovery media to an external USB flash driveSelect content for Utility PartitionSelected Content Details:Selected Image Details:Selected Overlay Details:System does not appear to contain Dell factory installed partition layout.System policy prevents changing system bootupSystem policy prevents closing processes without noticeSystem policy prevents reading raw devicesSystem policy prohibits changing network without user consentThe BTO FID framework is the first thing injected into a base vanilla image. If you are generating from an existing BTO compatible image, you may use the built-in framework.The Base OS image provides the majority of the content for a BTO image. It can be a Vanilla OS image, or existing BTO Image.This requires a USB flash drive with approximately 2GB free.This requires writable DVD media.This will create OS Recovery Media that can be used to restore the computer to its factory shipped state. You will have the option to create an USB key or DVD image.This will integrate a Dell OEM FID framework & driver package set into a customized OS media image. You will have the option to create an USB key or DVD image.This will restore the system to the factory shipped state using the recovery partition stored on the hard drive.Toggle Network ConnectivityUSB Flash DriveUnable to proceedUtility PartitionUtility Partition: Version:_HelpProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2012-04-15 06:09+0000 Last-Translator: Dennis Baudys Language-Team: German Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2012-04-16 04:41+0000 X-Generator: Launchpad (build 15099) (BTO-Abbild-Erstellungsmodus)FEHLER: Dieses Medium kann nur auf Dell-Systemen verwendet werden.Es wird dringend geraten, ein Wiederherstellungsmedium zu erstellen und an einem sicheren Ort aufzubewahren.Hinweis: Ein USB-Flash-Laufwerk mit ungefähr 2GB freiem Speicher wird benötigt.Hinweis: Eine beschreibbare DVD wird benötigt.Dell-Recovery hinzufügenDem Basisabbild hinzufügenAlle SRVs müssen ausgefüllt werden, um fortzufahren.Ein existierendes Abbild wurde gefunden (wahrscheinlich von einer vorherigen Aufruf dieser Anwendung). Möchten Sie diese alte Kopie löschen und das Abbild neu erstellen?Alle zusätzlichen Treiber oder Anwendungen, die in das Abbild integriert werden sollen, können hier hinzugefügt werden.AnwendungAnwendungspaketeSind Sie sich sicher, dass Sie den Erstellungsprozess des Wiederherstellungsdatenträgers abbrechen möchten?Abbildkomponenten werden erstelltBTO-BasisabbildBTO-Abbilder können wahlweise eine Werkzeugpartition für Diagnosewerkzeuge beinhalten.BasisabbildBasisabbildverteilerBasisabbildveröffentlichungBasisbetriebssystemabbildNach einem dell-recovery-Paket suchenBetriebssystemdatenträger wird erstelltdell-recovery-Paket aus diesem System erstellenZusammenfassungBasisabbild wird hergestelltDell-Werkzeugpartition wird erstelltGRUB-Kernabbild wird gebautISO wird erstelltWiederherstellungsmedien-Ersteller abbrechenKeine Verbindung zum D-BusInhalt auswählenAbbild wählenPaket wählenAuswahl bestätigenDell-Wiederherstellungs-ISO-Abbild erstellen/zusammenstellenDVD+/-RW-DiskDell-WiederherstellungDell-Wiederherstellungsmedien-ErstellerDell-Wiederherstellungsmedien können zum Zurücksetzen Ihres Systems (in den Zustand, in dem es Ihnen geliefert wurde) benutzt werden.Erkannte WiederherstellungspartitionErkannte WerkzeugpartitionWiederherstellungsmedium jetzt nicht erstellenTreiberTreiberpaketeWährend der Wiederherstellung des Auslieferungszustandes werden Anwendungen nur dann installiert, wenn der »Order Record (SDR)« mit dem »Service Release Vehicle (SRV)« übereinstimmt. Das bedeutet, dass bestimmte SRVs während der Installation benötigt werden können.ExceptionExtrahiertes VerzeichnisFID-InhaltFID-Framework wird dem Debian-Paket beigefügtIn das BTO-Abbild eingebautes FID-GerüstISO-AbbildWenn Sie eine weitere Kopie archivieren möchten: das erzeugte Abbild wurde unter folgendem Dateinamen gespeichert: AbbilddateiEnthaltenDell Wiederherstellungspaket einkoppelndpkg-repack installierenMedienartMedientyp: Keine zusätzliche HilfswerkzeugspartitionKeine zusätzliche WerkzeugpartitionKein Datenträger, erstelle AbbildBrenner wird geöffnetPaketeTeile des FID erfordern das Hinzufügen eines dell-recovery-PaketsZugriff verweigertGeben Sie bitte ein, welches SRV verwendet werden soll:Eingebettete Abbilder werden vorbereitetFISH-Pakete werden verarbeitetBTO-Version abfragenISO-Informationen abfragenErstellungsvorgang des Wiederherstellungsmediums abgeschlossenDas Wiederherstellungsmedium kann später erstellt werden, indem Sie das Werkzeug im System-Menü wählen.Wiederherstellungspartition: UUID wird neu erstellt / initramfs wird neu erzeugtDas Schließen des Backends anfordernWerkszustand von #OS# wiederherstellenSystem wird wiederhergestelltAuslieferungszustand wiederherstellenSRV-EintragWiederherstellungsmedium auf DVD speichernWiederherstellungsmedium auf einem externen USB-Flash-Laufwerk speichernWählen Sie den Inhalt für die Werkzeugpartition ausDetails zum ausgewählten InhaltDetails zum ausgewählten Abbild:Details zum ausgewählten Overlay:Das System scheint keine von Dell vorinstalliertes Partitionslayout zu besitzen.Systemverwaltungsrichtlinien verhindern das Ändern der SystemstarteinstellungenSystemrichtlinie verhindert das Schließen von Prozessen ohne BenachrichigungSystemrichtlinie verhindert das Lesen von Raw-DevicesDie Systemrichtlinien untersagen die Änderung des Netzwerks ohne die Einwilligung des BenutzersDas BTO-FID-Framework ist der erste Gegenstand, welcher in das Standardabbild eingefügt wird. Wenn Sie an einem existierendem Abbild mit BTO-Unterstützung arbeiten, können Sie das eingebaute Framework verwenden.Das Basis-Betriebssystemsabbild liefert den Großteil des Inhalts eines BTO-Abbilds. Es kann sich um ein unverändertes Betriebssystemabbild handeln oder um ein existierendes BTO-Abbild.Ein USB-Flash-Laufwerk mit ungefähr 2GB freiem Speicher wird benötigt.Eine beschreibbare DVD wird benötigt.Dies erstellt einen Betriebssystemwiederherstellungsdatenträger, der benutzt werden kann, um den Rechner in seinen Auslieferungszustand zurückzusetzen. Sie können einen USB-Stick oder eine DVD verwenden.Dies wird das Dell OEM FID-Framework und Treiberpaket in ein angepasstes Betriebssystemabbild integrieren. Sie können sich zwischen einem USB-Stick und einer DVD entscheiden.Dies wird Ihr System mit Hilfe der auf der Festplatte gespeicherten Wiederherstellungspartition in den Auslieferungszustand zurückversetzen.Netzwerkverbindung ändernUSB-Flash-LaufwerkFortfahren nicht möglichHilfswerkzeugspartitionDienstpartition: Version:_Hilfedell-recovery/build/mo/bg/0000755000000000000000000000000012043102664012620 5ustar dell-recovery/build/mo/bg/LC_MESSAGES/0000755000000000000000000000000012043102664014405 5ustar dell-recovery/build/mo/bg/LC_MESSAGES/dell-recovery.mo0000644000000000000000000002314112311724101017511 0ustar FLa|75UmI. <N#c}_ eDqO" ,) V f      ! ( 6 mR   * " )  " ) c3        ( : (P Py  (  $.2I$|7*%}P<! -=QZ;3aJOU#.-R_24OAS4 -$D _.>MN5&"\aiZ3xW'h7= +EK(0[G * K!8Z!!S!r!Ei"<"0"1#O##P$zR%8%&4& S&=60",+8-%!/ 5CE9*: )(;2BD3'7?.>F1 &<4$A @ # (BTO Image Builder Mode)ERROR: This media is only valid on Dell systems.It is highly recommended that you generate media and store it in a safe place.Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.Add Dell RecoveryAdding in base imageAll SRVs must be filled to proceed.An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Any add-on drivers or applications that need to be integrated into the image can be added here.ApplicationAre you sure you want to cancel the Recovery Media creation process?BTO images can optionally include a Utility Partition for diagnostic utilities.Browse for a dell-recovery packageBuild dell-recovery package from this systemBuilder SummaryBuilding Dell Utility PartitionBuilding ISOCancel Recovery Media CreatorCannot connect to dbusChoose ContentChoose ImageChoose packageConfirm SelectionsCreate/Assemble Dell Recovery ISODVD+/-RW DiscDell Recovery Media CreatorDell Recovery Media can be used to restore your system to the same state as when it was first shipped to you.Detected Recovery PartitionDetected Utility PartitionDon't generate recovery media at this timeDriverDuring Factory Installation, applications are only installed if the order record (SDR) refers to the service release vehicle (SRV). This populates the possible SRVs to be queried during installation.Extracted DirectoryFID framework built into BTO imageISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: IncludedInstall dpkg-repackMedia Type: No additional Utility PartitionOpening BurnerPackagesPermission DeniedPlease enter the SRV to use:Query BTO VersionQuery ISO InformationRecovery Media Creation Process CompleteRecovery Media can be generated later by choosing the tool from the System menu.Recovery Partition: Regenerating UUID / Rebuilding initramfsRequest closing the backendSRV EntrySave recovery media to DVDSave recovery media to an external USB flash driveSelect content for Utility PartitionSelected Content Details:Selected Image Details:Selected Overlay Details:System policy prevents closing processes without noticeSystem policy prevents reading raw devicesThe Base OS image provides the majority of the content for a BTO image. It can be a Vanilla OS image, or existing BTO Image.This requires a USB flash drive with approximately 2GB free.This requires writable DVD media.USB Flash DriveUtility Partition: Version:Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-12-14 05:42+0000 Last-Translator: Boyan Sotirov Language-Team: Bulgarian Language: bg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) (BTO Режим на изграждане на имидж)ГРЕШКА: Този носител е валиден само за системи Dell.Силно препоръчетелно е да генерирате носител и да го съхранявате на безопасно място.Бележка: Това изисква USB флаш с приблизително 2GB свободно пространство.Бележка: Това изисква записваем DVD носител.Добавяне на Dell RecoveryДобявяне в базовия имиджВсички SRV трябва да бъдат попълнени за продължаване.Съществуващ имидж беше открит (вероятно от предишно пускане). Искате ли да премахнете това старо копие и да регенерирате имиджа?Всички добавяеми драйвери или приложения, които трябва да бъдат интегрирани в имиджа, могат да бъдат добавени тук.ПриложениеСигурни ли сте, че искате да откажете процеса по създаване на Recovery Media?BTO имиджи могат да включват опционално Ютилити дял за диагностични помощни програми.Разглеждане за dell-recovery пакетИзграждане на dell-recovery пакет от тази системаОбобщение на изграгдащата програмаИзграждане на Dell ютилити дялСъздаване на ISOОтказНевъзможна връзката с dbusИзбор на съдържаниеИзбор на имиджИзбиране на пакетПотвърждение на изборитеСъздаване/Сглобяване на Dell Recovery ISODVD+/-RW дискСъздаване на Dell носител за възстановяванеDell Recovery Media може да се използва за възстановяване на вашата система до същото състояние в което тя ви е била доставена.Открит дял за възстановяванеОткрит Ютилити дялНе генерирай носител за възстановяване по това времеДрайверПо време на фабричната инсталация, приложенията са инсталирани само ако реда на записа (SDR) има референция към SRV (Service Release Vehicle). Това дава възможност SRV-та да бъдат запитвани по време на инсталацията.Извлечена ПапкаFID рамка изградена в BTO имиджISO образАко желаете да архивирате още едно копие, генерираният имидж беше запазен под името: ВключениИнсталиране на dpkg-repackТип носител: Няма допълнителен Ютилити дялОтваряне на записващо устройствоПакетиДостъпът отказанМоля въведете SRV, който да се използва:Запитване за BTO версияЗапитване за ISO информацияСъздаването на носител за възстановяване завършиRecovery Media може да бъде генериран по-късно като се избере инструмента то менюто СистемаДял за възстановяване: Регенериране UUID / Изграждане наново initramfsЗаявка за затваряне на бекендаSRV записЗапазване на носителя за възстановяване на DVDЗапазване на носителя за възстановяване на външен USB флаш дискИзбиране на съдържание за Ютилити дялИзбрани детайли на съдържанието:Избрани детайли на имиджа:Изпрани насложени детайли:Системните политики не позволяват затварянето на процес без известиеСистемните политики не позволяват четенето на блокови (raw) устройстваБазовият имидж на операционната система предоставя основното съдържание за BTO имиджа. Той може да бъде Vanilla OS имидж, или съществуващ BTO имидж.Това изисква USB флаш диск с приблизително 2GB свободно пространство.Това изисква записваем DVD диск.USB флаш паметПрограма за възстановяване: Версия:dell-recovery/build/mo/eu/0000755000000000000000000000000012043102664012641 5ustar dell-recovery/build/mo/eu/LC_MESSAGES/0000755000000000000000000000000012043102664014426 5ustar dell-recovery/build/mo/eu/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000105012311724101017525 0ustar 4L`a t~  Confirm SelectionsISO ImageProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-04-17 13:36+0000 Last-Translator: Oier Mees Language-Team: Basque Language: eu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) Aukerak baieztatuISO irudiadell-recovery/build/mo/pl/0000755000000000000000000000000012043102664012643 5ustar dell-recovery/build/mo/pl/LC_MESSAGES/0000755000000000000000000000000012043102664014430 5ustar dell-recovery/build/mo/pl/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000265212311724101017540 0ustar  hil  c '4C(U~TW"h  P*/=m    Adding in base imageCannot connect to dbusConfirm SelectionsDVD+/-RW DiscISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: Media Type: Opening BurnerPermission DeniedRecovery Media Creation Process CompleteRecovery Partition: USB Flash DriveUtility Partition: Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-01-26 15:16+0000 Last-Translator: Paweł Madej Language-Team: Polish Language: pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) Dodawanie obrazuNie można się połączyć z dbusPotwierdź wyboryDysk DVD+-RWObraz ISOJeżeli chcesz przygotować kolejną kopię, obraz został zapisany pod nazwą: Typ nośnika: Otwieranie nagrywarkiDostęp zabronionyProces Tworzenia Dysku Odzyskiwania ZakończonyPartycja przywracania Dysk USB FlashPartycja Narzędziowa dell-recovery/build/mo/nl/0000755000000000000000000000000012043102664012641 5ustar dell-recovery/build/mo/nl/LC_MESSAGES/0000755000000000000000000000000012043102664014426 5ustar dell-recovery/build/mo/nl/LC_MESSAGES/dell-recovery.mo0000644000000000000000000001712212311724101017534 0ustar JlePQTn7UI.]#}_U DO "V ,y      1 @ M \ !o  m ) E *`  [ "o c    * J Y b t    ( P J(_ 2$:Tl7*}<g!:]C[; 5Ix X7cg"'& N*\"   ,&?fvj+4`o(+7c`t  &( 7ASp]7+I u .+=%] I'8 !3J"<B?D*4#3I G7(8) >&9@5C -%;6=EJ$0A .+,' 12/ !:HF (BTO Image Builder Mode)ERROR: This media is only valid on Dell systems.It is highly recommended that you generate media and store it in a safe place.Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.Add Dell RecoveryAdding in base imageAll SRVs must be filled to proceed.An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Any add-on drivers or applications that need to be integrated into the image can be added here.ApplicationAre you sure you want to cancel the Recovery Media creation process?BTO images can optionally include a Utility Partition for diagnostic utilities.Browse for a dell-recovery packageBuild dell-recovery package from this systemBuilder SummaryBuilding Dell Utility PartitionBuilding GRUB core imageBuilding ISOCancel Recovery Media CreatorCannot connect to dbusChoose ContentChoose ImageChoose packageConfirm SelectionsCreate/Assemble Dell Recovery ISODVD+/-RW DiscDell Recovery Media CreatorDell Recovery Media can be used to restore your system to the same state as when it was first shipped to you.Detected Recovery PartitionDetected Utility PartitionDon't generate recovery media at this timeDriverDuring Factory Installation, applications are only installed if the order record (SDR) refers to the service release vehicle (SRV). This populates the possible SRVs to be queried during installation.Extracted DirectoryFID framework built into BTO imageISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: IncludedInstall dpkg-repackMedia Type: No additional Utility PartitionOpening BurnerPackagesPermission DeniedPlease enter the SRV to use:Preparing nested imageQuery BTO VersionQuery ISO InformationRecovery Media Creation Process CompleteRecovery Media can be generated later by choosing the tool from the System menu.Recovery Partition: Regenerating UUID / Rebuilding initramfsRequest closing the backendRestore to Factory stateSRV EntrySave recovery media to DVDSave recovery media to an external USB flash driveSelect content for Utility PartitionSelected Content Details:Selected Image Details:Selected Overlay Details:System policy prevents closing processes without noticeSystem policy prevents reading raw devicesThe Base OS image provides the majority of the content for a BTO image. It can be a Vanilla OS image, or existing BTO Image.This requires a USB flash drive with approximately 2GB free.This requires writable DVD media.USB Flash DriveUnable to proceedUtility Partition: Version:Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2011-02-26 20:56+0000 Last-Translator: Rachid Language-Team: Dutch Language: nl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) (BTO Image Builder Mode)FOUT: Dit medium is alleen geldig op Dell-systemen.Het is ten zeerste aan te raden dat u media aanmaakt en op een veilige plaats bewaart.Opmerking: Dit vereist een USB-stick met ongeveer 2 GB vrij.Opmerking: Dit vereist een beschrijfbare DVD-schijf.Dell-herstel toevoegenToevoegen aan basis-beeldbestandOm door te kunnen gaan moeten alle SRV's gevuld zijn.Er is een bestaand beeldbestand gevonden (waarschijnlijk van een vorige keer). Wilt u deze oude kopie verwijderen en een nieuw beeldbestand aanmaken?Alle stuurprogramma's en toepassingen die in het beeldbestand geïntegreerd moeten worden kunnen hier worden toegevoegd.ToepassingWeet u zeker dat u het herstelmediaproces wilt stoppen?BTO-beeldbestanden kunnen optioneel een hulpmiddelen-partitie voor diagnostische hulpmiddelen bevatten.Blader voor een dell-herstelpakketBouw dell-herstelpakket van dit systeemBouwoverzichtDell hulpmiddelen-partitie wordt opgebouwdGRUB kern-image voorbereidenISO wordt aangemaaktHerstelmedia aanmaken annulerenKan geen verbinding maken met dbusInhoud kiezenBeeldbestand kiezenPakket kiezenBevestig uw keuzesDell herstel-ISO aanmaken/samenstellenDvd+/-rw-schijfDell herstelmedia aanmakenDell herstelmedia kan gebruikt worden om uw systeem terug te brengen in de staat waarin het geleverd werd.Gevonden herstelpartitieGevonden hulpmiddelen-partitieOp dit ogenblik herstelmedia niet genererenStuurprogrammaTijdens de fabrieksinstallatie worden toepassingen alleen geïnstalleerd als de SDR verwijst naar de SRV. Dit vult de mogelijke SRV's in waarnaar tijdens de installatie gevraagd wordt.Uitgepakte mapFID-framework opgenomen in BTO-beeldbestandISO-beeldbestandWilt u nog een kopie bewaren, het aangemaakte beeldbestand is opgeslagen onder de bestandsnaam: InbegrepenInstall dpkg-repackMediumtype: Geen aanvullende hulpmiddelen-partitieBrander openenPakkettenToegang geweigerdVoer de te gebruiken SRV in:Genester image voorbereidenNaar BTO-versie vragenISO-informatie opvragenAanmaken herstelmedium gereedHerstelmedia kan later worden gegenereerd door het hulpmiddel te kiezen uit het menu Systeem.Herstelpartitie: Regenereren UUID/initramfs opnieuw opbouwenVerzoek om de backend te sluitenFabrieksinstellingen terugzettenIngevoerde SRVHerstelmedia opslaan op dvdHerstelmedia opslaan op een extern usb-stationInhoud voor de hulpmiddelen-partitie kiezenDetails voor inhoud selecteren:Details voor beeldbestand selecteren:Details voor overlay selecteren:Systeembeleid staat niet toe dat processen zonder melding worden geslotenSysteem houdt lezen raw-apparaten tegenHet basis-OS-beeldbestand levert het grootste deel van de inhoud voor een BTO-beeldbestand. Het kan een Vanilla-OS-beeldbestand zijn, of een bestaand BTO-beeldbestand.Dit vereist een usb-stick met ongeveer 2GB vrije ruimte.Dit vereist beschrijfbare DVD'sUsb-stickKan niet doorgaanHulpmiddelen-partitie Versie:dell-recovery/build/mo/ga/0000755000000000000000000000000012043102664012617 5ustar dell-recovery/build/mo/ga/LC_MESSAGES/0000755000000000000000000000000012043102664014404 5ustar dell-recovery/build/mo/ga/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000121312311724101017504 0ustar Dl ^ am ~ ISO ImagePermission DeniedUSB Flash DriveProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-01-26 15:14+0000 Last-Translator: Aaron Mac Fhionnlaoich Language-Team: Irish Language: ga MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) Íomhá ISOCead DiúltaitheMéaróg USBdell-recovery/build/mo/vi/0000755000000000000000000000000012043102664012646 5ustar dell-recovery/build/mo/vi/LC_MESSAGES/0000755000000000000000000000000012043102664014433 5ustar dell-recovery/build/mo/vi/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000240012311724101017532 0ustar  l   *c4(!$  us=  Building Base imageCannot connect to dbusDell RecoveryExceptionIf you would like to archive another copy, the generated image has been stored under the filename: Opening BurnerPermission DeniedRecovery Media Creation Process CompleteUnable to proceedProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2011-03-16 11:51+0000 Last-Translator: Lê Trường An Language-Team: Vietnamese Language: vi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) Tạo dựng hình ảnh cơ sởKhông thể kết nối đến dbusDell RecoveryNgoại lệNếu bạn muốn lưu trữ một bản sao khác, hình ảnh được tạo đã được lưu lại với tên: Đang mở trình ghi đĩaKhông có đủ quyềnHoàn tất tiến trình tạo tập tin đa phương tiệnKhông thể tiếp tụcdell-recovery/build/mo/el/0000755000000000000000000000000012043102664012630 5ustar dell-recovery/build/mo/el/LC_MESSAGES/0000755000000000000000000000000012043102664014415 5ustar dell-recovery/build/mo/el/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000071312311724101017521 0ustar $,89Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-03-19 14:20+0000 Last-Translator: FULL NAME Language-Team: Greek Language: el MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) dell-recovery/build/mo/fi/0000755000000000000000000000000012043102664012626 5ustar dell-recovery/build/mo/fi/LC_MESSAGES/0000755000000000000000000000000012043102664014413 5ustar dell-recovery/build/mo/fi/LC_MESSAGES/dell-recovery.mo0000644000000000000000000002637012311724101017526 0ustar kt ! $ > 7U U I .- \ n # } _%  D   O f q  "  ,   , L e r     !  #m?*&  ("B eco   #0PpH.GY(oP('Cap 2$ 8JR-7*=.l}<!p@$DbER51M8if6/c v("7Wn  1 A %S y  s $!KLFY,#XM I6"JQN0D_ 4[H*78!jVAURWhZ%kB(5S ;c]a:1C feG@?2\db+$P&<-` (BTO Image Builder Mode)ERROR: This media is only valid on Dell systems.It is highly recommended that you generate media and store it in a safe place.Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.Add Dell RecoveryAdding in base imageAll SRVs must be filled to proceed.An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Any add-on drivers or applications that need to be integrated into the image can be added here.ApplicationApplication PackagesAre you sure you want to cancel the Recovery Media creation process?Assembling Image ComponentsBTO Base ImageBTO images can optionally include a Utility Partition for diagnostic utilities.Base ImageBase Image DistributorBase Image ReleaseBase OS ImageBrowse for a dell-recovery packageBuild OS MediaBuild dell-recovery package from this systemBuilder SummaryBuilding Base imageBuilding Dell Utility PartitionBuilding GRUB core imageBuilding ISOCancel Recovery Media CreatorCannot connect to dbusChoose ContentChoose ImageChoose packageConfirm SelectionsCreate/Assemble Dell Recovery ISODVD+/-RW DiscDell RecoveryDell Recovery Media CreatorDell Recovery Media can be used to restore your system to the same state as when it was first shipped to you.Detected Recovery PartitionDetected Utility PartitionDon't generate recovery media at this timeDriverDriver PackagesDuring Factory Installation, applications are only installed if the order record (SDR) refers to the service release vehicle (SRV). This populates the possible SRVs to be queried during installation.ExceptionExtracted DirectoryFID ContentFID Framework enclosed in debian packageFID framework built into BTO imageISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: Image FileIncludedInject Dell Recovery PackageInstall dpkg-repackMedia TypeMedia Type: No Additional Utility PartitionNo additional Utility PartitionNo media, create imageOpening BurnerPackagesPart of the FID overlay requires a dell-recovery package to be included.Permission DeniedPlease enter the SRV to use:Preparing nested imageProcessing FISH packagesQuery BTO VersionQuery ISO InformationRecovery Media Creation Process CompleteRecovery Media can be generated later by choosing the tool from the System menu.Recovery Partition: Regenerating UUID / Rebuilding initramfsRequest closing the backendRestore #OS# to factory stateRestore SystemRestore to Factory stateSRV EntrySave recovery media to DVDSave recovery media to an external USB flash driveSelect content for Utility PartitionSelected Content Details:Selected Image Details:Selected Overlay Details:System does not appear to contain Dell factory installed partition layout.System policy prevents changing system bootupSystem policy prevents closing processes without noticeSystem policy prevents reading raw devicesSystem policy prohibits changing network without user consentThe BTO FID framework is the first thing injected into a base vanilla image. If you are generating from an existing BTO compatible image, you may use the built-in framework.The Base OS image provides the majority of the content for a BTO image. It can be a Vanilla OS image, or existing BTO Image.This requires a USB flash drive with approximately 2GB free.This requires writable DVD media.This will create OS Recovery Media that can be used to restore the computer to its factory shipped state. You will have the option to create an USB key or DVD image.This will integrate a Dell OEM FID framework & driver package set into a customized OS media image. You will have the option to create an USB key or DVD image.This will restore the system to the factory shipped state using the recovery partition stored on the hard drive.Toggle Network ConnectivityUSB Flash DriveUnable to proceedUtility PartitionUtility Partition: Version:_HelpProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2011-10-07 11:12+0000 Last-Translator: Timo Jyrinki Language-Team: Finnish Language: fi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-10-08 05:17+0000 X-Generator: Launchpad (build 14110) (BTO-levykuvan rakennustila)VIRHE: Tämä media on tarkoitettu vain Dell-järjestelmille.Median luominen on hyvin suositeltavaa. Sijoita se luomisen jälkeen turvalliseen paikkaan.Huomaa: Tämä vaatii USB-muistivälineen, jolla on noin 2GB vapaata tilaa.Huomaa: Tämä vaatii kirjoitettavan DVD-levynLisää ”Dell Recovery”Lisätään peruslevykuvaanKaikki SRV:t tulee olla täytetty, jotta voidaan jatkaa.Olemassa oleva levykuva löytyi (mahdollisesti edelliseltä suorituskerralta). Haluatko poistaa tämän vanhan kopion ja luoda levykuvan uudelleen?Mahdolliset tarvittavat, levykuvaan integroitavat lisäajurit ja sovellukset voidaan lisätä tässä.SovellusSovelluspaketitHaluatko varmasti perua palautusmedian luonnin?Koostetaan levykuvan osiaBTO-peruslevykuvaBTO-levykuvat voivat valinnaisesti sisältää vianjäljitystyökaluja sisältävän työkaluosion.PeruslevykuvaPeruslevykuvan jakelijaPeruslevykuvan julkaisuPeruskäyttöjärjestelmäkuvaSelaa etsiäksesi dell-recovery-pakettiaRakenna käyttöjärjestelmämediaRakenna dell-recovery-paketti tästä järjestelmästäRakennuksen yhteenvetoRakennetaan peruslevykuvaaRakennetaan Dell-työkaluosiotaRakennetaan GRUB-ydinlevykuvaaRakennetaan ISOaPeru palautusmedian luontiDbusiin ei voi yhdistääValitse sisältöValitse levykuvaValitse pakettiVahvista valinnatLuo/koosta Dell-palautus-ISO-levykuvaDVD+/-RW-levyDell-palautusDell-palautusmedian luontiDell-palautusmedialta järjestelmä voidaan palauttaa samaan tilaan, jossa se oli vastaanottaessasi järjestelmän.Palautusosio havaittiinTyökaluosio havaittiinÄlä luo palautusmediaa tällä kertaaAjuriAjuripaketitTehdasasennuksen aikana sovelluksia asennetaan vain, jos tilausrekisteri (”SDR”) viittaa SRV:hen (”service release vehicle”). Tämä sisältää asennuksen aikana kyseltävät mahdolliset SRV:t.PoikkeusPurettiin hakemistoFID-sisältöFID-kehysohjelmisto sisällytettynä debian-pakettiinFID-kehysohjelmisto rakennettu BTO-levykuvaanISO-levykuvaSiltä varalta, että haluaisit arkistoida toisen kopion, on luotu levykuva tallennettu tiedostonimellä: LevykuvatiedostoSisältyySisällytä Dellin palautuspakettiAsenna dpkg-repackMedian tyyppiMedian tyyppi: Ei ylimääräistä työkaluosiotaEi ylimääräistä työkaluosiotaEi mediaa, luo levykuvaAvataan kirjoittajaa.PaketitOsa FID-laskoksesta vaatii dell-recovery-paketin sisällyttämistä.Pääsy evättySyötä käytettävä SRV:Valmistellaan sisäkkäistä levykuvaaKäsitellään FISH-pakettejaTarkista BTO-versioTarkista ISO-tiedotPalautusmedian luominen valmisPalautusmedian voi luoda myöhemmin valitsemalla työkalun Järjestelmä-valikosta.Palautusosio: Luodaan uudelleen UUID / rakennetaan uudelleen initramfsPyydä taustaohjelman sulkemistaPalauta #OS# tehdastilaanPalauta järjestelmäPalauta tehdastilaanSRV:n syöttöTallenna palautusmedia DVD-levylleTallenna palautusmedia ulkoiselle USB-muistivälineelleValitse työkaluosion sisältöValitse sisällön yksityiskohdat:Valitun levykuvan tiedot:Valitun laskostuksen tiedot:Järjestelmässä ei vaikuttaisi olevan Dellin tehtaalla asennettua osiojaottelua.Järjestelmän käytännöt estävät järjestelmän käynnistyksen muuttamisenJärjestelmän valtuutusasetukset estävät prosessien sulkemisen ilman ilmoitustaJärjestelmän valtuutusasetukset estävät raakalaitteiden (raw) lukemisenJärjestelmäkäytäntö estää verkon muuttamista ilman käyttäjän hyväksyntääBTO FID -kehysohjelmisto on ensimmäinen peruslevykuvaan lisättävä asia. Jos olet luomassa tätä olemassa olevasta BTO-yhteensopivasta levykuvasta, voit käyttää sisään rakennettua kehysohjelmistoa.Käyttöjärjestelmän peruslevykuva tarjoaa suurimman osan BTO-levykuvan sisällöstä. Se voi olla puhdas käyttöjärjestelmän levykuva, tai olemassa oleva BTO-levykuva.Tämä vaatii USB-aseman, jolla on noin 2GB vapaata tilaa-Tämä vaatii kirjoitettavan DVD-levyn.Tämä luo käyttöjärjestelmän palautusmedian, jota käyttämällä tietokone on mahdollista palauttaa tehtaalta tulleeseen tilaansa. Voit luoda USB-muisti- tai DVD-levykuvanTämä integroi Dellin OEM FID -kehyksen ja ajuripaketit mukautettuun käyttöjärjestelmämedian levykuvaan. Voit luoda USB-muisti- tai DVD-levykuvan.Tämä palauttaa järjestelmän tilaan, jossa se oli tehtaalla toimitettaessa. Palautukseen käytetään kiintolevylle sisällytettyä palautusosiota.Kytke verkkoyhteydet päälle tai poisUSB-Flash-asemaEi voida jatkaaTyökaluosioTyökaluosio: Versio:O_hjedell-recovery/build/mo/ru/0000755000000000000000000000000012043102664012656 5ustar dell-recovery/build/mo/ru/LC_MESSAGES/0000755000000000000000000000000012043102664014443 5ustar dell-recovery/build/mo/ru/LC_MESSAGES/dell-recovery.mo0000644000000000000000000003335412311724101017556 0ustar b,<HIL7fUI.> m  # } _6 D   O b m  "  ,    : S ` ~    !   m-   *   ("$ GcQ    H$m(Pn( 23$fJ-"7P*}b<!?p,@IO+snC3`V0]O<k,%$B c 0 / ' ! ![,!3!%!!!!"H<""9"?"#<#K $JY$$$_$3&%H&<n&9&&^&S'i' z'''2'0' -(_:((B(>(&:)a)*)K))-*.++,Z+P+'+H,I,AZ,V,L,)@-4j-:--mi..b/?/31Z29v2v2'405*96'd66!6 66IU5?,1 LaV+OSZR/TQ ] !CYX>;^"[2 FDH'76K3M%&P-\:W9$b<N=0 #J. E48)A*`B@(G_ (BTO Image Builder Mode)ERROR: This media is only valid on Dell systems.It is highly recommended that you generate media and store it in a safe place.Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.Add Dell RecoveryAdding in base imageAll SRVs must be filled to proceed.An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Any add-on drivers or applications that need to be integrated into the image can be added here.ApplicationAre you sure you want to cancel the Recovery Media creation process?Assembling Image ComponentsBTO Base ImageBTO images can optionally include a Utility Partition for diagnostic utilities.Base ImageBase Image DistributorBase Image ReleaseBrowse for a dell-recovery packageBuild OS MediaBuild dell-recovery package from this systemBuilder SummaryBuilding Base imageBuilding Dell Utility PartitionBuilding GRUB core imageBuilding ISOCancel Recovery Media CreatorCannot connect to dbusChoose ContentChoose ImageChoose packageConfirm SelectionsCreate/Assemble Dell Recovery ISODVD+/-RW DiscDell RecoveryDell Recovery Media CreatorDell Recovery Media can be used to restore your system to the same state as when it was first shipped to you.Detected Recovery PartitionDetected Utility PartitionDon't generate recovery media at this timeDriverDriver PackagesDuring Factory Installation, applications are only installed if the order record (SDR) refers to the service release vehicle (SRV). This populates the possible SRVs to be queried during installation.ExceptionExtracted DirectoryFID Framework enclosed in debian packageFID framework built into BTO imageISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: Image FileIncludedInstall dpkg-repackMedia TypeMedia Type: No media, create imageOpening BurnerPackagesPart of the FID overlay requires a dell-recovery package to be included.Permission DeniedPlease enter the SRV to use:Preparing nested imageProcessing FISH packagesQuery BTO VersionQuery ISO InformationRecovery Media Creation Process CompleteRecovery Media can be generated later by choosing the tool from the System menu.Recovery Partition: Regenerating UUID / Rebuilding initramfsRequest closing the backendRestore #OS# to factory stateRestore SystemRestore to Factory stateSRV EntrySave recovery media to DVDSave recovery media to an external USB flash driveSelect content for Utility PartitionSelected Content Details:Selected Image Details:Selected Overlay Details:System does not appear to contain Dell factory installed partition layout.System policy prevents changing system bootupSystem policy prevents closing processes without noticeSystem policy prevents reading raw devicesThe BTO FID framework is the first thing injected into a base vanilla image. If you are generating from an existing BTO compatible image, you may use the built-in framework.The Base OS image provides the majority of the content for a BTO image. It can be a Vanilla OS image, or existing BTO Image.This requires a USB flash drive with approximately 2GB free.This requires writable DVD media.This will create OS Recovery Media that can be used to restore the computer to its factory shipped state. You will have the option to create an USB key or DVD image.This will integrate a Dell OEM FID framework & driver package set into a customized OS media image. You will have the option to create an USB key or DVD image.This will restore the system to the factory shipped state using the recovery partition stored on the hard drive.USB Flash DriveUnable to proceedUtility PartitionUtility Partition: Version:_HelpProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2012-11-30 11:57+0000 Last-Translator: Eugene Marshal Language-Team: Russian Language: ru MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2012-12-01 05:16+0000 X-Generator: Launchpad (build 16319) (Режим сборки образа BTO) ОШИБКА: Этот образ (диск) совместим только с системами Dell.Настоятельно рекомендуем создать носитель и сохранить его в безопасном месте.Примечание: Это действие потребует USB диск с не менее 2 Гб свободного места.Примечание: Это действие потребует записываемый DVD диск.Добавить средство восстановления DellДобавление в основной образЧтобы продолжить, должны быть заполнены все SRVs.Был обнаружен существующий образ (возможно от предыдущего запуска). Вы действительно хотите удалить устаревшую копию и создать новый образ?Все надстройки или программы, которые необходимо интегрировать в образ, могут быть добавлены здесь.ПриложениеВы уверены, что хотите отказаться от процесса создания аварийного диска восстановления?Сборка компонентов образаОсновной образ BTOОбразы BTO, могут включить необязательное средство раздела с инструментами диагностики.Основной образРаспределитель основного образаВыпуск основного образаОбзор пакета dell-recoveryСобрать носитель ОССобрать пакет dell-recovery с этой системыСводка сборщикаСоздание основного образаСборка раздела утилиты DellСборка образа ядра GRUBСоздание образа ISOОтменить работу по созданию диска восстановленияНевозможно соединиться с dbusВыберите содержимоеВыберите образВыберите пакетПодтвердить выборСоздать/Собрать диск восстановления DellДиск DVD+/-RWУтилита восстановления Dell RecoveryСоздание дисков восстановления DellДиск восстановления Dell может использоваться для восстановления первоначального состояния компьютера.Обнаружен раздел восстановленияОбнаружен раздел утилиты восстановленияНе создавать диск восстановления сейчасДрайверПакеты драйверовВ момент установки первоначальных данных, приложение устанавливаются в случае очерёдности записи (SDR) ссылающегося на службу SRV. Это повышает возможность запроса службы SRV во время установки.ИсключениеИзвлечённый каталогСтруктура FID внедрена в пакет debianСтруктура FID внедрена в образ BTOОбраз ISOЕсли вы хотите копию архива, он был сохранён в файл: Файл образаВключеноУстановить dpkg-repackТип данныхТип носителя: Нет носителя, создать образОткрытие программы записиПакетыЧасть наложения FID требует включения пакета dell-recovery.Доступ запрещёнПожалуйста, введите используемый SRV:Подготовка собирательного образаОбработка пакетов FISHЗапрос версии BTOЗапрос информации об ISOСоздание диска восстановления завершеноВосстановление информации можно запустить позднее, выбрав утилиту из меню "Система" - "Администрирование" - "Создание дисков восстановления Dell".Восстановление раздела: Создание UUID / Сборка initramfsЗапрос закрытия бэкэндаВосстановить #OS# в первоначальное состояниеВосстановить системуВосстановить первоначальное состояниеЗапись SRVСохранить диск восстановления на DVDСохранить диск восстановления на USB накопительВыберите содержимое для средства разделаСведения о содержимом:Сведения о выбранном образе:Сведения о выбранном наложении:Система не содержит предустановленного компанией Dell раздела восстановления.Политика системы предотвращает изменение загрузки системыСистемная политика предотвращает закрытие процессов без дополнительного уведомления пользователяСистемная политика предотвращает чтение RAW устройствСтруктура BTO FID это первая часть внедряемая в основной образ vanilla. Если вы создаёте из существующего совместимого образа BTO, вам необходимо использовать встроенную структуру.Основной образ ОЗ предоставляет большую часть содержимого для образа BTO. Это может быть образ Vanilla OS или существующий образ BTO.Требуется USB диск с не менее 2 Гб свободного места.Требуется записываемый DVD диск.Это позволит создать носитель восстановления ОС, который может использоваться для восстановления рабочей среды компьютера в первоначальное состояние. У вас есть возможность создать USB ключ или образ DVD.Это позволит интегрировать структуру и пакет драйверов Dell OEM FID в ваш персональный образ. У вас появится возможность создать USB ключ или образ DVD.Это позволит восстановить рабочую среду компьютера в первоначальное состояние, используя раздел восстановления, сохраняемый на жёстком диске.Съёмный USB диск (флэшка)Невозможно выполнитьСредство разделаСредство раздела: Версия:_Справкаdell-recovery/build/mo/pt_BR/0000755000000000000000000000000012043102664013236 5ustar dell-recovery/build/mo/pt_BR/LC_MESSAGES/0000755000000000000000000000000012043102664015023 5ustar dell-recovery/build/mo/pt_BR/LC_MESSAGES/dell-recovery.mo0000644000000000000000000001766212311724101020142 0ustar SqL.7EU}I.L^}s D W f q "  ,    " ; H f }   !  m   *     c       # , > P (f P  ( <Kd2J-/7]*<!p1ASey- 0#Q=uSY1a R]Wt "(,Fs*$!$AWgz&'%#0   & 4R? '' 3L]ex4iN*l(#%3"PsJ<79SL$yBTo G?#"1N(D;,7CF I *2$!-/<+R=.B:9L M3&'SHQ8@O4) 5>P%6JE0AK  (BTO Image Builder Mode)ERROR: This media is only valid on Dell systems.It is highly recommended that you generate media and store it in a safe place.Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.Add Dell RecoveryAdding in base imageAn existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?ApplicationApplication PackagesAre you sure you want to cancel the Recovery Media creation process?BTO Base ImageBase ImageBase OS ImageBrowse for a dell-recovery packageBuild OS MediaBuild dell-recovery package from this systemBuilder SummaryBuilding Base imageBuilding Dell Utility PartitionBuilding GRUB core imageBuilding ISOCancel Recovery Media CreatorCannot connect to dbusChoose ContentChoose ImageChoose packageConfirm SelectionsCreate/Assemble Dell Recovery ISODVD+/-RW DiscDell RecoveryDell Recovery Media CreatorDell Recovery Media can be used to restore your system to the same state as when it was first shipped to you.Detected Recovery PartitionDetected Utility PartitionDon't generate recovery media at this timeDriverDriver PackagesExceptionFID ContentISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: Image FileIncludedInject Dell Recovery PackageInstall dpkg-repackMedia TypeMedia Type: No Additional Utility PartitionNo media, create imageOpening BurnerPackagesPermission DeniedQuery BTO VersionQuery ISO InformationRecovery Media Creation Process CompleteRecovery Media can be generated later by choosing the tool from the System menu.Recovery Partition: Regenerating UUID / Rebuilding initramfsRestore #OS# to factory stateRestore SystemRestore to Factory stateSave recovery media to DVDSave recovery media to an external USB flash driveSelected Content Details:Selected Image Details:System does not appear to contain Dell factory installed partition layout.System policy prevents changing system bootupSystem policy prevents closing processes without noticeSystem policy prevents reading raw devicesThis requires a USB flash drive with approximately 2GB free.This requires writable DVD media.This will integrate a Dell OEM FID framework & driver package set into a customized OS media image. You will have the option to create an USB key or DVD image.This will restore the system to the factory shipped state using the recovery partition stored on the hard drive.USB Flash DriveUnable to proceedUtility PartitionUtility Partition: Version:_HelpProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2011-10-15 01:02+0000 Last-Translator: André Gondim Language-Team: Brazilian Portuguese Language: pt_BR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-10-16 05:15+0000 X-Generator: Launchpad (build 14124) (Modo construtor de imagem BTO)ERRO: Esta mídia é válida somente em sistemas Dell.É altamente recomendado criar uma mídia e armazená-la em um lugar seguro.Nota: Isso requer uma unidade flash USB com aproximadamente 2 GB de espaço livre.Nota: Isso requer mídia de DVD gravável.Adicionar Dell RecoveryAdicionando à imagem baseUma imagem existente foi encontrada (possivelmente de uma execução anterior). Você deseja remover essa cópia antiga e regerar a imagem?AplicativoPacotes de aplicativosVocê tem certeza que quer cancelar o processo de criação da Mídia de Recuperação?Imagem base BTOImagem baseImagem Base do SOProcurar pelo pacote dell-recoveryCompilar a mídia do Sistema OperacionalMontar um pacote dell-recovery deste sistemaConstrutor do resumoConstruindo imagem baseConstruindo partição de utilitário DellConstruindo imagem principal do GRUBConstruindo a ISOCancelar o Recovery Media CreatorImpossível conectar ao dbusSelecione o conteúdoEscolher imagemSelecione o pacoteConfirmar seleçõesCriar/montar ISO recuperação da DellDisco DVD+/-RWRecuperação DellCriador de mídia de recuperação DellA Mídia de Recuperação da Dell poderá ser usada para restaurar o seu sistema para o mesmo estado de quando foi enviado para você.Partição de recuperação detectadaPartição do utilitário detectadaNão criar mídia de recuperação neste momentoDriverPacotes de driversExceçãoConteúdo FIDImagem ISOSe você deseja arquivar outra cópia, a imagem gerada foi armazenada sob o nome: Arquivo de imagemIncluídoInserir pacote de recuperação da DellInstalar dpkg-repackTipo de mídiaTipo de mídia: Sem partição adicional de utilitárioSem mídia, criar imagemAbrindo gravadorPacotesPermissão Negada.Consultar versão do BTOConsultar informação do BTOConcluído o processo de criação do Recovery MediaA mídia de recuperação poderá ser criada depois, escolhendo esta ferramenta a partir do menu Sistema.Partição de Recuperação: Regenerando UUID / Reconstruindo initramfsRestaurar #OS# para o estado de fábricaRestaurar sistemaRestaurar para o estado de FábricaSalvar mídia de recuperação no DVDSalvar mídia de recuperação na unidade flash USBDetalhes do conteúdo selecionado:Detalhes da imagem selecionada:O sistema não aparenta conter o layout da partição de fábrica da Dell.Política do sistema impede a alteração da inicializaçãoPolítica do sistema impede fechar processos sem avisarPolítica do sistema impede a leitura de dispositivos rawIsso requer uma unidade flash USB com aproximadamente 2 GB de espaço livre.Isso requer mídia de DVD gravável.Isso irá integrar uma estrutura Dell OEM FID e o pacote de driver inseridos em uma imagem personalizada do sistema operacional. Você terá a opção de criar uma imagem de um pendrive USB ou de DVD.Isso irá restaurar o sistema para o estado de fábrica usando a partição de recuperação armazenada no disco rígido.Unidade Flash USBProcedimento indisponívelPartição do utilitárioPartição Utilitária: Versão:Aj_udadell-recovery/build/mo/cs/0000755000000000000000000000000012043102664012635 5ustar dell-recovery/build/mo/cs/LC_MESSAGES/0000755000000000000000000000000012043102664014422 5ustar dell-recovery/build/mo/cs/LC_MESSAGES/dell-recovery.mo0000644000000000000000000000115212311724101017524 0ustar <\p q ~ 9 DNBuilding ISOISO ImagePermission DeniedProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-12-14 08:57+0000 Last-Translator: Mario Limonciello Language-Team: Czech Language: cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) Stavba ISOISO obrazNedostatečná oprávněnídell-recovery/build/mo/it/0000755000000000000000000000000012043102664012644 5ustar dell-recovery/build/mo/it/LC_MESSAGES/0000755000000000000000000000000012043102664014431 5ustar dell-recovery/build/mo/it/LC_MESSAGES/dell-recovery.mo0000644000000000000000000002701012311724101017534 0ustar kt ! $ > 7U U I .- \ n # } _%  D   O f q  "  ,   , L e r     !  #m?*&  ("B eco   #0PpH.GY(oP('Cap 2$ 8JR-7*=.l}<!p@$#DXKP5+B4`\g ZgF~] Sa|&)(- ;W+r%& / B V (i   # f !D!f!5!!!! "" "*"%# 7#JD# ##"####)$).$ X$y$ $N$$$ %;%W%s%9%k%9&,R&&?&&&&'+ 'AL'5'#'#'! (S.(H(F(>)SQ))f*B%+(h++M,v ------ -. T O^)g9=/Ei3'.>KLFY,#XM I6"JQN0D_ 4[H*78!jVAURWhZ%kB(5S ;c]a:1C feG@?2\db+$P&<-` (BTO Image Builder Mode)ERROR: This media is only valid on Dell systems.It is highly recommended that you generate media and store it in a safe place.Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.Add Dell RecoveryAdding in base imageAll SRVs must be filled to proceed.An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Any add-on drivers or applications that need to be integrated into the image can be added here.ApplicationApplication PackagesAre you sure you want to cancel the Recovery Media creation process?Assembling Image ComponentsBTO Base ImageBTO images can optionally include a Utility Partition for diagnostic utilities.Base ImageBase Image DistributorBase Image ReleaseBase OS ImageBrowse for a dell-recovery packageBuild OS MediaBuild dell-recovery package from this systemBuilder SummaryBuilding Base imageBuilding Dell Utility PartitionBuilding GRUB core imageBuilding ISOCancel Recovery Media CreatorCannot connect to dbusChoose ContentChoose ImageChoose packageConfirm SelectionsCreate/Assemble Dell Recovery ISODVD+/-RW DiscDell RecoveryDell Recovery Media CreatorDell Recovery Media can be used to restore your system to the same state as when it was first shipped to you.Detected Recovery PartitionDetected Utility PartitionDon't generate recovery media at this timeDriverDriver PackagesDuring Factory Installation, applications are only installed if the order record (SDR) refers to the service release vehicle (SRV). This populates the possible SRVs to be queried during installation.ExceptionExtracted DirectoryFID ContentFID Framework enclosed in debian packageFID framework built into BTO imageISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: Image FileIncludedInject Dell Recovery PackageInstall dpkg-repackMedia TypeMedia Type: No Additional Utility PartitionNo additional Utility PartitionNo media, create imageOpening BurnerPackagesPart of the FID overlay requires a dell-recovery package to be included.Permission DeniedPlease enter the SRV to use:Preparing nested imageProcessing FISH packagesQuery BTO VersionQuery ISO InformationRecovery Media Creation Process CompleteRecovery Media can be generated later by choosing the tool from the System menu.Recovery Partition: Regenerating UUID / Rebuilding initramfsRequest closing the backendRestore #OS# to factory stateRestore SystemRestore to Factory stateSRV EntrySave recovery media to DVDSave recovery media to an external USB flash driveSelect content for Utility PartitionSelected Content Details:Selected Image Details:Selected Overlay Details:System does not appear to contain Dell factory installed partition layout.System policy prevents changing system bootupSystem policy prevents closing processes without noticeSystem policy prevents reading raw devicesSystem policy prohibits changing network without user consentThe BTO FID framework is the first thing injected into a base vanilla image. If you are generating from an existing BTO compatible image, you may use the built-in framework.The Base OS image provides the majority of the content for a BTO image. It can be a Vanilla OS image, or existing BTO Image.This requires a USB flash drive with approximately 2GB free.This requires writable DVD media.This will create OS Recovery Media that can be used to restore the computer to its factory shipped state. You will have the option to create an USB key or DVD image.This will integrate a Dell OEM FID framework & driver package set into a customized OS media image. You will have the option to create an USB key or DVD image.This will restore the system to the factory shipped state using the recovery partition stored on the hard drive.Toggle Network ConnectivityUSB Flash DriveUnable to proceedUtility PartitionUtility Partition: Version:_HelpProject-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2011-08-04 15:18+0000 Last-Translator: Claudio Arseni Language-Team: Italian Language: it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) (BTO Modalità creazione immagine)Errore: questo supporto può essere utilizzato solo su sistemi Dell.È consigliato creare un supporto di ripristino e conservarlo in ul luogo sicuro.Nota: è richiesta una unità flash USB con almeno 2 GB di spazio libero.Nota: è richiesto un supporto DVD scrivibile.Aggiungi Dell RecoveryAggiunta all'immagine di baseTutti gli SRV devonon essere riempiti per procedere.È stata trovata un'immagine precedente. Rimuovere la vecchia copia e rigenerare l'immagine?Tutti i componenti aggiuntivi o le applicazioni da integrare nell'immagine possono essere aggiunti qui.ApplicazionePacchetti applicazioneAnnullare veramente il processo di creazione del supporto di recupero?Montaggio componenti immagineBase immagine BTOLe immagini BTO possono opzionalmente contenere un partizione di utilità per la diagnostica.Base immagineBase immagine distributoreBase immagine rilascioImmagine di base del sistema operativoRicercare tutti i pacchetti dell-recoveryCreazione supporto del sistema operativoGenera un pacchetto dell-recovery del sistemaSommario creazione immagineCreazione immagine di baseCreazione della partizione di utilità DellCreazione immagine principale di GRUBGenerazione ISOAnnulla creazione supporto di recuperoImpossibile connettersi a D-BusScegliere contenutoScegliere immagineScegliere pacchettoConferma selezioniCreazione/Assemblaggio ISO recupero DellDisco DVD+/-RWRipristino sistemi DellCreazione supporto di recupero DellIl supporto di ripristino Dell può essere utilizzato per ripristinare il sistema allo stato iniziale.Rilevata partizione di ripristinoRilevata partizione di utilitàNon generare supporti di ripristino in questo momentoDriverPacchetti driverDurante l'installazione delle impostazioni di fabbrica, le applicazioni vengono installate solo se l'ordine dei record (SDR) fa riferimento ad un SRV, aumentando la possibiltà che questo venga interrogato durante l'installazione.EccezioneDirectory estrattaContenuto FIDFramework FID incluso nel pacchetto debianAmbiente FID creato nell'immagine BTOImmagine ISOPer creare un'altra copia, l'immagine generata è stata salvata nel file: File immagineaggiuntaAggiungere pacchetto recupero DellInstallare dpkg-repackTipo si supportoTipo di supporto: Nessuna partizione di utilità aggiuntivaNessuna partizione di utilità aggiuntivaNessun supporto, creare immagineApertura del masterizzatorePacchettiParte della copertura FID richiede l'inclusione di un pacchetto dell-recovery.Permesso negatoinserire SRV da utilizzare:Preparazione immagine nidificataElaborazione pacchetti FISHInterrogazione versione BTOInterrogazione infromazioni ISOProcesso di creazione del supporto di recupero completatoI supporti di ripristino possono essere generati successivamente scegliendo il programma dal menù Sistema.Partizione di recupero: Rigenerazione UUID / Ricostruzione initramfsRichiesta chiusura backendRipristinare il sistema operativo alle impostazioni di fabbricaRipristina il sistemaRipristina le impostazioni di fabbricaVoce SRVSalvare il supporto di ripristino in un DVDSalvare il supporto di ripristino in una unità flash USB esternaSelezionare il contenuto della partizione di utilitàDettagli del contenuto selezionato:Dettagli dell'immagine selezionata:Dettagli sovrapposti selezionati:Il sistema non sembra contenere una partizione con le impostazioni Dell installata.La politica del sistema previene la modifica delle impostazioni di avvioLa politica di sistema impedisce la chiusura dei processi senza avvisoLa politica di sistema impedisce la lettura di dispositivi rawLa politica di sistema proibisce il cambio della rete senza il consenso dell'utenteIl framework FID BTO è la prima cosa inserita in una immagine «vanilla». Se si sta generando l'immagine da una BTO compatibile già esistente, si dovrebbe utilizzare il framework integrato.L'immagine di base del sistema operativo fornisce la maggior parte dei contenuti per un'immagine "BTO". Può essere un'immagine "Vanilla" del sistema operativo o un'immagine "BTO" esistente.È richiesta un'unità flash USB con almeno 2 GB di spazio libero.È richiesto un supporto DVD scrivibile.Verrà creato un supporto di ripristino del sistema operativo da utilizzare per riporatre il computer alle impostazioni iniziali. Sarà possibile creare un supporto USB o un'immagine DVD.Verranno integrati all'interno dell'immagine personalizzata del sistema operativo un framework Dell OEM e il pacchetto dei driver. Sarà possibile creare un supporto USB o un'immagine DVD.Riporterà il sistema alle impostazioni originali utilizzando la partizione di ripristino archiviata sul disco rigido.Commuta connettività di reteUnità flash USBImpossibile proseguirePartizione di utilitàPartizione di utilità: Versione:A_iutodell-recovery/build/mo/gl/0000755000000000000000000000000012043102664012632 5ustar dell-recovery/build/mo/gl/LC_MESSAGES/0000755000000000000000000000000012043102664014417 5ustar dell-recovery/build/mo/gl/LC_MESSAGES/dell-recovery.mo0000644000000000000000000001700212311724101017522 0ustar EDal7%U]I.,>#S}w_ UDaO", F V v      !  & mB   *    "  c#         * (@ Pi  (  29$l7*}&<!'0%':NOO05.M{|c \Tgk&(6O-.! .CYm3,p(d"2 4 $T./'#C<g^, %M s)A4" C;c2C_( =60",+8-%!/ 5BD9*: )(;2AC3'7>.E1 &<4$@ ? # (BTO Image Builder Mode)ERROR: This media is only valid on Dell systems.It is highly recommended that you generate media and store it in a safe place.Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.Add Dell RecoveryAdding in base imageAll SRVs must be filled to proceed.An existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?Any add-on drivers or applications that need to be integrated into the image can be added here.ApplicationAre you sure you want to cancel the Recovery Media creation process?BTO images can optionally include a Utility Partition for diagnostic utilities.Browse for a dell-recovery packageBuild dell-recovery package from this systemBuilder SummaryBuilding Dell Utility PartitionBuilding ISOCancel Recovery Media CreatorCannot connect to dbusChoose ContentChoose ImageChoose packageConfirm SelectionsCreate/Assemble Dell Recovery ISODVD+/-RW DiscDell Recovery Media CreatorDell Recovery Media can be used to restore your system to the same state as when it was first shipped to you.Detected Recovery PartitionDetected Utility PartitionDon't generate recovery media at this timeDriverDuring Factory Installation, applications are only installed if the order record (SDR) refers to the service release vehicle (SRV). This populates the possible SRVs to be queried during installation.Extracted DirectoryFID framework built into BTO imageISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: IncludedInstall dpkg-repackMedia Type: No additional Utility PartitionOpening BurnerPackagesPermission DeniedPlease enter the SRV to use:Query BTO VersionQuery ISO InformationRecovery Media Creation Process CompleteRecovery Media can be generated later by choosing the tool from the System menu.Recovery Partition: Regenerating UUID / Rebuilding initramfsRequest closing the backendSRV EntrySave recovery media to DVDSave recovery media to an external USB flash driveSelect content for Utility PartitionSelected Content Details:Selected Image Details:System policy prevents closing processes without noticeSystem policy prevents reading raw devicesThe Base OS image provides the majority of the content for a BTO image. It can be a Vanilla OS image, or existing BTO Image.This requires a USB flash drive with approximately 2GB free.This requires writable DVD media.USB Flash DriveUtility Partition: Version:Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2010-04-17 00:59+0000 Last-Translator: Fran Diéguez Language-Team: Galician Language: gl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-09-11 04:46+0000 X-Generator: Launchpad (build 13900) (Modo de construción de imaxes BTO)ERRO: Este soporte só é válido en sistemas Dell.É moi recomendábel que xere un soporte e o almacene nun lugar seguro.Nota: Isto require una unidade USB flash con aproximadamente 2GB libres.Nota: Isto require un disco DVD grabable.Engadir Dell RecoveryEngadindo á imaxe baseTodas as SRVs debe completarse para continuar.Xa existe una imaxe (posibelmente de unha execución anterior). Desexa eliminar esta copia antiga e volver a xerar a imaxe?Calquera controlador engadido ou aplicativo que se necesite integrar na imaxe pode engadirse aquí.AplicativoTen a certeza que quere cancelar o proceso de creación do Soporte de Recuperación?As imaxes BTO poden incluír opcionalmente unha partición de Utilidade para as utilidades de diagnóstico.Explorar polo paquete de dell-recoveryConstruir o paquete de dell-recovery para este sistemaResumo do construtorConstruindo a partición de utilidade de DellCreando a imaxe ISOCancelar o creador do Soporte de recuperaciónNon é posíbel conectarse a dbusSeleccione o contidoSeleccione unha imaxeSeleccionar paqueteConfirmar selecciónsCrear/Ensamblar a imaxe ISO de recupración de DellDisco DVD+/-RWCreador de soportes de recuperación de DellO soporte de recuperación de Dell pode usarse para restaurar o seu sistema ao mesmo estado que cando o comprou.Detectouse a partición de recuperaciónPartición de utilidades eliminadaNon xerar o soporte de recuperación neste momentoControladorDurante a instalación da Factory, os aplicativos só están instalados se o rexistro de orde (SDR) se refire ao vehículo de liberación do servizo (SRV). Isto completa os posíbeis SRV para ser consultados durante a instalación.O cartafol foi extraidoMarco de traballo FID construida dentro de imaxe BTOImaxe ISOSe quere arquivar outra copia, a imaxe xerada almacenouse baixo o nome de ficheiro: IncluidoInstalar dpkg-repackTipo de soporte: Non hai unha Partición de utilidades adicionalAbrindo a grabadoraPaquetesPermiso denegadoInsira un SRV a usar:Consultar a versión do BTOConsultar información da imaxe ISORematouse o proceso de creación de soporte de recuperaciónPode xerar o soporte de recuperación máis tarde seleccionando a ferramenta no menú Sistema.Particion de recuperación: Rexerando o UUID / Reconstruindo o initramfsSolicitar o pechado da infraestruturaEntrada SRVGardar o soporte de recuperación nun DVDGardar o soporte de recuperación nunha unidade flash USB externaSeleccione o contido para a Partición de utilidadesDetalles do contido seleccionados:Detalles da imaxe seleccionada:A normativa do sistema impide que peche procesos sen avisarA normativa do sistema impide ler dispositivos rawA imaxe base do sistema fornece a maioría do contido para unha imaxe BTO. Pode ser unha imaxe de sistema limpa ou unha imaxe BTO existente.Isto require unha unidade flash USB con aproximadamente 2GB libres.ISto require un soporte DVD escribíbel.Unidade Flash USBPartición de utilidade: Versión:dell-recovery/build/mo/es/0000755000000000000000000000000012043102664012637 5ustar dell-recovery/build/mo/es/LC_MESSAGES/0000755000000000000000000000000012043102664014424 5ustar dell-recovery/build/mo/es/LC_MESSAGES/dell-recovery.mo0000644000000000000000000001511612311724101017533 0ustar Kte`ad~7I.FX}m D Q `k",  4 K Z g v !     ! 1 ; "O r c|    % 0 = L U g   ( P & (; d   2   # J= - 7 * <!VxS!V'xBO13 e &2PK 06Ph !4 C,Q%~"  2  @\K! -6Gaw<a4+Q} +B$5#Z)~I3H&5o;$+ D"=8 +G5KBJ H A($) .&:06E9< @%>F7#23 ,-/'4;1D!?IC* (BTO Image Builder Mode)ERROR: This media is only valid on Dell systems.Note: This requires a USB flash drive with approximately 2GB free.Note: This requires writable DVD media.Add Dell RecoveryAdding in base imageAn existing image was found (possibly from a previous run). Would you like to remove this old copy and regenerate the image?ApplicationApplication PackagesAre you sure you want to cancel the Recovery Media creation process?BTO Base ImageBase ImageBase Image DistributorBase Image ReleaseBrowse for a dell-recovery packageBuild dell-recovery package from this systemBuilder SummaryBuilding Base imageBuilding ISOCancel Recovery Media CreatorCannot connect to dbusChoose ContentChoose ImageChoose packageConfirm SelectionsCreate/Assemble Dell Recovery ISODVD+/-RW DiscDell RecoveryDell Recovery Media CreatorDetected Recovery PartitionDetected Utility PartitionDriverDriver PackagesExceptionExtracted DirectoryFID framework built into BTO imageISO ImageIf you would like to archive another copy, the generated image has been stored under the filename: Image FileIncludedInject Dell Recovery PackageInstall dpkg-repackMedia TypeMedia Type: Opening BurnerPackagesPermission DeniedPlease enter the SRV to use:Query BTO VersionQuery ISO InformationRecovery Media Creation Process CompleteRecovery Media can be generated later by choosing the tool from the System menu.Recovery Partition: Regenerating UUID / Rebuilding initramfsRequest closing the backendRestore to Factory stateSRV EntrySave recovery media to DVDSave recovery media to an external USB flash driveSelected Content Details:Selected Image Details:Selected Overlay Details:System does not appear to contain Dell factory installed partition layout.System policy prevents changing system bootupSystem policy prevents closing processes without noticeSystem policy prevents reading raw devicesThis requires a USB flash drive with approximately 2GB free.This requires writable DVD media.USB Flash DriveUnable to proceedUtility Partition: Version:Project-Id-Version: dell-recovery Report-Msgid-Bugs-To: POT-Creation-Date: 2013-03-05 15:27-0600 PO-Revision-Date: 2011-11-22 17:07+0000 Last-Translator: Fitoschido Language-Team: Spanish Language: es MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2011-11-23 05:21+0000 X-Generator: Launchpad (build 14336) (BTO Modo constructor de imagen) ERROR: Este medio sólo es válido en los sistemas Dell.Nota: Esto requiere una unidad USB flash con aproximadamente 2GB libres.Nota: Esto requiere un disco DVD grabable.Añadir la recuperación de DellAñadiendo en la imagen baseYa existe una imagen (posiblemente de una ejecución anterior). ¿Quiere eliminar esta copia antigua y volver a generar la imagen?AplicaciónPaquetes de aplicaciones¿Seguro que quiere cancelar el proceso de creación del Medio de Recuperación?Imagen base BTOImagen baseDistribuidor de imagen baseLiberar imagen baseBúsqueda de un paquete de recuperación de DellConstruir el paquete dell-recovery desde este sistemaResumen del constructorConstruyendo imagen baseCreando ISOCancelar Recovery Media CreatorNo se puede conectar con dbusElegir contenidoEscoger ImagenElija el paqueteConfirmar seleccionesCrear/Ensamblar Dell Recovery ISODisco DVD+/-RWDell RecoveryCreador de soportes de recuperación de DellDetectada partición de recuperaciónPartición de utilidades detectadaControladorPaquetes de controladoresExcepciónDirectorio extraídoEntorno de trabajo PID construido en la imagen BTOImagen ISOSi desea archivar otra copia, la imagen generada ha sido archivada con el siguiente nombre: Archivo de imagenIncluidoInyectar paquete de Dell RecoveryInstalar dpkg-repackTipo de soporteTipo de medio: Abriendo grabadoraPaquetesPermiso denegadoIntroduzca el SRV a usar:Consulta versión BTOConsultar información de ISOProceso de creación del soporte de recuperación finalizadoEl disco de recuperación se puede generar después eligiendo la herramienta en el menú Sistema.Particion de recuperación: Regenerando UUID / Reconstruyendo initramfsPetición de cierre del motorRestaurar a estado de fábricaEntrada SRVGuardar el disco de recuperación en un DVDGuardar el disco de recuperación en una memoria flash USB externaDetalles de contenido seleccionados:Detalles de la imagen seleccionada:Detalles de superposición seleccionados:El sistema parece no tener un esquema de particiones de fábrica de Dell.La política del sistema impide cambios al arranqueLas políticas del sistema no permiten cerrar procesos sin notificaciónLa política del sistema impide leer dispositivos rawEsto requiere una llave USB con aproximadamente 2GB libres.Esto requiere un disco DVD editable.Unidad flash USBImposible continuarPartición de utilidad: Versión:dell-recovery/build/scripts-3.2/0000755000000000000000000000000012043102664013604 5ustar dell-recovery/build/scripts-3.2/dell-driver-installer0000755000000000000000000000415112043102664017737 0ustar #!/usr/bin/python3.2 # -*- coding: utf-8 -*- # # Dell Driver Installer # # Copyright (C) 2012 Dell Inc, # Author: Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## from Dell.recovery_common import find_partitions import subprocess from Dell.driver_gtk import DriverGTK import argparse import logging def setup_logging(debug=False, logfile=None): '''Setup logging.''' logging.raiseExceptions = False if debug: logging.basicConfig(level=logging.DEBUG, filename=logfile, format='%(asctime)s %(levelname)s: %(message)s') else: logging.basicConfig(level=logging.WARNING, filename=logfile, format='%(levelname)s: %(message)s') parser = argparse.ArgumentParser() parser.add_argument('fname', nargs='?', default='') parser.add_argument ('--debug', action='store_true', dest='debug', default=False, help='Enable debugging messages.') parser.add_argument ('--logfile', metavar='FILE', dest='logfile', default=None, help='Write logging messages to a file instead to stderr.') parser_args = parser.parse_args() setup_logging(parser_args.debug, parser_args.logfile) if __name__ == '__main__': import dbus.mainloop.glib dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) utility, recovery = find_partitions('', '') args = (recovery, parser_args.fname, 'driver') tool = DriverGTK(*args) tool.run() dell-recovery/build/scripts-3.2/dell-recovery0000755000000000000000000001216412043102664016312 0ustar #!/usr/bin/python3.2 # -*- coding: utf-8 -*- # # Dell Recovery # # Copyright (C) 2010 Dell Inc, # Author: Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## from Dell.recovery_common import find_partitions, check_version, find_burners import optparse import os import subprocess target = os.path.expanduser("~/Downloads") try: p = subprocess.Popen(["xdg-user-dir","DOWNLOAD"], stdout=subprocess.PIPE, universal_newlines=True) downloadpath = p.communicate()[0].strip() if p.returncode == 0 and downloadpath: target = downloadpath except OSError: pass usage = '%prog [options]' parser = optparse.OptionParser(usage=usage) parser.set_defaults( up='', rp='', version='', media="dvd", builder=False, target=target, overwrite=False, xrev=False, branch=False, burn=False ) parser.add_option('-c', '--check-version', dest='checkversion', action='store_true', help='Show the version information.') parser.add_option('-u', '--up', dest='up', help='Override detected utility partition with this file.') parser.add_option('-r', '--rp', dest='rp', help='Override detected recovery partition with this file.') parser.add_option('-v', '--override-version', dest='version', help='Override the automatic version number generation of this ISO.') parser.add_option('-m', '--media', dest='media', help='Set type of recovery media to create [dvd, usb, iso].') parser.add_option('-t', '--target', dest='target', help='Set target directory to store ISO in when completed.') parser.add_option('-o', '--overwrite', dest='overwrite', action='store_true', help='Force overwrite of any existing file') parser.add_option('--builder', dest='builder', action='store_true', help='Enable OEM Builder mode for assembling an image from multiple sources.') parser.add_option('--show-development-tags', dest='xrev', action='store_true', help='Show development git tags when operating in builder mode. By default, these are hidden if stable tags are present.') parser.add_option('--override-branch-mode', dest='branch', action='store_true', help='Show branches instead of tags in builder mode. This is most useful when the tip of the branch is known stable.') parser.add_option('--burn', dest='burn', action='store_true', help="Run in burn/nag mode. Causes a burner to be invoked if media is set and an ISO exists.") (options, args) = parser.parse_args() if __name__ == '__main__': if options.checkversion: print("Version: %s" % check_version()) else: import dbus.mainloop.glib dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) utility, recovery = find_partitions(options.up,options.rp) #If we don't find an RP, assume builder mode. if not options.burn and not recovery and not options.builder: options.builder = True args = (utility, recovery, options.version, options.media, options.target, options.overwrite) if options.burn: command = '' iso = '' (dvd, usb) = find_burners() for item in os.listdir(target): if item.endswith('.iso'): iso = item break if options.media == 'dvd' and dvd and iso: command = dvd + [iso] elif options.media == 'usb' and usb and iso: command = usb + [iso] else: print("Error with burn mode. Please invoke in standard mode.") if command: subprocess.call(command) #don't ever autostart again if os.path.exists(os.path.expanduser("~/.config/autostart/dell-recovery.desktop")): os.remove(os.path.expanduser("~/.config/autostart/dell-recovery.desktop")) else: if options.builder: from Dell.recovery_advanced_gtk import AdvancedGeneratorGTK args += (options.xrev, options.branch) tool = AdvancedGeneratorGTK(*args) else: from Dell.recovery_basic_gtk import BasicGeneratorGTK tool = BasicGeneratorGTK(*args) tool.run() dell-recovery/build/scripts-3.4/0000755000000000000000000000000012311724100013577 5ustar dell-recovery/build/scripts-3.4/dell-driver-installer0000755000000000000000000000415412311724100017735 0ustar #!/usr/bin/python3.4 # -*- coding: utf-8 -*- # # Dell Driver Installer # # Copyright (C) 2012 Dell Inc, # Author: Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## from Dell.recovery_common import find_partitions import subprocess from Dell.driver_gtk import DriverGTK import argparse import logging def setup_logging(debug=False, logfile=None): '''Setup logging.''' logging.raiseExceptions = False if debug: logging.basicConfig(level=logging.DEBUG, filename=logfile, format='%(asctime)s %(levelname)s: %(message)s') else: logging.basicConfig(level=logging.WARNING, filename=logfile, format='%(levelname)s: %(message)s') parser = argparse.ArgumentParser() parser.add_argument('fname', nargs='?', default='') parser.add_argument ('--debug', action='store_true', dest='debug', default=False, help='Enable debugging messages.') parser.add_argument ('--logfile', metavar='FILE', dest='logfile', default=None, help='Write logging messages to a file instead to stderr.') parser_args = parser.parse_args() setup_logging(parser_args.debug, parser_args.logfile) if __name__ == '__main__': import dbus.mainloop.glib dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) utility, recovery = find_partitions() args = (recovery, utility, parser_args.fname, 'driver') tool = DriverGTK(*args) tool.run() dell-recovery/build/scripts-3.4/dell-recovery0000755000000000000000000001152612311724100016306 0ustar #!/usr/bin/python3.4 # -*- coding: utf-8 -*- # # Dell Recovery # # Copyright (C) 2010 Dell Inc, # Author: Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## from Dell.recovery_common import find_partitions, check_version, find_burners import optparse import os import subprocess target = os.path.expanduser("~/Downloads") try: p = subprocess.Popen(["xdg-user-dir","DOWNLOAD"], stdout=subprocess.PIPE, universal_newlines=True) downloadpath = p.communicate()[0].strip() if p.returncode == 0 and downloadpath: target = downloadpath except OSError: pass usage = '%prog [options]' parser = optparse.OptionParser(usage=usage) parser.set_defaults( version='', media="dvd", builder=False, target=target, overwrite=False, xrev=False, branch=False, burn=False ) parser.add_option('-c', '--check-version', dest='checkversion', action='store_true', help='Show the version information.') parser.add_option('-v', '--override-version', dest='version', help='Override the automatic version number generation of this ISO.') parser.add_option('-m', '--media', dest='media', help='Set type of recovery media to create [dvd, usb, iso].') parser.add_option('-t', '--target', dest='target', help='Set target directory to store ISO in when completed.') parser.add_option('-o', '--overwrite', dest='overwrite', action='store_true', help='Force overwrite of any existing file') parser.add_option('--builder', dest='builder', action='store_true', help='Enable OEM Builder mode for assembling an image from multiple sources.') parser.add_option('--show-development-tags', dest='xrev', action='store_true', help='Show development git tags when operating in builder mode. By default, these are hidden if stable tags are present.') parser.add_option('--override-branch-mode', dest='branch', action='store_true', help='Show branches instead of tags in builder mode. This is most useful when the tip of the branch is known stable.') parser.add_option('--burn', dest='burn', action='store_true', help="Run in burn/nag mode. Causes a burner to be invoked if media is set and an ISO exists.") (options, args) = parser.parse_args() if __name__ == '__main__': if options.checkversion: print("Version: %s" % check_version()) else: import dbus.mainloop.glib dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) utility, recovery = find_partitions() #If we don't find an RP, assume builder mode. if not options.burn and not recovery and not options.builder: options.builder = True args = (utility, recovery, options.version, options.media, options.target, options.overwrite) if options.burn: command = '' iso = '' (dvd, usb) = find_burners() for item in os.listdir(target): if item.endswith('.iso'): iso = item break if options.media == 'dvd' and dvd and iso: command = dvd + [iso] elif options.media == 'usb' and usb and iso: command = usb + [iso] else: print("Error with burn mode. Please invoke in standard mode.") if command: subprocess.call(command) #don't ever autostart again if os.path.exists(os.path.expanduser("~/.config/autostart/dell-recovery.desktop")): os.remove(os.path.expanduser("~/.config/autostart/dell-recovery.desktop")) else: if options.builder: from Dell.recovery_advanced_gtk import AdvancedGeneratorGTK args += (options.xrev, options.branch) tool = AdvancedGeneratorGTK(*args) else: from Dell.recovery_basic_gtk import BasicGeneratorGTK tool = BasicGeneratorGTK(*args) tool.run() dell-recovery/build/scripts-3.3/0000755000000000000000000000000012311724102013600 5ustar dell-recovery/build/scripts-3.3/dell-driver-installer0000755000000000000000000000415412311724102017736 0ustar #!/usr/bin/python3.3 # -*- coding: utf-8 -*- # # Dell Driver Installer # # Copyright (C) 2012 Dell Inc, # Author: Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## from Dell.recovery_common import find_partitions import subprocess from Dell.driver_gtk import DriverGTK import argparse import logging def setup_logging(debug=False, logfile=None): '''Setup logging.''' logging.raiseExceptions = False if debug: logging.basicConfig(level=logging.DEBUG, filename=logfile, format='%(asctime)s %(levelname)s: %(message)s') else: logging.basicConfig(level=logging.WARNING, filename=logfile, format='%(levelname)s: %(message)s') parser = argparse.ArgumentParser() parser.add_argument('fname', nargs='?', default='') parser.add_argument ('--debug', action='store_true', dest='debug', default=False, help='Enable debugging messages.') parser.add_argument ('--logfile', metavar='FILE', dest='logfile', default=None, help='Write logging messages to a file instead to stderr.') parser_args = parser.parse_args() setup_logging(parser_args.debug, parser_args.logfile) if __name__ == '__main__': import dbus.mainloop.glib dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) utility, recovery = find_partitions() args = (recovery, utility, parser_args.fname, 'driver') tool = DriverGTK(*args) tool.run() dell-recovery/build/scripts-3.3/dell-recovery0000755000000000000000000001152612311724102016307 0ustar #!/usr/bin/python3.3 # -*- coding: utf-8 -*- # # Dell Recovery # # Copyright (C) 2010 Dell Inc, # Author: Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## from Dell.recovery_common import find_partitions, check_version, find_burners import optparse import os import subprocess target = os.path.expanduser("~/Downloads") try: p = subprocess.Popen(["xdg-user-dir","DOWNLOAD"], stdout=subprocess.PIPE, universal_newlines=True) downloadpath = p.communicate()[0].strip() if p.returncode == 0 and downloadpath: target = downloadpath except OSError: pass usage = '%prog [options]' parser = optparse.OptionParser(usage=usage) parser.set_defaults( version='', media="dvd", builder=False, target=target, overwrite=False, xrev=False, branch=False, burn=False ) parser.add_option('-c', '--check-version', dest='checkversion', action='store_true', help='Show the version information.') parser.add_option('-v', '--override-version', dest='version', help='Override the automatic version number generation of this ISO.') parser.add_option('-m', '--media', dest='media', help='Set type of recovery media to create [dvd, usb, iso].') parser.add_option('-t', '--target', dest='target', help='Set target directory to store ISO in when completed.') parser.add_option('-o', '--overwrite', dest='overwrite', action='store_true', help='Force overwrite of any existing file') parser.add_option('--builder', dest='builder', action='store_true', help='Enable OEM Builder mode for assembling an image from multiple sources.') parser.add_option('--show-development-tags', dest='xrev', action='store_true', help='Show development git tags when operating in builder mode. By default, these are hidden if stable tags are present.') parser.add_option('--override-branch-mode', dest='branch', action='store_true', help='Show branches instead of tags in builder mode. This is most useful when the tip of the branch is known stable.') parser.add_option('--burn', dest='burn', action='store_true', help="Run in burn/nag mode. Causes a burner to be invoked if media is set and an ISO exists.") (options, args) = parser.parse_args() if __name__ == '__main__': if options.checkversion: print("Version: %s" % check_version()) else: import dbus.mainloop.glib dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) utility, recovery = find_partitions() #If we don't find an RP, assume builder mode. if not options.burn and not recovery and not options.builder: options.builder = True args = (utility, recovery, options.version, options.media, options.target, options.overwrite) if options.burn: command = '' iso = '' (dvd, usb) = find_burners() for item in os.listdir(target): if item.endswith('.iso'): iso = item break if options.media == 'dvd' and dvd and iso: command = dvd + [iso] elif options.media == 'usb' and usb and iso: command = usb + [iso] else: print("Error with burn mode. Please invoke in standard mode.") if command: subprocess.call(command) #don't ever autostart again if os.path.exists(os.path.expanduser("~/.config/autostart/dell-recovery.desktop")): os.remove(os.path.expanduser("~/.config/autostart/dell-recovery.desktop")) else: if options.builder: from Dell.recovery_advanced_gtk import AdvancedGeneratorGTK args += (options.xrev, options.branch) tool = AdvancedGeneratorGTK(*args) else: from Dell.recovery_basic_gtk import BasicGeneratorGTK tool = BasicGeneratorGTK(*args) tool.run() dell-recovery/build/lib/0000755000000000000000000000000012043102664012363 5ustar dell-recovery/build/lib/Dell/0000755000000000000000000000000012312225642013244 5ustar dell-recovery/build/lib/Dell/recovery_gtk.py0000644000000000000000000002744412311717746016346 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «recovery_gtk» - Dell Recovery GTK Frontend # # Copyright (C) 2010, Dell Inc. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################ import os import subprocess import dbus import sys from gi.repository import Gtk,GLib from Dell.recovery_common import (DOMAIN, LOCALEDIR, UIDIR, SVGDIR, DBUS_INTERFACE_NAME, DBUS_BUS_NAME, dbus_sync_call_signal_wrapper, PermissionDeniedByPolicy, check_version) #Translation support from gettext import gettext as _ from gettext import bindtextdomain, textdomain class DellRecoveryToolGTK: """GTK implementation of the Dell Recovery suite for Linux""" def __init__(self, recovery, utility, mode='recovery'): def action_objects(widgets, objects, action): for item in ['button', 'image', 'label']: if action == 'hide': widgets.get_object(objects + '_' + item).hide() else: widgets.get_object(objects + '_' + item).show_all() #setup locales bindtextdomain(DOMAIN, LOCALEDIR) textdomain(DOMAIN) self.tool_widgets = Gtk.Builder() self.tool_widgets.add_from_file(os.path.join(UIDIR, 'tool_selector.ui')) Gtk.Window.set_default_icon_from_file(os.path.join(SVGDIR, 'dell-dvd.svg')) translate_widgets(self.tool_widgets) self.tool_widgets.connect_signals(self) #if running in driver install mode, hide other stuff if mode == 'driver': for item in ['flash_bios', 'restore_system', 'build_os_media']: action_objects(self.tool_widgets, item, 'hide') action_objects(self.tool_widgets, 'install_drivers', 'show') else: #hide restore from HDD unless there is a recovery partition if not (recovery and os.path.exists('/etc/grub.d/99_dell_recovery')): action_objects(self.tool_widgets, 'restore_system', 'hide') #hide bios flash if not UEFI or no UP if os.path.exists('/sys/firmware/efi') or \ not (utility and os.path.exists('/etc/grub.d/98_dell_bios')): action_objects(self.tool_widgets, "flash_bios", "hide") #about dialog self.about_box = None #variables self.rp = recovery self.up = utility self._dbus_iface = None #### Polkit enhanced ### def backend(self): '''Return D-BUS backend client interface. This gets initialized lazily. ''' if self._dbus_iface is None: try: bus = dbus.SystemBus() self._dbus_iface = dbus.Interface(bus.get_object(DBUS_BUS_NAME, '/RecoveryMedia'), DBUS_INTERFACE_NAME) except dbus.DBusException as msg: self.dbus_exception_handler(msg) sys.exit(1) except Exception as msg: self.show_alert(Gtk.MessageType.ERROR, "Exception", str(msg), transient_for=self.tool_widgets.get_object('tool_selector')) return self._dbus_iface def dbus_exception_handler(self, msg, transient_for=None, fallback=None): """Common handler used for dbus type exceptions""" if msg.get_dbus_name() == 'org.freedesktop.DBus.Error.FileNotFound': text = _("Cannot connect to dbus") if msg.get_dbus_name() == PermissionDeniedByPolicy._dbus_error_name: text = _("Permission Denied") else: text = msg.get_dbus_message() if not transient_for: transient_for = self.tool_widgets.get_object('tool_selector') self.show_alert(Gtk.MessageType.ERROR, _("Exception"), text, transient_for) if fallback: transient_for.hide() fallback.show() #### Callbacks ### def top_button_clicked(self, widget): """Callback for a button pushed in the main UI""" #Restore Media Button / Driver install button if widget == self.tool_widgets.get_object('build_os_media_button') or \ widget == self.tool_widgets.get_object('install_drivers_button'): self.tool_widgets.get_object('tool_selector').set_sensitive(False) #continue return True #Reboot action else: tool_selector = self.tool_widgets.get_object('tool_selector') tool_selector.set_sensitive(False) bus = dbus.SessionBus() obj = bus.get_object('org.gnome.SessionManager', '/org/gnome/SessionManager') iface = dbus.Interface(obj, 'org.gnome.SessionManager') #Restore System Button if widget == self.tool_widgets.get_object('restore_system_button'): try: dbus_sync_call_signal_wrapper(self.backend(), "enable_boot_to_restore", {}) iface.RequestReboot() self.destroy() except dbus.DBusException as msg: self.dbus_exception_handler(msg) #BIOS flash button elif widget == self.tool_widgets.get_object('flash_bios_button'): file_dialog = Gtk.FileChooserDialog(title = "Choose DOS BIOS Executable", transient_for = None, action = Gtk.FileChooserAction.OPEN) file_dialog.set_default_response(Gtk.ResponseType.OK) file_dialog.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK) file_filter = Gtk.FileFilter() file_filter.add_pattern("*.exe") file_filter.add_pattern("*.EXE") file_dialog.set_filter(file_filter) response = file_dialog.run() file_dialog.hide() if response == Gtk.ResponseType.OK: fname = file_dialog.get_filename() else: tool_selector.set_sensitive(True) return False try: dbus_sync_call_signal_wrapper(self.backend(), "enable_boot_to_utility", {}, self.up, fname) iface.RequestReboot() self.destroy() except dbus.DBusException as msg: self.dbus_exception_handler(msg) tool_selector.set_sensitive(True) #don't do further processing return False def menu_item_clicked(self, widget): """Callback for help menu items""" if widget == self.tool_widgets.get_object('get_help_menu_item'): # run yelp proc = subprocess.Popen(["yelp", "ghelp:dell-recovery"]) # collect the exit status (otherwise we leave zombies) GLib.timeout_add_seconds(1, lambda proc: proc.poll() == None, proc) elif widget == self.tool_widgets.get_object('about_menu_item'): tool_selector = self.tool_widgets.get_object('tool_selector') if not self.about_box: self.about_box = Gtk.AboutDialog() self.about_box.set_version(check_version()) self.about_box.set_name(_("Dell Recovery")) self.about_box.set_copyright(_("Copyright 2008-2012 Dell Inc.")) self.about_box.set_website("http://www.dell.com/ubuntu") self.about_box.set_authors(["Mario Limonciello"]) self.about_box.set_destroy_with_transient_for(True) self.about_box.set_modal(True) self.about_box.set_transient_for(tool_selector) tool_selector.set_sensitive(False) self.about_box.run() self.about_box.hide() tool_selector.set_sensitive(True) #### GUI Functions ### # This application is functional via command line by using the above functions # def run(self): """Runs the GTK application's main functions""" self.tool_widgets.get_object('tool_selector').show() Gtk.main() def show_alert(self, alert_type, header, body=None, transient_for=None): """Displays an alert message""" dialog_hig = self.tool_widgets.get_object('dialog_hig') label_hig = self.tool_widgets.get_object('label_hig') image_hig = self.tool_widgets.get_object('image_hig') tool_selector = self.tool_widgets.get_object('tool_selector') if transient_for is not None: dialog_hig.set_transient_for(transient_for) else: dialog_hig.set_transient_for(tool_selector) message = "%s" % header if not body == None: message = "%s\n\n%s" % (message, body) print(body, file=sys.stderr) label_hig.set_markup(message) if alert_type == Gtk.MessageType.ERROR: image_hig.set_property("stock", "gtk-dialog-error") elif alert_type == Gtk.MessageType.WARNING: image_hig.set_property("stock", "gtk-dialog-warning") elif alert_type == Gtk.MessageType.INFO: image_hig.set_property("stock", "gtk-dialog-info") res = self.tool_widgets.get_object('dialog_hig').run() self.tool_widgets.get_object('dialog_hig').hide() if res == Gtk.ResponseType.CLOSE: return True return False def cleanup_backend(self, widget=None, data=None): '''cleans up the backend process''' try: if self._dbus_iface is not None: self.backend().request_exit() except dbus.DBusException as msg: if hasattr(msg, '_dbus_error_name') and msg.get_dbus_name() == \ 'org.freedesktop.DBus.Error.ServiceUnknown': pass else: print("%s when closing DBus service from %s (data: %s)" % (str(msg), widget, data)) def destroy(self, widget=None, data=None): """Closes any open backend connections and stops GTK threads""" self.cleanup_backend(widget, data) Gtk.main_quit() def translate_widgets(widgets): """Translates all widgets to the specified domain""" widgets.set_translation_domain(DOMAIN) for widget in widgets.get_objects(): if isinstance(widget, Gtk.Label): widget.set_property('can-focus', False) widget.set_text(_(widget.get_text())) elif isinstance(widget, Gtk.RadioButton): widget.set_label(_(widget.get_label())) elif isinstance(widget, Gtk.Button): widget.set_label(_(widget.get_label())) elif isinstance(widget, Gtk.Window): title = widget.get_title() if title: widget.set_title(_(widget.get_title())) dell-recovery/build/lib/Dell/recovery_advanced_gtk.py0000644000000000000000000006213312311717746020165 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «recovery_advanced_gtk» - Dell Recovery Media Builder # # Copyright (C) 2010, Dell Inc. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## import dbus import os from gi.repository import Gtk import subprocess from Dell.recovery_gtk import DellRecoveryToolGTK, translate_widgets from Dell.recovery_basic_gtk import BasicGeneratorGTK from Dell.recovery_common import (UIDIR, UP_FILENAMES, dbus_sync_call_signal_wrapper) try: from aptdaemon import client from aptdaemon.gtk3widgets import AptProgressDialog except: pass #Translation support from gettext import gettext as _ class AdvancedGeneratorGTK(BasicGeneratorGTK): """The AdvancedGeneratorGTK is the GTK generator that can generate recovery images from a variety of dynamic contents, including the recovery partition, drivers, applications, isos, and more. """ def __init__(self, utility, recovery, version, media, target, overwrite, xrev, branch): """Inserts builder widgets into the Gtk.Assistant""" #Run the normal init first BasicGeneratorGTK.__init__(self, utility, recovery, version, media, target, overwrite) #Build our extra GUI in self.builder_widgets = Gtk.Builder() self.builder_widgets.add_from_file(os.path.join(UIDIR, 'builder.ui')) self.builder_widgets.connect_signals(self) translate_widgets(self.builder_widgets) wizard = self.widgets.get_object('wizard') #wizard.resize(400,400) wizard.set_title(wizard.get_title() + _(" (BTO Image Builder Mode)")) self.tool_widgets.get_object('build_os_media_label').set_text(_("This \ will integrate a Dell \ OEM FID framework & driver package set into a customized \ OS media image. You will have the option to \ create an USB key or DVD image.")) self.file_dialog = Gtk.FileChooserDialog(title = "Choose Item", transient_for = None, action = Gtk.FileChooserAction.OPEN) self.file_dialog.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK) self.file_dialog.set_default_response(Gtk.ResponseType.OK) #setup transient windows for window in ['builder_add_dell_recovery_window', 'srv_dialog']: self.builder_widgets.get_object(window).set_transient_for(wizard) #insert builder pages in reverse order titles = {'application_page' : _("Application Packages"), 'driver_page' : _("Driver Packages"), 'up_page' : _("Utility Partition"), 'fid_page' : _("FID Content"), 'base_page' : _("Base OS Image") } for page in ['application_page', 'driver_page', 'up_page', 'fid_page', 'base_page']: wizard.insert_page(self.builder_widgets.get_object(page), 0) wizard.set_page_title(wizard.get_nth_page(0), titles[page]) #improve the summary self.widgets.get_object('version_hbox').show() #builder variable defaults self.xrev = xrev self.branch = branch self.builder_base_image = '' self.bto_base = False self.bto_up = '' self.add_dell_recovery_deb = '' self.apt_client = None self.builder_widgets.connect_signals(self) def top_button_clicked(self, widget): """Overridden method to make us generate OS media""" #hide the main page if DellRecoveryToolGTK.top_button_clicked(self, widget): #show our page self.widgets.get_object('wizard').show() self.tool_widgets.get_object('tool_selector').hide() def build_page(self, widget, page = None): """Processes output that should be done on a builder page""" #Do the normal processing first BasicGeneratorGTK.build_page(self, widget, page) wizard = self.widgets.get_object('wizard') if page == self.builder_widgets.get_object('base_page'): if self.rp: self.builder_widgets.get_object('recovery_hbox').set_sensitive(True) file_filter = Gtk.FileFilter() file_filter.add_pattern("*.iso") self.file_dialog.set_filter(file_filter) elif page == self.builder_widgets.get_object('fid_page'): self.fid_toggled(None) elif page == self.builder_widgets.get_object('up_page'): if self.up: self.builder_widgets.get_object('utility_hbox').set_sensitive(True) file_filter = Gtk.FileFilter() for item in UP_FILENAMES: pattern = item.split('.')[1] file_filter.add_pattern("*.%s" % pattern) self.file_dialog.set_filter(file_filter) self.up_toggled(None) elif page == self.builder_widgets.get_object('driver_page'): self.file_dialog.set_action(Gtk.FileChooserAction.OPEN) filefilter = Gtk.FileFilter() filefilter.add_pattern("*.tgz") filefilter.add_pattern("*.tar.gz") filefilter.add_pattern("*.deb") filefilter.add_pattern("*.pdf") filefilter.add_pattern("*.py") filefilter.add_pattern("*.sh") self.file_dialog.set_filter(filefilter) wizard.set_page_complete(page, True) elif page == self.builder_widgets.get_object('application_page'): self.file_dialog.set_action(Gtk.FileChooserAction.OPEN) filefilter = Gtk.FileFilter() filefilter.add_pattern("*.tgz") filefilter.add_pattern("*.tar.gz") filefilter.add_pattern("*.zip") self.file_dialog.set_filter(filefilter) self.calculate_srvs(None, -1, "check") elif page == self.widgets.get_object('conf_page') or \ widget == self.widgets.get_object('version'): if page: wizard.set_page_title(page, _("Builder Summary")) output_text = "" + _("Base Image Distributor") + ": " output_text += self.distributor + '\n' output_text += "" + _("Base Image Release") + ": " output_text += self.release + '\n' if self.bto_base: output_text += "" + _("BTO Base Image") + ": " output_text += self.builder_base_image + '\n' else: output_text += "" + _("Base Image") + ": " output_text += self.builder_base_image + '\n' if self.bto_up: output_text +="" + _("Utility Partition: ") + '' output_text += self.bto_up + '\n' liststores = {'application_liststore' : _("Application"), 'driver_liststore' : _("Driver"), } for item in liststores: model = self.builder_widgets.get_object(item) iterator = model.get_iter_first() if iterator is not None: output_text += "%s %s:\n" % (liststores[item], _("Packages")) while iterator is not None: output_text += "\t" + model.get_value(iterator, 0) + '\n' iterator = model.iter_next(iterator) if self.add_dell_recovery_deb: output_text += "" + _("Inject Dell Recovery Package") + ": " output_text += self.add_dell_recovery_deb + '\n' output_text += self.widgets.get_object('conf_text').get_label() self.widgets.get_object('conf_text').set_markup(output_text) def wizard_complete(self, widget, function = None, args = None): """Finished answering wizard questions, and can continue process""" #update gui self.widgets.get_object('action').set_text(_('Assembling Image Components')) #build driver list driver_fish_list = [] model = self.builder_widgets.get_object('driver_liststore') iterator = model.get_iter_first() while iterator is not None: driver_fish_list.append(model.get_value(iterator, 0)) iterator = model.iter_next(iterator) #build application list application_fish_list = {} model = self.builder_widgets.get_object('application_liststore') iterator = model.get_iter_first() while iterator is not None: path = model.get_value(iterator, 0) srv = model.get_value(iterator, 1) application_fish_list[path] = srv iterator = model.iter_next(iterator) function = 'assemble_image' args = (self.builder_base_image, driver_fish_list, application_fish_list, self.add_dell_recovery_deb, 'create_' + self.distributor, self.bto_up) BasicGeneratorGTK.wizard_complete(self, widget, function, args) def run_file_dialog(self): """Browses all files under a particular filter""" response = self.file_dialog.run() self.file_dialog.hide() if response == Gtk.ResponseType.OK: return self.file_dialog.get_filename() else: return None def up_toggled(self, widget): """Called when the radio button for the Builder utility partition page is changed""" up_browse_button = self.builder_widgets.get_object('up_browse_button') up_page = self.builder_widgets.get_object('up_page') wizard = self.widgets.get_object('wizard') if self.builder_widgets.get_object('up_files_radio').get_active(): self.builder_widgets.get_object('up_details_label').set_markup("") self.file_dialog.set_action(Gtk.FileChooserAction.OPEN) up_browse_button.set_sensitive(True) wizard.set_page_complete(up_page, False) else: if self.builder_widgets.get_object('up_partition_radio').get_active(): self.bto_up = self.up else: self.bto_up = '' wizard.set_page_complete(up_page, True) up_browse_button.set_sensitive(False) self.up_file_chooser_picked() def up_file_chooser_picked(self, widget=None): """Called when a file is selected on the up page""" up_page = self.builder_widgets.get_object('up_page') wizard = self.widgets.get_object('wizard') if widget == self.builder_widgets.get_object('up_browse_button'): ret = self.run_file_dialog() if ret is not None: self.bto_up = ret wizard.set_page_complete(up_page, True) if self.bto_up: call = subprocess.Popen(['file', self.bto_up], stdout=subprocess.PIPE, universal_newlines=True) output_text = "" + _("Utility Partition") + ":\n" output_text += call.communicate()[0].replace(', ', '\n') else: output_text = _("No Additional Utility Partition") self.builder_widgets.get_object('up_details_label').set_markup(output_text) def base_toggled(self, widget): """Called when the radio button for the Builder base image page is changed""" base_browse_button = self.builder_widgets.get_object('base_browse_button') base_page = self.builder_widgets.get_object('base_page') wizard = self.widgets.get_object('wizard') label = self.builder_widgets.get_object('base_image_details_label') label.set_markup("") base_browse_button.set_sensitive(True) wizard.set_page_complete(base_page, False) if self.builder_widgets.get_object('iso_image_radio').get_active(): self.file_dialog.set_action(Gtk.FileChooserAction.OPEN) elif self.builder_widgets.get_object('directory_radio').get_active(): self.file_dialog.set_action(Gtk.FileChooserAction.SELECT_FOLDER) else: base_browse_button.set_sensitive(False) self.base_file_chooser_picked() def base_file_chooser_picked(self, widget=None): """Called when a file is selected on the base page""" base_page = self.builder_widgets.get_object('base_page') wizard = self.widgets.get_object('wizard') wizard.set_page_complete(base_page, False) bto_version = '' output_text = '' distributor = '' release = '' arch = '' if widget == self.builder_widgets.get_object('base_browse_button'): ret = self.run_file_dialog() else: ret = self.rp if ret is not None: self.toggle_spinner_popup(True) try: dbus_sync_call_signal_wrapper(self.backend(), 'query_iso_information', {'report_iso_info': self.update_version_gui}, ret) except dbus.DBusException as msg: transient_for = self.widgets.get_object('wizard') self.dbus_exception_handler(msg, transient_for) self.toggle_spinner_popup(False) self.builder_base_image = ret def fid_toggled(self, widget): """Called when the radio button for the Builder FID overlay page is changed""" wizard = self.widgets.get_object('wizard') fid_page = self.builder_widgets.get_object('fid_page') label = self.builder_widgets.get_object('fid_overlay_details_label') wizard.set_page_complete(fid_page, False) self.builder_widgets.get_object('add_dell_recovery_button').set_sensitive(False) if self.builder_widgets.get_object('builtin_radio').get_active(): wizard.set_page_complete(fid_page, True) label.set_markup("Builtin: BTO Compatible Image") self.add_dell_recovery_deb = '' elif self.builder_widgets.get_object('deb_radio').get_active(): if self.add_dell_recovery_deb: wizard.set_page_complete(fid_page, True) else: label.set_markup("") self.builder_widgets.get_object('add_dell_recovery_button').set_sensitive(True) def fid_deb_changed(self, widget): """Detects the version of a newly found deb""" wizard = self.widgets.get_object('wizard') fid_page = self.builder_widgets.get_object('fid_page') wizard.set_page_complete(fid_page, False) if self.add_dell_recovery_deb: wizard.set_page_complete(fid_page, True) if self.add_dell_recovery_deb == 'dpkg-repack': output_text = "Build from on-system install" else: output_text = "Add from %s" % self.add_dell_recovery_deb self.builder_widgets.get_object('fid_overlay_details_label').set_markup(output_text) def driver_action(self, widget): """Called when the add or remove buttons are pressed on the driver action page""" add_button = self.builder_widgets.get_object('driver_add') remove_button = self.builder_widgets.get_object('driver_remove') treeview = self.builder_widgets.get_object('driver_treeview') model = treeview.get_model() if widget == add_button: ret = self.run_file_dialog() if ret is not None: #test that we don't have a file named identically if self.test_liststore_for_existing(model, ret): return model.append([ret]) elif widget == remove_button: row = treeview.get_selection().get_selected_rows()[1] if len(row) > 0: model.remove(model.get_iter(row[0])) def test_liststore_for_existing(self, model, test): """Tests the first column of a list store for the same content""" iterator = model.get_iter_first() while iterator is not None: iteration_text = model.get_value(iterator, 0) if iteration_text == test: return True iterator = model.iter_next(iterator) return False def application_action(self, widget): """Called when the add or remove buttons are pressed on the driver action page""" def run_srv_dialog(): """Runs the SRV dialog""" srv_dialog = self.builder_widgets.get_object('srv_dialog') srv_entry = self.builder_widgets.get_object('srv_entry') wizard = self.widgets.get_object('wizard') srv_entry.set_text('') wizard.set_sensitive(False) srv_dialog.run() wizard.set_sensitive(True) srv_dialog.hide() srv = srv_entry.get_text().lower() #double check that it's not a duplicate if self.calculate_srvs(None, -1, srv): return srv return "" add_button = self.builder_widgets.get_object('application_add') remove_button = self.builder_widgets.get_object('application_remove') treeview = self.builder_widgets.get_object('application_treeview') model = treeview.get_model() if widget == add_button: file_ret = self.run_file_dialog() if file_ret is not None: #test that we don't have a file named identically if self.test_liststore_for_existing(model, file_ret): return #query SRVs srv = run_srv_dialog() #append for reals model.append([file_ret, srv]) elif widget == remove_button: row = treeview.get_selection().get_selected_rows()[1] if len(row) > 0: model.remove(model.get_iter(row[0])) self.calculate_srvs(None, -1, "check") def calculate_srvs(self, widget, path, text): """Verifies that no empty SRVs were defined""" wizard = self.widgets.get_object('wizard') page = self.builder_widgets.get_object('application_page') model = self.builder_widgets.get_object('application_liststore') warning = self.builder_widgets.get_object('srv_warning_label') #ONLY ever work from lowercase text = text.lower() #if we are adding text, check all SRVs in the treeview # * for duplicates # * for having content if text: proceed = True iterator = model.get_iter_first() while iterator is not None: if str(model.get_path(iterator)[0]) != path: iteration_text = model.get_value(iterator, 1) if not iteration_text: proceed = False break if text == iteration_text: proceed = False text = '' break iterator = model.iter_next(iterator) else: proceed = False #if we were editing the treeview (not the popup) #then add it to the list store if path >= 0: iterator = model.get_iter(path) model.set(iterator, 1, text) #Now that we've checked all SRVs, check showing warning and go forward if proceed: warning.set_text("") else: warning.set_text(_("All SRVs must be filled to proceed.")) wizard.set_page_complete(page, proceed) return proceed def install_app(self, widget): """Launch into an installer for dpkg-repack""" packages = [] wizard = self.widgets.get_object('wizard') packages = ['dpkg-repack'] try: trans = self.apt_client.install_packages(packages, wait=False, reply_handler=None, error_handler=None) dialog = AptProgressDialog(trans, transient_for=wizard) dialog.run() super(AptProgressDialog, dialog).run() except dbus.exceptions.DBusException as msg: self.dbus_exception_handler(msg, wizard) widget.hide() def add_dell_recovery_clicked(self, widget): """Callback to launch a dialog to add dell-recovery to the image""" #check if dpkg-repack is available if not os.path.exists('/usr/bin/dpkg-repack'): if not self.apt_client: try: self.apt_client = client.AptClient() except NameError: pass if self.apt_client: self.builder_widgets.get_object('add_dell_recovery_repack_button').show() self.builder_widgets.get_object('build_dell_recovery_button').set_sensitive(False) else: self.builder_widgets.get_object('build_dell_recovery_button').set_sensitive(True) self.builder_widgets.get_object('builder_add_dell_recovery_window').show() def add_dell_recovery_closed(self, widget): """Callback for when the popup window to add dell-recovery is closed""" ok_button = self.builder_widgets.get_object('builder_add_ok') fid_page = self.builder_widgets.get_object('fid_page') wizard = self.widgets.get_object('wizard') window = self.builder_widgets.get_object('builder_add_dell_recovery_window') if widget == ok_button: wizard.set_page_complete(fid_page, True) else: wizard.set_page_complete(fid_page, False) self.add_dell_recovery_deb = '' window.hide() #validate version if self.builder_widgets.get_object('deb_radio').get_active(): self.fid_deb_changed(None) def add_dell_recovery_toggled(self, widget): """Toggles the active selection in the add dell-recovery to image page""" build_radio = self.builder_widgets.get_object('build_dell_recovery_button') browse_radio = self.builder_widgets.get_object('provide_dell_recovery_button') browse_button = self.builder_widgets.get_object('provide_dell_recovery_browse_button') ok_button = self.builder_widgets.get_object('builder_add_ok') if build_radio.get_active(): ok_button.set_sensitive(True) browse_button.set_sensitive(False) self.add_dell_recovery_deb = 'dpkg-repack' elif browse_radio.get_active(): ok_button.set_sensitive(False) browse_button.set_sensitive(True) self.add_dell_recovery_deb = '' def provide_dell_recovery_file_chooser_picked(self, widget=None): """Called when a file is selected on the add dell-recovery page""" ok_button = self.builder_widgets.get_object('builder_add_ok') filefilter = Gtk.FileFilter() filefilter.add_pattern("*.deb") self.file_dialog.set_filter(filefilter) ret = self.run_file_dialog() if ret is not None: import apt_inst import apt_pkg control = apt_inst.DebFile(ret).control.extractdata("control") sections = apt_pkg.TagSection(control) if sections["Package"] != 'dell-recovery': self.add_dell_recovery_deb = '' else: self.add_dell_recovery_deb = ret if self.add_dell_recovery_deb: ok_button.set_sensitive(True) def update_version_gui(self, version, distributor, release, arch, output_text): """Stops any running spinners and updates GUI items""" BasicGeneratorGTK.update_version_gui(self, version, distributor, release, arch, output_text) if output_text: complete = (output_text != "Unknown Base Image") base_page = self.builder_widgets.get_object('base_page') wizard = self.widgets.get_object('wizard') wizard.set_page_complete(base_page, complete) #If this is a BTO image, then allow using built in framework if not self.bto_base and self.builder_widgets.get_object('builtin_radio').get_active(): self.builder_widgets.get_object('deb_radio').set_active(True) self.builder_widgets.get_object('builtin_hbox').set_sensitive(self.bto_base) self.builder_widgets.get_object('base_image_details_label').set_markup(output_text) dell-recovery/build/lib/Dell/recovery_common.py0000644000000000000000000007045412311717746017050 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «recovery_common» - Misc Functions and variables that are useful in many areas # # Copyright (C) 2009-2010, Dell Inc. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## import dbus.mainloop.glib import subprocess from gi.repository import GLib, UDisks import os import shutil import re import tempfile import glob import sys import datetime import logging ## ## ##Common Variables## ## ## DBUS_BUS_NAME = 'com.dell.RecoveryMedia' DBUS_INTERFACE_NAME = 'com.dell.RecoveryMedia' #For install time CDROM_MOUNT = '/cdrom' ISO_MOUNT = '/isodevice' #Translation Support DOMAIN = 'dell-recovery' LOCALEDIR = '/usr/share/locale' #UI file directory if os.path.isdir('gtk') and 'DEBUG' in os.environ: UIDIR = 'gtk' else: UIDIR = '/usr/share/dell' #SVG file directory if os.path.isdir('gtk') and 'DEBUG' in os.environ: SVGDIR = 'gtk' else: SVGDIR = '/usr/share/pixmaps' #Supported burners and their arguments DVD_BURNERS = { 'brasero':['-i'], 'nautilus-cd-burner':['--source-iso='] } USB_BURNERS = { 'usb-creator':['-n', '--iso'], 'usb-creator-gtk':['-n', '--iso'], 'usb-creator-kde':['-n', '--iso'] } #UP File names UP_FILENAMES = [ 'upimg.bin', 'upimg.gz' , 'up.zip' , 'up.tgz' , ] UP_LABELS = [ 'dellutility' ] RP_LABELS = [ 'recovery', 'install', 'os' ] ## ## ##Common Functions## ## ## def black_tree(action, blacklist, src, dst='', base=None): """Recursively ACTIONs files from src to dest only when they don't match the blacklist outlined in blacklist""" return _tree(action, blacklist, src, dst, base, False) def white_tree(action, whitelist, src, dst='', base=None): """Recursively ACTIONs files from src to dest only when they match the whitelist outlined in whitelist""" return _tree(action, whitelist, src, dst, base, True) def _tree(action, list, src, dst, base, white): """Helper function for tree calls""" from distutils.file_util import copy_file if base is None: base = src if not base.endswith('/'): base += '/' names = os.listdir(src) if action == "copy": outputs = [] elif action == "size": outputs = 0 for n in names: src_name = os.path.join(src, n) dst_name = os.path.join(dst, n) end = src_name.split(base)[1] #don't copy symlinks or hardlinks, vfat seems to hate them if os.path.islink(src_name): continue #recurse till we find FILES elif os.path.isdir(src_name): if action == "copy": outputs.extend( _tree(action, list, src_name, dst_name, base, white)) elif action == "size": #add the directory we're in outputs += os.path.getsize(src_name) #add the files in that directory outputs += _tree(action, list, src_name, dst_name, base, white) #only copy the file if it matches the list / color elif (white and list.search(end)) or not (white or list.search(end)): if action == "copy": if not os.path.isdir(dst): os.makedirs(dst) copy_file(src_name, dst_name, preserve_mode=1, preserve_times=1, update=1, dry_run=0) outputs.append(dst_name) elif action == "size": outputs += os.path.getsize(src_name) return outputs def check_vendor(): """Checks to make sure that the app is running on Dell HW""" if os.path.exists('/sys/class/dmi/id/bios_vendor'): with open('/sys/class/dmi/id/bios_vendor') as rfd: vendor = rfd.readline().split()[0].lower() else: vendor = '' return ((vendor == 'dell') or (vendor == 'alienware')) def check_version(package='dell-recovery'): """Queries the package management system for the current tool version""" try: import apt.cache cache = apt.cache.Cache() if cache[package].is_installed: return cache[package].installed.version except Exception as msg: print("Error checking %s version: %s" % (package, msg), file=sys.stderr) return "unknown" def process_conf_file(original, new, uuid, number, ako='', recovery_text=''): """Replaces all instances of a partition, OS, and extra in a conf type file Generally used for things that need to touch grub""" if not os.path.isdir(os.path.split(new)[0]): os.makedirs(os.path.split(new)[0]) import lsb_release release = lsb_release.get_distro_information() extra_cmdline = ako if extra_cmdline: #remove any duplicate entries ka_list = find_extra_kernel_options().split(' ') ako_list = extra_cmdline.split(' ') for var in ka_list: found = False for item in ako_list: left = item.split('=')[0].strip() if left and left in var: found = True #propagate anything but BOOT_IMAGE (it gets added from isolinux) if not found and not 'BOOT_IMAGE' in var: extra_cmdline += ' ' + var else: extra_cmdline = find_extra_kernel_options() #starting with 10.10, we replace the whole drive string (/dev/sdX,msdosY) #earlier releases are hardcoded to (hd0,Y) if float(release["RELEASE"]) >= 10.10: number = 'msdos' + number with open(original, "r") as base: with open(new, 'w') as output: for line in base.readlines(): if "#RECOVERY_TEXT#" in line: line = line.replace("#RECOVERY_TEXT#", recovery_text) if "#UUID#" in line: line = line.replace("#UUID#", uuid) if "#PARTITION#" in line: line = line.replace("#PARTITION#", number) if "#OS#" in line: line = line.replace("#OS#", "%s %s" % (release["ID"], release["RELEASE"])) if "#EXTRA#" in line: line = line.replace("#EXTRA#", "%s" % extra_cmdline.strip()) output.write(line) def fetch_output(cmd, data='', environment=os.environ): '''Helper function to just read the output from a command''' proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, env=environment, universal_newlines=True) (out, err) = proc.communicate(data) if proc.returncode is None: proc.wait() if proc.returncode != 0: error = "Command %s failed with stdout/stderr: %s\n%s" % (cmd, out, err) import syslog syslog.syslog(error) raise RuntimeError(error) return out def find_extra_kernel_options(): """Finds any extra kernel command line options""" with open('/proc/cmdline', 'r') as cmdline: cmd = cmdline.readline().strip().split('--') if len(cmd) > 1: return cmd[1].strip() else: return '' def find_factory_partition_stats(partition_type): """Uses udisks to find the RP of a system and return stats on it Only use this method during bootstrap. args: 'up' or 'rp' """ recovery = {} if partition_type == 'up': labels = UP_LABELS elif partition_type == 'rp': labels = RP_LABELS udisks = UDisks.Client.new_sync(None) manager = udisks.get_object_manager() for item in manager.get_objects(): block = item.get_block() if not block: continue if block.get_cached_property('HintSystem').get_boolean(): check_label = block.get_cached_property("IdLabel") if not check_label: continue if check_label.get_string().lower() in labels: partition = item.get_partition() recovery["label"] = check_label.get_string() recovery["device"] = block.get_cached_property("Device").get_bytestring() recovery["fs"] = block.get_cached_property("IdType").get_string() recovery["drive"] = block.get_cached_property("Drive").get_string() recovery["number"] = partition.get_cached_property("Number").unpack() recovery["uuid"] = block.get_cached_property("IdUUID").get_string() recovery["size_gb"] = partition.get_cached_property("Size").unpack() / 1000000000 break #find parent slave node, used for dell-bootstrap if "device" in recovery: for item in manager.get_objects(): table = item.get_partition_table() if not table: continue block = item.get_block() if not block: continue if block.get_cached_property("Drive").get_string() == recovery["drive"]: recovery["slave"] = block.get_cached_property("Device").get_bytestring().decode('utf-8') break return recovery def find_partitions(): """Searches the system for utility and recovery partitions""" utility = find_factory_partition_stats('up') if 'device' in utility: utility = utility['device'] else: utility = None recovery = find_factory_partition_stats('rp') if 'device' in recovery: recovery = recovery['device'] else: recovery = None return (utility, recovery) def find_burners(): """Checks for what utilities are available to burn with""" def which(program): """Emulates the functionality of the unix which command""" def is_exe(fpath): """Determines if a filepath is executable""" return os.path.exists(fpath) and os.access(fpath, os.X_OK) fpath = os.path.split(program)[0] if fpath: if is_exe(program): return program else: for path in os.environ["PATH"].split(os.pathsep): exe_file = os.path.join(path, program) if is_exe(exe_file): return exe_file return None def find_command(array): """Determines if a command listed in the array is valid""" for item in array: path = which(item) if path is not None: return [path] + array[item] return None dvd = find_command(DVD_BURNERS) usb = find_command(USB_BURNERS) #If we have apps for DVD burning, check hardware if dvd: found_supported_dvdr = False valid_media_types=[ 'optical_dvd_plus_r', 'optical_dvd_plus_r_dl', 'optical_dvd_plus_rw', 'optical_dvd_r', 'optical_dvd_ram', 'optical_dvd_rw' ] udisks = UDisks.Client.new_sync(None) manager = udisks.get_object_manager() for item in manager.get_objects(): drive = item.get_drive() if not drive or not drive.get_cached_property("MediaRemovable"): continue compatibility = drive.get_cached_property("MediaCompatibility") for media in valid_media_types: if media in compatibility: found_supported_dvdr = True break if found_supported_dvdr: break if not found_supported_dvdr: dvd = None return (dvd, usb) def match_system_device(bus, vendor, device): '''Attempts to match the vendor and device combination on the specified bus Allows the following formats: base 16 int (eg 0x1234) base 16 int in a str (eg '0x1234') ''' def recursive_check_ids(directory, cvendor, cdevice, depth=1): """Recurses into a directory to check all files in that directory""" vendor = device = '' for root, dirs, files in os.walk(directory, topdown=True): for fname in files: if not vendor and (fname == 'idVendor' or fname == 'vendor'): with open(os.path.join(root, fname), 'r') as filehandle: vendor = filehandle.readline().strip('\n') if len(vendor) > 4 and '0x' not in vendor: vendor = '' elif not device and (fname == 'idProduct' or fname == 'device'): with open(os.path.join(root, fname), 'r') as filehandle: device = filehandle.readline().strip('\n') if len(device) > 4 and '0x' not in device: device = '' if vendor and device: if ( int(vendor, 16) == int(cvendor)) and \ ( int(device, 16) == int(cdevice)) : return True else: #reset devices so they aren't checked multiple times needlessly vendor = device = '' if not files: if depth > 0: for directory in [os.path.join(root, d) for d in dirs]: if recursive_check_ids(directory, cvendor, cdevice, depth-1): return True return False if bus != "usb" and bus != "pci": return False if type(vendor) == str and '0x' in vendor: vendor = int(vendor, 16) if type(device) == str and '0x' in device: device = int(device, 16) return recursive_check_ids('/sys/bus/%s/devices' % bus, vendor, device) def increment_bto_version(version): """Increments the BTO version""" match = re.match(r"(?:(?P\w+\.[a-z]*)(?P\d+))" r"|(?P\w+(?:\.[a-z]+)?)", version, re.I) if match: if match.group('digits'): version = "%s%d" % (match.group('alpha1'), int(match.group('digits'))+1) else: if '.' in match.group('alpha2'): version = "%s1" % match.group('alpha2') else: version = "%s.1" % match.group('alpha2') else: return 'A00' return version def walk_cleanup(directory): """Walks a directory, removes all files, and removes that directory""" if os.path.exists(directory): if os.path.isfile(directory): os.remove(directory) return for root, dirs, files in os.walk(directory, topdown=False): for name in files: os.remove(os.path.join(root, name)) for name in dirs: full_name = os.path.join(root, name) if os.path.islink(full_name): os.remove(full_name) elif os.path.isdir(full_name): os.rmdir(full_name) #covers broken links else: os.remove(full_name) os.rmdir(directory) def create_new_uuid(old_initrd_directory, old_casper_directory, new_initrd_directory, new_casper_directory, new_compression="auto", include_bootstrap=False): """ Regenerates the UUID contained in a casper initramfs Supported compression types: * auto (auto detects lzma/gzip) * lzma * gzip * None Returns full path of the old initrd and casper files (for blacklisting) """ tmpdir = tempfile.mkdtemp() #Detect the old initramfs stuff try: old_initrd_files = glob.glob('%s/initrd*' % old_initrd_directory) except Exception as msg: logging.warning("create_new_uuid: %s" % str(msg)) raise dbus.DBusException("Missing initrd in image.") try: old_uuid_file = glob.glob('%s/casper-uuid*' % old_casper_directory)[0] except Exception as msg: logging.warning("create_new_uuid: Old casper UUID not found, assuming 'casper-uuid'") old_uuid_file = '%s/casper-uuid' % old_casper_directory old_initrd_file = '' old_compression = '' old_suffix = '' for fname in old_initrd_files: if len(fname.split('.')) > 1: old_suffix = fname.split('.')[1] if old_suffix == "lz": old_compression = "lzma" old_initrd_file = fname break elif old_suffix == "gz": old_compression = "gzip" old_initrd_file = fname break else: old_suffix = '' if not old_suffix or not old_initrd_file or not old_uuid_file: raise dbus.DBusException("Unable to detect valid initrd.") logging.debug("create_new_uuid: old initrd %s, old uuid %s, old suffix %s, \ old compression method %s" % (old_initrd_file, old_uuid_file, old_suffix, old_compression)) #Extract old initramfs chain0 = subprocess.Popen([old_compression, '-cd', old_initrd_file, '-S', old_suffix], stdout=subprocess.PIPE) chain1 = subprocess.Popen(['cpio', '-id'], stdin=chain0.stdout, cwd=tmpdir) chain1.communicate() #Generate new UUID new_uuid_file = os.path.join(new_casper_directory, os.path.basename(old_uuid_file)) logging.debug("create_new_uuid: new uuid file: %s" % new_uuid_file) chain0 = subprocess.Popen(['uuidgen', '-r'], stdout=subprocess.PIPE) new_uuid = chain0.communicate()[0] logging.debug("create_new_uuid: new UUID: %s" % new_uuid.strip()) for item in [new_uuid_file, os.path.join(tmpdir, 'conf', 'uuid.conf')]: with open(item, "wb") as uuid_fd: uuid_fd.write(new_uuid) #Newer (Ubuntu 11.04+) images may support including the bootstrap in initrd if include_bootstrap: chain0 = subprocess.Popen(['/usr/share/dell/casper/hooks/dell-bootstrap'], env={'DESTDIR': tmpdir, 'INJECT': '1'}) chain0.communicate() #Detect compression new_suffix = '' if new_compression == "gzip": new_suffix = '.gz' elif new_compression == 'lzma': new_suffix = '.lz' elif new_compression == "auto": new_compression = old_compression new_suffix = '.' + old_suffix logging.debug("create_new_uuid: new suffix: %s" % new_suffix) logging.debug("create_new_uuid: new compression method: %s" % new_compression) #Generate new initramfs new_initrd_file = os.path.join(new_initrd_directory, 'initrd' + new_suffix) logging.debug("create_new_uuid: new initrd file: %s" % new_initrd_file) chain0 = subprocess.Popen(['find'], cwd=tmpdir, stdout=subprocess.PIPE) chain1 = subprocess.Popen(['cpio', '--quiet', '-o', '-H', 'newc'], cwd=tmpdir, stdin=chain0.stdout, stdout=subprocess.PIPE) with open(new_initrd_file, 'wb') as initrd_fd: if new_compression: chain2 = subprocess.Popen([new_compression, '-9c'], stdin=chain1.stdout, stdout=subprocess.PIPE) initrd_fd.write(chain2.communicate()[0]) else: initrd_fd.write(chain1.communicate()[0]) walk_cleanup(tmpdir) return (old_initrd_file, old_uuid_file) def create_g2ldr(chroot, rp_mount, install_mount): '''Create a g2ldr compatible image using the install chroot: chroot to launch commands in rp_mount: mountpoint to find partition# and install g2ldr install_mount: mountpoint to find target OS UUID''' uuid = '' partition = '-1' udisks = UDisks.Client.new_sync(None) manager = udisks.get_object_manager() for item in manager.get_objects(): filesystem = item.get_filesystem() part = item.get_partition() if not filesystem or not part: continue mount = filesystem.get_cached_property('MountPoints') if mount and install_mount and install_mount in mount: uuid = part.get_cached_property('UUID') partition = part.get_cached_property("Number") #The file that the Windows BCD will chainload shutil.copy('/usr/lib/grub/i386-pc/g2ldr.mbr', rp_mount) # This BCD configuration will load from the recovery partition if it exists # a /grub/grub.cfg. As specified by the active partition flag # If it doesn't, then it will look for /boot/grub/grub.cfg on the OS partition # as specified by the UUID. process_conf_file('/usr/share/dell/grub/bcd.cfg', \ os.path.join(chroot, 'tmp', 'bcd.cfg'), uuid, partition) #Build the Grub2 Core Image build_command = ['grub-mkimage', '-O', 'i386-pc', '-c', '/tmp/bcd.cfg', '-o', '/tmp/core.img', 'biosdisk', 'part_msdos', 'part_gpt', 'ls', 'fat', 'ntfs', 'ntfscomp', 'search', 'linux', 'vbe', 'boot', 'minicmd', 'cat', 'cpuid', 'chain', 'halt', 'linux16', 'echo', 'test', 'configfile', 'ext2', 'keystatus', 'help', 'boot', 'loadenv' ] if chroot == '/target': from ubiquity import install_misc install_misc.chrex(chroot, *build_command) else: from ubiquity import misc misc.execute_root(*build_command) with open(os.path.join(rp_mount, 'g2ldr'), 'wb') as wfd: for fname in ['/usr/lib/grub/i386-pc/g2hdr.bin', os.path.join(chroot, 'tmp', 'core.img')]: with open(fname, 'rb') as rfd: wfd.write(rfd.read()) def parse_seed(seed): """Parses a preseed file and returns a set of keys""" keys = {} if os.path.exists(seed): with open(seed, 'r') as rfd: line = rfd.readline() while line: line = line.strip() if line and not line.startswith('#'): line = line.split() line.pop(0) # ubiquity or d-i generally key = line.pop(0) if '/' in key: type = line.pop(0) value = " ".join(line) keys[key] = value line = rfd.readline() return keys def write_seed(seed, keys): """Writes out a preseed file with a selected set of keys""" with open(seed, 'w') as wfd: wfd.write("# Dell Recovery configuration preseed\n") wfd.write("# Last updated on %s\n" % datetime.date.today()) wfd.write("\n") for item in keys: if keys[item] == 'true' or keys[item] == 'false': type = 'boolean' else: type = 'string' wfd.write(" ubiquity %s %s %s\n" % (item, type, keys[item])) def write_up_bootsector(device, partition): """Write out the bootsector to a utility partition""" #build the bootsector of the partition if os.path.exists('/usr/share/dell/up/up.bs'): with open('/usr/share/dell/up/up.bs', 'rb') as rfd: with open(device + partition, 'wb') as wfd: wfd.write(rfd.read(11)) # writes the jump to instruction and oem name rfd.seek(43) wfd.seek(43) wfd.write(rfd.read(469)) # write the label, FS type, bootstrap code and signature #If we don't have the bootsector code, then just set the label properly else: fetch_output(['dosfslabel', device + partition, "DellUtility"]) def create_up_boot_entry(new_text): upart = find_factory_partition_stats('up') if not os.path.isdir('/sys/firmware/efi') and upart: process_conf_file(original = '/usr/share/dell/grub/98_dell_bios', \ new = '/etc/grub.d/98_dell_bios', \ uuid = str(upart["uuid"]), \ number = str(upart["number"]), \ recovery_text = new_text) os.chmod('/etc/grub.d/98_dell_bios', 0o755) def mark_upgrades(): '''Mark packages that can upgrade to upgrade during install''' from apt.cache import Cache cache = Cache() to_install = [] for key in cache.keys(): if cache[key].is_upgradable: to_install.append(key) del cache return to_install def mark_unconditional_debs(add_directory=''): '''Finds any debs from debs/main that we want unconditionally installed (but ONLY the latest version on the media)''' import apt_inst import apt_pkg def parse(fname): """ read a deb """ control = apt_inst.DebFile(fname).control.extractdata("control") sections = apt_pkg.TagSection(control) if "Modaliases" in sections: modaliases = sections["Modaliases"] else: modaliases = '' return (sections["Architecture"], sections["Package"], modaliases) #process debs/main to_install = [] my_arch = fetch_output(['dpkg', '--print-architecture']).strip() for top in [ISO_MOUNT, CDROM_MOUNT, add_directory]: repo = os.path.join(top, 'debs', 'main') if os.path.isdir(repo): for fname in os.listdir(repo): if '.deb' in fname: arch, package, modaliases = parse(os.path.join(repo, fname)) if not modaliases and (arch == "all" or arch == my_arch): to_install.append(package) #These aren't in all images, but desirable if available to_install.append('dkms') return to_install def dbus_sync_call_signal_wrapper(dbus_iface, func, handler_map, *args, **kwargs): '''Run a D-BUS method call while receiving signals. This function is an Ugly Hack™, since a normal synchronous dbus_iface.fn() call does not cause signals to be received until the method returns. Thus it calls func asynchronously and sets up a temporary main loop to receive signals and call their handlers; these are assigned in handler_map (signal name → signal handler). ''' if not hasattr(dbus_iface, 'connect_to_signal'): # not a D-BUS object return getattr(dbus_iface, func)(*args, **kwargs) def _h_reply(*args, **kwargs): """protected method to send a reply""" global _h_reply_result _h_reply_result = args loop.quit() def _h_error(exception=None): """protected method to send an error""" global _h_exception_exc _h_exception_exc = exception loop.quit() loop = GLib.MainLoop() global _h_reply_result, _h_exception_exc _h_reply_result = None _h_exception_exc = None kwargs['reply_handler'] = _h_reply kwargs['error_handler'] = _h_error kwargs['timeout'] = 86400 for signame, sighandler in handler_map.items(): dbus_iface.connect_to_signal(signame, sighandler) dbus_iface.get_dbus_method(func)(*args, **kwargs) loop.run() if _h_exception_exc: raise _h_exception_exc return _h_reply_result ## ## ## Common Classes ## ## ## class RestoreFailed(dbus.DBusException): """Exception Raised if the restoration process failed for any reason""" _dbus_error_name = 'com.dell.RecoveryMedia.RestoreFailedException' class CreateFailed(dbus.DBusException): """Exception Raised if the media creation process failed for any reason""" _dbus_error_name = 'com.dell.RecoveryMedia.CreateFailedException' class PermissionDeniedByPolicy(dbus.DBusException): """Exception Raised if policy kit denied the user access""" _dbus_error_name = 'com.dell.RecoveryMedia.PermissionDeniedByPolicy' class BackendCrashError(SystemError): """Exception Raised if the backend crashes""" pass dell-recovery/build/lib/Dell/__init__.py0000644000000000000000000000017211751021273015355 0ustar """The Dell Recovery toolset is used for recovery type interactions both for building media and recovering systems""" dell-recovery/build/lib/Dell/recovery_xml.py0000644000000000000000000001263412043102601016330 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «recovery_xml» - Helper Class for parsing and using a bto.xml # # Copyright (C) 2010-2011, Dell Inc. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## import xml.dom.minidom import codecs import os import sys if sys.version >= '3': text_type = str binary_type = bytes else: text_type = unicode binary_type = str def utf8str(old): if isinstance(old, text_type): return old else: return text_type(binary_type(old), 'utf-8', errors='ignore') class BTOxml: def __init__(self): self.dom = None self.new = False self.load_bto_xml() def set_base(self, name, md5=''): """Sets the base image""" self.replace_node_contents('base', name) if md5: self.dom.getElementsByTagName('base')[0].setAttribute('md5', md5) def append_fish(self, fish_type, name, md5='', srv=''): """Appends a fish package""" elements = self.dom.getElementsByTagName('fish') new_element = self.dom.createElement(fish_type) if md5: new_element.setAttribute('md5', md5) if srv: new_element.setAttribute('srv', srv) new_node = self.dom.createTextNode(name) new_element.appendChild(new_node) elements[0].appendChild(new_element) def fetch_node_contents(self, tag): """Fetches all children of a tag""" elements = self.dom.getElementsByTagName(tag) values = text_type('') if len(elements) > 1: values = [] if elements: for element in elements: child = element.firstChild if child: if len(elements) > 1: values.append(child.nodeValue.strip()) else: values = child.nodeValue.strip() return values def replace_node_contents(self, tag, new): """Replaces a node contents (that we assume exists)""" elements = self.dom.getElementsByTagName(tag) if not elements: print("Missing elements for tag") return if elements[0].hasChildNodes(): for node in elements[0].childNodes: elements[0].removeChild(node) noob = self.dom.createTextNode(utf8str(new)) elements[0].appendChild(noob) def load_bto_xml(self, fname=None): """Initialize an XML file into memory""" def create_top_level(dom): """Initializes a top level document""" element = dom.createElement('bto') dom.appendChild(element) return element def create_tag(dom, tag, append_to): """Create a subtag as necessary""" element = dom.getElementsByTagName(tag) if element: element = element[0] else: element = dom.createElement(tag) append_to.appendChild(element) return element if fname: self.new = False try: if os.path.exists(fname): with open(fname, 'rb') as f: fname = f.read() self.dom = xml.dom.minidom.parseString(utf8str(fname)) except xml.parsers.expat.ExpatError: print("Damaged XML file, regenerating") if not (fname and self.dom): self.new = True self.dom = xml.dom.minidom.Document() #test for top level bto object if self.dom.firstChild and self.dom.firstChild.localName != 'bto': self.dom.removeChild(self.dom.firstChild) if not self.dom.firstChild: bto = create_top_level(self.dom) else: bto = self.dom.getElementsByTagName('bto')[0] #create all our second and third level tags that are supported for tag in ['date', 'versions', 'base', 'fid', 'fish', 'logs']: element = create_tag(self.dom, tag, bto) subtags = [] if tag == 'versions': subtags = ['os', 'iso', 'generator', 'bootstrap', 'ubiquity'] elif tag == 'fid': subtags = ['git_tag', 'deb_archive'] elif tag == 'logs': subtags = ['syslog', 'debug'] for subtag in subtags: create_tag(self.dom, subtag, element) def write_xml(self, fname): """Writes out a BTO XML file based on the current data""" with codecs.open(fname, 'w', 'utf-8') as wfd: if self.new: self.dom.writexml(wfd, "", " ", "\n", encoding='utf-8') else: self.dom.writexml(wfd, encoding='utf-8') dell-recovery/build/lib/Dell/recovery_basic_gtk.py0000644000000000000000000003315112311717746017477 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «recovery_basic_gtk» - Dell Recovery Media Generator # # Copyright (C) 2008-2010, Dell Inc. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################ import os import subprocess import dbus from gi.repository import Gtk from Dell.recovery_gtk import DellRecoveryToolGTK, translate_widgets from Dell.recovery_common import (find_partitions, find_burners, UIDIR, SVGDIR, increment_bto_version, dbus_sync_call_signal_wrapper, fetch_output) #Translation support from gettext import gettext as _ class BasicGeneratorGTK(DellRecoveryToolGTK): """The BasicGeneratorGTK is the GTK generator that solely generates images from the recovery partition on a machine. """ def __init__(self, utility, recovery, version, media, target, overwrite): #Run the normal init first #This sets up lots of common variables as well as translation domain DellRecoveryToolGTK.__init__(self, recovery, utility) #init the UI and translate widgets/connect signals self.widgets = Gtk.Builder() self.widgets.add_from_file(os.path.join(UIDIR, 'recovery_media_creator.ui')) #insert pages in reverse order wizard = self.widgets.get_object('wizard') titles = {'conf_page': _("Confirm Selections"), 'media_type_page': _("Media Type") } for page in ['conf_page', 'media_type_page']: wizard.insert_page(self.widgets.get_object(page), 0) wizard.set_page_title(wizard.get_nth_page(0), titles[page]) Gtk.Window.set_default_icon_from_file(os.path.join(SVGDIR, 'dell-dvd.svg')) translate_widgets(self.widgets) self.widgets.connect_signals(self) #setup spinner self.spinner = Gtk.Spinner() self.widgets.get_object('spinner_box').add(self.spinner) self.widgets.get_object('spinner_box').show_all() self._dbus_iface = None self.timeout = 0 self.image = '' (self.cd_burn_cmd, self.usb_burn_cmd) = find_burners() try: self.release = fetch_output(['lsb_release', '-r', '-s']).strip('\n') self.distributor = fetch_output(['lsb_release', '-i', '-s']).strip('\n').lower() except RuntimeError: self.release = '0.00' self.distributor = 'unknown' self.arch = '' for item in ['server', 'enterprise']: if item in self.distributor: self.distributor = self.distributor.split(item)[0] #set any command line arguments for this frontend self.up = utility self.widgets.get_object('version').set_text(version) self.media = media self.path = target self.overwrite = overwrite def check_preloaded_system(self): """Checks that the system this tool is being run on contains a utility partition and recovery partition""" #check any command line arguments if self.up and not os.path.exists(self.up): self.up = None if self.rp and not os.path.exists(self.rp): self.rp = None if self.up and self.rp: return True (self.up, self.rp) = find_partitions() return self.rp def wizard_complete(self, widget, function=None, args=None): """Finished answering wizard questions, and can continue process""" #Fill in dynamic data if not self.widgets.get_object('version').get_text(): self.toggle_spinner_popup(True) try: dbus_sync_call_signal_wrapper(self.backend(), 'query_iso_information', {'report_iso_info': self.update_version_gui}, self.rp) except dbus.DBusException as msg: self.toggle_spinner_popup(False) transient_for = self.widgets.get_object('wizard') self.dbus_exception_handler(msg, transient_for) return finally: self.toggle_spinner_popup(False) if not self.image: self.image = '%s-%s-%s-dell_%s.iso' % (self.distributor, self.release, self.arch, self.widgets.get_object('version').get_text()) #Check for existing image skip_creation = False if not self.overwrite and \ os.path.exists(os.path.join(self.path, self.image)): skip_creation = not show_question( \ self.widgets.get_object('existing_dialog')) #GUI Elements self.widgets.get_object('wizard').hide() #Call our DBUS backend to build the ISO if not skip_creation: #try to open the file as a user first so when it's overwritten, it #will be with the correct permissions try: if not os.path.isdir(self.path): os.makedirs(self.path) with open(os.path.join(self.path, self.image), 'w') as wfd: pass except IOError: #this might have been somwehere that the system doesn't want us #writing files as a user, oh well, we tried pass #just create ISO, content is ready to go if not (function and args): self.widgets.get_object('action').set_text( \ _("Building Base image")) function = 'create_' + self.distributor args = (self.up, self.rp) #all functions require this at the end args += ( self.widgets.get_object('version').get_text(), os.path.join(self.path, self.image)) try: dbus_sync_call_signal_wrapper(self.backend(), function, {'report_progress':self.update_progress_gui}, *args) self.update_progress_gui(_("Opening Burner"), 1.00) except dbus.DBusException as msg: transient_for = self.widgets.get_object('progress_dialog') fallback = self.widgets.get_object('wizard') self.dbus_exception_handler(msg, transient_for, fallback) return self.burn() def burn(self): """Calls an external application for burning this ISO""" success = False self.hide_progress() while not success: success = True if self.widgets.get_object('dvdbutton').get_active(): cmd = self.cd_burn_cmd + [os.path.join(self.path, self.image)] elif self.widgets.get_object('usbbutton').get_active(): cmd = self.usb_burn_cmd + [os.path.join(self.path, self.image)] else: cmd = None if cmd: subprocess.call(cmd) header = _("Recovery Media Creation Process Complete") body = _("If you would like to archive another copy, the generated \ image has been stored under the filename:\n") + \ os.path.join(self.path, self.image) self.show_alert(Gtk.MessageType.INFO, header, body, transient_for=self.widgets.get_object('progress_dialog')) self.destroy(None) #### GUI Functions ### # This application is functional via command line by using the above functions # def top_button_clicked(self, widget): """Overridden method to make us generate OS media""" if not self.check_preloaded_system(): header = _("Unable to proceed") inst = _("System does not appear to contain Dell factory installed \ partition layout.") self.show_alert(Gtk.MessageType.ERROR, header, inst, transient_for=self.widgets.get_object('wizard')) return if DellRecoveryToolGTK.top_button_clicked(self, widget): #show our page self.widgets.get_object('wizard').show() self.tool_widgets.get_object('tool_selector').hide() def check_close(self, widget, args=None): """Asks the user before closing the dialog""" response = self.widgets.get_object('close_dialog').run() if response == Gtk.ResponseType.YES: self.destroy() else: self.widgets.get_object('close_dialog').hide() return True def hide_progress(self): """Hides the progress bar""" self.widgets.get_object('progress_dialog').hide() while Gtk.events_pending(): Gtk.main_iteration() def toggle_spinner_popup(self, force): wizard = self.widgets.get_object('wizard') popup = self.widgets.get_object('spinner_popup') if force: wizard.set_sensitive(False) self.spinner.start() popup.show() else: self.spinner.stop() popup.hide() wizard.set_sensitive(True) while Gtk.events_pending(): Gtk.main_iteration() def update_version_gui(self, version, distributor, release, arch, output_text): """Stops any running spinners and updates GUI items""" if distributor: self.distributor = distributor if release: self.release = release if arch: self.arch = arch self.bto_base = bool(version) if self.bto_base: version = increment_bto_version(version) else: version = 'X00' self.widgets.get_object('version').set_text(version) return True def update_progress_gui(self, progress_text, progress): """Updates the progressbar to show what we are working on""" progressbar = self.widgets.get_object('progressbar') self.widgets.get_object('progress_dialog').show() if float(progress) < 0: progressbar.pulse() else: progressbar.set_fraction(float(progress)/100) if progress_text != None: self.widgets.get_object('action').set_markup("" +\ _(progress_text)+"") while Gtk.events_pending(): Gtk.main_iteration() return True def build_page(self, widget, page=None): """Prepares our GTK assistant""" if page == self.widgets.get_object('media_type_page'): #fill in command line args if self.media == "dvd": self.widgets.get_object('dvdbutton').set_active(True) elif self.media == "usb": self.widgets.get_object('usbbutton').set_active(True) else: self.widgets.get_object('nomediabutton').set_active(True) #remove invalid options (missing burners) if self.cd_burn_cmd is None: self.widgets.get_object('dvd_box').hide() self.widgets.get_object('usbbutton').set_active(True) else: self.widgets.get_object('dvd_box').show() if self.usb_burn_cmd is None: self.widgets.get_object('usb_box').hide() if self.cd_burn_cmd is None: self.widgets.get_object('nomediabutton').set_active(True) else: self.widgets.get_object('usb_box').show() self.widgets.get_object('wizard').set_page_complete(page, True) elif page == self.widgets.get_object('conf_page') or \ widget == self.widgets.get_object('version'): if self.widgets.get_object('dvdbutton').get_active(): burn_type = self.widgets.get_object('dvdbutton').get_label() elif self.widgets.get_object('usbbutton').get_active(): burn_type = self.widgets.get_object('usbbutton').get_label() else: burn_type = _("Image File") text = '' text += "" + _("Media Type: ") + '' + burn_type + '\n' if self.rp: if not self.rp.startswith(b'/dev'): text += "" + _("Recovery Partition: ") + '' text += self.rp + '\n' else: text += "" + _("Recovery Partition: ") + '' text += _("Included") + '\n' self.widgets.get_object('conf_text').set_markup(text) if page: self.widgets.get_object('wizard').set_page_complete(page, True) self.widgets.get_object('wizard').set_page_type(page, Gtk.AssistantPageType.CONFIRM) def show_question(dialog): """Presents the user with a question""" response = dialog.run() dialog.hide() return (response == Gtk.ResponseType.YES) dell-recovery/build/lib/Dell/recovery_backend.py0000644000000000000000000016363112311717746017147 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «recovery_backend» - Backend Manager. Handles backend service calls # # Copyright (C) 2009, Dell Inc. # (C) 2008 Canonical Ltd. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## import logging, os, os.path, signal, sys, re from gi.repository import GLib import dbus import dbus.service import dbus.mainloop.glib import atexit import tempfile import subprocess import tarfile import shutil import datetime import distutils.dir_util import stat import zipfile import lsb_release from hashlib import md5 from aptdaemon import client from defer import inline_callbacks from Dell.recovery_common import (DOMAIN, LOCALEDIR, UP_FILENAMES, walk_cleanup, create_new_uuid, white_tree, black_tree, fetch_output, check_version, DBUS_BUS_NAME, DBUS_INTERFACE_NAME, RestoreFailed, CreateFailed, mark_upgrades, mark_unconditional_debs, PermissionDeniedByPolicy) from Dell.recovery_threading import ProgressByPulse, ProgressBySize from Dell.recovery_xml import BTOxml import fcntl import select #Translation support from gettext import gettext as _ from gettext import bindtextdomain, textdomain #TODO, when python3 version of debian-support is available, # drop this ugly test if sys.version >= "3": class emulator: def version_compare(self, this, that): if this > that: return 1 if this == that: return 0 else: return -1 debian_support = emulator() else: from debian_bundle import debian_support def safe_tar_extract(filename, destination): """Safely extracts a tarball into destination""" logging.debug('safe_tar_extract: %s to %s', (filename, destination)) rfd = tarfile.open(filename) dangerous_file = False for name in rfd.getnames(): if name.startswith('..') or name.startswith('/'): dangerous_file = True break if not dangerous_file: rfd.extractall(destination) rfd.close() class Backend(dbus.service.Object): '''Backend manager. This encapsulates all services calls of the backend. It is implemented as a dbus.service.Object, so that it can be called through D-BUS as well (on the /RecoveryMedia object path). ''' # # D-BUS control API # def __init__(self): dbus.service.Object.__init__(self) #initialize variables that will be used during create and run self.bus = None self.package_dir = None self.main_loop = None self._timeout = False self.dbus_name = None self.xml_obj = BTOxml() # cached D-BUS interfaces for _check_polkit_privilege() self.dbus_info = None self.polkit = None self.progress_thread = None self.enforce_polkit = True #Enable translation for strings used bindtextdomain(DOMAIN, LOCALEDIR) textdomain(DOMAIN) def run_dbus_service(self, timeout=None, send_usr1=False): '''Run D-BUS server. If no timeout is given, the server will run forever, otherwise it will return after the specified number of seconds. If send_usr1 is True, this will send a SIGUSR1 to the parent process once the server is ready to take requests. ''' dbus.service.Object.__init__(self, self.bus, '/RecoveryMedia') self.main_loop = GLib.MainLoop() self._timeout = False if timeout: def _quit(): """This function is ran at the end of timeout""" self.main_loop.quit() return True GLib.timeout_add(timeout * 1000, _quit) # send parent process a signal that we are ready now if send_usr1: os.kill(os.getppid(), signal.SIGUSR1) # run until we time out while not self._timeout: if timeout: self._timeout = True self.main_loop.run() @classmethod def create_dbus_server(cls, session_bus=False): '''Return a D-BUS server backend instance. Normally this connects to the system bus. Set session_bus to True to connect to the session bus (for testing). ''' backend = Backend() dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) if session_bus: backend.bus = dbus.SessionBus() backend.enforce_polkit = False else: backend.bus = dbus.SystemBus() try: backend.dbus_name = dbus.service.BusName(DBUS_BUS_NAME, backend.bus) except dbus.exceptions.DBusException as msg: logging.error("Exception when spawning dbus service") logging.error(msg) return None return backend # # Internal methods # def _reset_timeout(self): '''Reset the D-BUS server timeout.''' self._timeout = False def _check_polkit_privilege(self, sender, conn, privilege): '''Verify that sender has a given PolicyKit privilege. sender is the sender's (private) D-BUS name, such as ":1:42" (sender_keyword in @dbus.service.methods). conn is the dbus.Connection object (connection_keyword in @dbus.service.methods). privilege is the PolicyKit privilege string. This method returns if the caller is privileged, and otherwise throws a PermissionDeniedByPolicy exception. ''' if sender is None and conn is None: # called locally, not through D-BUS return if not self.enforce_polkit: # that happens for testing purposes when running on the session # bus, and it does not make sense to restrict operations here return # get peer PID if self.dbus_info is None: self.dbus_info = dbus.Interface(conn.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus/Bus', False), 'org.freedesktop.DBus') pid = self.dbus_info.GetConnectionUnixProcessID(sender) # query PolicyKit if self.polkit is None: self.polkit = dbus.Interface(dbus.SystemBus().get_object( 'org.freedesktop.PolicyKit1', '/org/freedesktop/PolicyKit1/Authority', False), 'org.freedesktop.PolicyKit1.Authority') try: # we don't need is_challenge return here, since we call with AllowUserInteraction (is_auth, unused, details) = self.polkit.CheckAuthorization( ('unix-process', {'pid': dbus.UInt32(pid, variant_level=1), 'start-time': dbus.UInt64(0, variant_level=1)}), privilege, {'': ''}, dbus.UInt32(1), '', timeout=600) except dbus.DBusException as msg: if msg.get_dbus_name() == \ 'org.freedesktop.DBus.Error.ServiceUnknown': # polkitd timed out, connect again self.polkit = None return self._check_polkit_privilege(sender, conn, privilege) else: raise if not is_auth: logging.debug('_check_polkit_privilege: sender %s on connection %s pid %i is not authorized for %s: %s', sender, conn, pid, privilege, str(details)) raise PermissionDeniedByPolicy(privilege) # # Internal API for calling from Handlers (not exported through D-BUS) # def request_mount(self, recovery, type="r", sender=None, conn=None): '''Attempts to mount the recovery partition If successful, return mntdir. If we find that it's already mounted elsewhere, return that mount If unsuccessful, return an empty string ''' logging.debug("request_mount: %s" % recovery) #In this is just a directory if os.path.isdir(recovery): return recovery #check for an existing mount command = subprocess.Popen(['mount'], stdout=subprocess.PIPE, universal_newlines=True) output = command.communicate()[0].split('\n') for line in output: processed_line = line.split() if len(processed_line) > 0 and processed_line[0] == recovery: return processed_line[2] #if not already, mounted, produce a mount point mntdir = tempfile.mkdtemp() mnt_args = ['mount', '-%s' %type, recovery, mntdir] if ".iso" in recovery: mnt_args.insert(1, 'loop') mnt_args.insert(1, '-o') else: self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.create') command = subprocess.Popen(mnt_args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) output = command.communicate() ret = command.wait() if ret is not 0: os.rmdir(mntdir) if ret == 32: try: mntdir = output[1].strip('\n').split('on')[1].strip(' ') except IndexError: mntdir = '' logging.warning("IndexError when operating on output string") else: mntdir = '' logging.warning("Unable to mount recovery partition") logging.warning(output) else: atexit.register(self._unmount_drive, mntdir) return mntdir def _unmount_drive(self, mnt): """Unmounts something mounted at a particular mount point""" logging.debug("_unmount_drive: %s" % mnt) if os.path.exists(mnt): ret = subprocess.call(['umount', mnt]) if ret is not 0: logging.warning(" _unmount_drive: Error unmounting %s" % mnt) try: os.rmdir(mnt) except OSError as msg: logging.warning(" _unmount_drive: Error cleaning up: %s" % str(msg)) def _test_for_new_dell_recovery(self, mount, assembly_tmp): """Tests if the distro currently on the system matches the recovery media. If it does, check for any potential SRUs to apply to the recovery media """ logging.debug("_test_for_new_dell_recovery: testing mount %s and assembly_tmp %s" % (mount, assembly_tmp)) output = fetch_output(['zcat', '/usr/share/doc/dell-recovery/changelog.gz']) package_distro = output.split('\n')[0].split()[2].strip(';') with open(os.path.join(mount, '.disk', 'info')) as rfd: rp_distro = rfd.readline().split()[2].strip('"').lower() if rp_distro in package_distro: logging.debug("_test_for_new_dell_recovery: Distro %s matches %s", rp_distro, package_distro) from apt.cache import Cache cache = Cache() package_version = cache['dell-recovery'].installed.version rp_version = self.query_have_dell_recovery(mount) if debian_support.version_compare(package_version, rp_version) > 0: logging.debug("_test_for_new_dell_recovery: Including updated dell-recovery package version, %s (original was %s)", package_version, rp_version) dest = os.path.join(assembly_tmp, 'debs') if not os.path.isdir(dest): os.makedirs(dest) call = subprocess.Popen(['dpkg-repack', 'dell-recovery'], cwd=dest, universal_newlines=True) (out, err) = call.communicate() else: logging.debug("_test_for_new_dell_recovery: RP Distro %s doesn't match our distro %s, not injecting updated package", rp_distro, package_distro) def _process_driver_fish(self, driver_fish, assembly_tmp): """Processes a driver FISH archive""" logging.debug("_process_driver_fish: assmebly_tmp: %s" % assembly_tmp) length = len(driver_fish) for fishie in driver_fish: logging.debug(" processing %s" % fishie) self.report_progress(_('Processing FISH packages'), driver_fish.index(fishie)/length*100) if os.path.isfile(fishie): with open(fishie, 'rb') as fish: md5sum = md5(fish.read()).hexdigest() self.xml_obj.append_fish('driver', os.path.basename(fishie), md5sum) dest = None if fishie.endswith('.deb'): dest = os.path.join(assembly_tmp, 'debs') logging.debug(" Copying debian archive fishie %s", fishie) elif fishie.endswith('.pdf'): dest = os.path.join(assembly_tmp, 'docs') logging.debug(" Copying document fishie fishie %s", fishie) elif fishie.endswith('.py') or fishie.endswith('.sh'): dest = os.path.join(assembly_tmp, 'scripts', 'chroot-scripts', 'fish') logging.debug(" Copying python or shell fishie %s", fishie) elif os.path.exists(fishie) and tarfile.is_tarfile(fishie): nested = False rfd = tarfile.open(fishie) for member in rfd.getmembers(): name = member.get_info(encoding='UTF-8', errors='strict')['name'] if name.endswith('.html'): nested = name break if nested: archive_tmp = tempfile.mkdtemp() atexit.register(walk_cleanup, archive_tmp) safe_tar_extract(fishie, archive_tmp) children = [] for child in os.listdir(archive_tmp): if child != name: children.append(os.path.join(archive_tmp,child)) logging.debug(" Extracting nested archive %s", fishie) self._process_driver_fish(children, assembly_tmp) else: safe_tar_extract(fishie, assembly_tmp) logging.debug(": Extracting tar fishie %s", fishie) pre_package = os.path.join(assembly_tmp, 'prepackage.dell') if os.path.exists(pre_package): os.remove(pre_package) else: logging.debug(" ignoring fishie %s", fishie) #If we just do a flat copy if dest is not None: if not os.path.isdir(dest): os.makedirs(dest) distutils.file_util.copy_file(fishie, dest, verbose=1, update=0) def start_sizable_progress_thread(self, input_str, mnt, w_size): """Initializes the extra progress thread, or resets it if it already exists'""" self.progress_thread = ProgressBySize(input_str, mnt, w_size) self.progress_thread.progress = self.report_progress self.progress_thread.start() def stop_progress_thread(self): """Stops the extra thread for reporting progress""" self.progress_thread.join() def start_pulsable_progress_thread(self, input_str): """Starts the extra thread for pulsing progress in the UI""" self.progress_thread = ProgressByPulse(input_str) self.progress_thread.progress = self.report_progress self.progress_thread.start() # # Client API (through D-BUS) # @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 'b', out_signature = 'b', sender_keyword = 'sender', connection_keyword = 'conn') def force_network(self, enable, sender=None, conn=None): """Forces a network manager disable request as root""" self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.force_network') bus = dbus.SystemBus() obj = bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager') int = dbus.Interface(obj, 'org.freedesktop.NetworkManager') return int.Sleep(not enable) @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = '', out_signature = '', sender_keyword = 'sender', connection_keyword = 'conn') def request_exit(self, sender=None, conn=None): """Closes the backend and cleans up""" self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.request_exit') self._timeout = True self.main_loop.quit() @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 'sasa{ss}sssss', out_signature = '', sender_keyword = 'sender', connection_keyword = 'conn') def assemble_image(self, base, driver_fish, application_fish, dell_recovery_package, create_fn, utility, version, iso, sender=None, conn=None): """Assemble pieces that would be used for building a BTO image. base: mount point of base image (or directory) fish: list of packages to fish dell_recovery_package: a dell-recovery package to inject create_fn: function to call for creation of ISO utility: utility partition version: version for ISO creation purposes iso: iso file name to create""" logging.debug("assemble_image: base %s, driver_fish %s, application_fish\ %s, recovery %s, create_fn %s, utility %s, version %s, iso %s" % (base, driver_fish, application_fish, dell_recovery_package, create_fn, utility, version, iso)) self._reset_timeout() base_mnt = self.request_mount(base, "r", sender, conn) assembly_tmp = tempfile.mkdtemp() atexit.register(walk_cleanup, assembly_tmp) #copy the base iso/mnt point/etc white_pattern = re.compile('') w_size = white_tree("size", white_pattern, base_mnt) self.start_sizable_progress_thread(_('Adding in base image'), assembly_tmp, w_size) white_tree("copy", white_pattern, base_mnt, assembly_tmp) self.stop_progress_thread() #Add in driver FISH content if len(driver_fish) > 0: # record the base iso used self.xml_obj.set_base(os.path.basename(base)) self._process_driver_fish(driver_fish, assembly_tmp) logging.debug("assemble_image: done inserting driver fish") #Add in application FISH content length = float(len(application_fish)) if length > 0: dest = os.path.join(assembly_tmp, 'srv') os.makedirs(dest) for fishie in application_fish: with open(fishie, 'rb') as fish: md5sum = md5(fish.read()).hexdigest() new_name = application_fish[fishie] self.xml_obj.append_fish('application', os.path.basename(fishie), md5sum, new_name) if fishie.endswith('.zip'): new_name += '.zip' elif os.path.exists(fishie) and tarfile.is_tarfile(fishie): new_name += '.tgz' distutils.file_util.copy_file(fishie, os.path.join(dest, new_name), verbose=1, update=0) #If a utility partition exists and we wanted to replace it, wipe it away if utility: for fname in UP_FILENAMES: if os.path.exists(os.path.join(assembly_tmp, fname)): os.remove(os.path.join(assembly_tmp, fname)) #If dell-recovery needs to be injected into the image if dell_recovery_package: self.xml_obj.replace_node_contents('deb_archive', dell_recovery_package) dest = os.path.join(assembly_tmp, 'debs') if not os.path.isdir(dest): os.makedirs(dest) if 'dpkg-repack' in dell_recovery_package: logging.debug("Repacking dell-recovery using dpkg-repack") call = subprocess.Popen(['dpkg-repack', 'dell-recovery'], cwd=dest, universal_newlines=True) (out, err) = call.communicate() else: logging.debug("Adding manually included dell-recovery package, %s", dell_recovery_package) distutils.file_util.copy_file(dell_recovery_package, dest) function = getattr(Backend, create_fn) function(self, utility, assembly_tmp, version, iso) @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 's', out_signature = 'sssss', sender_keyword = 'sender', connection_keyword = 'conn') def query_iso_information(self, iso, sender=None, conn=None): """Queries what type of ISO this is. This same method will be used regardless of OS.""" def find_arch(input_str): """Finds the architecture in an input string""" for item in input_str.split(): for test in ('amd64', 'i386'): if test in item: return test return fetch_output(['dpkg', '--print-architecture']).strip() def find_float(input_str): """Finds the floating point number in a string""" for piece in input_str.split(): try: release = float(piece) except ValueError: continue logging.debug("query_iso_information: find_float found %d", release) return piece return '' logging.debug("query_iso_information: iso %s" % iso) self._reset_timeout() self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.query_iso_information') (bto_version, bto_date) = self.query_bto_version(iso, sender, conn) distributor_str = 'Unknown Base Image' distributor = '' #Ubuntu disks have .disk/info if os.path.isfile(iso) and iso.endswith('.iso'): cmd = ['isoinfo', '-J', '-i', iso, '-x', '/.disk/info'] invokation = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True) out, err = invokation.communicate() if invokation.returncode is None: invokation.wait() if out: distributor_str = out distributor = "ubuntu" if err: logging.debug("error during isoinfo invokation: %s", err) else: mntdir = self.request_mount(iso, "r", sender, conn) if os.path.exists(os.path.join(mntdir, '.disk', 'info')): with open(os.path.join(mntdir, '.disk', 'info'), 'r') as rfd: distributor_str = rfd.readline().strip('\n') distributor = "ubuntu" #RHEL disks have .discinfo elif os.path.exists(os.path.join(mntdir, '.discinfo')): with open(os.path.join(mntdir, '.discinfo'), 'r') as rfd: timestamp = rfd.readline().strip('\n') distributor_string = rfd.readline().strip('\n') arch = rfd.readline().strip('\n') distributor = "redhat" distributor_str += ' ' + arch release = find_float(distributor_str) arch = find_arch(distributor_str) if bto_version and bto_date: distributor_str = "Dell BTO Image, version %s built on %s\n%s" % (bto_version.split('.')[0], bto_date, distributor_str) elif bto_version == '[native]': distributor_str = "Dell BTO Compatible Image\n%s" % distributor_str else: bto_version = '' self.report_iso_info(bto_version, distributor, release, arch, distributor_str) logging.debug(" returning bto_version %s, distributor %s, release %s, \ arch %s, distributor_str %s" % (bto_version, distributor, release, arch, distributor_str)) return (bto_version, distributor, release, arch, distributor_str) @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 's', out_signature = 'ss', sender_keyword = 'sender', connection_keyword = 'conn') def query_bto_version(self, recovery, sender=None, conn=None): """Queries the BTO version number internally stored in an ISO or RP""" def test_initrd(cmd0): """Tests an initrd using the selected command""" cmd1 = ['unlzma'] cmd2 = ['cpio', '-it', '--quiet'] chain0 = subprocess.Popen(cmd0, stdout=subprocess.PIPE) chain1 = subprocess.Popen(cmd1, stdin=chain0.stdout, stdout=subprocess.PIPE) chain2 = subprocess.Popen(cmd2, stdin=chain1.stdout, stdout=subprocess.PIPE, universal_newlines=True) out, err = chain2.communicate() if chain2.returncode is None: chain2.wait() if out: for line in out.split('\n'): if 'scripts/casper-bottom/99dell_bootstrap' in line: return '[native]' return '' logging.debug("query_bto_version: recovery %s" % recovery) self._reset_timeout() self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.query_bto_version') #mount the recovery partition version = '' date = '' if os.path.isfile(recovery) and recovery.endswith('.iso'): cmd = ['isoinfo', '-J', '-i', recovery, '-x', '/bto.xml'] out = fetch_output(cmd) if out: self.xml_obj.load_bto_xml(out) version = self.xml_obj.fetch_node_contents('iso') date = self.xml_obj.fetch_node_contents('date') else: cmd = ['isoinfo', '-J', '-i', recovery, '-x', '/bto_version'] out = fetch_output(cmd) if out: out = out.split('\n') if len(out) > 1: version = out[0] date = out[1] else: version = test_initrd(['isoinfo', '-J', '-i', recovery, '-x', '/casper/initrd.lz']) else: mntdir = self.request_mount(recovery, "r", sender, conn) if os.path.exists(os.path.join(mntdir, 'bto.xml')): self.xml_obj.load_bto_xml(os.path.join(mntdir, 'bto.xml')) version = self.xml_obj.fetch_node_contents('iso') date = self.xml_obj.fetch_node_contents('date') elif os.path.exists(os.path.join(mntdir, 'bto_version')): with open(os.path.join(mntdir, 'bto_version'), 'r') as rfd: version = rfd.readline().strip('\n') date = rfd.readline().strip('\n') #no /bto.xml or /bto_version found, check initrd for bootsrap files elif os.path.exists(os.path.join(mntdir, 'casper', 'initrd.lz')): version = test_initrd(['cat', os.path.join(mntdir, 'casper', 'initrd.lz')]) return (version, date) @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 's', out_signature = 's', sender_keyword = 'sender', connection_keyword = 'conn') def query_have_dell_recovery(self, recovery, sender=None, conn=None): '''Checks if the given image contains the dell-recovery package suite''' def run_isoinfo_command(cmd): """Returns the output of an isoinfo command""" invokation = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True) out, err = invokation.communicate() if invokation.returncode is None: invokation.wait() if err: logging.debug("error invoking isoinfo: %s", err) return out def check_mentions(feed): '''Checks if given file mentions dell-recovery''' for line in feed.split('\n'): if 'dell-recovery' in line: return line.split()[1] return '' logging.debug("query_have_dell_recovery: recovery %s" % recovery) found = '' #Recovery Partition is an ISO if os.path.isfile(recovery) and recovery.endswith('.iso'): #first find the interesting files cmd = ['isoinfo', '-J', '-i', recovery, '-f'] logging.debug("query_have_dell_recovery: Checking %s", recovery) interesting_files = [] for fname in run_isoinfo_command(cmd).split('\n'): if 'dell-recovery' in fname and (fname.endswith('.deb') or fname.endswith('.rpm')): logging.debug("query_have_dell_recovery: Found %s", fname) if '_' in fname: new = fname.split('_')[1] if new > found: found = new if not found: found = '1' elif fname.endswith('.manifest'): interesting_files.append(fname) logging.debug("query_have_dell_recovery: Appending %s to interesting_files", fname) if not found: for fname in interesting_files: cmd = ['isoinfo', '-J', '-i', recovery, '-x', fname] logging.debug("query_have_dell_recovery: Checking %s ", fname) version = check_mentions(run_isoinfo_command(cmd)) if version: logging.debug("query_have_dell_recovery: Found %s in %s", version, fname) if version > found: found = version #Recovery partition is mount point or directory else: #Search for a flat file first (or a manifest for later) logging.debug("query_have_dell_recovery: Searching mount point %s", recovery) interesting_files = [] for root, dirs, files in os.walk(recovery, topdown=False): for fname in files: if 'dell-recovery' in fname and (fname.endswith('.deb') or fname.endswith('.rpm')): logging.debug("query_have_dell_recovery: Found in %s", os.path.join(root, fname)) if '_' in fname: new = fname.split('_')[1] if new > found: found = new if not found: found = '1' elif fname.endswith('.manifest'): interesting_files.append(os.path.join(root, fname)) logging.debug("query_have_dell_recovery: Appending %s to interesting_files", os.path.join(root, fname)) if not found: for fname in interesting_files: logging.debug("query_have_dell_recovery: Checking %s ", fname) with open(fname, 'r') as rfd: output = rfd.read() version = check_mentions(output) if version: logging.debug("query_have_dell_recovery: Found %s in %s", version, fname) if version > found: found = version return found @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 's', out_signature = '', sender_keyword = 'sender', connection_keyword = 'conn') def validate_driver_package(self, package, sender=None, conn=None): """Validates a Dell driver package""" logging.debug ("Validating driver package %s" % package) valid = 1 description = [''] error_warning = '' if not os.path.exists(package) or not package.endswith('fish.tar.gz'): valid = -1 error_warning = 'Bad file name' if valid >= 0: rfd = tarfile.open(package) prepackage = False for name in rfd.getnames(): if name.endswith('prepackage.dell'): prepackage = rfd.getmember(name) break if not prepackage: valid = -1 error_warning = 'Missing or invalid XML descriptor (prepackage.dell)' if valid >= 0: tmpdir = tempfile.mkdtemp() atexit.register(walk_cleanup, tmpdir) rfd.extract(prepackage, tmpdir) rfd.close() self.xml_obj.load_bto_xml(os.path.join(tmpdir, 'prepackage.dell')) our_os = lsb_release.get_lsb_information()['RELEASE'] package_os = self.xml_obj.fetch_node_contents('os') if our_os != package_os: valid = 0 error_warning = "OS Version of package %s doesn't match local OS version %s" % (package_os, our_os) description = self.xml_obj.fetch_node_contents('driver') logging.debug("Validation complete: valid %s" % valid) self.report_package_info(valid, description, error_warning) @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 'ss', out_signature = '', sender_keyword = 'sender', connection_keyword = 'conn') def install_driver_package(self, package, recovery, sender=None, conn=None): """Prepares to tnstall a Dell driver package""" self._reset_timeout() self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.driverinstall') #extract package self.report_progress("Creating temporary directory.") self.package_dir = tempfile.mkdtemp() os.chmod(self.package_dir, 0o755) atexit.register(walk_cleanup, self.package_dir) self.report_progress("Extracting package.") safe_tar_extract(package, self.package_dir) #emulate fat32 partition automatically setting sh and py scripts executable for root, dirs, files in os.walk(self.package_dir, topdown=False): for name in files: if name.endswith('.sh') or name.endswith('.py'): os.chmod(os.path.join(root, name), 0o755) #mount RP (if possible) if recovery: self.report_progress("Mounting recovery partition.") mntdir = self.request_mount(recovery, "r") #build the pool with stuff from RP for directory in ['debs', 'pool']: if os.path.exists(os.path.join(mntdir, directory)): if not os.path.isdir(os.path.join(self.package_dir, 'debs')): os.mkdir(os.path.join(self.package_dir, 'debs')) os.symlink(os.path.join(mntdir, directory), \ os.path.join(self.package_dir, 'debs', 'rp_' + directory)) #produce apt source #if we have an apt source, this is taken over by signals now #if not, then we jump directly to the next step debs_dir = os.path.join(self.package_dir, 'debs') if os.path.exists(debs_dir): self.report_progress("Building APT Package listing.") build = subprocess.Popen(['apt-ftparchive', 'packages', '.'], stdout=subprocess.PIPE, cwd=debs_dir) output = build.communicate()[0] with open(os.path.join(debs_dir, 'Packages'), 'w') as wfd: wfd.write(output) source_list = os.path.join('/etc', 'apt', 'sources.list.d', os.path.basename(self.package_dir) + '.list') if os.path.exists(source_list): raise CreateFailed("File already exists") with open(source_list, 'w') as wfd: wfd.write("deb file:%s /\n" % debs_dir) atexit.register(walk_cleanup, source_list) self._update_cache(source_list) else: self._process_scripts('exit-success') @inline_callbacks def _install_debs(self): """Use AptDaemon to install all debs that would normally be installed""" logging.debug('enter _install_debs') apt_client = client.AptClient() to_install = mark_upgrades() + mark_unconditional_debs(self.package_dir) logging.debug("debs to install: %s" % to_install) tid = yield apt_client.install_packages(to_install) yield tid.set_allow_unauthenticated(True) yield tid.connect("finished", self._install_debs_finished) self.report_progress("Installing debian packages.", tid.tid) yield tid.run() logging.debug("leave _install_debs") @inline_callbacks def _update_cache(self, source_list): """Use AptDaemon to update the partial cache""" logging.debug("enter _update_cache") apt_client = client.AptClient() tid = yield apt_client.update_cache(source_list) yield tid.connect("finished", self._update_cache_finished) self.report_progress("Building APT cache.", tid.tid) yield tid.run() logging.debug("leave _update_cache") def _update_cache_finished(self, trans, exit_status): """Signal relay to notify frontend that the cache is ready to go""" logging.debug("Cache update completed. exit status: %s" % exit_status) #if not success, return now if exit_status != 'exit-success': self.report_package_installed(exit_status, '') #otherwise continue and try to install debs self._install_debs() def _install_debs_finished(self, trans, exit_status): """Signal relay for debs being finished installed (or none present)""" logging.debug("Deb install completed. exit status %s" % exit_status) #if not success, return now if exit_status != 'exit-success': self.report_package_installed(exit_status, '') #otherwise continue and try to process scripts try: self._process_scripts(exit_status) except RuntimeError as msg: self.report_package_installed('exit-failed', str(msg)) def _process_scripts(self, exit_status): """Process the scripts portion of a FISH package""" logging.debug("enter _process_scripts") scripts = [] self.report_progress("Processing post scripts.", '') for directory in (os.path.join(self.package_dir, 'scripts', 'chroot-scripts', 'fish'), '/usr/share/dell/scripts/non-negotiable'): if os.path.isdir(directory): for item in os.listdir(directory): scripts.append(os.path.join(directory, item)) environment = os.environ environment['DEBIAN_FRONTEND'] = 'noninteractive' environment['PATH'] = '/sbin:/usr/sbin:/bin:/usr/bin' num = float(1) total = len(scripts) for script in scripts: logging.debug('executing script: %s' % script) self.report_progress("executing %s" % script, num/total) #in case shell script is missing starting shebang (a few are) if script.endswith('.sh'): cmd = ['/bin/sh', script] else: cmd = [script] logging.debug(fetch_output(cmd, None, environment)) num+=1 logging.debug("leave _process_scripts") self.report_package_installed(exit_status, '') @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = '', out_signature = '', sender_keyword = 'sender', connection_keyword = 'conn') def enable_boot_to_restore(self, sender=None, conn=None): """Enables the default one-time boot option to be recovery""" self._reset_timeout() self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.restore') logging.debug("enable_boot_to_restore") self._prepare_reboot("99_dell_recovery") @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 'ss', out_signature = '', sender_keyword = 'sender', connection_keyword = 'conn') def enable_boot_to_utility(self, utility, executable, sender=None, conn=None): """Enables the default one-time boot option to be utility partition""" self._reset_timeout() self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.utility') #prep the content for UP mntdir = self.request_mount(utility, "rw") target = os.path.join(mntdir, os.path.basename(executable)) if os.path.exists(target): os.remove(target) shutil.copy(executable, target) old = False target = os.path.join(mntdir, 'autoexec.bat') if os.path.exists(target): shutil.move(target, os.path.join(mntdir, 'autoexec.old')) old = True with open (target, 'w') as wfd: wfd.write("DEL AUTOEXEC.BAT\r\n") if old: wfd.write("REN AUTOEXEC.OLD AUTOEXEC.BAT\r\n") wfd.write("%s\r\n" % os.path.basename(executable)) self._prepare_reboot("98_dell_bios") def _prepare_reboot(self, dest): """Helper function to reboot into an entry""" #find our one time boot entry if not os.path.exists("/etc/grub.d/%s" % dest): raise RestoreFailed("missing %s to parse" % dest) with open('/etc/grub.d/%s' % dest) as rfd: grub_file = rfd.readlines() entry = False for line in grub_file: if "menuentry" in line: split = line.split('"') if len(split) > 1: entry = split[1] break if not entry: raise RestoreFailed("Error parsing %s for bootentry." % dest) #set us up to boot saved entries with open('/etc/default/grub', 'r') as rfd: default_grub = rfd.readlines() with open('/etc/default/grub', 'w') as wfd: for line in default_grub: if line.startswith("GRUB_DEFAULT="): line = "GRUB_DEFAULT=saved\n" wfd.write(line) #Make sure the language is set properly with open('/etc/default/locale','r') as rfd: for line in rfd.readlines(): if line.startswith('LANG=') and len(line.split('=')) > 1: lang = line.split('=')[1].strip('\n').strip('"') env = os.environ env['LANG'] = lang ret = subprocess.call(['/usr/sbin/update-grub'], env=env) if ret is not 0: raise RestoreFailed("error updating grub configuration") ret = subprocess.call(['/usr/sbin/grub-reboot', entry]) if ret is not 0: raise RestoreFailed("error setting one time grub entry") @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 'ssss', out_signature = '', sender_keyword = 'sender', connection_keyword = 'conn') def create_ubuntu(self, utility, recovery, version, iso, sender=None, conn=None): """Creates Ubuntu compatible recovery media""" self._reset_timeout() self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.create') logging.debug("create_ubuntu: utility %s, recovery %s, version %s, iso %s" % (utility, recovery, version, iso)) #create temporary workspace tmpdir = tempfile.mkdtemp() atexit.register(walk_cleanup, tmpdir) #mount the recovery partition mntdir = self.request_mount(recovery, "r", sender, conn) #validate that ubuntu is on the partition if not os.path.exists(os.path.join(mntdir, '.disk', 'info')): logging.warning("create_ubuntu: recovery partition missing .disk/info.") if os.path.exists(os.path.join(mntdir, 'bootmgr')): raise CreateFailed("This tool can not create a recovery image from a Windows recovery partition.") raise CreateFailed("Recovery partition is missing critical ubuntu files.") #test for an updated dell recovery deb to put in try: self._test_for_new_dell_recovery(mntdir, tmpdir) except: raise CreateFailed("Error injecting updated Dell Recovery into image.") #check for a nested ISO image if os.path.exists(os.path.join(mntdir, 'ubuntu.iso')): pattern = re.compile('^ubuntu.iso|^.disk') w_size = black_tree("size", pattern, mntdir) self.start_sizable_progress_thread(_('Preparing nested image'), tmpdir, w_size) black_tree("copy", pattern, mntdir, tmpdir) self.stop_progress_thread() mntdir = self.request_mount(os.path.join(mntdir, 'ubuntu.iso'), "r", sender, conn) #Generate BTO XML File self.xml_obj.replace_node_contents('date', str(datetime.date.today())) self.xml_obj.replace_node_contents('iso', version) self.xml_obj.replace_node_contents('generator', check_version()) self.xml_obj.write_xml(os.path.join(tmpdir, 'bto.xml')) #If necessary, include the utility partition if utility and os.path.exists(utility) and \ not os.path.exists(os.path.join(mntdir, 'upimg.gz')): #device node if stat.S_ISBLK(os.stat(utility).st_mode): self.start_pulsable_progress_thread( _('Building Dell Utility Partition')) seg1 = subprocess.Popen(['dd', 'if=' + utility, 'bs=1M'], stdout=subprocess.PIPE) seg2 = subprocess.Popen(['gzip', '-c'], stdin=seg1.stdout, stdout=subprocess.PIPE) partition_file = open(os.path.join(tmpdir, 'upimg.gz'), "wb") partition_file.write(seg2.communicate()[0]) partition_file.close() self.stop_progress_thread() #tgz type elif tarfile.is_tarfile(utility): try: shutil.copy(utility, os.path.join(tmpdir, 'up.tgz')) except Exception as msg: logging.warning(" create_ubuntu: Error with tgz: %s." % str(msg)) raise CreateFailed("Error building Utility Partition : %s" % str(msg)) #probably a zip else: try: zip_obj = zipfile.ZipFile(utility) shutil.copy(utility, os.path.join(tmpdir, 'up.zip')) except Exception as msg: logging.warning(" create_ubuntu: Error with zipfile: %s." % str(msg)) raise CreateFailed("Error building Utility Partition : %s" % str(msg)) #Arg list genisoargs = ['genisoimage', '-o', iso, '-input-charset', 'utf-8', '-no-emul-boot', '-boot-load-size', '4', '-boot-info-table', '-pad', '-r', '-J', '-joliet-long', '-N', '-hide-joliet-trans-tbl', '-cache-inodes', '-l', '-publisher', 'Dell Inc.', '-V', 'Dell Ubuntu Reinstallation Media', '-m', '*.exe', '-m', '*.sys', '-m', 'syslinux', '-m', 'syslinux.cfg', '-m', os.path.join(mntdir, 'bto.xml'), '-m', os.path.join(mntdir, 'isolinux'), '-m', os.path.join(mntdir, 'bto_version')] #if no bootstrap in RP, we'll put it in the initrd bootstrap_initrd = not os.path.exists(os.path.join(mntdir, 'scripts', 'bootstrap.sh')) #Renerate UUID os.mkdir(os.path.join(tmpdir, '.disk')) os.mkdir(os.path.join(tmpdir, 'casper')) self.start_pulsable_progress_thread(_('Regenerating UUID / Rebuilding initramfs')) (old_initrd, old_uuid) = create_new_uuid(os.path.join(mntdir, 'casper'), os.path.join(mntdir, '.disk'), os.path.join(tmpdir, 'casper'), os.path.join(tmpdir, '.disk'), new_compression="auto", include_bootstrap=bootstrap_initrd) self.stop_progress_thread() genisoargs.append('-m') genisoargs.append(os.path.join('.disk', old_uuid)) genisoargs.append('-m') genisoargs.append(os.path.join('casper', old_initrd)) #if we're grub based, generate a grub image grub_root = os.path.join(mntdir,'boot', 'grub', 'i386-pc') if os.path.exists(grub_root): os.makedirs(os.path.join(tmpdir, 'boot', 'grub')) if os.path.exists(os.path.join(mntdir, 'boot', 'grub', 'eltorito.img')): genisoargs.append('-m') genisoargs.append(os.path.join(mntdir, 'boot', 'grub', 'eltorito.img')) shutil.copy(os.path.join(mntdir, 'boot', 'grub', 'eltorito.img'), os.path.join(tmpdir, 'boot', 'grub', 'eltorito.img')) else: if not os.path.exists(os.path.join(grub_root, 'core.img')): raise CreateFailed("The target requested GRUB support, but core.img is missing.") if not os.path.exists(os.path.join(grub_root, 'cdboot.img')): raise CreateFailed("The target requested GRUB support, but cdboot.img is missing.") self.start_pulsable_progress_thread(_('Building GRUB core image')) with open(os.path.join(tmpdir, 'boot', 'grub', 'eltorito.img'), 'wb') as wfd: for fname in ('cdboot.img', 'core.img'): with open(os.path.join(grub_root, fname), 'rb') as rfd: wfd.write(rfd.read()) self.stop_progress_thread() genisoargs.append('-m') genisoargs.append(os.path.join(mntdir,'boot/boot.catalog')) genisoargs.append('-b') genisoargs.append('boot/grub/eltorito.img') genisoargs.append('-c') genisoargs.append('boot/boot.catalog') #isolinux based else: genisoargs.append('-b') genisoargs.append('isolinux/isolinux.bin') genisoargs.append('-c') genisoargs.append('isolinux/boot.catalog') #if we have ran this from a USB key, we might have syslinux which will #break our build if os.path.exists(os.path.join(mntdir, 'syslinux')): shutil.copytree(os.path.join(mntdir, 'syslinux'), os.path.join(tmpdir, 'isolinux')) if os.path.exists(os.path.join(tmpdir, 'isolinux', 'syslinux.cfg')): shutil.move(os.path.join(tmpdir, 'isolinux', 'syslinux.cfg'), os.path.join(tmpdir, 'isolinux', 'isolinux.cfg')) else: #Copy boot section for ISO to somewhere writable shutil.copytree(os.path.join(mntdir, 'isolinux'), os.path.join(tmpdir, 'isolinux')) #if we have any any ISO/USB bootable bootloader on the image, copy in a theme grub_theme = False for topdir in [mntdir, tmpdir]: for bottomdir in ['i386-pc', 'x86_64-efi']: if os.path.exists(os.path.join(topdir, 'boot', 'grub', bottomdir)): grub_theme = True if grub_theme: if not os.path.exists(os.path.join(tmpdir, 'boot', 'grub')): os.makedirs(os.path.join(tmpdir, 'boot', 'grub')) #conffiles shutil.copy('/usr/share/dell/grub/theme/grub.cfg', os.path.join(tmpdir, 'boot', 'grub', 'grub.cfg')) genisoargs.append('-m') genisoargs.append(os.path.join(mntdir,'boot/grub/grub.cfg')) for bottomdir in ['i386-pc', 'x86_64-efi']: directory = os.path.join(mntdir, 'boot', 'grub', bottomdir) if os.path.exists(directory): if not os.path.exists(os.path.join(tmpdir, 'boot', 'grub', bottomdir)): os.makedirs(os.path.join(tmpdir, 'boot', 'grub', bottomdir)) shutil.copy('/usr/share/dell/grub/theme/%s/grub.cfg' % bottomdir, os.path.join(tmpdir, 'boot', 'grub', bottomdir, 'grub.cfg')) genisoargs.append('-m') genisoargs.append(os.path.join(mntdir,'boot/grub/%s/grub.cfg' % bottomdir)) #theme if not os.path.exists(os.path.join(mntdir, 'boot', 'grub', 'dell')): shutil.copytree('/usr/share/dell/grub/theme/dell', os.path.join(tmpdir, 'boot', 'grub', 'dell')) #fonts if not os.path.exists(os.path.join(mntdir, 'boot', 'grub', 'dejavu-sans-12.pf2')): ret = subprocess.call(['grub-mkfont', '/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf', '-s=12', '--output=%s' % os.path.join(tmpdir, 'boot', 'grub', 'dejavu-sans-12.pf2')]) if ret is not 0: raise CreateFailed("Creating GRUB fonts failed.") if not os.path.exists(os.path.join(mntdir, 'boot', 'grub', 'dejavu-sans-bold-14.pf2')): ret = subprocess.call(['grub-mkfont', '/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf', '-s=14', '--output=%s' % os.path.join(tmpdir, 'boot', 'grub', 'dejavu-sans-bold-14.pf2')]) if ret is not 0: raise CreateFailed("Creating GRUB fonts failed.") #if we previously backed up a grub.cfg or common.cfg for path in ['factory/grub.cfg', 'factory/common.cfg']: if os.path.exists(os.path.join(mntdir, path + '.old')): genisoargs.append('-m') genisoargs.append(os.path.join(mntdir, path) + '*') if not os.path.exists(os.path.join(tmpdir, 'factory')): os.makedirs(os.path.join(tmpdir, 'factory')) shutil.copy(os.path.join(mntdir, path + '.old'), os.path.join(tmpdir, path)) #Make the image EFI compatible if necessary if os.path.exists(os.path.join(mntdir, 'boot', 'grub', 'efi.img')): efi_genisoimage = subprocess.Popen(['genisoimage','-help'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) results = efi_genisoimage.communicate()[1] if 'efi' in results: genisoargs.append('-eltorito-alt-boot') genisoargs.append('-efi-boot') genisoargs.append('boot/grub/efi.img') genisoargs.append('-no-emul-boot') else: import apt.cache cache = apt.cache.Cache() version = cache['genisoimage'].installed.version del cache raise CreateFailed("The target image requested EFI support, but genisoimage %s doesn't support EFI. \ You will need to create this image on a system with a newer genisoimage." % version) #Directories to install genisoargs.append(tmpdir + '/') genisoargs.append(mntdir + '/') #ISO Creation seg1 = subprocess.Popen(genisoargs, stderr=subprocess.PIPE, universal_newlines=True) pipe = seg1.stderr fcntl.fcntl( pipe.fileno(), fcntl.F_SETFL, fcntl.fcntl(pipe.fileno(), fcntl.F_GETFL) | os.O_NONBLOCK) retval = seg1.poll() logging.debug(" create_ubuntu: genisoimage debug") while (retval is None): readx = select.select([pipe.fileno()], [], [])[0] if readx: output = pipe.read() if output.strip(): logging.debug(output.strip()) progress = output.split()[0] if (progress[-1:] == '%'): self.report_progress(_('Building ISO'), progress[:-1]) retval = seg1.poll() if retval is not 0: logging.error(" create_ubuntu: genisoimage exited with a nonstandard return value.") logging.error(" genisoargs: %s" % genisoargs) logging.error(" stderror: %s" % pipe.readlines()) logging.error(" error: %s" % output.strip()) raise CreateFailed("ISO Building exited unexpectedly:\n%s" % output.strip()) @dbus.service.signal(DBUS_INTERFACE_NAME) def report_iso_info(self, version, distributor, release, arch, output_text): '''Report ISO information to UI. ''' return True @dbus.service.signal(DBUS_INTERFACE_NAME) def report_progress(self, this, that=''): '''Report progress of something to UI. ''' return True @dbus.service.signal(DBUS_INTERFACE_NAME) def report_package_info(self, valid, description, error_warning): '''Reports package into to U/I''' return True @dbus.service.signal(DBUS_INTERFACE_NAME) def report_package_installed(self, exit_status, msg): '''Reports that a package is installed to the U/I''' return True dell-recovery/build/lib/Dell/recovery_threading.py0000644000000000000000000001014611756540176017520 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «recovery_threading» - Threading classes for use to report progress # # Copyright (C) 2009-2010, Dell Inc. # (C) 2008 Canonical Ltd. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## from threading import Thread, Event import logging import os import sys if sys.version >= '3': def callable(obj): import collections return isinstance(obj, collections.Callable) #--------------------------------------------------------------------# #Borrowed from USB-Creator initially class ProgressBySize(Thread): """Used for emitting progress for subcalls that don't nicely use stdout'""" def __init__(self, input_str, device, to_write): Thread.__init__(self) self._stopevent = Event() self.str = input_str self.device = device self.scale = 100 self.start_value = 0 self.reset_write(to_write) def reset_write(self, to_write): """Resets the amount to be written counter""" self.to_write = to_write statvfs = os.statvfs(self.device) self.start_free = statvfs.f_bsize * statvfs.f_bavail def set_scale_factor(self, factor): """"Sets a floating point scaling factor (0-100)""" if factor > 100 or factor < 0: self.scale = 100 else: self.scale = factor def set_starting_value(self, value): """Sets the initial value for the progress bar (0-100)""" if value > 100 or value < 0: self.start_value = 0 else: self.start_value = value def progress(self, input_str, percent): """Function intended to be overridden to the correct external function """ pass def run(self): """Runs the thread""" try: while not self._stopevent.isSet(): statvfs = os.statvfs(self.device) free = statvfs.f_bsize * statvfs.f_bavail written = self.start_free - free veecent = self.start_value + int((written / float(self.to_write)) * self.scale) if callable(self.progress): self.progress(self.str, veecent) self._stopevent.wait(2) except Exception: logging.exception('Could not update progress:') def join(self, timeout=None): """Stops the thread""" self._stopevent.set() Thread.join(self, timeout) class ProgressByPulse(Thread): """Used for emitting the thought of progress for subcalls that don't show anything'""" def __init__(self, input_str): Thread.__init__(self) self._stopevent = Event() self.str = input_str def progress(self, input_str, percent): """Function intended to be overridden to the correct external function """ pass def run(self): """Runs the thread""" try: while not self._stopevent.isSet(): if callable(self.progress): self.progress(self.str, "-1") self._stopevent.wait(.5) except Exception: logging.exception('Could not update progress:') def join(self, timeout=None): """Stops the thread""" self._stopevent.set() Thread.join(self, timeout) #--------------------------------------------------------------------# dell-recovery/build/lib/Dell/driver_gtk.py0000644000000000000000000002356312311717746016001 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «driver_gtk» - Dell Driver Installer # # Copyright (C) 2012, Dell Inc. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################ import os import dbus import logging #APT support from aptdaemon.client import get_transaction from aptdaemon.gtk3widgets import AptProgressBar, AptStatusLabel from aptdaemon.enums import EXIT_SUCCESS #GUI from gi.repository import Gtk from Dell.recovery_gtk import DellRecoveryToolGTK, translate_widgets from Dell.recovery_common import (UIDIR, dbus_sync_call_signal_wrapper) from gettext import gettext as _ class DriverGTK(DellRecoveryToolGTK): def __init__(self, recovery, utility, fname, mode): #Run the normal init first #This sets up lots of common variables as well as translation domain DellRecoveryToolGTK.__init__(self, recovery, utility, mode) #init the UI and translate widgets/connect signals self.widgets = Gtk.Builder() self.widgets.add_from_file(os.path.join(UIDIR, 'driver_install.ui')) self._dbus_iface = None Gtk.Window.set_default_icon_from_file('/usr/share/pixmaps/dell-dvd.svg') translate_widgets(self.widgets) self.widgets.connect_signals(self) self.file_dialog = Gtk.FileChooserDialog("Choose Driver Package", None, Gtk.FileChooserAction.OPEN, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) self.file_dialog.set_default_response(Gtk.ResponseType.OK) file_filter = Gtk.FileFilter() file_filter.add_pattern("*.fish.tar.gz") self.file_dialog.set_filter(file_filter) self.fname = fname self.status_bar = self.widgets.get_object('driver_statusbar') self.current_context = 0 self.status_bar.push(self.current_context, "Ready") self.spinner = Gtk.Spinner() self.widgets.get_object('driver_spinner_box').add(self.spinner) self.progress_bar = AptProgressBar() self.widgets.get_object('progress_bar_box').add(self.progress_bar) self.status_label = AptStatusLabel() self.widgets.get_object('apt_status_box').add(self.status_label) def toggle_spinner(self, message=None): self.widgets.get_object('driver_page').set_sensitive(message is None) if message: self.current_context += 1 self.spinner.show() self.spinner.start() self.status_bar.push(self.current_context, message) else: self.spinner.stop() self.spinner.hide() self.status_bar.pop(self.current_context) self.current_context -= 1 def run(self): '''overrides the regular run method if we have a file sent''' if self.fname: self.widgets.get_object('browse_vbox').hide() self.widgets.get_object('driver_window').show() self.validate_package() Gtk.main() else: DellRecoveryToolGTK.run(self) def install_driver(self, widget): '''Installs a driver package. Activated when install is pressed''' transient_for = self.widgets.get_object('driver_window') args = (self.fname, self.rp) try: status = _("Preparing to install package...") logging.debug(status) self.toggle_spinner(status) dbus_sync_call_signal_wrapper(self.backend(), 'install_driver_package', {"report_package_installed": self.package_installed, "report_progress" : self.update_labels}, *args) except dbus.DBusException as msg: logging.error(msg) self.dbus_exception_handler(msg, transient_for) self.toggle_spinner() return def package_installed(self, exit_status, msg): transient_for = self.widgets.get_object('driver_window') if exit_status != EXIT_SUCCESS: if not msg: msg = _("Package installation failed") logging.error(msg) self.show_alert(Gtk.MessageType.ERROR, _("Package Install Failed"), msg , transient_for) self.toggle_spinner() return #backend: close backend # this handles clearing the apt cache # (as soon as temporary file is gone it's fixed) self.cleanup_backend() self.widgets.get_object('label_restart_required').set_text(\ _("The computer needs to restart to " "finish installing this package. Please " "save your work before continuing.")) self.toggle_spinner() self.widgets.get_object('driver_page').set_sensitive(False) self.widgets.get_object('frame_restart_required').show() self.progress_bar.hide() self.status_bar.hide() self.status_label.hide() def _request_reboot_via_session_manager(self): try: bus = dbus.SessionBus() proxy_obj = bus.get_object("org.gnome.SessionManager", "/org/gnome/SessionManager") iface = dbus.Interface(proxy_obj, "org.gnome.SessionManager") iface.RequestReboot() except dbus.DBusException: self._request_reboot_via_logind() except: pass def _request_reboot_via_logind(self): try: bus = dbus.SystemBus() proxy_obj = bus.get_object("org.freedesktop.login1", "/org/freedesktop/login1") iface = dbus.Interface(proxy_obj, "org.freedesktop.login1.Manager") iface.Reboot(False) except dbus.DBusException: pass def restart_clicked(self, widget, data=None): self._request_reboot_via_session_manager() def cancel_clicked(self, widget, data=None): '''cancel button clicked''' self.destroy() def validate_package(self): logging.debug("Validating package %s" % self.fname) self.toggle_spinner("Validating package...") try: dbus_sync_call_signal_wrapper(self.backend(), 'validate_driver_package', {'report_package_info': self.update_driver_gui}, self.fname) except dbus.DBusException as msg: transient_for = self.widgets.get_object('driver_window') logging.error(msg) self.dbus_exception_handler(msg, transient_for) def browse_clicked(self, widget): '''browse button clicked''' response = self.file_dialog.run() self.file_dialog.hide() if response == Gtk.ResponseType.OK: self.fname=self.file_dialog.get_filename() self.validate_package() def update_driver_gui(self, valid, description, error_warning): """backend trying to update frontend""" text = "File: %s \n" % self.fname textbuffer = self.widgets.get_object('driver_textview').get_buffer() if valid < 0: self.widgets.get_object('driver_install_button').set_sensitive(False) text += "Error: %s \n" % error_warning self.widgets.get_object('browse_vbox').show() else: self.widgets.get_object('driver_install_button').set_sensitive(True) if valid == 0: text+= 'Warning: %s \n' % error_warning #show warning if type(description) == dbus.Array: for obj in description: text += '%s \n' % obj else: text += '%s \n' % description logging.debug("setting textview: %s" % text) textbuffer.set_text(text) self.toggle_spinner() def update_labels(self, label, tid=''): """updates the transaction or progress label from backend""" if label: logging.debug(label) self.status_bar.pop(self.current_context) self.status_bar.push(self.current_context, label) self.status_label.hide() if tid: if type(tid) == dbus.UTF8String: logging.debug("APT transaction %s" % tid) trans = get_transaction(tid) self.progress_bar.show() self.status_label.show() self.progress_bar.set_transaction(trans) self.status_label.set_transaction(trans) else: num = float(tid) self.progress_bar.set_fraction(num) def top_button_clicked(self, widget): """Overridden method to make us install drivers""" if DellRecoveryToolGTK.top_button_clicked(self, widget): #show our page self.widgets.get_object('driver_window').show() #hide their page self.tool_widgets.get_object('tool_selector').hide() dell-recovery/dell-driver-installer0000664000000000000000000000415212311717746014664 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # Dell Driver Installer # # Copyright (C) 2012 Dell Inc, # Author: Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## from Dell.recovery_common import find_partitions import subprocess from Dell.driver_gtk import DriverGTK import argparse import logging def setup_logging(debug=False, logfile=None): '''Setup logging.''' logging.raiseExceptions = False if debug: logging.basicConfig(level=logging.DEBUG, filename=logfile, format='%(asctime)s %(levelname)s: %(message)s') else: logging.basicConfig(level=logging.WARNING, filename=logfile, format='%(levelname)s: %(message)s') parser = argparse.ArgumentParser() parser.add_argument('fname', nargs='?', default='') parser.add_argument ('--debug', action='store_true', dest='debug', default=False, help='Enable debugging messages.') parser.add_argument ('--logfile', metavar='FILE', dest='logfile', default=None, help='Write logging messages to a file instead to stderr.') parser_args = parser.parse_args() setup_logging(parser_args.debug, parser_args.logfile) if __name__ == '__main__': import dbus.mainloop.glib dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) utility, recovery = find_partitions() args = (recovery, utility, parser_args.fname, 'driver') tool = DriverGTK(*args) tool.run() dell-recovery/dell-recovery0000775000000000000000000001152412311717746013240 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # Dell Recovery # # Copyright (C) 2010 Dell Inc, # Author: Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## from Dell.recovery_common import find_partitions, check_version, find_burners import optparse import os import subprocess target = os.path.expanduser("~/Downloads") try: p = subprocess.Popen(["xdg-user-dir","DOWNLOAD"], stdout=subprocess.PIPE, universal_newlines=True) downloadpath = p.communicate()[0].strip() if p.returncode == 0 and downloadpath: target = downloadpath except OSError: pass usage = '%prog [options]' parser = optparse.OptionParser(usage=usage) parser.set_defaults( version='', media="dvd", builder=False, target=target, overwrite=False, xrev=False, branch=False, burn=False ) parser.add_option('-c', '--check-version', dest='checkversion', action='store_true', help='Show the version information.') parser.add_option('-v', '--override-version', dest='version', help='Override the automatic version number generation of this ISO.') parser.add_option('-m', '--media', dest='media', help='Set type of recovery media to create [dvd, usb, iso].') parser.add_option('-t', '--target', dest='target', help='Set target directory to store ISO in when completed.') parser.add_option('-o', '--overwrite', dest='overwrite', action='store_true', help='Force overwrite of any existing file') parser.add_option('--builder', dest='builder', action='store_true', help='Enable OEM Builder mode for assembling an image from multiple sources.') parser.add_option('--show-development-tags', dest='xrev', action='store_true', help='Show development git tags when operating in builder mode. By default, these are hidden if stable tags are present.') parser.add_option('--override-branch-mode', dest='branch', action='store_true', help='Show branches instead of tags in builder mode. This is most useful when the tip of the branch is known stable.') parser.add_option('--burn', dest='burn', action='store_true', help="Run in burn/nag mode. Causes a burner to be invoked if media is set and an ISO exists.") (options, args) = parser.parse_args() if __name__ == '__main__': if options.checkversion: print("Version: %s" % check_version()) else: import dbus.mainloop.glib dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) utility, recovery = find_partitions() #If we don't find an RP, assume builder mode. if not options.burn and not recovery and not options.builder: options.builder = True args = (utility, recovery, options.version, options.media, options.target, options.overwrite) if options.burn: command = '' iso = '' (dvd, usb) = find_burners() for item in os.listdir(target): if item.endswith('.iso'): iso = item break if options.media == 'dvd' and dvd and iso: command = dvd + [iso] elif options.media == 'usb' and usb and iso: command = usb + [iso] else: print("Error with burn mode. Please invoke in standard mode.") if command: subprocess.call(command) #don't ever autostart again if os.path.exists(os.path.expanduser("~/.config/autostart/dell-recovery.desktop")): os.remove(os.path.expanduser("~/.config/autostart/dell-recovery.desktop")) else: if options.builder: from Dell.recovery_advanced_gtk import AdvancedGeneratorGTK args += (options.xrev, options.branch) tool = AdvancedGeneratorGTK(*args) else: from Dell.recovery_basic_gtk import BasicGeneratorGTK tool = BasicGeneratorGTK(*args) tool.run() dell-recovery/bto-autobuilder/0000775000000000000000000000000011756544071013635 5ustar dell-recovery/bto-autobuilder/dell-bto-autobuilder0000775000000000000000000002576311756544071017617 0ustar #!/usr/bin/env python3 # vim: set filetype=python : ''' BTO Automatic Builder Author: peter.petrakis@canonical.com Date: 29/07/10 License: GPLv2 Description: Create a BTO image non-interactively Coding Style: * No line shall ever be greater than 80 chars, use line continuations where necessary to achieve this. * Generally styled after Linux kernel C coding standards ''' import os, sys, subprocess, optparse, re, tempfile from Dell.recovery_common import DBUS_BUS_NAME, DBUS_INTERFACE_NAME, \ check_version, \ dbus_sync_call_signal_wrapper import dbus.mainloop.glib from datetime import datetime try: import progressbar except ImportError: print('Error: python-progressbar is not installed', file=sys.stderr) sys.exit(1) class FidTag: ''' Convenience class that cleans up how the Dell FID repo is version and offers some sorting and presentation capabilities ''' def __init__(self, tag): self.tag = tag # data format: 10.04_A01 if hasattr(tag, 'name'): tag = tag.name self.lsb_release, self.revision = tag.split('_') self.year, self.month = self.lsb_release.split('.') # so much for duck typing, have to cast here or the comparisons # just won't work like you'd expect, there isn't even a toi # method :( self.year = int(self.year) self.month = int(self.month) self.revision_class = self.revision[0] self.minor_revision = int(self.revision[1:]) def is_arev(self): '''Stable (A-rev) development tag''' return self.revision_class == 'A' def is_xrev(self): '''Unstable (X-rev) development tag''' return self.revision_class == 'X' def __lt__(self, other): if self.year < other.year and self.month == other.month: return True elif self.year == other.year and self.month < other.month: return True elif self.year == other.year and self.month == other.month: if self.revision_class == other.revision_class: return self.minor_revision < other.minor_revision else: if self.is_xrev(): return True else: return False else: return False def __eq__(self, other): if self.lsb_release == other.lsb_release and \ self.revision == other.revision: return True else: return False def __str__(self): return self.tag.name # End FidTag class class Install: ''' Update class to satisfy status update requirements which are normally handled by a gui. Leverages the progressbar module and is tailored to the recovery tools D-Bus callback update api.''' def __init__(self): self.old_state = 'starting progress tracking' self.state = None self.progress = progressbar.ProgressBar() self.progress.start() def update_percent(self, state, num): self._print_once(state) if num < 100: self.progress.update(num) else: self.progress.finish() def update_plain(self, state): self._print_once(state) def _print_once(self, state): self.old_state = self.state self.state = state if self.old_state != self.state: print('Stage: %s' % self.state) # instead of defining a callback function to pass # to the dell bto builder, we make the class itself # callable and just pass the instance def __call__(self, state, num): num = float(num) if num < 0: self.update_plain(state) else: self.update_percent(state, num) # end Install class def parse_argv(): '''Set up argument parsing''' usage = '%prog -b BASE_ISO -d DRIVERS_FILE [options]' parser = optparse.OptionParser(usage=usage, \ version=('Version: %s' % check_version())) parser.add_option('-d', '--drivers', type='string', metavar='FILE', dest='drivers', default=None, help=('list of FISH driver packages, newline delimited')) parser.add_option('-b', '--base-iso', type='string', dest='base', default=None, help=('ISO image baseline for overlay')) parser.add_option('-t', '--tag', type='string', dest='tag', default='', help=('Override BTO version tag used')) parser.add_option('--target-name-prefix', type='string', dest='bto_name_prefix', default=None, help=('Specify output ISO name prefix only')) parser.add_option('--target-name', type='string', dest='bto_name', default=None, help=('Specify output ISO name')) parser.add_option('--target-dir', type='string', dest='bto_dir', default='/tmp', help=('Output directory for iso images: default /tmp')) parser.add_option('--dell-recovery', type='string', dest='dell_deb', default=None, help=('Use specific dell recovery package')) opts, args = parser.parse_args() if opts.drivers == None or opts.base == None: parser.print_help() sys.exit(1) if opts.bto_name != None and opts.bto_name_prefix != None: print('Use one bto naming style', file=sys.stderr) sys.exit(1) return opts, args def setup_dbus(): '''Prepare the dbus connection to the backend''' bus = dbus.SystemBus() proxy = bus.get_object(DBUS_BUS_NAME, '/RecoveryMedia') iface = dbus.Interface(proxy, DBUS_INTERFACE_NAME) return (bus, iface, proxy) def config_dell_recovery_package(callback, base, dell_deb): ''' required logic for the dell installer to locate the correct dell recovery deb and then incorporate this into the BTO iso.''' if callback(base) and dell_deb == None: print('Using ISO included dell-recovery package') return '' if dell_deb != None: print('Incorporate specific dell-recovery package') import apt_inst import apt_pkg control = apt_inst.DebFile(dell_deb).control.extractdata("control") sections = apt_pkg.TagSection(control) if sections["Package"] != 'dell-recovery': print('Provided dell recovery, %s is invalid' % os.path.basename(dell_deb)) return '' else: print('Using provided dell recovery:%s' % os.path.basename(dell_deb)) return os.path.realpath(dell_deb) if __name__ == '__main__': options, params = parse_argv() drivers = [] try: with open(os.path.realpath(options.drivers), 'r') as f: for line in f.readlines(): line = line.strip() # remove leading and trailing spaces line = line.rstrip('\n') # trim newline if line == '' or re.match('^\s*#.*', line): continue # accomodate simple comments drivers.append(line) except Exception as err: print('There was an error parsing the drivers driver file, aborting', file=sys.stderr) print(err, file=sys.stderr) sys.exit(1) try: dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) (bus, iface, proxy) = setup_dbus() base = os.path.realpath(options.base) (bto_version, distributer, release, arch, output) = iface.query_iso_information(base) if options.tag: current_tag = FidTag(release + '_' + options.tag) elif bto_version == '[native]': current_tag = FidTag(release + '_A00') elif bto_version: current_tag = FidTag(release + '_' + bto_version) else: current_tag = FidTag(release + '_X00') dell_recovery_pkg = config_dell_recovery_package( iface.query_have_dell_recovery, base, options.dell_deb) bto_name = 'ubuntu-%s-%s-dell_%s.iso' % (current_tag.lsb_release, arch, current_tag.revision) if options.bto_name_prefix != None: bto_name = options.bto_name_prefix + '-' + bto_name if options.bto_name != None: # there is no versioning applied here. I'm assuming that if # you're concerned enough to change the iso name that you're # probably also providing your own tag name. In which case # you should version the iso yourself. bto_name = options.bto_name if not bto_name.endswith('.iso'): bto_name += '.iso' #try to open the file as a user first so when it's overwritten, it #will be with the correct permissions try: if not os.path.isdir(options.bto_dir): os.makedirs(options.bto_dir) with open(os.path.join(options.bto_dir, bto_name), 'w') as wfd: pass except IOError: #this might have been somwehere that the system doesn't want us #writing files as a user, oh well, we tried pass print('BTO ISO: %s' % os.path.join(options.bto_dir, bto_name)) print('List of drivers to be mixed into %s' % bto_name) for fishie in drivers: print(fishie) # so what's happening here is two dbus functions are being called, # create_ubuntu on behalf of assemble_image. The former handles the # actual iso building process, while the later incorporates most # of the cli args to produce the custom BTO # dbus_sync_call_signal_wrapper(iface, # D-Bus handle 'assemble_image', # Explicit function call {'report_progress':Install()}, # handles D-Bus progress updates base, # baseline iso drivers, # driver FISH packages '', # application FISH packages dell_recovery_pkg, # specify pkg source 'create_ubuntu', # called by 'assemble_image' '', # create_ubuntu args... current_tag.revision, os.path.join(options.bto_dir, bto_name)) print('Build complete: %s' % os.path.join(options.bto_dir, bto_name)) except dbus.DBusException as err: if hasattr(err, '_dbus_error_name') and err._dbus_error_name == \ 'org.freedesktop.DBus.Error.ServiceUnknown': pass else: print('Received %s when closing recovery-media-backend '\ 'DBus service' % str(err)) except Exception as err: print(err, file=sys.stderr) sys.exit(1) finally: iface.request_exit() # will call atexit in dell backend dell-recovery/Dell/0000775000000000000000000000000012312225642011401 5ustar dell-recovery/Dell/recovery_gtk.py0000664000000000000000000002744412311717746014503 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «recovery_gtk» - Dell Recovery GTK Frontend # # Copyright (C) 2010, Dell Inc. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################ import os import subprocess import dbus import sys from gi.repository import Gtk,GLib from Dell.recovery_common import (DOMAIN, LOCALEDIR, UIDIR, SVGDIR, DBUS_INTERFACE_NAME, DBUS_BUS_NAME, dbus_sync_call_signal_wrapper, PermissionDeniedByPolicy, check_version) #Translation support from gettext import gettext as _ from gettext import bindtextdomain, textdomain class DellRecoveryToolGTK: """GTK implementation of the Dell Recovery suite for Linux""" def __init__(self, recovery, utility, mode='recovery'): def action_objects(widgets, objects, action): for item in ['button', 'image', 'label']: if action == 'hide': widgets.get_object(objects + '_' + item).hide() else: widgets.get_object(objects + '_' + item).show_all() #setup locales bindtextdomain(DOMAIN, LOCALEDIR) textdomain(DOMAIN) self.tool_widgets = Gtk.Builder() self.tool_widgets.add_from_file(os.path.join(UIDIR, 'tool_selector.ui')) Gtk.Window.set_default_icon_from_file(os.path.join(SVGDIR, 'dell-dvd.svg')) translate_widgets(self.tool_widgets) self.tool_widgets.connect_signals(self) #if running in driver install mode, hide other stuff if mode == 'driver': for item in ['flash_bios', 'restore_system', 'build_os_media']: action_objects(self.tool_widgets, item, 'hide') action_objects(self.tool_widgets, 'install_drivers', 'show') else: #hide restore from HDD unless there is a recovery partition if not (recovery and os.path.exists('/etc/grub.d/99_dell_recovery')): action_objects(self.tool_widgets, 'restore_system', 'hide') #hide bios flash if not UEFI or no UP if os.path.exists('/sys/firmware/efi') or \ not (utility and os.path.exists('/etc/grub.d/98_dell_bios')): action_objects(self.tool_widgets, "flash_bios", "hide") #about dialog self.about_box = None #variables self.rp = recovery self.up = utility self._dbus_iface = None #### Polkit enhanced ### def backend(self): '''Return D-BUS backend client interface. This gets initialized lazily. ''' if self._dbus_iface is None: try: bus = dbus.SystemBus() self._dbus_iface = dbus.Interface(bus.get_object(DBUS_BUS_NAME, '/RecoveryMedia'), DBUS_INTERFACE_NAME) except dbus.DBusException as msg: self.dbus_exception_handler(msg) sys.exit(1) except Exception as msg: self.show_alert(Gtk.MessageType.ERROR, "Exception", str(msg), transient_for=self.tool_widgets.get_object('tool_selector')) return self._dbus_iface def dbus_exception_handler(self, msg, transient_for=None, fallback=None): """Common handler used for dbus type exceptions""" if msg.get_dbus_name() == 'org.freedesktop.DBus.Error.FileNotFound': text = _("Cannot connect to dbus") if msg.get_dbus_name() == PermissionDeniedByPolicy._dbus_error_name: text = _("Permission Denied") else: text = msg.get_dbus_message() if not transient_for: transient_for = self.tool_widgets.get_object('tool_selector') self.show_alert(Gtk.MessageType.ERROR, _("Exception"), text, transient_for) if fallback: transient_for.hide() fallback.show() #### Callbacks ### def top_button_clicked(self, widget): """Callback for a button pushed in the main UI""" #Restore Media Button / Driver install button if widget == self.tool_widgets.get_object('build_os_media_button') or \ widget == self.tool_widgets.get_object('install_drivers_button'): self.tool_widgets.get_object('tool_selector').set_sensitive(False) #continue return True #Reboot action else: tool_selector = self.tool_widgets.get_object('tool_selector') tool_selector.set_sensitive(False) bus = dbus.SessionBus() obj = bus.get_object('org.gnome.SessionManager', '/org/gnome/SessionManager') iface = dbus.Interface(obj, 'org.gnome.SessionManager') #Restore System Button if widget == self.tool_widgets.get_object('restore_system_button'): try: dbus_sync_call_signal_wrapper(self.backend(), "enable_boot_to_restore", {}) iface.RequestReboot() self.destroy() except dbus.DBusException as msg: self.dbus_exception_handler(msg) #BIOS flash button elif widget == self.tool_widgets.get_object('flash_bios_button'): file_dialog = Gtk.FileChooserDialog(title = "Choose DOS BIOS Executable", transient_for = None, action = Gtk.FileChooserAction.OPEN) file_dialog.set_default_response(Gtk.ResponseType.OK) file_dialog.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK) file_filter = Gtk.FileFilter() file_filter.add_pattern("*.exe") file_filter.add_pattern("*.EXE") file_dialog.set_filter(file_filter) response = file_dialog.run() file_dialog.hide() if response == Gtk.ResponseType.OK: fname = file_dialog.get_filename() else: tool_selector.set_sensitive(True) return False try: dbus_sync_call_signal_wrapper(self.backend(), "enable_boot_to_utility", {}, self.up, fname) iface.RequestReboot() self.destroy() except dbus.DBusException as msg: self.dbus_exception_handler(msg) tool_selector.set_sensitive(True) #don't do further processing return False def menu_item_clicked(self, widget): """Callback for help menu items""" if widget == self.tool_widgets.get_object('get_help_menu_item'): # run yelp proc = subprocess.Popen(["yelp", "ghelp:dell-recovery"]) # collect the exit status (otherwise we leave zombies) GLib.timeout_add_seconds(1, lambda proc: proc.poll() == None, proc) elif widget == self.tool_widgets.get_object('about_menu_item'): tool_selector = self.tool_widgets.get_object('tool_selector') if not self.about_box: self.about_box = Gtk.AboutDialog() self.about_box.set_version(check_version()) self.about_box.set_name(_("Dell Recovery")) self.about_box.set_copyright(_("Copyright 2008-2012 Dell Inc.")) self.about_box.set_website("http://www.dell.com/ubuntu") self.about_box.set_authors(["Mario Limonciello"]) self.about_box.set_destroy_with_transient_for(True) self.about_box.set_modal(True) self.about_box.set_transient_for(tool_selector) tool_selector.set_sensitive(False) self.about_box.run() self.about_box.hide() tool_selector.set_sensitive(True) #### GUI Functions ### # This application is functional via command line by using the above functions # def run(self): """Runs the GTK application's main functions""" self.tool_widgets.get_object('tool_selector').show() Gtk.main() def show_alert(self, alert_type, header, body=None, transient_for=None): """Displays an alert message""" dialog_hig = self.tool_widgets.get_object('dialog_hig') label_hig = self.tool_widgets.get_object('label_hig') image_hig = self.tool_widgets.get_object('image_hig') tool_selector = self.tool_widgets.get_object('tool_selector') if transient_for is not None: dialog_hig.set_transient_for(transient_for) else: dialog_hig.set_transient_for(tool_selector) message = "%s" % header if not body == None: message = "%s\n\n%s" % (message, body) print(body, file=sys.stderr) label_hig.set_markup(message) if alert_type == Gtk.MessageType.ERROR: image_hig.set_property("stock", "gtk-dialog-error") elif alert_type == Gtk.MessageType.WARNING: image_hig.set_property("stock", "gtk-dialog-warning") elif alert_type == Gtk.MessageType.INFO: image_hig.set_property("stock", "gtk-dialog-info") res = self.tool_widgets.get_object('dialog_hig').run() self.tool_widgets.get_object('dialog_hig').hide() if res == Gtk.ResponseType.CLOSE: return True return False def cleanup_backend(self, widget=None, data=None): '''cleans up the backend process''' try: if self._dbus_iface is not None: self.backend().request_exit() except dbus.DBusException as msg: if hasattr(msg, '_dbus_error_name') and msg.get_dbus_name() == \ 'org.freedesktop.DBus.Error.ServiceUnknown': pass else: print("%s when closing DBus service from %s (data: %s)" % (str(msg), widget, data)) def destroy(self, widget=None, data=None): """Closes any open backend connections and stops GTK threads""" self.cleanup_backend(widget, data) Gtk.main_quit() def translate_widgets(widgets): """Translates all widgets to the specified domain""" widgets.set_translation_domain(DOMAIN) for widget in widgets.get_objects(): if isinstance(widget, Gtk.Label): widget.set_property('can-focus', False) widget.set_text(_(widget.get_text())) elif isinstance(widget, Gtk.RadioButton): widget.set_label(_(widget.get_label())) elif isinstance(widget, Gtk.Button): widget.set_label(_(widget.get_label())) elif isinstance(widget, Gtk.Window): title = widget.get_title() if title: widget.set_title(_(widget.get_title())) dell-recovery/Dell/recovery_advanced_gtk.py0000664000000000000000000006213312311717746016322 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «recovery_advanced_gtk» - Dell Recovery Media Builder # # Copyright (C) 2010, Dell Inc. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## import dbus import os from gi.repository import Gtk import subprocess from Dell.recovery_gtk import DellRecoveryToolGTK, translate_widgets from Dell.recovery_basic_gtk import BasicGeneratorGTK from Dell.recovery_common import (UIDIR, UP_FILENAMES, dbus_sync_call_signal_wrapper) try: from aptdaemon import client from aptdaemon.gtk3widgets import AptProgressDialog except: pass #Translation support from gettext import gettext as _ class AdvancedGeneratorGTK(BasicGeneratorGTK): """The AdvancedGeneratorGTK is the GTK generator that can generate recovery images from a variety of dynamic contents, including the recovery partition, drivers, applications, isos, and more. """ def __init__(self, utility, recovery, version, media, target, overwrite, xrev, branch): """Inserts builder widgets into the Gtk.Assistant""" #Run the normal init first BasicGeneratorGTK.__init__(self, utility, recovery, version, media, target, overwrite) #Build our extra GUI in self.builder_widgets = Gtk.Builder() self.builder_widgets.add_from_file(os.path.join(UIDIR, 'builder.ui')) self.builder_widgets.connect_signals(self) translate_widgets(self.builder_widgets) wizard = self.widgets.get_object('wizard') #wizard.resize(400,400) wizard.set_title(wizard.get_title() + _(" (BTO Image Builder Mode)")) self.tool_widgets.get_object('build_os_media_label').set_text(_("This \ will integrate a Dell \ OEM FID framework & driver package set into a customized \ OS media image. You will have the option to \ create an USB key or DVD image.")) self.file_dialog = Gtk.FileChooserDialog(title = "Choose Item", transient_for = None, action = Gtk.FileChooserAction.OPEN) self.file_dialog.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK) self.file_dialog.set_default_response(Gtk.ResponseType.OK) #setup transient windows for window in ['builder_add_dell_recovery_window', 'srv_dialog']: self.builder_widgets.get_object(window).set_transient_for(wizard) #insert builder pages in reverse order titles = {'application_page' : _("Application Packages"), 'driver_page' : _("Driver Packages"), 'up_page' : _("Utility Partition"), 'fid_page' : _("FID Content"), 'base_page' : _("Base OS Image") } for page in ['application_page', 'driver_page', 'up_page', 'fid_page', 'base_page']: wizard.insert_page(self.builder_widgets.get_object(page), 0) wizard.set_page_title(wizard.get_nth_page(0), titles[page]) #improve the summary self.widgets.get_object('version_hbox').show() #builder variable defaults self.xrev = xrev self.branch = branch self.builder_base_image = '' self.bto_base = False self.bto_up = '' self.add_dell_recovery_deb = '' self.apt_client = None self.builder_widgets.connect_signals(self) def top_button_clicked(self, widget): """Overridden method to make us generate OS media""" #hide the main page if DellRecoveryToolGTK.top_button_clicked(self, widget): #show our page self.widgets.get_object('wizard').show() self.tool_widgets.get_object('tool_selector').hide() def build_page(self, widget, page = None): """Processes output that should be done on a builder page""" #Do the normal processing first BasicGeneratorGTK.build_page(self, widget, page) wizard = self.widgets.get_object('wizard') if page == self.builder_widgets.get_object('base_page'): if self.rp: self.builder_widgets.get_object('recovery_hbox').set_sensitive(True) file_filter = Gtk.FileFilter() file_filter.add_pattern("*.iso") self.file_dialog.set_filter(file_filter) elif page == self.builder_widgets.get_object('fid_page'): self.fid_toggled(None) elif page == self.builder_widgets.get_object('up_page'): if self.up: self.builder_widgets.get_object('utility_hbox').set_sensitive(True) file_filter = Gtk.FileFilter() for item in UP_FILENAMES: pattern = item.split('.')[1] file_filter.add_pattern("*.%s" % pattern) self.file_dialog.set_filter(file_filter) self.up_toggled(None) elif page == self.builder_widgets.get_object('driver_page'): self.file_dialog.set_action(Gtk.FileChooserAction.OPEN) filefilter = Gtk.FileFilter() filefilter.add_pattern("*.tgz") filefilter.add_pattern("*.tar.gz") filefilter.add_pattern("*.deb") filefilter.add_pattern("*.pdf") filefilter.add_pattern("*.py") filefilter.add_pattern("*.sh") self.file_dialog.set_filter(filefilter) wizard.set_page_complete(page, True) elif page == self.builder_widgets.get_object('application_page'): self.file_dialog.set_action(Gtk.FileChooserAction.OPEN) filefilter = Gtk.FileFilter() filefilter.add_pattern("*.tgz") filefilter.add_pattern("*.tar.gz") filefilter.add_pattern("*.zip") self.file_dialog.set_filter(filefilter) self.calculate_srvs(None, -1, "check") elif page == self.widgets.get_object('conf_page') or \ widget == self.widgets.get_object('version'): if page: wizard.set_page_title(page, _("Builder Summary")) output_text = "" + _("Base Image Distributor") + ": " output_text += self.distributor + '\n' output_text += "" + _("Base Image Release") + ": " output_text += self.release + '\n' if self.bto_base: output_text += "" + _("BTO Base Image") + ": " output_text += self.builder_base_image + '\n' else: output_text += "" + _("Base Image") + ": " output_text += self.builder_base_image + '\n' if self.bto_up: output_text +="" + _("Utility Partition: ") + '' output_text += self.bto_up + '\n' liststores = {'application_liststore' : _("Application"), 'driver_liststore' : _("Driver"), } for item in liststores: model = self.builder_widgets.get_object(item) iterator = model.get_iter_first() if iterator is not None: output_text += "%s %s:\n" % (liststores[item], _("Packages")) while iterator is not None: output_text += "\t" + model.get_value(iterator, 0) + '\n' iterator = model.iter_next(iterator) if self.add_dell_recovery_deb: output_text += "" + _("Inject Dell Recovery Package") + ": " output_text += self.add_dell_recovery_deb + '\n' output_text += self.widgets.get_object('conf_text').get_label() self.widgets.get_object('conf_text').set_markup(output_text) def wizard_complete(self, widget, function = None, args = None): """Finished answering wizard questions, and can continue process""" #update gui self.widgets.get_object('action').set_text(_('Assembling Image Components')) #build driver list driver_fish_list = [] model = self.builder_widgets.get_object('driver_liststore') iterator = model.get_iter_first() while iterator is not None: driver_fish_list.append(model.get_value(iterator, 0)) iterator = model.iter_next(iterator) #build application list application_fish_list = {} model = self.builder_widgets.get_object('application_liststore') iterator = model.get_iter_first() while iterator is not None: path = model.get_value(iterator, 0) srv = model.get_value(iterator, 1) application_fish_list[path] = srv iterator = model.iter_next(iterator) function = 'assemble_image' args = (self.builder_base_image, driver_fish_list, application_fish_list, self.add_dell_recovery_deb, 'create_' + self.distributor, self.bto_up) BasicGeneratorGTK.wizard_complete(self, widget, function, args) def run_file_dialog(self): """Browses all files under a particular filter""" response = self.file_dialog.run() self.file_dialog.hide() if response == Gtk.ResponseType.OK: return self.file_dialog.get_filename() else: return None def up_toggled(self, widget): """Called when the radio button for the Builder utility partition page is changed""" up_browse_button = self.builder_widgets.get_object('up_browse_button') up_page = self.builder_widgets.get_object('up_page') wizard = self.widgets.get_object('wizard') if self.builder_widgets.get_object('up_files_radio').get_active(): self.builder_widgets.get_object('up_details_label').set_markup("") self.file_dialog.set_action(Gtk.FileChooserAction.OPEN) up_browse_button.set_sensitive(True) wizard.set_page_complete(up_page, False) else: if self.builder_widgets.get_object('up_partition_radio').get_active(): self.bto_up = self.up else: self.bto_up = '' wizard.set_page_complete(up_page, True) up_browse_button.set_sensitive(False) self.up_file_chooser_picked() def up_file_chooser_picked(self, widget=None): """Called when a file is selected on the up page""" up_page = self.builder_widgets.get_object('up_page') wizard = self.widgets.get_object('wizard') if widget == self.builder_widgets.get_object('up_browse_button'): ret = self.run_file_dialog() if ret is not None: self.bto_up = ret wizard.set_page_complete(up_page, True) if self.bto_up: call = subprocess.Popen(['file', self.bto_up], stdout=subprocess.PIPE, universal_newlines=True) output_text = "" + _("Utility Partition") + ":\n" output_text += call.communicate()[0].replace(', ', '\n') else: output_text = _("No Additional Utility Partition") self.builder_widgets.get_object('up_details_label').set_markup(output_text) def base_toggled(self, widget): """Called when the radio button for the Builder base image page is changed""" base_browse_button = self.builder_widgets.get_object('base_browse_button') base_page = self.builder_widgets.get_object('base_page') wizard = self.widgets.get_object('wizard') label = self.builder_widgets.get_object('base_image_details_label') label.set_markup("") base_browse_button.set_sensitive(True) wizard.set_page_complete(base_page, False) if self.builder_widgets.get_object('iso_image_radio').get_active(): self.file_dialog.set_action(Gtk.FileChooserAction.OPEN) elif self.builder_widgets.get_object('directory_radio').get_active(): self.file_dialog.set_action(Gtk.FileChooserAction.SELECT_FOLDER) else: base_browse_button.set_sensitive(False) self.base_file_chooser_picked() def base_file_chooser_picked(self, widget=None): """Called when a file is selected on the base page""" base_page = self.builder_widgets.get_object('base_page') wizard = self.widgets.get_object('wizard') wizard.set_page_complete(base_page, False) bto_version = '' output_text = '' distributor = '' release = '' arch = '' if widget == self.builder_widgets.get_object('base_browse_button'): ret = self.run_file_dialog() else: ret = self.rp if ret is not None: self.toggle_spinner_popup(True) try: dbus_sync_call_signal_wrapper(self.backend(), 'query_iso_information', {'report_iso_info': self.update_version_gui}, ret) except dbus.DBusException as msg: transient_for = self.widgets.get_object('wizard') self.dbus_exception_handler(msg, transient_for) self.toggle_spinner_popup(False) self.builder_base_image = ret def fid_toggled(self, widget): """Called when the radio button for the Builder FID overlay page is changed""" wizard = self.widgets.get_object('wizard') fid_page = self.builder_widgets.get_object('fid_page') label = self.builder_widgets.get_object('fid_overlay_details_label') wizard.set_page_complete(fid_page, False) self.builder_widgets.get_object('add_dell_recovery_button').set_sensitive(False) if self.builder_widgets.get_object('builtin_radio').get_active(): wizard.set_page_complete(fid_page, True) label.set_markup("Builtin: BTO Compatible Image") self.add_dell_recovery_deb = '' elif self.builder_widgets.get_object('deb_radio').get_active(): if self.add_dell_recovery_deb: wizard.set_page_complete(fid_page, True) else: label.set_markup("") self.builder_widgets.get_object('add_dell_recovery_button').set_sensitive(True) def fid_deb_changed(self, widget): """Detects the version of a newly found deb""" wizard = self.widgets.get_object('wizard') fid_page = self.builder_widgets.get_object('fid_page') wizard.set_page_complete(fid_page, False) if self.add_dell_recovery_deb: wizard.set_page_complete(fid_page, True) if self.add_dell_recovery_deb == 'dpkg-repack': output_text = "Build from on-system install" else: output_text = "Add from %s" % self.add_dell_recovery_deb self.builder_widgets.get_object('fid_overlay_details_label').set_markup(output_text) def driver_action(self, widget): """Called when the add or remove buttons are pressed on the driver action page""" add_button = self.builder_widgets.get_object('driver_add') remove_button = self.builder_widgets.get_object('driver_remove') treeview = self.builder_widgets.get_object('driver_treeview') model = treeview.get_model() if widget == add_button: ret = self.run_file_dialog() if ret is not None: #test that we don't have a file named identically if self.test_liststore_for_existing(model, ret): return model.append([ret]) elif widget == remove_button: row = treeview.get_selection().get_selected_rows()[1] if len(row) > 0: model.remove(model.get_iter(row[0])) def test_liststore_for_existing(self, model, test): """Tests the first column of a list store for the same content""" iterator = model.get_iter_first() while iterator is not None: iteration_text = model.get_value(iterator, 0) if iteration_text == test: return True iterator = model.iter_next(iterator) return False def application_action(self, widget): """Called when the add or remove buttons are pressed on the driver action page""" def run_srv_dialog(): """Runs the SRV dialog""" srv_dialog = self.builder_widgets.get_object('srv_dialog') srv_entry = self.builder_widgets.get_object('srv_entry') wizard = self.widgets.get_object('wizard') srv_entry.set_text('') wizard.set_sensitive(False) srv_dialog.run() wizard.set_sensitive(True) srv_dialog.hide() srv = srv_entry.get_text().lower() #double check that it's not a duplicate if self.calculate_srvs(None, -1, srv): return srv return "" add_button = self.builder_widgets.get_object('application_add') remove_button = self.builder_widgets.get_object('application_remove') treeview = self.builder_widgets.get_object('application_treeview') model = treeview.get_model() if widget == add_button: file_ret = self.run_file_dialog() if file_ret is not None: #test that we don't have a file named identically if self.test_liststore_for_existing(model, file_ret): return #query SRVs srv = run_srv_dialog() #append for reals model.append([file_ret, srv]) elif widget == remove_button: row = treeview.get_selection().get_selected_rows()[1] if len(row) > 0: model.remove(model.get_iter(row[0])) self.calculate_srvs(None, -1, "check") def calculate_srvs(self, widget, path, text): """Verifies that no empty SRVs were defined""" wizard = self.widgets.get_object('wizard') page = self.builder_widgets.get_object('application_page') model = self.builder_widgets.get_object('application_liststore') warning = self.builder_widgets.get_object('srv_warning_label') #ONLY ever work from lowercase text = text.lower() #if we are adding text, check all SRVs in the treeview # * for duplicates # * for having content if text: proceed = True iterator = model.get_iter_first() while iterator is not None: if str(model.get_path(iterator)[0]) != path: iteration_text = model.get_value(iterator, 1) if not iteration_text: proceed = False break if text == iteration_text: proceed = False text = '' break iterator = model.iter_next(iterator) else: proceed = False #if we were editing the treeview (not the popup) #then add it to the list store if path >= 0: iterator = model.get_iter(path) model.set(iterator, 1, text) #Now that we've checked all SRVs, check showing warning and go forward if proceed: warning.set_text("") else: warning.set_text(_("All SRVs must be filled to proceed.")) wizard.set_page_complete(page, proceed) return proceed def install_app(self, widget): """Launch into an installer for dpkg-repack""" packages = [] wizard = self.widgets.get_object('wizard') packages = ['dpkg-repack'] try: trans = self.apt_client.install_packages(packages, wait=False, reply_handler=None, error_handler=None) dialog = AptProgressDialog(trans, transient_for=wizard) dialog.run() super(AptProgressDialog, dialog).run() except dbus.exceptions.DBusException as msg: self.dbus_exception_handler(msg, wizard) widget.hide() def add_dell_recovery_clicked(self, widget): """Callback to launch a dialog to add dell-recovery to the image""" #check if dpkg-repack is available if not os.path.exists('/usr/bin/dpkg-repack'): if not self.apt_client: try: self.apt_client = client.AptClient() except NameError: pass if self.apt_client: self.builder_widgets.get_object('add_dell_recovery_repack_button').show() self.builder_widgets.get_object('build_dell_recovery_button').set_sensitive(False) else: self.builder_widgets.get_object('build_dell_recovery_button').set_sensitive(True) self.builder_widgets.get_object('builder_add_dell_recovery_window').show() def add_dell_recovery_closed(self, widget): """Callback for when the popup window to add dell-recovery is closed""" ok_button = self.builder_widgets.get_object('builder_add_ok') fid_page = self.builder_widgets.get_object('fid_page') wizard = self.widgets.get_object('wizard') window = self.builder_widgets.get_object('builder_add_dell_recovery_window') if widget == ok_button: wizard.set_page_complete(fid_page, True) else: wizard.set_page_complete(fid_page, False) self.add_dell_recovery_deb = '' window.hide() #validate version if self.builder_widgets.get_object('deb_radio').get_active(): self.fid_deb_changed(None) def add_dell_recovery_toggled(self, widget): """Toggles the active selection in the add dell-recovery to image page""" build_radio = self.builder_widgets.get_object('build_dell_recovery_button') browse_radio = self.builder_widgets.get_object('provide_dell_recovery_button') browse_button = self.builder_widgets.get_object('provide_dell_recovery_browse_button') ok_button = self.builder_widgets.get_object('builder_add_ok') if build_radio.get_active(): ok_button.set_sensitive(True) browse_button.set_sensitive(False) self.add_dell_recovery_deb = 'dpkg-repack' elif browse_radio.get_active(): ok_button.set_sensitive(False) browse_button.set_sensitive(True) self.add_dell_recovery_deb = '' def provide_dell_recovery_file_chooser_picked(self, widget=None): """Called when a file is selected on the add dell-recovery page""" ok_button = self.builder_widgets.get_object('builder_add_ok') filefilter = Gtk.FileFilter() filefilter.add_pattern("*.deb") self.file_dialog.set_filter(filefilter) ret = self.run_file_dialog() if ret is not None: import apt_inst import apt_pkg control = apt_inst.DebFile(ret).control.extractdata("control") sections = apt_pkg.TagSection(control) if sections["Package"] != 'dell-recovery': self.add_dell_recovery_deb = '' else: self.add_dell_recovery_deb = ret if self.add_dell_recovery_deb: ok_button.set_sensitive(True) def update_version_gui(self, version, distributor, release, arch, output_text): """Stops any running spinners and updates GUI items""" BasicGeneratorGTK.update_version_gui(self, version, distributor, release, arch, output_text) if output_text: complete = (output_text != "Unknown Base Image") base_page = self.builder_widgets.get_object('base_page') wizard = self.widgets.get_object('wizard') wizard.set_page_complete(base_page, complete) #If this is a BTO image, then allow using built in framework if not self.bto_base and self.builder_widgets.get_object('builtin_radio').get_active(): self.builder_widgets.get_object('deb_radio').set_active(True) self.builder_widgets.get_object('builtin_hbox').set_sensitive(self.bto_base) self.builder_widgets.get_object('base_image_details_label').set_markup(output_text) dell-recovery/Dell/recovery_common.py0000664000000000000000000007045412311717746015205 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «recovery_common» - Misc Functions and variables that are useful in many areas # # Copyright (C) 2009-2010, Dell Inc. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## import dbus.mainloop.glib import subprocess from gi.repository import GLib, UDisks import os import shutil import re import tempfile import glob import sys import datetime import logging ## ## ##Common Variables## ## ## DBUS_BUS_NAME = 'com.dell.RecoveryMedia' DBUS_INTERFACE_NAME = 'com.dell.RecoveryMedia' #For install time CDROM_MOUNT = '/cdrom' ISO_MOUNT = '/isodevice' #Translation Support DOMAIN = 'dell-recovery' LOCALEDIR = '/usr/share/locale' #UI file directory if os.path.isdir('gtk') and 'DEBUG' in os.environ: UIDIR = 'gtk' else: UIDIR = '/usr/share/dell' #SVG file directory if os.path.isdir('gtk') and 'DEBUG' in os.environ: SVGDIR = 'gtk' else: SVGDIR = '/usr/share/pixmaps' #Supported burners and their arguments DVD_BURNERS = { 'brasero':['-i'], 'nautilus-cd-burner':['--source-iso='] } USB_BURNERS = { 'usb-creator':['-n', '--iso'], 'usb-creator-gtk':['-n', '--iso'], 'usb-creator-kde':['-n', '--iso'] } #UP File names UP_FILENAMES = [ 'upimg.bin', 'upimg.gz' , 'up.zip' , 'up.tgz' , ] UP_LABELS = [ 'dellutility' ] RP_LABELS = [ 'recovery', 'install', 'os' ] ## ## ##Common Functions## ## ## def black_tree(action, blacklist, src, dst='', base=None): """Recursively ACTIONs files from src to dest only when they don't match the blacklist outlined in blacklist""" return _tree(action, blacklist, src, dst, base, False) def white_tree(action, whitelist, src, dst='', base=None): """Recursively ACTIONs files from src to dest only when they match the whitelist outlined in whitelist""" return _tree(action, whitelist, src, dst, base, True) def _tree(action, list, src, dst, base, white): """Helper function for tree calls""" from distutils.file_util import copy_file if base is None: base = src if not base.endswith('/'): base += '/' names = os.listdir(src) if action == "copy": outputs = [] elif action == "size": outputs = 0 for n in names: src_name = os.path.join(src, n) dst_name = os.path.join(dst, n) end = src_name.split(base)[1] #don't copy symlinks or hardlinks, vfat seems to hate them if os.path.islink(src_name): continue #recurse till we find FILES elif os.path.isdir(src_name): if action == "copy": outputs.extend( _tree(action, list, src_name, dst_name, base, white)) elif action == "size": #add the directory we're in outputs += os.path.getsize(src_name) #add the files in that directory outputs += _tree(action, list, src_name, dst_name, base, white) #only copy the file if it matches the list / color elif (white and list.search(end)) or not (white or list.search(end)): if action == "copy": if not os.path.isdir(dst): os.makedirs(dst) copy_file(src_name, dst_name, preserve_mode=1, preserve_times=1, update=1, dry_run=0) outputs.append(dst_name) elif action == "size": outputs += os.path.getsize(src_name) return outputs def check_vendor(): """Checks to make sure that the app is running on Dell HW""" if os.path.exists('/sys/class/dmi/id/bios_vendor'): with open('/sys/class/dmi/id/bios_vendor') as rfd: vendor = rfd.readline().split()[0].lower() else: vendor = '' return ((vendor == 'dell') or (vendor == 'alienware')) def check_version(package='dell-recovery'): """Queries the package management system for the current tool version""" try: import apt.cache cache = apt.cache.Cache() if cache[package].is_installed: return cache[package].installed.version except Exception as msg: print("Error checking %s version: %s" % (package, msg), file=sys.stderr) return "unknown" def process_conf_file(original, new, uuid, number, ako='', recovery_text=''): """Replaces all instances of a partition, OS, and extra in a conf type file Generally used for things that need to touch grub""" if not os.path.isdir(os.path.split(new)[0]): os.makedirs(os.path.split(new)[0]) import lsb_release release = lsb_release.get_distro_information() extra_cmdline = ako if extra_cmdline: #remove any duplicate entries ka_list = find_extra_kernel_options().split(' ') ako_list = extra_cmdline.split(' ') for var in ka_list: found = False for item in ako_list: left = item.split('=')[0].strip() if left and left in var: found = True #propagate anything but BOOT_IMAGE (it gets added from isolinux) if not found and not 'BOOT_IMAGE' in var: extra_cmdline += ' ' + var else: extra_cmdline = find_extra_kernel_options() #starting with 10.10, we replace the whole drive string (/dev/sdX,msdosY) #earlier releases are hardcoded to (hd0,Y) if float(release["RELEASE"]) >= 10.10: number = 'msdos' + number with open(original, "r") as base: with open(new, 'w') as output: for line in base.readlines(): if "#RECOVERY_TEXT#" in line: line = line.replace("#RECOVERY_TEXT#", recovery_text) if "#UUID#" in line: line = line.replace("#UUID#", uuid) if "#PARTITION#" in line: line = line.replace("#PARTITION#", number) if "#OS#" in line: line = line.replace("#OS#", "%s %s" % (release["ID"], release["RELEASE"])) if "#EXTRA#" in line: line = line.replace("#EXTRA#", "%s" % extra_cmdline.strip()) output.write(line) def fetch_output(cmd, data='', environment=os.environ): '''Helper function to just read the output from a command''' proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, env=environment, universal_newlines=True) (out, err) = proc.communicate(data) if proc.returncode is None: proc.wait() if proc.returncode != 0: error = "Command %s failed with stdout/stderr: %s\n%s" % (cmd, out, err) import syslog syslog.syslog(error) raise RuntimeError(error) return out def find_extra_kernel_options(): """Finds any extra kernel command line options""" with open('/proc/cmdline', 'r') as cmdline: cmd = cmdline.readline().strip().split('--') if len(cmd) > 1: return cmd[1].strip() else: return '' def find_factory_partition_stats(partition_type): """Uses udisks to find the RP of a system and return stats on it Only use this method during bootstrap. args: 'up' or 'rp' """ recovery = {} if partition_type == 'up': labels = UP_LABELS elif partition_type == 'rp': labels = RP_LABELS udisks = UDisks.Client.new_sync(None) manager = udisks.get_object_manager() for item in manager.get_objects(): block = item.get_block() if not block: continue if block.get_cached_property('HintSystem').get_boolean(): check_label = block.get_cached_property("IdLabel") if not check_label: continue if check_label.get_string().lower() in labels: partition = item.get_partition() recovery["label"] = check_label.get_string() recovery["device"] = block.get_cached_property("Device").get_bytestring() recovery["fs"] = block.get_cached_property("IdType").get_string() recovery["drive"] = block.get_cached_property("Drive").get_string() recovery["number"] = partition.get_cached_property("Number").unpack() recovery["uuid"] = block.get_cached_property("IdUUID").get_string() recovery["size_gb"] = partition.get_cached_property("Size").unpack() / 1000000000 break #find parent slave node, used for dell-bootstrap if "device" in recovery: for item in manager.get_objects(): table = item.get_partition_table() if not table: continue block = item.get_block() if not block: continue if block.get_cached_property("Drive").get_string() == recovery["drive"]: recovery["slave"] = block.get_cached_property("Device").get_bytestring().decode('utf-8') break return recovery def find_partitions(): """Searches the system for utility and recovery partitions""" utility = find_factory_partition_stats('up') if 'device' in utility: utility = utility['device'] else: utility = None recovery = find_factory_partition_stats('rp') if 'device' in recovery: recovery = recovery['device'] else: recovery = None return (utility, recovery) def find_burners(): """Checks for what utilities are available to burn with""" def which(program): """Emulates the functionality of the unix which command""" def is_exe(fpath): """Determines if a filepath is executable""" return os.path.exists(fpath) and os.access(fpath, os.X_OK) fpath = os.path.split(program)[0] if fpath: if is_exe(program): return program else: for path in os.environ["PATH"].split(os.pathsep): exe_file = os.path.join(path, program) if is_exe(exe_file): return exe_file return None def find_command(array): """Determines if a command listed in the array is valid""" for item in array: path = which(item) if path is not None: return [path] + array[item] return None dvd = find_command(DVD_BURNERS) usb = find_command(USB_BURNERS) #If we have apps for DVD burning, check hardware if dvd: found_supported_dvdr = False valid_media_types=[ 'optical_dvd_plus_r', 'optical_dvd_plus_r_dl', 'optical_dvd_plus_rw', 'optical_dvd_r', 'optical_dvd_ram', 'optical_dvd_rw' ] udisks = UDisks.Client.new_sync(None) manager = udisks.get_object_manager() for item in manager.get_objects(): drive = item.get_drive() if not drive or not drive.get_cached_property("MediaRemovable"): continue compatibility = drive.get_cached_property("MediaCompatibility") for media in valid_media_types: if media in compatibility: found_supported_dvdr = True break if found_supported_dvdr: break if not found_supported_dvdr: dvd = None return (dvd, usb) def match_system_device(bus, vendor, device): '''Attempts to match the vendor and device combination on the specified bus Allows the following formats: base 16 int (eg 0x1234) base 16 int in a str (eg '0x1234') ''' def recursive_check_ids(directory, cvendor, cdevice, depth=1): """Recurses into a directory to check all files in that directory""" vendor = device = '' for root, dirs, files in os.walk(directory, topdown=True): for fname in files: if not vendor and (fname == 'idVendor' or fname == 'vendor'): with open(os.path.join(root, fname), 'r') as filehandle: vendor = filehandle.readline().strip('\n') if len(vendor) > 4 and '0x' not in vendor: vendor = '' elif not device and (fname == 'idProduct' or fname == 'device'): with open(os.path.join(root, fname), 'r') as filehandle: device = filehandle.readline().strip('\n') if len(device) > 4 and '0x' not in device: device = '' if vendor and device: if ( int(vendor, 16) == int(cvendor)) and \ ( int(device, 16) == int(cdevice)) : return True else: #reset devices so they aren't checked multiple times needlessly vendor = device = '' if not files: if depth > 0: for directory in [os.path.join(root, d) for d in dirs]: if recursive_check_ids(directory, cvendor, cdevice, depth-1): return True return False if bus != "usb" and bus != "pci": return False if type(vendor) == str and '0x' in vendor: vendor = int(vendor, 16) if type(device) == str and '0x' in device: device = int(device, 16) return recursive_check_ids('/sys/bus/%s/devices' % bus, vendor, device) def increment_bto_version(version): """Increments the BTO version""" match = re.match(r"(?:(?P\w+\.[a-z]*)(?P\d+))" r"|(?P\w+(?:\.[a-z]+)?)", version, re.I) if match: if match.group('digits'): version = "%s%d" % (match.group('alpha1'), int(match.group('digits'))+1) else: if '.' in match.group('alpha2'): version = "%s1" % match.group('alpha2') else: version = "%s.1" % match.group('alpha2') else: return 'A00' return version def walk_cleanup(directory): """Walks a directory, removes all files, and removes that directory""" if os.path.exists(directory): if os.path.isfile(directory): os.remove(directory) return for root, dirs, files in os.walk(directory, topdown=False): for name in files: os.remove(os.path.join(root, name)) for name in dirs: full_name = os.path.join(root, name) if os.path.islink(full_name): os.remove(full_name) elif os.path.isdir(full_name): os.rmdir(full_name) #covers broken links else: os.remove(full_name) os.rmdir(directory) def create_new_uuid(old_initrd_directory, old_casper_directory, new_initrd_directory, new_casper_directory, new_compression="auto", include_bootstrap=False): """ Regenerates the UUID contained in a casper initramfs Supported compression types: * auto (auto detects lzma/gzip) * lzma * gzip * None Returns full path of the old initrd and casper files (for blacklisting) """ tmpdir = tempfile.mkdtemp() #Detect the old initramfs stuff try: old_initrd_files = glob.glob('%s/initrd*' % old_initrd_directory) except Exception as msg: logging.warning("create_new_uuid: %s" % str(msg)) raise dbus.DBusException("Missing initrd in image.") try: old_uuid_file = glob.glob('%s/casper-uuid*' % old_casper_directory)[0] except Exception as msg: logging.warning("create_new_uuid: Old casper UUID not found, assuming 'casper-uuid'") old_uuid_file = '%s/casper-uuid' % old_casper_directory old_initrd_file = '' old_compression = '' old_suffix = '' for fname in old_initrd_files: if len(fname.split('.')) > 1: old_suffix = fname.split('.')[1] if old_suffix == "lz": old_compression = "lzma" old_initrd_file = fname break elif old_suffix == "gz": old_compression = "gzip" old_initrd_file = fname break else: old_suffix = '' if not old_suffix or not old_initrd_file or not old_uuid_file: raise dbus.DBusException("Unable to detect valid initrd.") logging.debug("create_new_uuid: old initrd %s, old uuid %s, old suffix %s, \ old compression method %s" % (old_initrd_file, old_uuid_file, old_suffix, old_compression)) #Extract old initramfs chain0 = subprocess.Popen([old_compression, '-cd', old_initrd_file, '-S', old_suffix], stdout=subprocess.PIPE) chain1 = subprocess.Popen(['cpio', '-id'], stdin=chain0.stdout, cwd=tmpdir) chain1.communicate() #Generate new UUID new_uuid_file = os.path.join(new_casper_directory, os.path.basename(old_uuid_file)) logging.debug("create_new_uuid: new uuid file: %s" % new_uuid_file) chain0 = subprocess.Popen(['uuidgen', '-r'], stdout=subprocess.PIPE) new_uuid = chain0.communicate()[0] logging.debug("create_new_uuid: new UUID: %s" % new_uuid.strip()) for item in [new_uuid_file, os.path.join(tmpdir, 'conf', 'uuid.conf')]: with open(item, "wb") as uuid_fd: uuid_fd.write(new_uuid) #Newer (Ubuntu 11.04+) images may support including the bootstrap in initrd if include_bootstrap: chain0 = subprocess.Popen(['/usr/share/dell/casper/hooks/dell-bootstrap'], env={'DESTDIR': tmpdir, 'INJECT': '1'}) chain0.communicate() #Detect compression new_suffix = '' if new_compression == "gzip": new_suffix = '.gz' elif new_compression == 'lzma': new_suffix = '.lz' elif new_compression == "auto": new_compression = old_compression new_suffix = '.' + old_suffix logging.debug("create_new_uuid: new suffix: %s" % new_suffix) logging.debug("create_new_uuid: new compression method: %s" % new_compression) #Generate new initramfs new_initrd_file = os.path.join(new_initrd_directory, 'initrd' + new_suffix) logging.debug("create_new_uuid: new initrd file: %s" % new_initrd_file) chain0 = subprocess.Popen(['find'], cwd=tmpdir, stdout=subprocess.PIPE) chain1 = subprocess.Popen(['cpio', '--quiet', '-o', '-H', 'newc'], cwd=tmpdir, stdin=chain0.stdout, stdout=subprocess.PIPE) with open(new_initrd_file, 'wb') as initrd_fd: if new_compression: chain2 = subprocess.Popen([new_compression, '-9c'], stdin=chain1.stdout, stdout=subprocess.PIPE) initrd_fd.write(chain2.communicate()[0]) else: initrd_fd.write(chain1.communicate()[0]) walk_cleanup(tmpdir) return (old_initrd_file, old_uuid_file) def create_g2ldr(chroot, rp_mount, install_mount): '''Create a g2ldr compatible image using the install chroot: chroot to launch commands in rp_mount: mountpoint to find partition# and install g2ldr install_mount: mountpoint to find target OS UUID''' uuid = '' partition = '-1' udisks = UDisks.Client.new_sync(None) manager = udisks.get_object_manager() for item in manager.get_objects(): filesystem = item.get_filesystem() part = item.get_partition() if not filesystem or not part: continue mount = filesystem.get_cached_property('MountPoints') if mount and install_mount and install_mount in mount: uuid = part.get_cached_property('UUID') partition = part.get_cached_property("Number") #The file that the Windows BCD will chainload shutil.copy('/usr/lib/grub/i386-pc/g2ldr.mbr', rp_mount) # This BCD configuration will load from the recovery partition if it exists # a /grub/grub.cfg. As specified by the active partition flag # If it doesn't, then it will look for /boot/grub/grub.cfg on the OS partition # as specified by the UUID. process_conf_file('/usr/share/dell/grub/bcd.cfg', \ os.path.join(chroot, 'tmp', 'bcd.cfg'), uuid, partition) #Build the Grub2 Core Image build_command = ['grub-mkimage', '-O', 'i386-pc', '-c', '/tmp/bcd.cfg', '-o', '/tmp/core.img', 'biosdisk', 'part_msdos', 'part_gpt', 'ls', 'fat', 'ntfs', 'ntfscomp', 'search', 'linux', 'vbe', 'boot', 'minicmd', 'cat', 'cpuid', 'chain', 'halt', 'linux16', 'echo', 'test', 'configfile', 'ext2', 'keystatus', 'help', 'boot', 'loadenv' ] if chroot == '/target': from ubiquity import install_misc install_misc.chrex(chroot, *build_command) else: from ubiquity import misc misc.execute_root(*build_command) with open(os.path.join(rp_mount, 'g2ldr'), 'wb') as wfd: for fname in ['/usr/lib/grub/i386-pc/g2hdr.bin', os.path.join(chroot, 'tmp', 'core.img')]: with open(fname, 'rb') as rfd: wfd.write(rfd.read()) def parse_seed(seed): """Parses a preseed file and returns a set of keys""" keys = {} if os.path.exists(seed): with open(seed, 'r') as rfd: line = rfd.readline() while line: line = line.strip() if line and not line.startswith('#'): line = line.split() line.pop(0) # ubiquity or d-i generally key = line.pop(0) if '/' in key: type = line.pop(0) value = " ".join(line) keys[key] = value line = rfd.readline() return keys def write_seed(seed, keys): """Writes out a preseed file with a selected set of keys""" with open(seed, 'w') as wfd: wfd.write("# Dell Recovery configuration preseed\n") wfd.write("# Last updated on %s\n" % datetime.date.today()) wfd.write("\n") for item in keys: if keys[item] == 'true' or keys[item] == 'false': type = 'boolean' else: type = 'string' wfd.write(" ubiquity %s %s %s\n" % (item, type, keys[item])) def write_up_bootsector(device, partition): """Write out the bootsector to a utility partition""" #build the bootsector of the partition if os.path.exists('/usr/share/dell/up/up.bs'): with open('/usr/share/dell/up/up.bs', 'rb') as rfd: with open(device + partition, 'wb') as wfd: wfd.write(rfd.read(11)) # writes the jump to instruction and oem name rfd.seek(43) wfd.seek(43) wfd.write(rfd.read(469)) # write the label, FS type, bootstrap code and signature #If we don't have the bootsector code, then just set the label properly else: fetch_output(['dosfslabel', device + partition, "DellUtility"]) def create_up_boot_entry(new_text): upart = find_factory_partition_stats('up') if not os.path.isdir('/sys/firmware/efi') and upart: process_conf_file(original = '/usr/share/dell/grub/98_dell_bios', \ new = '/etc/grub.d/98_dell_bios', \ uuid = str(upart["uuid"]), \ number = str(upart["number"]), \ recovery_text = new_text) os.chmod('/etc/grub.d/98_dell_bios', 0o755) def mark_upgrades(): '''Mark packages that can upgrade to upgrade during install''' from apt.cache import Cache cache = Cache() to_install = [] for key in cache.keys(): if cache[key].is_upgradable: to_install.append(key) del cache return to_install def mark_unconditional_debs(add_directory=''): '''Finds any debs from debs/main that we want unconditionally installed (but ONLY the latest version on the media)''' import apt_inst import apt_pkg def parse(fname): """ read a deb """ control = apt_inst.DebFile(fname).control.extractdata("control") sections = apt_pkg.TagSection(control) if "Modaliases" in sections: modaliases = sections["Modaliases"] else: modaliases = '' return (sections["Architecture"], sections["Package"], modaliases) #process debs/main to_install = [] my_arch = fetch_output(['dpkg', '--print-architecture']).strip() for top in [ISO_MOUNT, CDROM_MOUNT, add_directory]: repo = os.path.join(top, 'debs', 'main') if os.path.isdir(repo): for fname in os.listdir(repo): if '.deb' in fname: arch, package, modaliases = parse(os.path.join(repo, fname)) if not modaliases and (arch == "all" or arch == my_arch): to_install.append(package) #These aren't in all images, but desirable if available to_install.append('dkms') return to_install def dbus_sync_call_signal_wrapper(dbus_iface, func, handler_map, *args, **kwargs): '''Run a D-BUS method call while receiving signals. This function is an Ugly Hack™, since a normal synchronous dbus_iface.fn() call does not cause signals to be received until the method returns. Thus it calls func asynchronously and sets up a temporary main loop to receive signals and call their handlers; these are assigned in handler_map (signal name → signal handler). ''' if not hasattr(dbus_iface, 'connect_to_signal'): # not a D-BUS object return getattr(dbus_iface, func)(*args, **kwargs) def _h_reply(*args, **kwargs): """protected method to send a reply""" global _h_reply_result _h_reply_result = args loop.quit() def _h_error(exception=None): """protected method to send an error""" global _h_exception_exc _h_exception_exc = exception loop.quit() loop = GLib.MainLoop() global _h_reply_result, _h_exception_exc _h_reply_result = None _h_exception_exc = None kwargs['reply_handler'] = _h_reply kwargs['error_handler'] = _h_error kwargs['timeout'] = 86400 for signame, sighandler in handler_map.items(): dbus_iface.connect_to_signal(signame, sighandler) dbus_iface.get_dbus_method(func)(*args, **kwargs) loop.run() if _h_exception_exc: raise _h_exception_exc return _h_reply_result ## ## ## Common Classes ## ## ## class RestoreFailed(dbus.DBusException): """Exception Raised if the restoration process failed for any reason""" _dbus_error_name = 'com.dell.RecoveryMedia.RestoreFailedException' class CreateFailed(dbus.DBusException): """Exception Raised if the media creation process failed for any reason""" _dbus_error_name = 'com.dell.RecoveryMedia.CreateFailedException' class PermissionDeniedByPolicy(dbus.DBusException): """Exception Raised if policy kit denied the user access""" _dbus_error_name = 'com.dell.RecoveryMedia.PermissionDeniedByPolicy' class BackendCrashError(SystemError): """Exception Raised if the backend crashes""" pass dell-recovery/Dell/__init__.py0000664000000000000000000000017211751021273013512 0ustar """The Dell Recovery toolset is used for recovery type interactions both for building media and recovering systems""" dell-recovery/Dell/recovery_xml.py0000664000000000000000000001263412043102601014465 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «recovery_xml» - Helper Class for parsing and using a bto.xml # # Copyright (C) 2010-2011, Dell Inc. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## import xml.dom.minidom import codecs import os import sys if sys.version >= '3': text_type = str binary_type = bytes else: text_type = unicode binary_type = str def utf8str(old): if isinstance(old, text_type): return old else: return text_type(binary_type(old), 'utf-8', errors='ignore') class BTOxml: def __init__(self): self.dom = None self.new = False self.load_bto_xml() def set_base(self, name, md5=''): """Sets the base image""" self.replace_node_contents('base', name) if md5: self.dom.getElementsByTagName('base')[0].setAttribute('md5', md5) def append_fish(self, fish_type, name, md5='', srv=''): """Appends a fish package""" elements = self.dom.getElementsByTagName('fish') new_element = self.dom.createElement(fish_type) if md5: new_element.setAttribute('md5', md5) if srv: new_element.setAttribute('srv', srv) new_node = self.dom.createTextNode(name) new_element.appendChild(new_node) elements[0].appendChild(new_element) def fetch_node_contents(self, tag): """Fetches all children of a tag""" elements = self.dom.getElementsByTagName(tag) values = text_type('') if len(elements) > 1: values = [] if elements: for element in elements: child = element.firstChild if child: if len(elements) > 1: values.append(child.nodeValue.strip()) else: values = child.nodeValue.strip() return values def replace_node_contents(self, tag, new): """Replaces a node contents (that we assume exists)""" elements = self.dom.getElementsByTagName(tag) if not elements: print("Missing elements for tag") return if elements[0].hasChildNodes(): for node in elements[0].childNodes: elements[0].removeChild(node) noob = self.dom.createTextNode(utf8str(new)) elements[0].appendChild(noob) def load_bto_xml(self, fname=None): """Initialize an XML file into memory""" def create_top_level(dom): """Initializes a top level document""" element = dom.createElement('bto') dom.appendChild(element) return element def create_tag(dom, tag, append_to): """Create a subtag as necessary""" element = dom.getElementsByTagName(tag) if element: element = element[0] else: element = dom.createElement(tag) append_to.appendChild(element) return element if fname: self.new = False try: if os.path.exists(fname): with open(fname, 'rb') as f: fname = f.read() self.dom = xml.dom.minidom.parseString(utf8str(fname)) except xml.parsers.expat.ExpatError: print("Damaged XML file, regenerating") if not (fname and self.dom): self.new = True self.dom = xml.dom.minidom.Document() #test for top level bto object if self.dom.firstChild and self.dom.firstChild.localName != 'bto': self.dom.removeChild(self.dom.firstChild) if not self.dom.firstChild: bto = create_top_level(self.dom) else: bto = self.dom.getElementsByTagName('bto')[0] #create all our second and third level tags that are supported for tag in ['date', 'versions', 'base', 'fid', 'fish', 'logs']: element = create_tag(self.dom, tag, bto) subtags = [] if tag == 'versions': subtags = ['os', 'iso', 'generator', 'bootstrap', 'ubiquity'] elif tag == 'fid': subtags = ['git_tag', 'deb_archive'] elif tag == 'logs': subtags = ['syslog', 'debug'] for subtag in subtags: create_tag(self.dom, subtag, element) def write_xml(self, fname): """Writes out a BTO XML file based on the current data""" with codecs.open(fname, 'w', 'utf-8') as wfd: if self.new: self.dom.writexml(wfd, "", " ", "\n", encoding='utf-8') else: self.dom.writexml(wfd, encoding='utf-8') dell-recovery/Dell/recovery_basic_gtk.py0000664000000000000000000003315112311717746015634 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «recovery_basic_gtk» - Dell Recovery Media Generator # # Copyright (C) 2008-2010, Dell Inc. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################ import os import subprocess import dbus from gi.repository import Gtk from Dell.recovery_gtk import DellRecoveryToolGTK, translate_widgets from Dell.recovery_common import (find_partitions, find_burners, UIDIR, SVGDIR, increment_bto_version, dbus_sync_call_signal_wrapper, fetch_output) #Translation support from gettext import gettext as _ class BasicGeneratorGTK(DellRecoveryToolGTK): """The BasicGeneratorGTK is the GTK generator that solely generates images from the recovery partition on a machine. """ def __init__(self, utility, recovery, version, media, target, overwrite): #Run the normal init first #This sets up lots of common variables as well as translation domain DellRecoveryToolGTK.__init__(self, recovery, utility) #init the UI and translate widgets/connect signals self.widgets = Gtk.Builder() self.widgets.add_from_file(os.path.join(UIDIR, 'recovery_media_creator.ui')) #insert pages in reverse order wizard = self.widgets.get_object('wizard') titles = {'conf_page': _("Confirm Selections"), 'media_type_page': _("Media Type") } for page in ['conf_page', 'media_type_page']: wizard.insert_page(self.widgets.get_object(page), 0) wizard.set_page_title(wizard.get_nth_page(0), titles[page]) Gtk.Window.set_default_icon_from_file(os.path.join(SVGDIR, 'dell-dvd.svg')) translate_widgets(self.widgets) self.widgets.connect_signals(self) #setup spinner self.spinner = Gtk.Spinner() self.widgets.get_object('spinner_box').add(self.spinner) self.widgets.get_object('spinner_box').show_all() self._dbus_iface = None self.timeout = 0 self.image = '' (self.cd_burn_cmd, self.usb_burn_cmd) = find_burners() try: self.release = fetch_output(['lsb_release', '-r', '-s']).strip('\n') self.distributor = fetch_output(['lsb_release', '-i', '-s']).strip('\n').lower() except RuntimeError: self.release = '0.00' self.distributor = 'unknown' self.arch = '' for item in ['server', 'enterprise']: if item in self.distributor: self.distributor = self.distributor.split(item)[0] #set any command line arguments for this frontend self.up = utility self.widgets.get_object('version').set_text(version) self.media = media self.path = target self.overwrite = overwrite def check_preloaded_system(self): """Checks that the system this tool is being run on contains a utility partition and recovery partition""" #check any command line arguments if self.up and not os.path.exists(self.up): self.up = None if self.rp and not os.path.exists(self.rp): self.rp = None if self.up and self.rp: return True (self.up, self.rp) = find_partitions() return self.rp def wizard_complete(self, widget, function=None, args=None): """Finished answering wizard questions, and can continue process""" #Fill in dynamic data if not self.widgets.get_object('version').get_text(): self.toggle_spinner_popup(True) try: dbus_sync_call_signal_wrapper(self.backend(), 'query_iso_information', {'report_iso_info': self.update_version_gui}, self.rp) except dbus.DBusException as msg: self.toggle_spinner_popup(False) transient_for = self.widgets.get_object('wizard') self.dbus_exception_handler(msg, transient_for) return finally: self.toggle_spinner_popup(False) if not self.image: self.image = '%s-%s-%s-dell_%s.iso' % (self.distributor, self.release, self.arch, self.widgets.get_object('version').get_text()) #Check for existing image skip_creation = False if not self.overwrite and \ os.path.exists(os.path.join(self.path, self.image)): skip_creation = not show_question( \ self.widgets.get_object('existing_dialog')) #GUI Elements self.widgets.get_object('wizard').hide() #Call our DBUS backend to build the ISO if not skip_creation: #try to open the file as a user first so when it's overwritten, it #will be with the correct permissions try: if not os.path.isdir(self.path): os.makedirs(self.path) with open(os.path.join(self.path, self.image), 'w') as wfd: pass except IOError: #this might have been somwehere that the system doesn't want us #writing files as a user, oh well, we tried pass #just create ISO, content is ready to go if not (function and args): self.widgets.get_object('action').set_text( \ _("Building Base image")) function = 'create_' + self.distributor args = (self.up, self.rp) #all functions require this at the end args += ( self.widgets.get_object('version').get_text(), os.path.join(self.path, self.image)) try: dbus_sync_call_signal_wrapper(self.backend(), function, {'report_progress':self.update_progress_gui}, *args) self.update_progress_gui(_("Opening Burner"), 1.00) except dbus.DBusException as msg: transient_for = self.widgets.get_object('progress_dialog') fallback = self.widgets.get_object('wizard') self.dbus_exception_handler(msg, transient_for, fallback) return self.burn() def burn(self): """Calls an external application for burning this ISO""" success = False self.hide_progress() while not success: success = True if self.widgets.get_object('dvdbutton').get_active(): cmd = self.cd_burn_cmd + [os.path.join(self.path, self.image)] elif self.widgets.get_object('usbbutton').get_active(): cmd = self.usb_burn_cmd + [os.path.join(self.path, self.image)] else: cmd = None if cmd: subprocess.call(cmd) header = _("Recovery Media Creation Process Complete") body = _("If you would like to archive another copy, the generated \ image has been stored under the filename:\n") + \ os.path.join(self.path, self.image) self.show_alert(Gtk.MessageType.INFO, header, body, transient_for=self.widgets.get_object('progress_dialog')) self.destroy(None) #### GUI Functions ### # This application is functional via command line by using the above functions # def top_button_clicked(self, widget): """Overridden method to make us generate OS media""" if not self.check_preloaded_system(): header = _("Unable to proceed") inst = _("System does not appear to contain Dell factory installed \ partition layout.") self.show_alert(Gtk.MessageType.ERROR, header, inst, transient_for=self.widgets.get_object('wizard')) return if DellRecoveryToolGTK.top_button_clicked(self, widget): #show our page self.widgets.get_object('wizard').show() self.tool_widgets.get_object('tool_selector').hide() def check_close(self, widget, args=None): """Asks the user before closing the dialog""" response = self.widgets.get_object('close_dialog').run() if response == Gtk.ResponseType.YES: self.destroy() else: self.widgets.get_object('close_dialog').hide() return True def hide_progress(self): """Hides the progress bar""" self.widgets.get_object('progress_dialog').hide() while Gtk.events_pending(): Gtk.main_iteration() def toggle_spinner_popup(self, force): wizard = self.widgets.get_object('wizard') popup = self.widgets.get_object('spinner_popup') if force: wizard.set_sensitive(False) self.spinner.start() popup.show() else: self.spinner.stop() popup.hide() wizard.set_sensitive(True) while Gtk.events_pending(): Gtk.main_iteration() def update_version_gui(self, version, distributor, release, arch, output_text): """Stops any running spinners and updates GUI items""" if distributor: self.distributor = distributor if release: self.release = release if arch: self.arch = arch self.bto_base = bool(version) if self.bto_base: version = increment_bto_version(version) else: version = 'X00' self.widgets.get_object('version').set_text(version) return True def update_progress_gui(self, progress_text, progress): """Updates the progressbar to show what we are working on""" progressbar = self.widgets.get_object('progressbar') self.widgets.get_object('progress_dialog').show() if float(progress) < 0: progressbar.pulse() else: progressbar.set_fraction(float(progress)/100) if progress_text != None: self.widgets.get_object('action').set_markup("" +\ _(progress_text)+"") while Gtk.events_pending(): Gtk.main_iteration() return True def build_page(self, widget, page=None): """Prepares our GTK assistant""" if page == self.widgets.get_object('media_type_page'): #fill in command line args if self.media == "dvd": self.widgets.get_object('dvdbutton').set_active(True) elif self.media == "usb": self.widgets.get_object('usbbutton').set_active(True) else: self.widgets.get_object('nomediabutton').set_active(True) #remove invalid options (missing burners) if self.cd_burn_cmd is None: self.widgets.get_object('dvd_box').hide() self.widgets.get_object('usbbutton').set_active(True) else: self.widgets.get_object('dvd_box').show() if self.usb_burn_cmd is None: self.widgets.get_object('usb_box').hide() if self.cd_burn_cmd is None: self.widgets.get_object('nomediabutton').set_active(True) else: self.widgets.get_object('usb_box').show() self.widgets.get_object('wizard').set_page_complete(page, True) elif page == self.widgets.get_object('conf_page') or \ widget == self.widgets.get_object('version'): if self.widgets.get_object('dvdbutton').get_active(): burn_type = self.widgets.get_object('dvdbutton').get_label() elif self.widgets.get_object('usbbutton').get_active(): burn_type = self.widgets.get_object('usbbutton').get_label() else: burn_type = _("Image File") text = '' text += "" + _("Media Type: ") + '' + burn_type + '\n' if self.rp: if not self.rp.startswith(b'/dev'): text += "" + _("Recovery Partition: ") + '' text += self.rp + '\n' else: text += "" + _("Recovery Partition: ") + '' text += _("Included") + '\n' self.widgets.get_object('conf_text').set_markup(text) if page: self.widgets.get_object('wizard').set_page_complete(page, True) self.widgets.get_object('wizard').set_page_type(page, Gtk.AssistantPageType.CONFIRM) def show_question(dialog): """Presents the user with a question""" response = dialog.run() dialog.hide() return (response == Gtk.ResponseType.YES) dell-recovery/Dell/recovery_backend.py0000664000000000000000000016363112311717746015304 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «recovery_backend» - Backend Manager. Handles backend service calls # # Copyright (C) 2009, Dell Inc. # (C) 2008 Canonical Ltd. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## import logging, os, os.path, signal, sys, re from gi.repository import GLib import dbus import dbus.service import dbus.mainloop.glib import atexit import tempfile import subprocess import tarfile import shutil import datetime import distutils.dir_util import stat import zipfile import lsb_release from hashlib import md5 from aptdaemon import client from defer import inline_callbacks from Dell.recovery_common import (DOMAIN, LOCALEDIR, UP_FILENAMES, walk_cleanup, create_new_uuid, white_tree, black_tree, fetch_output, check_version, DBUS_BUS_NAME, DBUS_INTERFACE_NAME, RestoreFailed, CreateFailed, mark_upgrades, mark_unconditional_debs, PermissionDeniedByPolicy) from Dell.recovery_threading import ProgressByPulse, ProgressBySize from Dell.recovery_xml import BTOxml import fcntl import select #Translation support from gettext import gettext as _ from gettext import bindtextdomain, textdomain #TODO, when python3 version of debian-support is available, # drop this ugly test if sys.version >= "3": class emulator: def version_compare(self, this, that): if this > that: return 1 if this == that: return 0 else: return -1 debian_support = emulator() else: from debian_bundle import debian_support def safe_tar_extract(filename, destination): """Safely extracts a tarball into destination""" logging.debug('safe_tar_extract: %s to %s', (filename, destination)) rfd = tarfile.open(filename) dangerous_file = False for name in rfd.getnames(): if name.startswith('..') or name.startswith('/'): dangerous_file = True break if not dangerous_file: rfd.extractall(destination) rfd.close() class Backend(dbus.service.Object): '''Backend manager. This encapsulates all services calls of the backend. It is implemented as a dbus.service.Object, so that it can be called through D-BUS as well (on the /RecoveryMedia object path). ''' # # D-BUS control API # def __init__(self): dbus.service.Object.__init__(self) #initialize variables that will be used during create and run self.bus = None self.package_dir = None self.main_loop = None self._timeout = False self.dbus_name = None self.xml_obj = BTOxml() # cached D-BUS interfaces for _check_polkit_privilege() self.dbus_info = None self.polkit = None self.progress_thread = None self.enforce_polkit = True #Enable translation for strings used bindtextdomain(DOMAIN, LOCALEDIR) textdomain(DOMAIN) def run_dbus_service(self, timeout=None, send_usr1=False): '''Run D-BUS server. If no timeout is given, the server will run forever, otherwise it will return after the specified number of seconds. If send_usr1 is True, this will send a SIGUSR1 to the parent process once the server is ready to take requests. ''' dbus.service.Object.__init__(self, self.bus, '/RecoveryMedia') self.main_loop = GLib.MainLoop() self._timeout = False if timeout: def _quit(): """This function is ran at the end of timeout""" self.main_loop.quit() return True GLib.timeout_add(timeout * 1000, _quit) # send parent process a signal that we are ready now if send_usr1: os.kill(os.getppid(), signal.SIGUSR1) # run until we time out while not self._timeout: if timeout: self._timeout = True self.main_loop.run() @classmethod def create_dbus_server(cls, session_bus=False): '''Return a D-BUS server backend instance. Normally this connects to the system bus. Set session_bus to True to connect to the session bus (for testing). ''' backend = Backend() dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) if session_bus: backend.bus = dbus.SessionBus() backend.enforce_polkit = False else: backend.bus = dbus.SystemBus() try: backend.dbus_name = dbus.service.BusName(DBUS_BUS_NAME, backend.bus) except dbus.exceptions.DBusException as msg: logging.error("Exception when spawning dbus service") logging.error(msg) return None return backend # # Internal methods # def _reset_timeout(self): '''Reset the D-BUS server timeout.''' self._timeout = False def _check_polkit_privilege(self, sender, conn, privilege): '''Verify that sender has a given PolicyKit privilege. sender is the sender's (private) D-BUS name, such as ":1:42" (sender_keyword in @dbus.service.methods). conn is the dbus.Connection object (connection_keyword in @dbus.service.methods). privilege is the PolicyKit privilege string. This method returns if the caller is privileged, and otherwise throws a PermissionDeniedByPolicy exception. ''' if sender is None and conn is None: # called locally, not through D-BUS return if not self.enforce_polkit: # that happens for testing purposes when running on the session # bus, and it does not make sense to restrict operations here return # get peer PID if self.dbus_info is None: self.dbus_info = dbus.Interface(conn.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus/Bus', False), 'org.freedesktop.DBus') pid = self.dbus_info.GetConnectionUnixProcessID(sender) # query PolicyKit if self.polkit is None: self.polkit = dbus.Interface(dbus.SystemBus().get_object( 'org.freedesktop.PolicyKit1', '/org/freedesktop/PolicyKit1/Authority', False), 'org.freedesktop.PolicyKit1.Authority') try: # we don't need is_challenge return here, since we call with AllowUserInteraction (is_auth, unused, details) = self.polkit.CheckAuthorization( ('unix-process', {'pid': dbus.UInt32(pid, variant_level=1), 'start-time': dbus.UInt64(0, variant_level=1)}), privilege, {'': ''}, dbus.UInt32(1), '', timeout=600) except dbus.DBusException as msg: if msg.get_dbus_name() == \ 'org.freedesktop.DBus.Error.ServiceUnknown': # polkitd timed out, connect again self.polkit = None return self._check_polkit_privilege(sender, conn, privilege) else: raise if not is_auth: logging.debug('_check_polkit_privilege: sender %s on connection %s pid %i is not authorized for %s: %s', sender, conn, pid, privilege, str(details)) raise PermissionDeniedByPolicy(privilege) # # Internal API for calling from Handlers (not exported through D-BUS) # def request_mount(self, recovery, type="r", sender=None, conn=None): '''Attempts to mount the recovery partition If successful, return mntdir. If we find that it's already mounted elsewhere, return that mount If unsuccessful, return an empty string ''' logging.debug("request_mount: %s" % recovery) #In this is just a directory if os.path.isdir(recovery): return recovery #check for an existing mount command = subprocess.Popen(['mount'], stdout=subprocess.PIPE, universal_newlines=True) output = command.communicate()[0].split('\n') for line in output: processed_line = line.split() if len(processed_line) > 0 and processed_line[0] == recovery: return processed_line[2] #if not already, mounted, produce a mount point mntdir = tempfile.mkdtemp() mnt_args = ['mount', '-%s' %type, recovery, mntdir] if ".iso" in recovery: mnt_args.insert(1, 'loop') mnt_args.insert(1, '-o') else: self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.create') command = subprocess.Popen(mnt_args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) output = command.communicate() ret = command.wait() if ret is not 0: os.rmdir(mntdir) if ret == 32: try: mntdir = output[1].strip('\n').split('on')[1].strip(' ') except IndexError: mntdir = '' logging.warning("IndexError when operating on output string") else: mntdir = '' logging.warning("Unable to mount recovery partition") logging.warning(output) else: atexit.register(self._unmount_drive, mntdir) return mntdir def _unmount_drive(self, mnt): """Unmounts something mounted at a particular mount point""" logging.debug("_unmount_drive: %s" % mnt) if os.path.exists(mnt): ret = subprocess.call(['umount', mnt]) if ret is not 0: logging.warning(" _unmount_drive: Error unmounting %s" % mnt) try: os.rmdir(mnt) except OSError as msg: logging.warning(" _unmount_drive: Error cleaning up: %s" % str(msg)) def _test_for_new_dell_recovery(self, mount, assembly_tmp): """Tests if the distro currently on the system matches the recovery media. If it does, check for any potential SRUs to apply to the recovery media """ logging.debug("_test_for_new_dell_recovery: testing mount %s and assembly_tmp %s" % (mount, assembly_tmp)) output = fetch_output(['zcat', '/usr/share/doc/dell-recovery/changelog.gz']) package_distro = output.split('\n')[0].split()[2].strip(';') with open(os.path.join(mount, '.disk', 'info')) as rfd: rp_distro = rfd.readline().split()[2].strip('"').lower() if rp_distro in package_distro: logging.debug("_test_for_new_dell_recovery: Distro %s matches %s", rp_distro, package_distro) from apt.cache import Cache cache = Cache() package_version = cache['dell-recovery'].installed.version rp_version = self.query_have_dell_recovery(mount) if debian_support.version_compare(package_version, rp_version) > 0: logging.debug("_test_for_new_dell_recovery: Including updated dell-recovery package version, %s (original was %s)", package_version, rp_version) dest = os.path.join(assembly_tmp, 'debs') if not os.path.isdir(dest): os.makedirs(dest) call = subprocess.Popen(['dpkg-repack', 'dell-recovery'], cwd=dest, universal_newlines=True) (out, err) = call.communicate() else: logging.debug("_test_for_new_dell_recovery: RP Distro %s doesn't match our distro %s, not injecting updated package", rp_distro, package_distro) def _process_driver_fish(self, driver_fish, assembly_tmp): """Processes a driver FISH archive""" logging.debug("_process_driver_fish: assmebly_tmp: %s" % assembly_tmp) length = len(driver_fish) for fishie in driver_fish: logging.debug(" processing %s" % fishie) self.report_progress(_('Processing FISH packages'), driver_fish.index(fishie)/length*100) if os.path.isfile(fishie): with open(fishie, 'rb') as fish: md5sum = md5(fish.read()).hexdigest() self.xml_obj.append_fish('driver', os.path.basename(fishie), md5sum) dest = None if fishie.endswith('.deb'): dest = os.path.join(assembly_tmp, 'debs') logging.debug(" Copying debian archive fishie %s", fishie) elif fishie.endswith('.pdf'): dest = os.path.join(assembly_tmp, 'docs') logging.debug(" Copying document fishie fishie %s", fishie) elif fishie.endswith('.py') or fishie.endswith('.sh'): dest = os.path.join(assembly_tmp, 'scripts', 'chroot-scripts', 'fish') logging.debug(" Copying python or shell fishie %s", fishie) elif os.path.exists(fishie) and tarfile.is_tarfile(fishie): nested = False rfd = tarfile.open(fishie) for member in rfd.getmembers(): name = member.get_info(encoding='UTF-8', errors='strict')['name'] if name.endswith('.html'): nested = name break if nested: archive_tmp = tempfile.mkdtemp() atexit.register(walk_cleanup, archive_tmp) safe_tar_extract(fishie, archive_tmp) children = [] for child in os.listdir(archive_tmp): if child != name: children.append(os.path.join(archive_tmp,child)) logging.debug(" Extracting nested archive %s", fishie) self._process_driver_fish(children, assembly_tmp) else: safe_tar_extract(fishie, assembly_tmp) logging.debug(": Extracting tar fishie %s", fishie) pre_package = os.path.join(assembly_tmp, 'prepackage.dell') if os.path.exists(pre_package): os.remove(pre_package) else: logging.debug(" ignoring fishie %s", fishie) #If we just do a flat copy if dest is not None: if not os.path.isdir(dest): os.makedirs(dest) distutils.file_util.copy_file(fishie, dest, verbose=1, update=0) def start_sizable_progress_thread(self, input_str, mnt, w_size): """Initializes the extra progress thread, or resets it if it already exists'""" self.progress_thread = ProgressBySize(input_str, mnt, w_size) self.progress_thread.progress = self.report_progress self.progress_thread.start() def stop_progress_thread(self): """Stops the extra thread for reporting progress""" self.progress_thread.join() def start_pulsable_progress_thread(self, input_str): """Starts the extra thread for pulsing progress in the UI""" self.progress_thread = ProgressByPulse(input_str) self.progress_thread.progress = self.report_progress self.progress_thread.start() # # Client API (through D-BUS) # @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 'b', out_signature = 'b', sender_keyword = 'sender', connection_keyword = 'conn') def force_network(self, enable, sender=None, conn=None): """Forces a network manager disable request as root""" self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.force_network') bus = dbus.SystemBus() obj = bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager') int = dbus.Interface(obj, 'org.freedesktop.NetworkManager') return int.Sleep(not enable) @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = '', out_signature = '', sender_keyword = 'sender', connection_keyword = 'conn') def request_exit(self, sender=None, conn=None): """Closes the backend and cleans up""" self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.request_exit') self._timeout = True self.main_loop.quit() @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 'sasa{ss}sssss', out_signature = '', sender_keyword = 'sender', connection_keyword = 'conn') def assemble_image(self, base, driver_fish, application_fish, dell_recovery_package, create_fn, utility, version, iso, sender=None, conn=None): """Assemble pieces that would be used for building a BTO image. base: mount point of base image (or directory) fish: list of packages to fish dell_recovery_package: a dell-recovery package to inject create_fn: function to call for creation of ISO utility: utility partition version: version for ISO creation purposes iso: iso file name to create""" logging.debug("assemble_image: base %s, driver_fish %s, application_fish\ %s, recovery %s, create_fn %s, utility %s, version %s, iso %s" % (base, driver_fish, application_fish, dell_recovery_package, create_fn, utility, version, iso)) self._reset_timeout() base_mnt = self.request_mount(base, "r", sender, conn) assembly_tmp = tempfile.mkdtemp() atexit.register(walk_cleanup, assembly_tmp) #copy the base iso/mnt point/etc white_pattern = re.compile('') w_size = white_tree("size", white_pattern, base_mnt) self.start_sizable_progress_thread(_('Adding in base image'), assembly_tmp, w_size) white_tree("copy", white_pattern, base_mnt, assembly_tmp) self.stop_progress_thread() #Add in driver FISH content if len(driver_fish) > 0: # record the base iso used self.xml_obj.set_base(os.path.basename(base)) self._process_driver_fish(driver_fish, assembly_tmp) logging.debug("assemble_image: done inserting driver fish") #Add in application FISH content length = float(len(application_fish)) if length > 0: dest = os.path.join(assembly_tmp, 'srv') os.makedirs(dest) for fishie in application_fish: with open(fishie, 'rb') as fish: md5sum = md5(fish.read()).hexdigest() new_name = application_fish[fishie] self.xml_obj.append_fish('application', os.path.basename(fishie), md5sum, new_name) if fishie.endswith('.zip'): new_name += '.zip' elif os.path.exists(fishie) and tarfile.is_tarfile(fishie): new_name += '.tgz' distutils.file_util.copy_file(fishie, os.path.join(dest, new_name), verbose=1, update=0) #If a utility partition exists and we wanted to replace it, wipe it away if utility: for fname in UP_FILENAMES: if os.path.exists(os.path.join(assembly_tmp, fname)): os.remove(os.path.join(assembly_tmp, fname)) #If dell-recovery needs to be injected into the image if dell_recovery_package: self.xml_obj.replace_node_contents('deb_archive', dell_recovery_package) dest = os.path.join(assembly_tmp, 'debs') if not os.path.isdir(dest): os.makedirs(dest) if 'dpkg-repack' in dell_recovery_package: logging.debug("Repacking dell-recovery using dpkg-repack") call = subprocess.Popen(['dpkg-repack', 'dell-recovery'], cwd=dest, universal_newlines=True) (out, err) = call.communicate() else: logging.debug("Adding manually included dell-recovery package, %s", dell_recovery_package) distutils.file_util.copy_file(dell_recovery_package, dest) function = getattr(Backend, create_fn) function(self, utility, assembly_tmp, version, iso) @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 's', out_signature = 'sssss', sender_keyword = 'sender', connection_keyword = 'conn') def query_iso_information(self, iso, sender=None, conn=None): """Queries what type of ISO this is. This same method will be used regardless of OS.""" def find_arch(input_str): """Finds the architecture in an input string""" for item in input_str.split(): for test in ('amd64', 'i386'): if test in item: return test return fetch_output(['dpkg', '--print-architecture']).strip() def find_float(input_str): """Finds the floating point number in a string""" for piece in input_str.split(): try: release = float(piece) except ValueError: continue logging.debug("query_iso_information: find_float found %d", release) return piece return '' logging.debug("query_iso_information: iso %s" % iso) self._reset_timeout() self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.query_iso_information') (bto_version, bto_date) = self.query_bto_version(iso, sender, conn) distributor_str = 'Unknown Base Image' distributor = '' #Ubuntu disks have .disk/info if os.path.isfile(iso) and iso.endswith('.iso'): cmd = ['isoinfo', '-J', '-i', iso, '-x', '/.disk/info'] invokation = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True) out, err = invokation.communicate() if invokation.returncode is None: invokation.wait() if out: distributor_str = out distributor = "ubuntu" if err: logging.debug("error during isoinfo invokation: %s", err) else: mntdir = self.request_mount(iso, "r", sender, conn) if os.path.exists(os.path.join(mntdir, '.disk', 'info')): with open(os.path.join(mntdir, '.disk', 'info'), 'r') as rfd: distributor_str = rfd.readline().strip('\n') distributor = "ubuntu" #RHEL disks have .discinfo elif os.path.exists(os.path.join(mntdir, '.discinfo')): with open(os.path.join(mntdir, '.discinfo'), 'r') as rfd: timestamp = rfd.readline().strip('\n') distributor_string = rfd.readline().strip('\n') arch = rfd.readline().strip('\n') distributor = "redhat" distributor_str += ' ' + arch release = find_float(distributor_str) arch = find_arch(distributor_str) if bto_version and bto_date: distributor_str = "Dell BTO Image, version %s built on %s\n%s" % (bto_version.split('.')[0], bto_date, distributor_str) elif bto_version == '[native]': distributor_str = "Dell BTO Compatible Image\n%s" % distributor_str else: bto_version = '' self.report_iso_info(bto_version, distributor, release, arch, distributor_str) logging.debug(" returning bto_version %s, distributor %s, release %s, \ arch %s, distributor_str %s" % (bto_version, distributor, release, arch, distributor_str)) return (bto_version, distributor, release, arch, distributor_str) @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 's', out_signature = 'ss', sender_keyword = 'sender', connection_keyword = 'conn') def query_bto_version(self, recovery, sender=None, conn=None): """Queries the BTO version number internally stored in an ISO or RP""" def test_initrd(cmd0): """Tests an initrd using the selected command""" cmd1 = ['unlzma'] cmd2 = ['cpio', '-it', '--quiet'] chain0 = subprocess.Popen(cmd0, stdout=subprocess.PIPE) chain1 = subprocess.Popen(cmd1, stdin=chain0.stdout, stdout=subprocess.PIPE) chain2 = subprocess.Popen(cmd2, stdin=chain1.stdout, stdout=subprocess.PIPE, universal_newlines=True) out, err = chain2.communicate() if chain2.returncode is None: chain2.wait() if out: for line in out.split('\n'): if 'scripts/casper-bottom/99dell_bootstrap' in line: return '[native]' return '' logging.debug("query_bto_version: recovery %s" % recovery) self._reset_timeout() self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.query_bto_version') #mount the recovery partition version = '' date = '' if os.path.isfile(recovery) and recovery.endswith('.iso'): cmd = ['isoinfo', '-J', '-i', recovery, '-x', '/bto.xml'] out = fetch_output(cmd) if out: self.xml_obj.load_bto_xml(out) version = self.xml_obj.fetch_node_contents('iso') date = self.xml_obj.fetch_node_contents('date') else: cmd = ['isoinfo', '-J', '-i', recovery, '-x', '/bto_version'] out = fetch_output(cmd) if out: out = out.split('\n') if len(out) > 1: version = out[0] date = out[1] else: version = test_initrd(['isoinfo', '-J', '-i', recovery, '-x', '/casper/initrd.lz']) else: mntdir = self.request_mount(recovery, "r", sender, conn) if os.path.exists(os.path.join(mntdir, 'bto.xml')): self.xml_obj.load_bto_xml(os.path.join(mntdir, 'bto.xml')) version = self.xml_obj.fetch_node_contents('iso') date = self.xml_obj.fetch_node_contents('date') elif os.path.exists(os.path.join(mntdir, 'bto_version')): with open(os.path.join(mntdir, 'bto_version'), 'r') as rfd: version = rfd.readline().strip('\n') date = rfd.readline().strip('\n') #no /bto.xml or /bto_version found, check initrd for bootsrap files elif os.path.exists(os.path.join(mntdir, 'casper', 'initrd.lz')): version = test_initrd(['cat', os.path.join(mntdir, 'casper', 'initrd.lz')]) return (version, date) @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 's', out_signature = 's', sender_keyword = 'sender', connection_keyword = 'conn') def query_have_dell_recovery(self, recovery, sender=None, conn=None): '''Checks if the given image contains the dell-recovery package suite''' def run_isoinfo_command(cmd): """Returns the output of an isoinfo command""" invokation = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True) out, err = invokation.communicate() if invokation.returncode is None: invokation.wait() if err: logging.debug("error invoking isoinfo: %s", err) return out def check_mentions(feed): '''Checks if given file mentions dell-recovery''' for line in feed.split('\n'): if 'dell-recovery' in line: return line.split()[1] return '' logging.debug("query_have_dell_recovery: recovery %s" % recovery) found = '' #Recovery Partition is an ISO if os.path.isfile(recovery) and recovery.endswith('.iso'): #first find the interesting files cmd = ['isoinfo', '-J', '-i', recovery, '-f'] logging.debug("query_have_dell_recovery: Checking %s", recovery) interesting_files = [] for fname in run_isoinfo_command(cmd).split('\n'): if 'dell-recovery' in fname and (fname.endswith('.deb') or fname.endswith('.rpm')): logging.debug("query_have_dell_recovery: Found %s", fname) if '_' in fname: new = fname.split('_')[1] if new > found: found = new if not found: found = '1' elif fname.endswith('.manifest'): interesting_files.append(fname) logging.debug("query_have_dell_recovery: Appending %s to interesting_files", fname) if not found: for fname in interesting_files: cmd = ['isoinfo', '-J', '-i', recovery, '-x', fname] logging.debug("query_have_dell_recovery: Checking %s ", fname) version = check_mentions(run_isoinfo_command(cmd)) if version: logging.debug("query_have_dell_recovery: Found %s in %s", version, fname) if version > found: found = version #Recovery partition is mount point or directory else: #Search for a flat file first (or a manifest for later) logging.debug("query_have_dell_recovery: Searching mount point %s", recovery) interesting_files = [] for root, dirs, files in os.walk(recovery, topdown=False): for fname in files: if 'dell-recovery' in fname and (fname.endswith('.deb') or fname.endswith('.rpm')): logging.debug("query_have_dell_recovery: Found in %s", os.path.join(root, fname)) if '_' in fname: new = fname.split('_')[1] if new > found: found = new if not found: found = '1' elif fname.endswith('.manifest'): interesting_files.append(os.path.join(root, fname)) logging.debug("query_have_dell_recovery: Appending %s to interesting_files", os.path.join(root, fname)) if not found: for fname in interesting_files: logging.debug("query_have_dell_recovery: Checking %s ", fname) with open(fname, 'r') as rfd: output = rfd.read() version = check_mentions(output) if version: logging.debug("query_have_dell_recovery: Found %s in %s", version, fname) if version > found: found = version return found @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 's', out_signature = '', sender_keyword = 'sender', connection_keyword = 'conn') def validate_driver_package(self, package, sender=None, conn=None): """Validates a Dell driver package""" logging.debug ("Validating driver package %s" % package) valid = 1 description = [''] error_warning = '' if not os.path.exists(package) or not package.endswith('fish.tar.gz'): valid = -1 error_warning = 'Bad file name' if valid >= 0: rfd = tarfile.open(package) prepackage = False for name in rfd.getnames(): if name.endswith('prepackage.dell'): prepackage = rfd.getmember(name) break if not prepackage: valid = -1 error_warning = 'Missing or invalid XML descriptor (prepackage.dell)' if valid >= 0: tmpdir = tempfile.mkdtemp() atexit.register(walk_cleanup, tmpdir) rfd.extract(prepackage, tmpdir) rfd.close() self.xml_obj.load_bto_xml(os.path.join(tmpdir, 'prepackage.dell')) our_os = lsb_release.get_lsb_information()['RELEASE'] package_os = self.xml_obj.fetch_node_contents('os') if our_os != package_os: valid = 0 error_warning = "OS Version of package %s doesn't match local OS version %s" % (package_os, our_os) description = self.xml_obj.fetch_node_contents('driver') logging.debug("Validation complete: valid %s" % valid) self.report_package_info(valid, description, error_warning) @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 'ss', out_signature = '', sender_keyword = 'sender', connection_keyword = 'conn') def install_driver_package(self, package, recovery, sender=None, conn=None): """Prepares to tnstall a Dell driver package""" self._reset_timeout() self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.driverinstall') #extract package self.report_progress("Creating temporary directory.") self.package_dir = tempfile.mkdtemp() os.chmod(self.package_dir, 0o755) atexit.register(walk_cleanup, self.package_dir) self.report_progress("Extracting package.") safe_tar_extract(package, self.package_dir) #emulate fat32 partition automatically setting sh and py scripts executable for root, dirs, files in os.walk(self.package_dir, topdown=False): for name in files: if name.endswith('.sh') or name.endswith('.py'): os.chmod(os.path.join(root, name), 0o755) #mount RP (if possible) if recovery: self.report_progress("Mounting recovery partition.") mntdir = self.request_mount(recovery, "r") #build the pool with stuff from RP for directory in ['debs', 'pool']: if os.path.exists(os.path.join(mntdir, directory)): if not os.path.isdir(os.path.join(self.package_dir, 'debs')): os.mkdir(os.path.join(self.package_dir, 'debs')) os.symlink(os.path.join(mntdir, directory), \ os.path.join(self.package_dir, 'debs', 'rp_' + directory)) #produce apt source #if we have an apt source, this is taken over by signals now #if not, then we jump directly to the next step debs_dir = os.path.join(self.package_dir, 'debs') if os.path.exists(debs_dir): self.report_progress("Building APT Package listing.") build = subprocess.Popen(['apt-ftparchive', 'packages', '.'], stdout=subprocess.PIPE, cwd=debs_dir) output = build.communicate()[0] with open(os.path.join(debs_dir, 'Packages'), 'w') as wfd: wfd.write(output) source_list = os.path.join('/etc', 'apt', 'sources.list.d', os.path.basename(self.package_dir) + '.list') if os.path.exists(source_list): raise CreateFailed("File already exists") with open(source_list, 'w') as wfd: wfd.write("deb file:%s /\n" % debs_dir) atexit.register(walk_cleanup, source_list) self._update_cache(source_list) else: self._process_scripts('exit-success') @inline_callbacks def _install_debs(self): """Use AptDaemon to install all debs that would normally be installed""" logging.debug('enter _install_debs') apt_client = client.AptClient() to_install = mark_upgrades() + mark_unconditional_debs(self.package_dir) logging.debug("debs to install: %s" % to_install) tid = yield apt_client.install_packages(to_install) yield tid.set_allow_unauthenticated(True) yield tid.connect("finished", self._install_debs_finished) self.report_progress("Installing debian packages.", tid.tid) yield tid.run() logging.debug("leave _install_debs") @inline_callbacks def _update_cache(self, source_list): """Use AptDaemon to update the partial cache""" logging.debug("enter _update_cache") apt_client = client.AptClient() tid = yield apt_client.update_cache(source_list) yield tid.connect("finished", self._update_cache_finished) self.report_progress("Building APT cache.", tid.tid) yield tid.run() logging.debug("leave _update_cache") def _update_cache_finished(self, trans, exit_status): """Signal relay to notify frontend that the cache is ready to go""" logging.debug("Cache update completed. exit status: %s" % exit_status) #if not success, return now if exit_status != 'exit-success': self.report_package_installed(exit_status, '') #otherwise continue and try to install debs self._install_debs() def _install_debs_finished(self, trans, exit_status): """Signal relay for debs being finished installed (or none present)""" logging.debug("Deb install completed. exit status %s" % exit_status) #if not success, return now if exit_status != 'exit-success': self.report_package_installed(exit_status, '') #otherwise continue and try to process scripts try: self._process_scripts(exit_status) except RuntimeError as msg: self.report_package_installed('exit-failed', str(msg)) def _process_scripts(self, exit_status): """Process the scripts portion of a FISH package""" logging.debug("enter _process_scripts") scripts = [] self.report_progress("Processing post scripts.", '') for directory in (os.path.join(self.package_dir, 'scripts', 'chroot-scripts', 'fish'), '/usr/share/dell/scripts/non-negotiable'): if os.path.isdir(directory): for item in os.listdir(directory): scripts.append(os.path.join(directory, item)) environment = os.environ environment['DEBIAN_FRONTEND'] = 'noninteractive' environment['PATH'] = '/sbin:/usr/sbin:/bin:/usr/bin' num = float(1) total = len(scripts) for script in scripts: logging.debug('executing script: %s' % script) self.report_progress("executing %s" % script, num/total) #in case shell script is missing starting shebang (a few are) if script.endswith('.sh'): cmd = ['/bin/sh', script] else: cmd = [script] logging.debug(fetch_output(cmd, None, environment)) num+=1 logging.debug("leave _process_scripts") self.report_package_installed(exit_status, '') @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = '', out_signature = '', sender_keyword = 'sender', connection_keyword = 'conn') def enable_boot_to_restore(self, sender=None, conn=None): """Enables the default one-time boot option to be recovery""" self._reset_timeout() self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.restore') logging.debug("enable_boot_to_restore") self._prepare_reboot("99_dell_recovery") @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 'ss', out_signature = '', sender_keyword = 'sender', connection_keyword = 'conn') def enable_boot_to_utility(self, utility, executable, sender=None, conn=None): """Enables the default one-time boot option to be utility partition""" self._reset_timeout() self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.utility') #prep the content for UP mntdir = self.request_mount(utility, "rw") target = os.path.join(mntdir, os.path.basename(executable)) if os.path.exists(target): os.remove(target) shutil.copy(executable, target) old = False target = os.path.join(mntdir, 'autoexec.bat') if os.path.exists(target): shutil.move(target, os.path.join(mntdir, 'autoexec.old')) old = True with open (target, 'w') as wfd: wfd.write("DEL AUTOEXEC.BAT\r\n") if old: wfd.write("REN AUTOEXEC.OLD AUTOEXEC.BAT\r\n") wfd.write("%s\r\n" % os.path.basename(executable)) self._prepare_reboot("98_dell_bios") def _prepare_reboot(self, dest): """Helper function to reboot into an entry""" #find our one time boot entry if not os.path.exists("/etc/grub.d/%s" % dest): raise RestoreFailed("missing %s to parse" % dest) with open('/etc/grub.d/%s' % dest) as rfd: grub_file = rfd.readlines() entry = False for line in grub_file: if "menuentry" in line: split = line.split('"') if len(split) > 1: entry = split[1] break if not entry: raise RestoreFailed("Error parsing %s for bootentry." % dest) #set us up to boot saved entries with open('/etc/default/grub', 'r') as rfd: default_grub = rfd.readlines() with open('/etc/default/grub', 'w') as wfd: for line in default_grub: if line.startswith("GRUB_DEFAULT="): line = "GRUB_DEFAULT=saved\n" wfd.write(line) #Make sure the language is set properly with open('/etc/default/locale','r') as rfd: for line in rfd.readlines(): if line.startswith('LANG=') and len(line.split('=')) > 1: lang = line.split('=')[1].strip('\n').strip('"') env = os.environ env['LANG'] = lang ret = subprocess.call(['/usr/sbin/update-grub'], env=env) if ret is not 0: raise RestoreFailed("error updating grub configuration") ret = subprocess.call(['/usr/sbin/grub-reboot', entry]) if ret is not 0: raise RestoreFailed("error setting one time grub entry") @dbus.service.method(DBUS_INTERFACE_NAME, in_signature = 'ssss', out_signature = '', sender_keyword = 'sender', connection_keyword = 'conn') def create_ubuntu(self, utility, recovery, version, iso, sender=None, conn=None): """Creates Ubuntu compatible recovery media""" self._reset_timeout() self._check_polkit_privilege(sender, conn, 'com.dell.recoverymedia.create') logging.debug("create_ubuntu: utility %s, recovery %s, version %s, iso %s" % (utility, recovery, version, iso)) #create temporary workspace tmpdir = tempfile.mkdtemp() atexit.register(walk_cleanup, tmpdir) #mount the recovery partition mntdir = self.request_mount(recovery, "r", sender, conn) #validate that ubuntu is on the partition if not os.path.exists(os.path.join(mntdir, '.disk', 'info')): logging.warning("create_ubuntu: recovery partition missing .disk/info.") if os.path.exists(os.path.join(mntdir, 'bootmgr')): raise CreateFailed("This tool can not create a recovery image from a Windows recovery partition.") raise CreateFailed("Recovery partition is missing critical ubuntu files.") #test for an updated dell recovery deb to put in try: self._test_for_new_dell_recovery(mntdir, tmpdir) except: raise CreateFailed("Error injecting updated Dell Recovery into image.") #check for a nested ISO image if os.path.exists(os.path.join(mntdir, 'ubuntu.iso')): pattern = re.compile('^ubuntu.iso|^.disk') w_size = black_tree("size", pattern, mntdir) self.start_sizable_progress_thread(_('Preparing nested image'), tmpdir, w_size) black_tree("copy", pattern, mntdir, tmpdir) self.stop_progress_thread() mntdir = self.request_mount(os.path.join(mntdir, 'ubuntu.iso'), "r", sender, conn) #Generate BTO XML File self.xml_obj.replace_node_contents('date', str(datetime.date.today())) self.xml_obj.replace_node_contents('iso', version) self.xml_obj.replace_node_contents('generator', check_version()) self.xml_obj.write_xml(os.path.join(tmpdir, 'bto.xml')) #If necessary, include the utility partition if utility and os.path.exists(utility) and \ not os.path.exists(os.path.join(mntdir, 'upimg.gz')): #device node if stat.S_ISBLK(os.stat(utility).st_mode): self.start_pulsable_progress_thread( _('Building Dell Utility Partition')) seg1 = subprocess.Popen(['dd', 'if=' + utility, 'bs=1M'], stdout=subprocess.PIPE) seg2 = subprocess.Popen(['gzip', '-c'], stdin=seg1.stdout, stdout=subprocess.PIPE) partition_file = open(os.path.join(tmpdir, 'upimg.gz'), "wb") partition_file.write(seg2.communicate()[0]) partition_file.close() self.stop_progress_thread() #tgz type elif tarfile.is_tarfile(utility): try: shutil.copy(utility, os.path.join(tmpdir, 'up.tgz')) except Exception as msg: logging.warning(" create_ubuntu: Error with tgz: %s." % str(msg)) raise CreateFailed("Error building Utility Partition : %s" % str(msg)) #probably a zip else: try: zip_obj = zipfile.ZipFile(utility) shutil.copy(utility, os.path.join(tmpdir, 'up.zip')) except Exception as msg: logging.warning(" create_ubuntu: Error with zipfile: %s." % str(msg)) raise CreateFailed("Error building Utility Partition : %s" % str(msg)) #Arg list genisoargs = ['genisoimage', '-o', iso, '-input-charset', 'utf-8', '-no-emul-boot', '-boot-load-size', '4', '-boot-info-table', '-pad', '-r', '-J', '-joliet-long', '-N', '-hide-joliet-trans-tbl', '-cache-inodes', '-l', '-publisher', 'Dell Inc.', '-V', 'Dell Ubuntu Reinstallation Media', '-m', '*.exe', '-m', '*.sys', '-m', 'syslinux', '-m', 'syslinux.cfg', '-m', os.path.join(mntdir, 'bto.xml'), '-m', os.path.join(mntdir, 'isolinux'), '-m', os.path.join(mntdir, 'bto_version')] #if no bootstrap in RP, we'll put it in the initrd bootstrap_initrd = not os.path.exists(os.path.join(mntdir, 'scripts', 'bootstrap.sh')) #Renerate UUID os.mkdir(os.path.join(tmpdir, '.disk')) os.mkdir(os.path.join(tmpdir, 'casper')) self.start_pulsable_progress_thread(_('Regenerating UUID / Rebuilding initramfs')) (old_initrd, old_uuid) = create_new_uuid(os.path.join(mntdir, 'casper'), os.path.join(mntdir, '.disk'), os.path.join(tmpdir, 'casper'), os.path.join(tmpdir, '.disk'), new_compression="auto", include_bootstrap=bootstrap_initrd) self.stop_progress_thread() genisoargs.append('-m') genisoargs.append(os.path.join('.disk', old_uuid)) genisoargs.append('-m') genisoargs.append(os.path.join('casper', old_initrd)) #if we're grub based, generate a grub image grub_root = os.path.join(mntdir,'boot', 'grub', 'i386-pc') if os.path.exists(grub_root): os.makedirs(os.path.join(tmpdir, 'boot', 'grub')) if os.path.exists(os.path.join(mntdir, 'boot', 'grub', 'eltorito.img')): genisoargs.append('-m') genisoargs.append(os.path.join(mntdir, 'boot', 'grub', 'eltorito.img')) shutil.copy(os.path.join(mntdir, 'boot', 'grub', 'eltorito.img'), os.path.join(tmpdir, 'boot', 'grub', 'eltorito.img')) else: if not os.path.exists(os.path.join(grub_root, 'core.img')): raise CreateFailed("The target requested GRUB support, but core.img is missing.") if not os.path.exists(os.path.join(grub_root, 'cdboot.img')): raise CreateFailed("The target requested GRUB support, but cdboot.img is missing.") self.start_pulsable_progress_thread(_('Building GRUB core image')) with open(os.path.join(tmpdir, 'boot', 'grub', 'eltorito.img'), 'wb') as wfd: for fname in ('cdboot.img', 'core.img'): with open(os.path.join(grub_root, fname), 'rb') as rfd: wfd.write(rfd.read()) self.stop_progress_thread() genisoargs.append('-m') genisoargs.append(os.path.join(mntdir,'boot/boot.catalog')) genisoargs.append('-b') genisoargs.append('boot/grub/eltorito.img') genisoargs.append('-c') genisoargs.append('boot/boot.catalog') #isolinux based else: genisoargs.append('-b') genisoargs.append('isolinux/isolinux.bin') genisoargs.append('-c') genisoargs.append('isolinux/boot.catalog') #if we have ran this from a USB key, we might have syslinux which will #break our build if os.path.exists(os.path.join(mntdir, 'syslinux')): shutil.copytree(os.path.join(mntdir, 'syslinux'), os.path.join(tmpdir, 'isolinux')) if os.path.exists(os.path.join(tmpdir, 'isolinux', 'syslinux.cfg')): shutil.move(os.path.join(tmpdir, 'isolinux', 'syslinux.cfg'), os.path.join(tmpdir, 'isolinux', 'isolinux.cfg')) else: #Copy boot section for ISO to somewhere writable shutil.copytree(os.path.join(mntdir, 'isolinux'), os.path.join(tmpdir, 'isolinux')) #if we have any any ISO/USB bootable bootloader on the image, copy in a theme grub_theme = False for topdir in [mntdir, tmpdir]: for bottomdir in ['i386-pc', 'x86_64-efi']: if os.path.exists(os.path.join(topdir, 'boot', 'grub', bottomdir)): grub_theme = True if grub_theme: if not os.path.exists(os.path.join(tmpdir, 'boot', 'grub')): os.makedirs(os.path.join(tmpdir, 'boot', 'grub')) #conffiles shutil.copy('/usr/share/dell/grub/theme/grub.cfg', os.path.join(tmpdir, 'boot', 'grub', 'grub.cfg')) genisoargs.append('-m') genisoargs.append(os.path.join(mntdir,'boot/grub/grub.cfg')) for bottomdir in ['i386-pc', 'x86_64-efi']: directory = os.path.join(mntdir, 'boot', 'grub', bottomdir) if os.path.exists(directory): if not os.path.exists(os.path.join(tmpdir, 'boot', 'grub', bottomdir)): os.makedirs(os.path.join(tmpdir, 'boot', 'grub', bottomdir)) shutil.copy('/usr/share/dell/grub/theme/%s/grub.cfg' % bottomdir, os.path.join(tmpdir, 'boot', 'grub', bottomdir, 'grub.cfg')) genisoargs.append('-m') genisoargs.append(os.path.join(mntdir,'boot/grub/%s/grub.cfg' % bottomdir)) #theme if not os.path.exists(os.path.join(mntdir, 'boot', 'grub', 'dell')): shutil.copytree('/usr/share/dell/grub/theme/dell', os.path.join(tmpdir, 'boot', 'grub', 'dell')) #fonts if not os.path.exists(os.path.join(mntdir, 'boot', 'grub', 'dejavu-sans-12.pf2')): ret = subprocess.call(['grub-mkfont', '/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf', '-s=12', '--output=%s' % os.path.join(tmpdir, 'boot', 'grub', 'dejavu-sans-12.pf2')]) if ret is not 0: raise CreateFailed("Creating GRUB fonts failed.") if not os.path.exists(os.path.join(mntdir, 'boot', 'grub', 'dejavu-sans-bold-14.pf2')): ret = subprocess.call(['grub-mkfont', '/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf', '-s=14', '--output=%s' % os.path.join(tmpdir, 'boot', 'grub', 'dejavu-sans-bold-14.pf2')]) if ret is not 0: raise CreateFailed("Creating GRUB fonts failed.") #if we previously backed up a grub.cfg or common.cfg for path in ['factory/grub.cfg', 'factory/common.cfg']: if os.path.exists(os.path.join(mntdir, path + '.old')): genisoargs.append('-m') genisoargs.append(os.path.join(mntdir, path) + '*') if not os.path.exists(os.path.join(tmpdir, 'factory')): os.makedirs(os.path.join(tmpdir, 'factory')) shutil.copy(os.path.join(mntdir, path + '.old'), os.path.join(tmpdir, path)) #Make the image EFI compatible if necessary if os.path.exists(os.path.join(mntdir, 'boot', 'grub', 'efi.img')): efi_genisoimage = subprocess.Popen(['genisoimage','-help'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) results = efi_genisoimage.communicate()[1] if 'efi' in results: genisoargs.append('-eltorito-alt-boot') genisoargs.append('-efi-boot') genisoargs.append('boot/grub/efi.img') genisoargs.append('-no-emul-boot') else: import apt.cache cache = apt.cache.Cache() version = cache['genisoimage'].installed.version del cache raise CreateFailed("The target image requested EFI support, but genisoimage %s doesn't support EFI. \ You will need to create this image on a system with a newer genisoimage." % version) #Directories to install genisoargs.append(tmpdir + '/') genisoargs.append(mntdir + '/') #ISO Creation seg1 = subprocess.Popen(genisoargs, stderr=subprocess.PIPE, universal_newlines=True) pipe = seg1.stderr fcntl.fcntl( pipe.fileno(), fcntl.F_SETFL, fcntl.fcntl(pipe.fileno(), fcntl.F_GETFL) | os.O_NONBLOCK) retval = seg1.poll() logging.debug(" create_ubuntu: genisoimage debug") while (retval is None): readx = select.select([pipe.fileno()], [], [])[0] if readx: output = pipe.read() if output.strip(): logging.debug(output.strip()) progress = output.split()[0] if (progress[-1:] == '%'): self.report_progress(_('Building ISO'), progress[:-1]) retval = seg1.poll() if retval is not 0: logging.error(" create_ubuntu: genisoimage exited with a nonstandard return value.") logging.error(" genisoargs: %s" % genisoargs) logging.error(" stderror: %s" % pipe.readlines()) logging.error(" error: %s" % output.strip()) raise CreateFailed("ISO Building exited unexpectedly:\n%s" % output.strip()) @dbus.service.signal(DBUS_INTERFACE_NAME) def report_iso_info(self, version, distributor, release, arch, output_text): '''Report ISO information to UI. ''' return True @dbus.service.signal(DBUS_INTERFACE_NAME) def report_progress(self, this, that=''): '''Report progress of something to UI. ''' return True @dbus.service.signal(DBUS_INTERFACE_NAME) def report_package_info(self, valid, description, error_warning): '''Reports package into to U/I''' return True @dbus.service.signal(DBUS_INTERFACE_NAME) def report_package_installed(self, exit_status, msg): '''Reports that a package is installed to the U/I''' return True dell-recovery/Dell/recovery_threading.py0000664000000000000000000001014611756540176015655 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «recovery_threading» - Threading classes for use to report progress # # Copyright (C) 2009-2010, Dell Inc. # (C) 2008 Canonical Ltd. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## from threading import Thread, Event import logging import os import sys if sys.version >= '3': def callable(obj): import collections return isinstance(obj, collections.Callable) #--------------------------------------------------------------------# #Borrowed from USB-Creator initially class ProgressBySize(Thread): """Used for emitting progress for subcalls that don't nicely use stdout'""" def __init__(self, input_str, device, to_write): Thread.__init__(self) self._stopevent = Event() self.str = input_str self.device = device self.scale = 100 self.start_value = 0 self.reset_write(to_write) def reset_write(self, to_write): """Resets the amount to be written counter""" self.to_write = to_write statvfs = os.statvfs(self.device) self.start_free = statvfs.f_bsize * statvfs.f_bavail def set_scale_factor(self, factor): """"Sets a floating point scaling factor (0-100)""" if factor > 100 or factor < 0: self.scale = 100 else: self.scale = factor def set_starting_value(self, value): """Sets the initial value for the progress bar (0-100)""" if value > 100 or value < 0: self.start_value = 0 else: self.start_value = value def progress(self, input_str, percent): """Function intended to be overridden to the correct external function """ pass def run(self): """Runs the thread""" try: while not self._stopevent.isSet(): statvfs = os.statvfs(self.device) free = statvfs.f_bsize * statvfs.f_bavail written = self.start_free - free veecent = self.start_value + int((written / float(self.to_write)) * self.scale) if callable(self.progress): self.progress(self.str, veecent) self._stopevent.wait(2) except Exception: logging.exception('Could not update progress:') def join(self, timeout=None): """Stops the thread""" self._stopevent.set() Thread.join(self, timeout) class ProgressByPulse(Thread): """Used for emitting the thought of progress for subcalls that don't show anything'""" def __init__(self, input_str): Thread.__init__(self) self._stopevent = Event() self.str = input_str def progress(self, input_str, percent): """Function intended to be overridden to the correct external function """ pass def run(self): """Runs the thread""" try: while not self._stopevent.isSet(): if callable(self.progress): self.progress(self.str, "-1") self._stopevent.wait(.5) except Exception: logging.exception('Could not update progress:') def join(self, timeout=None): """Stops the thread""" self._stopevent.set() Thread.join(self, timeout) #--------------------------------------------------------------------# dell-recovery/Dell/driver_gtk.py0000664000000000000000000002356312311717746014136 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «driver_gtk» - Dell Driver Installer # # Copyright (C) 2012, Dell Inc. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################ import os import dbus import logging #APT support from aptdaemon.client import get_transaction from aptdaemon.gtk3widgets import AptProgressBar, AptStatusLabel from aptdaemon.enums import EXIT_SUCCESS #GUI from gi.repository import Gtk from Dell.recovery_gtk import DellRecoveryToolGTK, translate_widgets from Dell.recovery_common import (UIDIR, dbus_sync_call_signal_wrapper) from gettext import gettext as _ class DriverGTK(DellRecoveryToolGTK): def __init__(self, recovery, utility, fname, mode): #Run the normal init first #This sets up lots of common variables as well as translation domain DellRecoveryToolGTK.__init__(self, recovery, utility, mode) #init the UI and translate widgets/connect signals self.widgets = Gtk.Builder() self.widgets.add_from_file(os.path.join(UIDIR, 'driver_install.ui')) self._dbus_iface = None Gtk.Window.set_default_icon_from_file('/usr/share/pixmaps/dell-dvd.svg') translate_widgets(self.widgets) self.widgets.connect_signals(self) self.file_dialog = Gtk.FileChooserDialog("Choose Driver Package", None, Gtk.FileChooserAction.OPEN, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) self.file_dialog.set_default_response(Gtk.ResponseType.OK) file_filter = Gtk.FileFilter() file_filter.add_pattern("*.fish.tar.gz") self.file_dialog.set_filter(file_filter) self.fname = fname self.status_bar = self.widgets.get_object('driver_statusbar') self.current_context = 0 self.status_bar.push(self.current_context, "Ready") self.spinner = Gtk.Spinner() self.widgets.get_object('driver_spinner_box').add(self.spinner) self.progress_bar = AptProgressBar() self.widgets.get_object('progress_bar_box').add(self.progress_bar) self.status_label = AptStatusLabel() self.widgets.get_object('apt_status_box').add(self.status_label) def toggle_spinner(self, message=None): self.widgets.get_object('driver_page').set_sensitive(message is None) if message: self.current_context += 1 self.spinner.show() self.spinner.start() self.status_bar.push(self.current_context, message) else: self.spinner.stop() self.spinner.hide() self.status_bar.pop(self.current_context) self.current_context -= 1 def run(self): '''overrides the regular run method if we have a file sent''' if self.fname: self.widgets.get_object('browse_vbox').hide() self.widgets.get_object('driver_window').show() self.validate_package() Gtk.main() else: DellRecoveryToolGTK.run(self) def install_driver(self, widget): '''Installs a driver package. Activated when install is pressed''' transient_for = self.widgets.get_object('driver_window') args = (self.fname, self.rp) try: status = _("Preparing to install package...") logging.debug(status) self.toggle_spinner(status) dbus_sync_call_signal_wrapper(self.backend(), 'install_driver_package', {"report_package_installed": self.package_installed, "report_progress" : self.update_labels}, *args) except dbus.DBusException as msg: logging.error(msg) self.dbus_exception_handler(msg, transient_for) self.toggle_spinner() return def package_installed(self, exit_status, msg): transient_for = self.widgets.get_object('driver_window') if exit_status != EXIT_SUCCESS: if not msg: msg = _("Package installation failed") logging.error(msg) self.show_alert(Gtk.MessageType.ERROR, _("Package Install Failed"), msg , transient_for) self.toggle_spinner() return #backend: close backend # this handles clearing the apt cache # (as soon as temporary file is gone it's fixed) self.cleanup_backend() self.widgets.get_object('label_restart_required').set_text(\ _("The computer needs to restart to " "finish installing this package. Please " "save your work before continuing.")) self.toggle_spinner() self.widgets.get_object('driver_page').set_sensitive(False) self.widgets.get_object('frame_restart_required').show() self.progress_bar.hide() self.status_bar.hide() self.status_label.hide() def _request_reboot_via_session_manager(self): try: bus = dbus.SessionBus() proxy_obj = bus.get_object("org.gnome.SessionManager", "/org/gnome/SessionManager") iface = dbus.Interface(proxy_obj, "org.gnome.SessionManager") iface.RequestReboot() except dbus.DBusException: self._request_reboot_via_logind() except: pass def _request_reboot_via_logind(self): try: bus = dbus.SystemBus() proxy_obj = bus.get_object("org.freedesktop.login1", "/org/freedesktop/login1") iface = dbus.Interface(proxy_obj, "org.freedesktop.login1.Manager") iface.Reboot(False) except dbus.DBusException: pass def restart_clicked(self, widget, data=None): self._request_reboot_via_session_manager() def cancel_clicked(self, widget, data=None): '''cancel button clicked''' self.destroy() def validate_package(self): logging.debug("Validating package %s" % self.fname) self.toggle_spinner("Validating package...") try: dbus_sync_call_signal_wrapper(self.backend(), 'validate_driver_package', {'report_package_info': self.update_driver_gui}, self.fname) except dbus.DBusException as msg: transient_for = self.widgets.get_object('driver_window') logging.error(msg) self.dbus_exception_handler(msg, transient_for) def browse_clicked(self, widget): '''browse button clicked''' response = self.file_dialog.run() self.file_dialog.hide() if response == Gtk.ResponseType.OK: self.fname=self.file_dialog.get_filename() self.validate_package() def update_driver_gui(self, valid, description, error_warning): """backend trying to update frontend""" text = "File: %s \n" % self.fname textbuffer = self.widgets.get_object('driver_textview').get_buffer() if valid < 0: self.widgets.get_object('driver_install_button').set_sensitive(False) text += "Error: %s \n" % error_warning self.widgets.get_object('browse_vbox').show() else: self.widgets.get_object('driver_install_button').set_sensitive(True) if valid == 0: text+= 'Warning: %s \n' % error_warning #show warning if type(description) == dbus.Array: for obj in description: text += '%s \n' % obj else: text += '%s \n' % description logging.debug("setting textview: %s" % text) textbuffer.set_text(text) self.toggle_spinner() def update_labels(self, label, tid=''): """updates the transaction or progress label from backend""" if label: logging.debug(label) self.status_bar.pop(self.current_context) self.status_bar.push(self.current_context, label) self.status_label.hide() if tid: if type(tid) == dbus.UTF8String: logging.debug("APT transaction %s" % tid) trans = get_transaction(tid) self.progress_bar.show() self.status_label.show() self.progress_bar.set_transaction(trans) self.status_label.set_transaction(trans) else: num = float(tid) self.progress_bar.set_fraction(num) def top_button_clicked(self, widget): """Overridden method to make us install drivers""" if DellRecoveryToolGTK.top_button_clicked(self, widget): #show our page self.widgets.get_object('driver_window').show() #hide their page self.tool_widgets.get_object('tool_selector').hide() dell-recovery/backend/0000775000000000000000000000000012312225641012107 5ustar dell-recovery/backend/com.dell.recoverymedia.policy.in0000664000000000000000000000656012311717746020311 0ustar Dell Recovery Media Creation Tool https://launchpad.net/dell-recovery dell-dvd <_description>Query BTO Version <_message>System policy prevents reading raw devices yes yes yes <_description>Query ISO Information <_message>System policy prevents reading raw devices yes yes yes <_description>Restore to Factory state <_message>System policy prevents changing system bootup auth_admin_keep auth_admin_keep auth_admin_keep <_description>Boot utility partition to flash BIOS <_message>System policy prevents changing system bootup auth_admin_keep auth_admin_keep auth_admin_keep <_description>Install Dell driver packages <_message>System policy prevents installing packages. auth_admin_keep auth_admin_keep auth_admin_keep <_description>Create/Assemble Dell Recovery ISO <_message>System policy prevents reading raw devices auth_admin_keep auth_admin_keep auth_admin_keep <_description>Request closing the backend <_message>System policy prevents closing processes without notice yes yes yes <_description>Toggle Network Connectivity <_message>System policy prohibits changing network without user consent yes yes yes dell-recovery/backend/recovery-media-backend0000775000000000000000000000520411757061455016353 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «recovery-media-backend» - Dell Recovery D-Bus backend Executable # # Copyright (C) 2009, Dell Inc. # (C) 2008, Canonical Ltd # # Author: # - Martin Pitt # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## import sys, optparse, logging, gettext from Dell.recovery_backend import Backend def parse_argv(): '''Parse command line arguments, and return (options, args) pair.''' parser = optparse.OptionParser() parser.add_option ('--debug', action='store_true', dest='debug', default=False, help='Enable debugging messages.') parser.add_option ('-l', '--logfile', type='string', metavar='FILE', dest='logfile', default=None, help='Write logging messages to a file instead to stderr.') parser.add_option ( '--timeout', type='int', dest='timeout', metavar='SECS', default=0, help='Timeout for D-BUS service (default 0: run forever)') (opts, args) = parser.parse_args() return (opts, args) def setup_logging(debug=False, logfile=None): '''Setup logging.''' logging.raiseExceptions = False if debug: logging.basicConfig(level=logging.DEBUG, filename=logfile, format='%(asctime)s %(levelname)s: %(message)s') else: logging.basicConfig(level=logging.WARNING, filename=logfile, format='%(levelname)s: %(message)s') def setup_gettext(): kwargs = {} if sys.version < '3': kwargs['unicode'] = True gettext.install('dell-recovery', **kwargs) setup_gettext() argv_options, argv_args = parse_argv() setup_logging(argv_options.debug, argv_options.logfile) svr = Backend.create_dbus_server() if not svr: logging.error("Error spawning DBUS server") sys.exit(10) if argv_options.timeout == 0: svr.run_dbus_service() else: svr.run_dbus_service(argv_options.timeout) dell-recovery/backend/com.dell.RecoveryMedia.conf0000664000000000000000000000156411751021273017217 0ustar dell-recovery/backend/com.dell.RecoveryMedia.service0000664000000000000000000000027211761032665017735 0ustar [D-BUS Service] Name=com.dell.RecoveryMedia Exec=/bin/sh -c '. /etc/default/locale; export LANG; exec /usr/share/dell/bin/recovery-media-backend -l /var/log/dell-recovery.log' User=root dell-recovery/COPYING0000664000000000000000000004310311751021273011555 0ustar GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 Lesser 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 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. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 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) year 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. , 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 Lesser General Public License instead of this License. dell-recovery/help/0000775000000000000000000000000011751021273011451 5ustar dell-recovery/help/C/0000775000000000000000000000000011751021273011633 5ustar dell-recovery/help/C/dell-recovery-C.omf0000664000000000000000000000140311751021273015270 0ustar mario_limonciello@dell.com Dell Recovery 2010-07-23 Creating and using recovery media user's guide dell-recovery/help/C/dell-recovery.xml0000664000000000000000000003277611756524612015162 0ustar ]>
Dell Recovery Manual Ubuntu Documentation Project &legal; Mario Limonciello mario_limonciello@dell.com Creating and using &app; Media. What is &app; for? &app; can be used in the event that something disastrous happens to your computer causing it to not boot or perform as well as it did when first shipped to you. It's recommended that you create Recovery Media when you first receive a machine, mainly so you don't forget until it's too late. This tool can also be used to run recovery directly from the Hard Disk, for the event that you have done something bad to the system causing to perform suboptimally. See for details. Creating Recovery Media To create recovery media, select the first option in the &app; tool, titled "Build OS Media". You will be asked what media type you want to create. The tool will dynamically detect what your machine supports and only offer the appropriate type(s).
Possible Media Types DVD, USB, ISO destination types
The amount of time it takes to create the recovery media will depend on a variety of factors including but not limited to, system speed, memory quantity, other runnings applications, and target media quality. If you choose the "ISO" type media, the ISO image will be stored in your Downloads folder within your home directory. You can burn it to a DVD using any standard DVD burning tools, and to a USB key using USB-Creator for Ubuntu.
Recovering your system This section of the document will walk you through how to recover your system from either the hard drive or recovery media that you previously created. Recovering from the Hard Drive If you encounter a scenario that your machine is misbehaving, but your recovery partition is intact, you will be able to run the factory OS recovery from the hard drive. If your machine is able to boot up and log into the OS, select the "Restore System" option in the &app; tool.
&app; Welcome Screen
If your machine is unable to boot up, press shift at the BIOS screen to bring up the Ubuntu bootloader. Select the last option on the list: "Restore Ubuntu to factory shipped state"
GRUB OS Chooser
Either scenario will bring up the following confirmation screen before proceeding with recovery.
HDD Recovery Confirmation Screen
Recovering from previously created recovery media If your machine is no longer booting and the recovery partition is not intact, you will be able to run the recovery from the DVD or USB media you created earlier. While booting your machine, press F12 at the BIOS post screen. This will display a list of possible device. Choose the appropriate media that you burned earlier.
HDD Recovery Confirmation Screen
A Dell logo will appear. Press enter to boot into the OS recovery wizard. You will be brought to a recovery screen allowing you to rebuild entirely to factory state, or to resize your existing OS install. If you choose the second option, the installer will not build a utility partition or recovery partition, but will keep all data intact.
DVD and USB Recovery Screen
Build-to-Order (BTO) Custom Images The &app; tool includes an additional more advanced mode that allows you to apply additional granularity to the type of image that is generated. This mode can be used to insert additional drivers, applications, and utility partitions into the generated image. If your system does not contain a recovery partition, the tool will automatically launch in BTO builder mode. If your system contains a recovery partition, but you want to forcefully launch in BTO builder mode, run the tool from command line like below. Command line Execute the following command: dell-recovery --builder Base OS image The first page in BTO builder mode is the base OS image. Normally you will want to select an Ubuntu ISO image to use. It is recommended that you use a DVD or custom built ISO image. This is because CD based images won't contain some proprietary drivers and language packages. Due to this deficiency, there will be a reduced experience when using them. Alternatively, if you are running the tool on a system with a recovery partition, one of the available options will be to use that recovery partition for the base OS image.
Base OS Page
Factory Install Development (FID) Overlay The second page in BTO builder mode is the FID overlay selection. This is the special sauce that is added to all Ubuntu images to allow them to work properly in a Dell factory environment as well as a custom recovery solution on a customer's system. If you are using a recovery partition or existing BTO image, you will be able to optionally skip this page and use the FID overlay included in the image. Otherwise, you will want to select the "FID framework enclosed in a debian package". You will be able to either build the debian package from the currently running dell recovery version or provide a .deb from launchpad or a similar source.
FID Overlay Page
Utility Partition The Utility Partition is the first partition on most Dell factory shipped systems. It usually contains diagnostic tools that can be invoked from the BIOS boot device selection option. On this screen you will be able to select either a zip file containing the utilties you want for this partition or to use the utility partition on the existing system if this is a system with a Dell factory installation already.
Utility Partition Page
Drivers The drivers page allows additional unconditionally installed drivers or scripts to fit into the OS installation process. These can be in the form of Debian packages (debs) or specially crafted FISH packages that are designed to hook into the install process. The details for these packages is out of the scope of this help guide however.
Drivers Page
Applications The applications page is only applicable to machines being installed within a factory environment. It allows you to add applications that are tied to Service Release Vehicle identifiers (SRVs) so that they can be conditionally installed during factory process. One of the early steps of factory process will analyze the contents of System Descriptor Record (SDR) to see which SRVs were called out in the order. The SRVs that are called out in the order will be included in the rest of the process. Any SRVs that were not called out in the order will be removed from the target system. When choosing to add an applicatin, you will be asked to provide the SRV associated with it. Without accurately filling in this data, the process will not install these applications.
Applications Page
dell-recovery/help/C/figures/0000775000000000000000000000000011751021273013277 5ustar dell-recovery/help/C/figures/application.png0000664000000000000000000026565611751021273016334 0ustar PNG  IHDRCwsRGBbKGD pHYs  tIMEtEXtCommentCreated with GIMPW IDATx}w&Uy93ou;[)Ko AE Fb%11,DDhlMQL &E`Wi.[~[fcڙ3g,0sΜ}O >@D$ =__qs bW "0Z,:imk2]L nk'|`W?/9v=a "ep| +>n$b13` Hn&sYğRt?|P x/װkZ b=QY">-RƇuuuh>0s8>:p.h6꽍a꺦~g3oE^wJJ~{NV?gG4Bxr&{Fl>";}Sח`}/H"?3CjBڜ&|0_.KjcM1P{A?L Dl/Ea[vF{'?_i7:iqWsג~]u_N^_f4Pf 9&v@@2?9sSgun~EkYy;eӧ3 ܰ.sh;lqsf=pz释QGc\|@ZpCW{ 頧p5|-k%LZi߃ 86O[hΚ;AӞ7Yh4/s#S6*S:a^OW|LaޞNϤm$zH鲃y8d;csƜ:mf)k$O~gcs89w )kd|iEy!d|л. ]̉ GA*6ϗr9X蹑6L{k՘s^VlJݠsڍVb)J׀-1ui7F*YGgn C+JHaRq9J))m~?h¿iEW f !T%  JW'lI{7d&CB&0"9_'8J8HDs[,u⊓<Skd@s ΂93џ=IZQjp1m`=ʸb3iLudeI;J! Cgҳh0#J ~ U)K'94~Lwn #d)așq@ǻ巎;5Ɓ%6<'fN{_gehYWR%Cp:3z[Y撌}Yƭɧ/`5bt`k P_hB'e}+V&Od{8炎@gE"`Zny_/"`liK>`ը &ڊ3ŴD}O]1EebTTyBl,ZͯHVjsЕ" F*Hm|4L\g- ! &blz0+ *aLII[D3ûiI; F4f}?B-Ŋpm*rPH֔TQh1%댺Wu2) B̮c~cJE] '_ʢTX?H Gq-!N1YBkD+{m@4mJ'p,;2$Н2$* ['i +:i" 'g_;aLq3y_YnJwbmUD Ðupzowm"XؗDq<"mܔP'DE>bOIQ>S.)iQ?%6E:5"O"CQH_>6dAkYcc>ngg,CèYG!G1:T'=k< a +*"S}$>Jy8cx' 43"l+vrģ㞁!fӼ4.`10PPCmP_JNUdC5LYqDrCFy"5Hgu0-CiLU&$Y˟L5tO*~ɤX@B ,gSB|Mܗ"r/+ ϓ62[JHyF|ATE0+gޗl"yih kn&+E}sJW-ϔq^cp%R-2,'tk=FT :$fB T'K.GqL}|Pju7Ox0ICUsQvk kF!Cs|MFwr>8\&f<%)<ٗdp!Slڥܟ⻭kXPL͌1=?B%) &^]b.'H|;c(K`#Om|,e}Y8/2'o vj*~Gvw[`Κ~D;rvbB>ubF:p-aC8+HH! % mkK'{8+GR:MLTЮh h?Mw1O} 3EN.3;>oW~7.4ܫ3@U}@?Q|}ce׳<l}1띱8)&ksC)dj2Iŗ~Mcc TNdeO>E"e(8\&h %4f(ѳd*7\3Qǩ]ܬta5^deZ`8rR@{xF d]>2 h¤D.Xۄi&3?:bՍe-soR-k"-Ɇ]3xwLOq\"lߟ'a]괰f(9 _IC!+iv߹8Y(eؐ"WJ(4ˁ7/t+w{E 3il X^~FC_|xQ f n5V&XIhL@%rL6H")6Eݾ]+z bX4(8Bq S{u#r$\yC>&olO(ъ#~).)`ٯTv'0r^ ER:95WR(``-쟷だ# >VJo5!eaݗ?<A+7Q1؆"dQQ#9sJWDt;ZלfЙc/Fޥ(Q2$fMv," d:~ LmI'+d?Xd@gGb@[mm9REn9 {"`:0̽DT`I7;Y]Fi)/yW<2T#5pcLŭJhw53̆V:/*?0}k(5d2U[J|{eOS|"6)5&~P}B- G1̥jkHn1J%-U1FϿ-ӡ썣`R&7HA`7* +E䢥Mbm-YIܢ|K[>,^F ʾ,|h&w402E9yY&S :E.YTnIZA )E]iLi1Xy׾EDcOuhhe3 @z% Tx,ӈ@,?PҲ43lFZּɜMEGy|bLfn&M-MzdthLTo6Yh* LB3+D%Ae4v"&*慃@η8hUIa BʣD:;u`|A J'xyJ'(ѴF Esbr:cnV89h`Jc EŲ!@R PMc@fS}PRNxa'Y`Ӽ1I#~/?j B(ʠ&O,)^GK/Q%'U)k6 )@FltE,?_' f)i9Jot}}GzkOv&L,;I?#-v  `Q'9*>(N'U ǟ3kvDq0ݸEɏ헔f0πwڏaQ=LZ0$PKLE*g)D4 s&>P1yLYaЁadŀ:Ͷ Ә|}#$㊩zw2-Kc-aΦCKɕ%S`JfY&V".g+$$g}~r"5A;"e,yFwM껎ЂOey(V;bMſZRm)b 矠cr0ƜW4) FYuI|N~BE:DHY(B@NZ-]5&xqU[H0 D\sj\a*`l|+M nD0U %IN@Bpȫ4;^)Oecc-BO̩T0v^̾҂;12f1_!GHd P<"-%㟺 T D^KES,F*5+NjxPDe_uW\(o?u|q]Gه/+ؖ8 N |Oc@S= :M9)Ax+l/2Vw!yij$1g+9_ u@_Hd+k]P 9TidImЊYODh`y"vMgp:%N-Kٗڰt#% Jhni-7:{F:5&cR\H&Xq:/.z:e^q7U!h&'5g7JceAbS+աR-?&q`&Et_jqj~PmEfc1NAek\t ' ґ'Vhz& S)J)9!gYeR1&DU"G| R]~Tw4rc%3u|`O;esw{tĄeMxVn}\e9vnL߇twXRHeV5jA `gj"YTFFVJj@lGT\k4w!20~y1@s@n Я =}'LY#/c,zԖ .k&;ktc,u}äBQ v"ZI'sY6 ZaxvպgwSդA;ʚ;{FN7kLynܚZZ#$3t/5 ҭӀg3y{-inysGu``m͓h`IXlԞ۔]RUl螡3:*#Uj%s`g8yLar85`=H,LWVrRs&@ɟ3]=Q&,po~t짻ů3P$OOqeEYV^oϒq- `ԭ"-bmZ0!H7\S>]!C77`*3.hUt!Axa`a q¸DnkmH̞_RsH@)rexLD}Mq {1RzɁv(+W2f^ʺB>+z:؏ K곯VWwE8G0F2v^)ܸU+TӉQr@<yBlr~ zybN &pAR3g N}a8x"9Lgjz#ϷNqЮJ-·ʘ ]f\1"BctbW2:U#0Kjv -+`ݤLHsH ږ+ G$ڐvf0 eV(ycއ{21ôBkKbF$j =B]7rK\{}?cNSP4w7p˓iHg2E<;1CI =./2^$VHfcח)קt 5wN&MŒm|0ęK+Χ8'Ȓޢ bP+k&|LɘCƩߜ SDŽ&-$%|DQ\UPSc̛6ج=)w6(s|R^hBۇ_PʋJ%߭8+?\7@mH7"Pܕ"ix# JH8fa²B hP<`mL> 1\J}alT4)AEo]K˱>8aC zrn uwϱcHEzGd}bJ$_$;{Ǚ_b/QߚDWw1ݽ#I~_w}zk$+.Үn*w}J]])>_\VM % WT$RKbi i|f) sJf砷lJRJ)RJ)x}e],!<dla)!"T}K)RJ)RJ)q%hv]+/ tifc{be%]å_)RJ)RJ)/Mh ^nC`0GRc K~n{SVav^)S2ku%$K?IH)=ʃRX)0XZ۲;TYJ)RJ)RʋO+oaGc pf4D"}5xPyVvK)l5!TAQ~*IxNz 9^ $JLOmk5de)RJ)RJ)/i9,? %-HA|^͙l- Ԧ&O)]K 4&&" v98f43zydFq<jygo̟?3fĴiScNl߾ ok|^yxVxϟŋai(3+vz8m㎋޾3ڭ6!*5JYu$\ɰkCVRv T_(ϬbY]][ j (Rv'pn,a.`ƊENe*^>{B@G `M0F|K^u/8Ŧ:R2橇അ1B?-*7= l܉č^z)8000!,4 T*UL:{'_ 7j`ߘS 'C=B݂mW188}sŦMj:.*1g[U_ /?i_#آ\x8h]1ãov(a0ؑDa 7Zp 6acSR"pB up( Ű8؅h~-*~)nq~Sb?D"̜cα<CDMf0`'#48}m֐$u"iӵf%GhNj:|'z"0::Q-{pn(¡@OON=UFvci믿h6N8&U#eRV`Cb=~_`Y=^۷VAX6*U> `j}+566"&sDL+uo/~׮PtvF Wɂ]SAy ,[oT0u,TGb ML<syu%{TՖ [B aRfC@5:1'kJ'h5hp JFj?{hcB2P^VfK5x+k,SxC8VأnlT+37< ~3xuq>-O)-ǯTM(qW.ڴCYo)%\D% ~g\:h6ǣkkJ*^|xk`0c_x3dÒJ`QTqG㦛nOg{ ,01>)euT*ছnAK48o,9V뮿%cu,}G#bjDӸ]~ &E p-pş<5,,#j>q=F{jt0x`?,ݧ'ώ,XkؾO7g??116!`_A #`7n`Uxp`©`'l؝a]Bә#N3q~hc'q-~" 'q?oY 0|phͱOd*=.&,pcz ~^`wtJa6Ϊ{Z-03Κ׃=xcmlh\6Ua3a[,z 1+R m8P3 S$ۘ\LQPՋ KpK~fCPFz X)VNv6 T=a1926@^L:U0eZ/*y`DjaB.Z.@^Lqlsbʴ2kapTߝd*N}2;ꯂM8^sT=`88S1 BqhM`e>;~CǷׇWނoBf=>ц qz_&1 qE[=đ< ^}+ͦ6VV}~"0H@&S{y1ö}m=Ls AkqϟFg`=0Pu``ڂp[3 / ] E᭟ΌeS<Ppތ-jRYb3h@q OdX6j5 jH0vjh˟D6ڡu]/XglrWmK B} mŎq6Zl^tkG:ϙ*S/֜/?unzJt_J)-%Z{q5RgQi[7k Pk B&̢KjR.'̪ v*{ :Ohm9=-g|'^5׭99shu][F% HK̝;׭7׹sg|SNL-܎v !u ]=7t@Ӟ}y5]`o(h7Xt_/_}4O! 4k #k+űo0TL94Gdf* j{[pk9= Ǻ?/Ug?GcUEbpxܐX ^Sn!B8Sq3`6|C F\-Hgܶ/} iL0 m뛮uh330{0磌q: KA?>klh3X{g ށ=nas9MDž?nXb!:u>N;dƠZ0qmsqXx:<5󽛱Fڠ^D:f*MXuǨ31ic9cp,5=b᪷7b3SS=*ZoL~Gᴥg̟xEiRu^ Vu3x;ccϟ$̏PJ)Gغ 8p؅M.Up@}/ݕtU1:yHC[ 2g195 u{k3_ìm^t1ϷxC ۨS_z,*/U!OR\E}LzSZ#|g!.Ű>/F\Sg:/{gUkѳa Kf>ڍalije1`_da-\0眏smuL`p`7_:kzbkߍ}xGca<>Q.EĪfޒ=McN].ف~ "T{V*=f/c,arc8?'H\;1Yx5;^%=h^GXp7ibavVa6*S1e8*6~߶#)ѷ =Ƴm%k!^­UFe+;,,>7umrndvrN'}7vm,>~OpRzt̘R@֍Sp'8&cUc.&Kp1=X~: _?O< {_}qѳ0uZu&q r!{ٛaY;OÑY} 8y] m\7u.Zzp ,zss) c4P$ <ފF> `e-UdΟuu(sއG}xq`UƟ| 0֎29B)̽2*Ux=e>kSa`<ƞR@вb2?2jjqуV#@u~pף8q0osKLsb}|= >c¿k*]vW|w~숹7r,R@Tv>b4,nAΘ m'&w_=sN<~z)"gcvL9||})6=xl܅3x\n=D| ]4F^ VAg j_vz+뇎ԣ݉ys^W??&LLd,ZW5T"{ ۳GV/}+ j߯AۖJ %0_lZlVUTOeX Ѧ Z\{'nݕ-,g0~\Զ:jHS±agwBRש;j\wb ԥ' 1s!@m[W\x 0j\BΊ2=__yj.Oݗpw`ysCzVXIAƣ$pV1|=< g o+](1%%ļ2}l=U9CvO:Ryac޸I`[pwɘ/`iN7QRJ=BYHRھ>AIh$b_ &c@KQ5Ls(p`ܑ&z]2ޓϮǵO4e>q++F'M7b>W~1U IPRb<~f;p&p. c2Ma&^O5z:cF&AYDԃ`gٗ񹫟Bbsm"A J6z;+a=Ի\_~#P0ȭ{8mLt#.8G'+pD/ªUQ g,=~>ݗ~?nX )z0כmOo: Gfz㨃Apmkqܙ `ZUYc? nng݇%o[7W%ބ1wOyofbժ~b8M`U+^ bcRAdꁸ&x QĜyc>6exIh*h,=I*1%ڴ֓W6ࡵ^3@-}df3pZ]w)Yh?5.gDž>= ]Xq[ atĜu~y˟cN:u`ń{ҸK)swKOƏ }"41n7(%nⰊ8^9|}Q8>Oۻm4y' ay8 ;v`?%Fl"Xa:^0 jdq7(ou1n3 .=Xf5FMw`̈́f2U7+:v<zuxdA }5 Zq+Bpgjyr4sSʷK"P}u4%s`=,! ϻɨhO@XrYx._m=6z*MoӍOx̰枉gq8ほGa d+'m0 8ȹV< ;Ö-:1'e"!,I@:-uò; w h&۟5=6jUXENMc>P?Οu~krL%2 IDATc9<k!EOB\凜R#.Vph"1 z*וc/~꩟"$ ==SޓŁ87aQL|责QݲpwzuNݶm+{.$,{۶e:ၟ~im7o )Ѳf㐓߀wɛq lX> =_^v8 7Nlk3@f_Ŭy@Em+XC_=썛~. -ܓ؈X(k^n]Bmj1a-b1<~. u$kF=z=WM=o>WM|X;>[,='L=8Wii 5 }F͐k}>rL/߮EgaO3X*x؀X$'~ #6:۰`9Q(n])x? {}xeΕxn蝱,3[sFj{[6j(4 1+5oh 6gN_SS$ky=~G`k߃wg0d’=ߌUmHGn=4Ñ[3_'q+fͪJ[ٷqࠁ~wLXGMUN] Nݮ1(쓺Ω 1m.ftJRJͅaҬ&;\6HF>A(̮(GU"-C1ޖv&0CuZra ؀ ۶m3PU=V^,}ߕ.Xz`~ؾ}=ud,PI)1>1Aqlݺmc4O(';pɷ~mDl ?t|X 7:hK'_m6ֆR 23;q@%Fq_[|7^5k:{LJw(63\d5\'%13޼e9L\p zݷFDH0VgK&K|;Wj gq u/PFNr­cR.XܽLr\~YIӺDžma`xb QRJ٭% 101t0& p#߻,_Ћw`Cknts8tKXj ZpZw$3v<:kV?Vˁ#01<=22 )%mYmt)6-ظ ׅJ9+ W\~pNM&|<8\ Xb|j|~؆qSplhk5I7Aُlzlr%fk=G+[p lUV +>xz[ .K௾d9|7ma;Xw/ǖkc YcC!LuTa;X{ï]۰5Hv%BЦ/+xh xJ_OXx_?_'QA%&6c}a '\q5xxjK xV,nNك1꺰U4RBsur3NQS,[رqWLĵP멣Ʒ7NjW@7#=pSlchݕ 8i^_c)}cTY]?~okނ{XO={NҪ4)lnJmbxT)߄%E>Vlmb9u.D;wZ2y~<KOC߉5-BK) uyЅGO>ȯQ 1f !3>XHD0BrX‘KcScf9[qtSQ|('ҝ31Ķ(:y sFooobd||7n2`(z˲>1C y)0׭[fg|RpNKfԶ PHKo)F[9aۨXAD%2`UmTD;. Wa)lyB6,8SZJGDAebS,lz*j`^JKJ4o×?*h=^-7)J% U c--!W=+/DQ{Dfˍ$`UEjaf>A1vE"X6D-HR9og۝~beoͿj5\W%Lci4]xEd48 UL޴ƒ}-MQOb)ܵ7)3 vlP1 ǝ>tl?x!mǒQa Tm2M>v:/M _Y#6G^k7yޕR|s0P+V,ؖ۲! A 4 `= zf?/`QJa(NƮ'"m8w+ukx݇Ƨ@ f <_uc``}^ 03FG ڸ?wMA /ڵ0uVyyn16:;1ԥ=Z PՉ5Z5; ;.PE5@r,zGS 8J?14d6DbUmtL@ r|כ6$^BBYq |Y lwp,EKB*a%6 z<׿?1~X>Zn;aYCX'~$V_R r5=FwG"tP'Ab0>DBYD4[rrvF+ZPZ| q'i@ R^X},T+TD: T^@Vw+"`rp+q%/|7`7STQT`[ ?G"o}̝尌WePKXҌ.8YĮڰaxQKĔ|.ϢRJya䜋ոX!+3knD9@7lRvWRJ)RJ)RʋG'I9 7u^5՗RJ)RJ)REg򙃺KL<^deJRJ)RJ)RJ4לB#Ô  {TV)c.J)RJ).䵊~𚭾X4=>UW^]R^l6zJz%/RJ)R g8.Ӟ M1 Fmtas%)RJ)RJ)3fe>3=;~Vdx*fRJ)RJ)RJ)8]v1wK)AB O8RJ)RJ):'@3'I +iy|IKYJ)RJ)RJ)d.bx\-(~6Ь h\YŵRJ)RJ)R4tl̒,>oan~;%/RJ)RJ)?5oSRwl녌yJ.C/]sJ)RJ)RJ)k칻}:En2OR[(RJ)RJ)Rvdz5s-ώ7j zNa K)RJ)RJ)L9:VD‡JnpHgRJ)RJ)R۟[;_!{t?~Q]73RJ-J/ԓEww'Z/yQ`1}}|:_D;ƱwW>fRB.\5o84*rvoG3i=]_Ͷ!.T{4XM \sq-bBjVR+c|9Kmܷp{i(ю:to=Wʞۯ$}.\^{r$eSTW`ʨ MTrl6-/<~UyW7whc8.\V E\%d`Xb*Cٻ~y127Jm?.L^@='6PX^DAYFJ(j|;=3gbZ'$$ͥlARQn"(u.@$0ї$ Y_Yɩ=m n=Mm Y_ЗqKeEQd, |Gv4C( 2/UdPJ'8ܖ@rb.uM=4w2W8ǹ:S֦ixDedrȤ8~=qxw1ڜ/@A?Yz=x t<a kPnXTNk ]0A$#c4qvΖYd*c<ʍ*ٞ̔'9_cAQi #D[wr5iJjAHtax^!)YImIMGv%wKe!Ef5Ln@ ">v*3jRq4ۦhJ9{73ԅZ@K/=Kߥ<{g@>'R İ>qhD^|hG[OBWSx;f8y~7O52i?p ~)zb+8tm$gM^9%_h47y}BZCK9QjFŐwpcd )-zA@P ?wGE]rwW߬hEN'yvm4K?3>L7w`=_Hdo;\((5]zmLN·k/uynxnP%WxJ&`F?ܔR2}VNW*0{GtgBH {8=X&{ޱIuE@&~Z2 K'X)ݣXĖo>a=DSPB]4oD [΃wZ/ S.Pbp>O4 3`.uɟSGQ<} |E!}f4^|K^'7xbP x##{UdC-P˙P19w1BDŜŠk\u}qENX3N *pfA"𽙄(]?oLQ}Cs c:X zV^(GԆ}I\#aQ,&5PX7&˨Ɏy}4mϡgN sbN`9cQUEy yo$H%fn>=u7geEG IJSSq=C5)hj3DzoL'^vֿa$XO,r,'rԋ7U":Hw'=ݐn7"5;=* ,-stق&?7݋ٿw/?.îԾ j&U8GYU-&M .b3\0ko`;85 ?]ft}IA $UXF>w"IΈ0QOzn :ύL4G cDgeBܘa 8?*CDVdMl/w^oQxⓃuwOKo(Ȗr}%;ݑ@!@ ":DPz',EL#F޳JO'yP!mR6t45uZY@^5љhk9L,eV$xz#ŠXj/;֟By[#cL1 UjAq3o= Ym- قXp*sxw!Dkɲkؽx&[$lCaL q $&&wo=iӮe*&kLaz Lrj|*jP{SOās R Dh!lg϶G2sFzKUGeB#5T#4qiB@PU3ʵWH$!DiNyl~ TQt+ȝD EV\85DEC9gH SRpǮk.n,ܻ]P| Jâ7?]*} 'ٳ{1:ܒd#u}5{:VfdF$C\HuebP=>8U &@4X>5 5_&B:3yx,Z<OҀlu"=YˢsXy<u2u fF)>{#H WAՑ!R@M{!CqNqdۂ|qrBs >H4-y=XgϏ_' pov|t64'LxG1QkFOP2qd'|Җ޷>W;Qt .yXq{;iSMQy H;lȃ x.|_.7:2Fqx/ xsj]QKeҥǿ%293t|+7 ar#$Fc南g1kWmJ4O;Yt~F|0 ^O40ҋ.0'1jF͓@}`waKuƾ˥Kt\ϡ뛲!B(Bi@# HY`-XlaOߢRdhBЪ W3&C K " @ӰTEU ԁP׽-0VWQkQW͵TWָ.9-$4@t BZ1PQUǧ1eІ (7 # CgdsS\^F0*k8(us BU# 3eXf6_ ,HRFa94$+( fł"c 4#,OK`l!9p#kA/?D?O~T0a,O kh5TJR9`+0}@(a9 d%(V@-8{OW2ɘ˩#'?O~k!!o1H>}t;6Xo'?I/|i n ~{J0_bovWed[ Ri׮Q*9t_8a=x˕RRʶYυy_J%L+MXV2蚋g|+/\e2K6|ӸCȊw[{SGƾ?~/JX 92>d9{VbCI冢uvju|TЧUtiVUnn"/SF1Pxx;NV,sv,XKSxY#F镐Kɯ.!V΁=JS֢pj5]c,KDl +-3lq?L^i<de}*k<}VYu/ź4*I+H?KJ;ɼ9 P>Y@! h;{A];i+kBHUpUFDCnѵ8r1Jԓ:N~O4m0rj;|1wn,r 10fokૼgڒvD:I U ӯb-k;ZZ$2I;ܝO{.T ?Cɸ;zj/O@s'nةч#.GVbq@{O lȊ$I~+O~({EtD6ߔTB8=s{}_6梍|SjJ>܃\OpE'9r! U]ՖVBH7(>ŞY5i>Pv?ЏHj(/<ƦyG/O3"cǶap>Rh;΄ |m\wl+ (Êb8 [!-Յб,[aB h羼̫X EAƩ"#B;B^aCѴCkȣ\o6ӆ&d8ܖ^iZ4V5G]Kj֕Q~`@qc۰ڃqm|I ?|?Fr!@BHln>G/MzfzCN"?\Bsam?׽Eȱn_i֎K5M:V^q᭷gaJ`Q{~S+\Ξ?bC-)^ЙKؽsf-N^.67͔1ϖ2.Ŭ%8VbFsyp` jKf0sNYdrդ۸a@ *_c!W JlGD-Euv⺌`$ƟvrĠǣq][dz1ٕ@zFy.} gטLz:yiIzmv.=W,t9߰x ]ZX1Qcöi rpvƼmu-[Ky\Z<=N^צEƃ>A[ٲQ'GbpVizƭ%2V74y@Jjlrl,s[oo]g#4t >YOpH%0x-\'Z\!@Q>y5T_zۦF,x҇fOk|eE;*bmȊF}RCv~c=[qT㾒vs&t ۅ(Q1"0r|TT۞dC_^b|&[Bָ[y<+Qq}(ja7y2:Oonj^XL剁hK fL &ϭ탩>3{!~zwPޖhp`FN%5\"Nnؼ0t'čV @PVcʬO'#o 㬷k;s7 X_zu%Ih*8]ŀdB uuTؠyjL];EVcs$j*9t|m_f|a?]IiGm_a^}:[kV+z^vF ~CDoŹ2ظyXX.ϣi CQib\Ξ^ՐEͽȥ]-s>x_x$jMƗv5kGYкՇzbg}<'fG6ݝ (5 "9m? yeRa=/O~t%|}7ɭCbHObbF2{"Gȓ7Y zED~Ǧ~NH|rzH;~72byy^rܴtΛdS!<|g CgZ:/ED@2q0RswB4 łY6PVt-ḈfT8WK*ZS&99g8|*HZtL E-SRk7 sh ifx1Ѩ*v.昘TUK)皌:LlY5)IhMgشn}I҂p*١Tu/n.1N)>)>֊Jj7ȇ{򨙐ӌ0$'L} 25om8t{Mt'#uPW|/ox ja" ]yGDCz% 3:I\66ֶv!7+8s mL{7?3<,8GYкӇ=T@ducZW|.owxsC_8W;HKVj҉Ӣ e^Bd.'ⳔbIҶ>b+LS`93o!EQOzn :'.0hB!Tˤ(:fǹ 5h̏%ݼZ\+o>g^]aRQB3\^o[IM̵FVآ}L켍o?C^! 9bŽחu5Ob0<_hdsl0l<ͫX,fjy]HOz!^ڢsM!l^! SM :%͈ 3݇2t&`0ŰL-9+&EenmZkM F'+6Qx8^WDp+gKu88W}*0 2 _jh&u7]^ikKy'ߣBQk~W!Y_`uG9T˩esX[hp !з>/Zs&HD>mh.du̠]ljORAށ=?v  !C7ztB'*ȥ[cIԶm?]YŒ^CK-(fJ~&S#hTkjtІӾ8uv̳;Pj_fcx~DRȪ?`Hgl@-R+a[>m~ױl>"/׋&rs:Jh$S 9ޙĶQ4,{4DYsнa#1(Yvz8zW 2g+g!Aҗ IDATע1K|ǧY耩!dAZL NԵhڴDx(ze;+X?kV$z3!O/^6U[bZހbI;:}kYhamK rwy;z]z΍{6ߟRzX:RW:4d]Q b4ZNFjʊ9uxHu'ٹr{HΰHt< eU[#ϾWߛ_H&}_i:YƩ#HT)Z~dg:ԇ@݉6eّGmtPeZ1#Iʾ&)e|Lk:( T` yU8;Q٩ 83Y+N3P ОѤI#2 8w?$R-RJ~eQam@AAKl0nȰҝa10XinG40Wsq^C;F!Y:sRڌd׍׵CAAOztM FM !4<ח4I$H.b-F"63GڢxKLfxv<Rs蟝Ô1ɼ4}>zm%7~s2&ߥD'su _3w|DBMW}qU9o8w=V 㖬 +?Xhx?E<+JqTGN1h綱|2+G𭉢cś]X2WubP7՗v:6vozWs =WaO8ă}bxXw0 4)`AՁ l;LGu$VyZyzOg0u 5?ňxnԻ\ktiӖ3r Kgw7HFҐF5{cRu\سY{eobntxfxjE|5{cfxF$ʃ\i]'YN4ϭ,vr=NdYiMRH/ (u/ ],]qZgߺ$9x}abIՒ&&#/,$`60+LFH۷S#!2yDJNnjGP=+~=7AK-߸*1҂P*I(U^˶EvxCk`5 H+YyHC R(ܽ kע5ڎEv]ۙW3.׾m?2n|gB`_R#':s4"F@ltf,L#}S'gyVh3|MFґ6y2 (HD&1…W\Ed|1GB7bZ=/msȭ\$*чWZwH<c1D <'aXl_G.~ cug);pAPbgNrer︛`RG=Fܨ!~NNxl-59_Áy5cFѤ==½r]d0߼֠\┗9Wz2YԳËDzFDh[,w&[D:hH̬%< BTNX[Yp;y䝰R+>|ZZb 7>#!BIJ&HbP@h@H 02fY$[02G#_|1U&f$olV:ˠ놓7Y7av?/Ka)kFw"n-We='1cb |V}eٓ3 aQKg ƍB$XGsӀ8TB2髰ȨAH]B^&u y eӬv-73Y8Ǫ=qKٶOWԚd0r1rtkг_8ɥl{>MUsO{=_:\~~%gsCp9O "H@N^CѢhPT 62/Z\Qb 8(qEQN!mߗۮ3ݎ#kw xC2fDG*M-.[\ŕŵ!ĖbJZtk u D"LQO`2PuPPkvl[-<Z;u;ڈmOp8?e<> %K#|JC.MsIO~_.9U}lh"mUs!,ǥ^8.Kpk 7x"7-}2P'Ew @atQ)Lʗ5 H6QKȘeAoe^kOE JO%$nO~Modk%~) Rt&5#԰~_.qo_u榳Օ:;uJ-\9xJj'Yb6cQNiN̎iTMY8yp7Œί~x{)/F%cddЪpVHADq%)$eB1O4 KݭБ2K߯_9u"v~ ƽ~N8[V.= ;[(RSQNCeb7of C)gϢnjNy ='ZB8HB%_ Rc 3e8gN{zFS*o? T$Tcj0U qQvNhji@aߵU"Pr-**ZvR*LnK=e~"r'?Q&2'?7V/FqM޻nOS9c^֥ެ*PYj%+V= dȵ1)7 Ⲹ/)S0k4w~a=ێ\@րbV2 }9իֱ㬎a24Mk_ YkX`(DȄ>)Xvլa 0dk;+V7=A+9,f:Aeʯru>F/pq~nv:L9k/;훼4z?IOmVɷ.c*f3VRQwCY 0SSv25jܴ_Y{1ώLY*orCdRbCP)Nպ$Subf,f"jK:{A=ô-:(>vl{)=!|~5>?J7oLsk_ŋdol:[F45^ܰOa9J߮:lQ*L?WL"cX/(& ų|;)[1h$G·E eظ`(w4}vFs'+Wҹ}h 緯IH<~ӯ˸Ea: [f,;~9$WjܻaQLoO͡^ֿoʟG[f%@~b3kvt9 nt%gˍDPb'µ}\-_2p̂6&& RT Pj9s;wJ- #}<;% =Y~r,bVټۜ`D iKrǘ :_O;8l%>LooD:fdXtg~K7#-Sۇ1ټ~q'L\s _Evk=> \O ob)/d3GD2#Л'_z\oJTT/Mi:"ҧR?bC-)^,cqocW gͧ|rAPb;"P7,o}㧌-ϗ[NQXn@b)в\L4z0wt`;_ (sUwG휭AJq߭I |0SF,v:]4}N 7Knܫ,zw7잎=g˱8x}9"PȊ5b}=hf̽婱Ih@VY%+Jg0wh j9T\[$83xmlθ!!"н(]?o?x<> 0p7yc^]'zg_7xbP /O6s/MD[Yy]4&%Iwsm 279zF'mtUE+9~*G6 =ZJ`F`)Š(KRMpZ"^h>kwz\EI_ɉm9:BT)<(mZ;&M=&?m탩>Y֪]Lu[d/WS0yN(Z>k7ymƓcTd؟_L1Ї/}]ec^T*f'Wg^t{^ƅL62k~wd"w}Lk,>'?]>}Hrx&s+Nf;V{j]EZ:ַlb.V?NxRRbm)WIjcf`9cQUa"7nF@F;ŌNJjf=^,BK9umL8_ :w )5g%g@by*kV2BQv o( {aC;:Y Z(ln[fsC]|=tj(_o.m: cǿCl^D*6gӤ뽑_EN6n~,#ls<~ suoXτ\~_?-^#2m4$IJM 4A 'J*iETI(( #.X&X6S8|ȴ1ys4 >E 3gh2; f=fpU<3l2SΞBܺZJRkcQP{&xUO$2<:0YZ2/-BwȌoyphL]0c!mH rw&q%t{.h#/`'Oۨ6XѭJjg['и|?`Tǥ7?bc4 f//'~gDfrkC?]׃oи<1^4!M~w&^ !:t*7Qf9 Bîet8; sG?=W A ND"F@ 2mXYfo ѵT+PVw‘C39z:,w>87xwTD7%C,|aӃ|F_0qa|>)bKTiZe'du]?w䋧xBF E0 щ9@Of,r~ӧҾJDCC7|ȼY"U((}l1DS+o{H^&! @ШH]+),ķB{ÎTޔ w+BYYY$ǞF;(ui8 aBF-C^[8)0o-+5Kau\$ f WTCa]\md{ȫF &۴vNE1\sl{S6/Yg2!%o.9L.sFR8mm$raM"+{~/-l_8`- sxDNR^З2M+Ia>ԧ>md~RScK[̱;1) ӝn=z#֮dB)=vx&?)(^KH ?9BH0e6P+ )%H{d@W6 |ӧŬeh^ńA)3q"_nqaFVFFH 쥯怰\6YqĕąweLN,MV3yg+~޴gDf9d#)J:+2su! { .?g~/.c2ҍl;Tp\<>?t]΄^i4nYȆ&$p\ bűE}(` (XIMz&#Jvg`P-Lr Gx1ROI{>c g.`F-%fkgr{)/|F/D&C=;D:=cf#4=8,7}e= ^y~I~>kN?{yA]4Cq;4~Cbäxvx Jr14S0Ed{47]dwAzY IDAT*.82Y{@.U\/M DFo“OΦ?CC`xŌ|AVM=2rT ; <<7iO ^{ KOֲ$hvf?nn|<_.U )vH㔑D1 QGP~vRq,y2/Wn7Co7>AJ#If0s ^(˚Y]8p\_ɭߨ߯K[6w=Fg9A߿绶Yϯz&R3Mh)QP89{=B0ai-@*˭-|jD WFi%g"`cGj. Kh(=B (K"RJM KaYgOȏI6V3{Wbk gV a hw>q@4cH;V8+z>܋0ٷMFX>'<Ɣepg3gJm¦ՋyOAbrL[A ]ׂVp)4{Z0PH|[,2!ͽYo1+u*;y~ ײ~"{GiM#9)( +Uӡ6D_2|]& Ҝu**rh. Ǥ@A!x qsR!۱YlG{? v|IAL5=Yx{O!3HtvN2@a0mY4 "[mX'^æzB].L]`@x5)p sgOC0bۧ+h;z;7^E\%e`&6DSϘB_ʅ=΅J ) ~LW8Ek \}ZBAnuBGSv=2k}q8i%"῅Vֆqq;<.Й +Sl\I{FMðc Xxpڲc/lqg+5_w69EgPjxKj> 3yvjj @'4,:Ƥ`y8y6–QLρ#Z8D)ٳ#>{zOIO/1 v:@#IWo8~kGa6/:0۾~Ӫa|lBilĦŋż<\mA6X BPJ"F&a`Hy-l%$ wiΘ6 >\38o@66OMjӆ1uJw2= P39ns?}YQar>dǤ tˤa2Gp2ܲbɇs3 GW[ ){p6֎kJ#HTUHL??݉naױW|$^ >dh6pਟ%4ձpl>YJ[E[f)] JϤr$K`-P9%g_LImLw5j<)CQ_L1\RvP<gRZK~QWN:bQ#QPPPPPPPH_qaGkd|ܲvߣV}B+Hg5"pkp 񅐟{ia^HUWsvO?2[Eϒ[/,'Ď&1Іa۹UwqvlDA!4H6&Ig6pPՉ~C~\{:?l|ZJ#=n_AAAAAAA!UelaC&XxxgB#YZ\XEY~<'Jju 0|Rh-_bϸQؿ;Y;Лc{q1&3NYC1;Nwn Ī7`]ɶ5c[,s5q"pNHB, =S M tXih7fOd45)vhq"759쑭^ZU|rCO[Vs|,IeCT8+42\9t4zZ|&0PGVR$;-]@ ^S^LPu=fhS%mZ{@ XAmJ)E'Wd9&=Z|[o}UZu e*uNs?h(Eۖ%+'v&V[9|MH8ڝY_ECVBeI;MK9=dz-8Iՠ|>[ +L;#" 00cg%Vnzu-IZg ڨ& ,e԰<^[Ŷ.Ѵw\E.PI!‰}gcؤ fh?vPprW":VXl^1~Յet g"ұg1`bIt/qc ~0v.X唏͈/.耫r=Va{UyZܺ\-[;'uG}IdHR6Βd pR~&eo4Fus`E 4MŭQPPPPPPP4]M&6imKWAXEM:ڞK)?>B MRڅ. (ʀBJ!DE{a ]JIiaJ iL\WS Վ0ۜnl f<ްCwezijpd4hhQHKs 448qc* Ŏ33REÑ[4PH;qmAoɏDÙYg:Ɣӡasv:48ޮ.†;+ Kykv֩񬠠3O=A>4]n.'NMGuJ Qy!e∔ZJ˂N GzLoلXOW RABZXkDhKKs7q"KKh"Vw;5cxfp|J{3+vp_`ijW玶1tXF<4h;P >hΤ&Z|[AF[ rn3CQ AvIz}ASK籮N,P1-5HR$B=g0;Uv܇lzUnA÷Q\ܟ ՛4xj*((((((((t:]x˗ؿC8F,+]qpo9i^xQcRAAAAAAAA}4Kx0WPPPP IAAAMC.x^$Ci$^0ۑ2 oO}@I7 X+(NjWPP8P1r΅c l!i 6ȴ`KLSlC[" EG^/:I \*YNLb\k@ fee9In@K2)|٠WPP8窎@udgMЈZ-P`pmٞ'σN@ ߖGt}NFnɾ BE[i8-_Ce {W|& ǦNi.Z5(sU'aYVT}vd_&3AǒD,/vQD?qV;`l9.w:>" h p7 _qƿ>Wunʧ ?u[T XػMkQٻ/iؒSsSP@AVUtg`Nu_+p: x# @l]FhՁr|mS[;}-١d|ݖbV#a9ޤ㣥c-l0)Kpkad(t-~S.al1Z5B$|7 :DbS)x|43a`nUJ:kSy~Gpb+{?4kX“|y :.!V I. O=t,da5 {f 5Wڝi6AOjӆ3'Q)7K0پt)kOǴ,g+}IΉlI/m֓!=2v|;x_ eLulv>ҒH3O񯠠`:9&S%-fɢE8gÀL?5MԈr006Őtg= >\ř7 09v>}I - ih4KS/O`Z${<[BI얍fj0$h"\絓CĢ;q%}Лk'[Htiw,֧?^G4[jșL 7]V~B&ww7ox랎+T{ᦨn'g/o-} gNЅUkΡ.iڱyO6Ӌz.7\6Ά@~z=!ni$YiYCk=lt?i]'hN(#+JM1YDgp3?ːg:_J. 3x\D+8sb#ԆG)04J`Gc=^S P.Ev-|vhb@NUǞ+z)mipUaY3'׻n])c{+i?žϖS-A 2J%$ded?X@66An%sȥ3"L Cٷw'| LtjKn%}Ŝ3"aZHO7{ %d92rldO3+@'i8E~41rDJ+BIEp٤iB[2-aڭbZt'̼MmJ*11ZMmd[ !@h:Z e@J1' \3ȳٲ?Xv߬%7\E\C;|44]'҇Oy_-d4iR#Oxp;K}us"1Q}` H4-HlS;ODH?ec;frnd%OZ?zӆt 73pDv&p8΁Bw{A}+`/DT`X)ZԶ_c:Sш9X&fe!1~]mݽƾdaoS:=3|Z=-lه3r.8Ù]h0 wag;9TӄvK"l:qAi3{'}ΟB/؃$c7twc6Miy<9|hu7Kfnӧ/%< qg cv{gɕ_z}c.38 ZV<0/,z^:}KƔX|PA~b }kpחT!;V-  dPs+Iu`+ǥ HUa,mVu1{'ՍCCVEK&cfԧ^졜7;Nwn ĪEzcdۚٱ- XiE3c[E} ):{ =efHl1N*4͸CYSg~Fw5̟y#Ya,7TqY=|6E?}[sCsgf_-7'Sְu_rкfP~S42xcH+Ԋ{}:,@4ìƆFV\si5'/n}>gL`IƩ>Oo~]GZq} jR`K~ VGw&z9ZAHf-7Zݕk~qcsVő,Y{ɞSyo\:ۃcª_k?pՄ zv)?fζL^ K0A<\Vb;>41)ҩYOoaIyzjiZm#ރK&fD9-}#6W4\~ ҇"C(cs2^k٤{Fh9`b&YD Tӄ!ѣNE3gRiE;:q ;>]_Ϋg\~c%P~rMggk{܌?VF-9~"ٽr7j7^--LNYC AP-233*a6Ȯ,+)2͈[{vnx2rfmD1K9k+ &1ǿ쇅 {^k XȬ~wˍ\V)ыsnxlR=.r' &cM'`2`pbvP ;27ɐUM@SsMܣMw¿ 4[hיIA*Κ8^y#l%\R{0EPs]a+0K7b.rG^܏2q9ѲrY-[cyݑAAeЬ’䌸\Khj>l$`L-c&T$[jqb',+78$ܾzm匘>.ԞBͽ] ߧZPo37"Ŝ28C@[V"dH4mIl7ճ˃o5}]ŎzVw(a$QkЮ "p-n[&dƝOa6A2G݆˵sG·߃p.[n'uԣh< `lcMF4}b?>\ϙEN4wHi#-+ܶdPyc7"3δ)b9=pLr>}isN]dp#N Nʧ]-k>^--a,RfW&c.^\z4_Cdz$"oYsЃ,Csc SN\T^f1Myic z+;9?|n6k/ʤg~"5VB?(.-^U?껞'* ɵOicB=,솕4W^bMEUPP8Ś-쯖2̢Av6msr4ZRK뭫oܼ O#P/ɰ0}4u|U!B0o]ON4?2&8ÆX945+M XTVbxL`T c|ͭ_ sy3_@[if7-eRt h[֟qϬ 04Zg?F7B 棺6K"\z9xw̪N/g5/g*#Kw7Σ˙5g0[gQLlsHoF;$2o,@yJA6/z2UB7F~Ң>a&f9֙LQ}01.-u~ 6J95$_0dyg ±Yݿ2&Tiض MWULEgŜ=a;CNnj3)-/ ͪcۖ:Lbx߿ݔ2M,aA$nSxIٓ_]:+s{礛Q$G$r?c:󖓌'!~JAڙy>hڇ|++l@4c4ldW23c*i3oD/7,܄QrV|2rV{Fϰ-;z_\nټ'J0Yxݡ V!h:z';^y]F^4۾_{?o\*FSkn`#2뱿atOUّeX:]/1wُ[~& lW@0Bh;E\0r}t6 [n qBzfheIA/W\ dDnz3<',oUo9q <ы`T^3~/}G7'}s02z\?i%3$]s0,T?HIk꒟soU μo>ʴ\0RS)m[rZoP+͘D?"@JkЄvdB2R )e.aZ&~i0W2iʴ9GDaKXoK B^vngat6Kv~8:;=ޚ4x~218 =#eȨ3m+. |^_ 9G2z|OAA!UgdS%üŷt44Åu]D(m’RJK/hzڲ])NZJyDQ/A[e2KB̰o eUsk{ 1fgy 5(((t}RyDУh^ +DDG!}6ǜX˘IM}R"4]ȶI%jvfΒHA~Q\4Ox+(((|N#CRdľ%Gm8SPPH@Э."fX-xf|RI%Gr'|Ie`|OЋDƿ>{-I*\'hmTȠJ-@TmjWUC,˼@U:Η!ǦT(|Gm~ǿ©::h"O9gCm Ҋmz#e o-—qܫ񯠠NĩF uI$&!n!j؃n5C6"U򀣠p* 4 _qƿ>WL௱ib͝%EX7BF0d[mAЙ63++D!O6t $Rm鏬l%wB؋TI|*jW}ޥf=~ƽude@`$E!SܦϳF -ݵN,EZ\*|irJ 5F1J'Ne"N㥗RFz i}t[B!E>d+y @NEW3X3bLxʟ"\++^bz8z8v8MdV]x :5do9 Αj''UL9Bз "Y砡#Glj# w !cv^bQ -fD3:uʘlZ?4XOq zКƬ=>5븨WiKJbOՕVuX˃vzۉt~`t f?'Y6qrH}0A6ֵrN$?G_=o}CAvH E^Cddc^N!q"H}~-2(]>A&Odic996#!MtW-)i'tŇJ0G=TVW&Z;G6]k@#4Ѵ 2Bii|_eYMҮPoIK]SvZ8s5svfŮ5Eⶐ\N؎|R+Mq7}gvښ o\0t5*(((((|ްLc7@/׹lj#D+`]&z0_"L("}GZIfHw%?]gcf}"GnC' )YV^-Vxl9[!d;-cӡH˨+({`a/;v9n搡L79yd{WڃΌXQإ]Ylyŏv̇V~svm]`i>Y_ZM4`؞؄-}rHumVYl<Cfv\Vʻn"iMlxw^cSZNl [>KR?ǗFlӷ䏯#%Vr,o.t-~jec-ZVTNl=\>k ZĈ'f8yRhmYEqApܔHJG4l :Mg))iv*^6'b^[,n!.bB$[ B'e8 [HY9sbۼe|IOfZꩯK#g y3b~/ߡu$R)]z"Eag s6pofXjnwWwx#և#2c336aDMibjiIB\u]g\D -Ie6>@W~:FQ')x3LS_GsvfI᝻;c(={hƔ⏿U8{L&UT}>G3Do[_Vn뾤>D@ l=q@J`M<~e5s?cymJ,®Zb$ib4'k z~]axtfZd)!YXHE2CHHkJ tjX~xńT4}F[v`iM`OAAAO. p4V^,Y"E}Ka^SlZFC90Q?eB ff-IĴ47``r(^)t3a!TdĞF{Y&fa(z0jpijHѝ>.,uÿc!+cFC>q{ >1Ԏ0RHC}J4Ϲ_?8#=Z6_-{Ն #lJV"GḰQr\ם""3VTa 6n HJHLYjjmY===3sz踻gޭVSnY)")B-Y{GdfEFF.$ bY{7*s5# 2-+/ͻp%&}gy[ǯ}WkP"vYa@mts-bbz+ʑ̟~c- 1-|掿3~_꺕n'9?߷.9W19u|?=pfbEϢ.1A LS\qr: P(JLI eC!FYqkc6}z,NVmvfil=KܻiنK{_bfɓ71zf6a D~wbf){$v+ ׳+kͧ6ΡYA6!27[Jضmp,E}~wxF m. _t9OwiIp-˺cd.~Pv-+gDPbm,UĢ%/8ɁoΒ:P-}li)KVc˪vO7jbOY>K΅,l+xZ̟݁Jrep\,V?es$GAP"=m^ SaS+S hzRsƘŖe-M^5c"QΓ7'+svX1:,V@I ɫ ʠiRy dk(;FsK3[K ;;ڈ(- `45`{*ϐL$qŽinh';6F5`EiljF 8,Y 9)ŶgSRoƊw@I$q+:~,ΌH櫌7hZjłsk5tz IDATA&Is M%L\Z"Xe^_[i/8&y1]QR N3&1qlL&c }(mOm{L, 5Bf/3:2<ѓ$_>MK,NK,F)FsX$Jԉ6 Ͻ&cE4p8 Nc.*F1*gю `eY>QS`9Uæ3]Ʉbң\jc s$\tq3c$2cO@gI'Tnv,]XFgFԊ&3|LOkse$p0ü?yODZc$BjڔiD~)ƆSrWAgWfljnj>;EѩůÝ#2 EhQs{(ѵf}Mq]zAAt>Pb1XLSA]xsiZoY*/mkg&w}?@.8'#ȧ( &˱WIc(d5jza rIA4DBAd7 IURQj'b| AA<85XYBk]Uԗɿ,   H?fV3'*{moI^AAHq)+1\[KW{/LW[aim9"AA1i1t?0@Dx/AAAdxM0:({R7Z7_]  ”'emmWu@m5_KC0IN"{7//O~~\~?\r\AA?T@@U3WӚ5}y>(N2U,O)N^Np1ݬ\"یO;q|7Ɠ0N\CڽN&Xk .OVΞzfb_Ň|gOMoWK|oS UA&Mxb{"mj>[*MY6`(ߊ~N*(Oo* [:51xzQV+?ͤH\}|:쾃M 'c L ؍G5?J!_AN7zc&F΄kBl3'"IN"{O2Jb^ƅwp9b8҅%<ɷxXF d#Yv3= ְtE9MWw784c;tso[8XfwUƠ\g2`Ғ9ޣGy'sxv'E:Z:}!C4;>mºysAAqĽeLk狯߸TSXoX|UqtqKF6q}sh6I/yƃ1om]!F(µW=Cq² uFZ-bϮ6;jv md  c2.3,^n2z5^|iŭ 0*L2 kٶ]~|&;Ct7Do߷t3[B;ns;2Dۺ}|fub;w>>>Tme1'3ifƊ,2'|Rniiv'SMag9~M;wY3JmeQm=NEpXH  D ɍr=H^U\.Qt6uvzֲi ^x .]eYB.F]#78t C)Dp\{uzrܱ\G#xok^'pfDb/Ayr)ed68| si"fQ.7E`(EޘΣ#5İ1{M.Sh3e\M|wi5'  BX+ژܷ0-[şeU=`-Gc ͬXtmgsp6u-0|~ g.N=(3n?; lC&@ Wi9tؠ573oed-tcfhiw{7cǎp&1DmȧoQEbjmj#^y1ZrÏnEaz,‰+?y9p6 vٸcQ608 .`>.'˹d9}b2xf,&b[8VA>@D/.;e*R%٪Fc'yKnj6:ITd-ꎰ>7&iv57]Cg0}i-MclgaW`U/ټ￱=z:|36 YI ?ሐɃr i_sܳ6u &4qa>6oyֲbN'Qw)Ƶ`.SkXNTM^6vGAAqP@Ae6TVmxz늝vE ؏&-ylR?ejʲ͎p[Q=61ocnAgws]ts=ivjh+=[ܺcCw眲ބwA_zGy$=o Nk?+`(P C\E4Zn7MSIΟ`#}/yǽ_9m(4ċ;Qe fAAn3!tz?lXA&]) R ˽ec1\v]Fsd vˮ)Vlc4D #Zɤ9~}ܼ᪖w?!1WAoizvIF%'k"m)#q"8eeImUۍr@.Q1tBC3Ֆ͊5=e9 Yrf .Jr>p.3F2olR.rz FcR7'`HgGN<(uRm AA&"1SZ_XYޢN*AAJWij݀2Jr`xR7E}^ SƪuB&RR> ӇRAA.(kZE~#՝ն/ {U*gyDda} ~  |~"s* u BF_Ż r} q{ V^d,[Y,A_kEr%jU;)L: iAM)إfk_)b^ @Ƽ<*o?GFOˣxqu⾃?;^q֟ DY"`Y:=">2Qڏ LOBWE/ G3A}=֛m x'T7螣(|z0E&+ GM[/c\5uAR+  WCnRcF2"I]CAA*Mze\~oosD~AAixFl4{_wT]YuPGhO79.oM~ 'I)~^  Uc5-9Q皪ϝw=COpߒV,U.ӧ_O&&g,(ml顧{" ?q(Nx+ʒr۬2;   J :z8ET[ZeFӐOgpќwss2 1\&(^ } `[cINu!YG&V K?ʜ4#G~soU,J⾕BfU@AA))fصO/n4҈*B4ސˀJK({bo]'sd6'E:Zc>4;>mºy޶Q>:{;h=$ p Χ#4/Sd ,X[ -%v33:*0N==~|a!>r 3Rǟ{/l}Nˌ]@kcɚܼҡg|k#AAC`BDUzrvd)-d d:VmC'W:ĹLa_;Ct坬Q䒅 ;y.{g'sNNv1d97vgz!i"ݱ@9v!nxO}1v1Hin|#ˑϹ^^ަgl9΍%̎kF_ Ѷ=;c]O/>͞c ڵ#C  ||ycƨeJk]x"U[NT" 5M>H33Vle9㣸Ɛ:uw}lZMKC>v,زVv'"W8zz :ˡoɽk16e-Nks{;hoic[MZJ=5D:lК囙y22˖:@cd3d (or9<]x87bz?zw\:$G{^QfXCM 1N.c\ak[=P k\%v  צ7!!~mX} tTE!dp|I( g&G-¨4fpaplmX [G܉AT",.2Lk/fVkhSWuwD-g]I4uAAVQx^^J5|PV0B%NRk,{`aEȥik;]<ְN3l>>6oyֲbN'Qw)9,"q<)d' mZW_u7Me4SxBmaCt 닙 #sͧMrAA>mTeS^dFظd]h.bi|t*IЏ,r\еQizw\ Bˬ.ַ$_Žg9iaA|c2Ykx4^Ocҳ%0V +0дx xcͫ+cs\.:o'X7KxmKbsL{AAk TVoIwDWb4]P:Kz,[֬yѣ|y GjC>Z}/y|d"k n:Km|rͽ`K> v1vؚO0:ø.xlx{͍16ҩ9|he&t -[IG`-<||%#ɗ}}" p-,Zc\?cY5cC>彡|:A"]f$2gq7 ɣSC $.]!k| &,`M9Uj_  pU+,c2 Xŗ+)+i8BC#5@B1ң36z[ra Vmk#AAL`l`.kT3g5Ľif,q3ǒd]`9DLAAcp]Z~^VSEQ_qa:j.+k|@  Bg\UV   \f/nLFZ̛pA88RS/  Ӧ|+u,{NQW (Ʒ]tAA^S^ Fq& 2$TAA꾲,֘BBVR|2¿Lף*v  ZqذmF|6?mo_  µMd⾞ؿ~ı"{$'ys#  TS|8 _ƀEmʖ/ z5eUN@5\sWxWwbkp˧nғ/X[;G];3m,y:pyqŞ4 O>whSAa~w5aѹ>z `a lZMlZD=r2κ{>(#j.C3u}v({q|`Z鞽[1^B38{줿+:ޡbtފ-H  ӠMy4jb'"Mg/ٟpr6p.b&ȬF _/\>7Jd6n ,i(,v&} 'q=33n61B j [FyYmkLt:?Tc>AA>BS g*n~߿Sk#U,WՅkLUt%\neß>7bP]MT*iν:orZbɚM_IT&ɉ^dAFy^ƅ^hr.#};zdv>7cd'xvlҜy%_J2̸i[̙ˏϪe~pӗdMkc t繘wX|]iAe'̢1N`S g Nk6laݼV{uh`\JjTO޿;?C+}D r1r.\w6vsˠAA~T{I`CM]C\*)Q%r9r4=>ȓJfe3Eg nQFʋ/?͘z`ką ml9_CYi(8;*Pr  7p H;IpD& oE63x={6(+m㽴.ř-Z4}QV݆߱v>+;FU?;ʁgy`9dvHhƋm|<G),`  cΫ:ú8"̠{\};!N^L b1^ IDAT"шCJ- ǜftϢ)eVW]تyK5˶O1z~LCk]ʎV~uK8v)E.s{lYE[k+nE+=5~ڟMc![E߼EkЬHX!q,ngub;w>>~ñ7 9X֞9,@A,e=JkT {n/nLD1ƝuJݓõ[ȕ|91B6?]:s0#Rv7*yÌMHKx`/Zfw‚8>84ywΦV{mI mv3odVo˻0D^u7 b׮?͞7_`˂co#>zB+9ocnA'H&S_% ~m>8q $E HPA&lM \.ȃxS{~Q),cLD)J9B`1-o2D42\#5|箯wo1/R!L,┄.lt*izn\zt8"A,`t,罧q$R.& hN 1r eim&z#Z #2ehjnq5h7G.$եp4"ؖ灪i7aG PM2r1Vf彟I0Dۃ>ĉpJmlrtTLg0|ٰaxL&S6F#*3X,F*b``ͷlB)%1Ƙn|IAѓ{=ZMc4Eb4GbD(Q;mX. 1&1\Tq(p 8 \4ƌi RYeYe;V/H'tM>`4]}}f e0&Ojxv#9@dJsɏ 1cs3z Nr&dl8puHTPV\4>̶1t$$;Zb:婻vǗƽٓMw#u|-j!kp}&ɚ~ǖ4s{:W.l]m_2vEͽF8^~#  0v2t=}DIWߡ5}-0]\v])!Ժhн }0y8~05ֱxR޽mUɾئFxUEǴMq$Orn֭=̏^ļs>e1f-~YKD{x/G?57lBVIY\;K׳x n̿Wi<g3ܭ,\bKd]ΜcQ:n^GqG [߿y6Kb* LLpډj3a% 18@ԨJ- z~a o7>-F\rVUDn^^ͭ=+pmf8t49 lm3s[lrLKe_c#dN|ʷ~v&V`dsYT^o"i.%ɶEQhۢpf^>\WtOe(&0gm?u<}틸}Y?{Kw0ɆMZ,;~뛁,TA~ZB- q5ikЬ)Tp8+7ÜƮfދܲe9EyMwh3N 8P;ϗi "{Oeja 5(|-o.ZNQ5rU66<}^vǀl\N] `b,vMҁ} voo[e>/ib*_aR_h $}U_Wc\Јݍ l}5 NT&cw{~_玓?+0 :1'?ErBb`<+n;Ir6z+~ORRM-.N{gN7g8ߝW_C{fG{K.d >(U*4FsU1^,F衳#3{A=Ehglh:Fc3Fk<ǩv/yvzӟKЉTA GKYuQA^ns?̽ \CjT&+C^vlY@w]v+߹7y[7_zY(htKSϽQfiѾh9fك ~z?f)l5fmK{i2 . FXyjTqX>v_?olaOyտp=v!nd=q^/n: hZʃwBQS 0a|>>q%]VmyYgYxm@) |_}PǞy+[r-^E_'y6sXwf*7u4op5 1U^s|ꕯ>ŏ;=4y%11lc`+ea;ʲz ~#='gRn8ŌYq~},o{̮u^S 0aK/^jU-yR,--K]O;=_PJ)K)1F5cYZZzvT1&16F%o497OsW>wLd;ɤ9~}ܼ>;7|ARTs_|{SЊ͠J1<ƭDhh%O0ȡ47Gp <c)pi;xٿζmRضM<穧9RS"AJ14943HS M6\D 4uzq4㴷Gɏ3J]"9iSx(/dT6_Gehh΍j;X;$b>Nu IN[ģ1&1Q'Bv- <D1Cr@.cNB{x,N1uqFT|Jp5QVA間$S5Րe0K6=J6]kB#do=|L5I eQΓchp,r&G&M3X_} nؤgmVi˯cЪ3]a5b۲'1ޘ  s} P̴acJ/[&NA$VGw7L`נ +QZU>tb*{A |C9<BZĽ ?SU>fQ JUzX~aꟌ3TFP LBeYVU^{OwֆJ&T1Z UXD"A<'U<~ḧ́RH$B" NgL.Gar`g80 Ɗ5r6`BBSF~щ5 L?%dZZZB3kՄd2?Lv70::{EJ^µb:cOkmWoSwz иz/V>Z|M V$  6l L&%(%qFUA&^ͬ`Sս̯öw: v`Ȭ+z01|qزe [nL. vqyU ШPkT4/ (?d@mW)q8W+w%1A q^09-0C^זf`٩.9K   %\Vb":NpCO^  E={!XfAAU|˒AAFT~ Ej3V~Y' ޒ:{AAAhTW/Tk |q]qrpDU)BОB5_{  .YkBa[vE>IZT UG ժP_ܱ|AAA(3!Bܸ2grnU?R q_LvGAAA5dsYkK_,),}O\AAŽ:c,XX!Y1_m})su|o\W?X-[AAAa}}5^yN=+![(J/lAA uAtZ}5& 3xJoBgjw"  7E}fS>K-}Яg05c9B}vJF`P AA`0ZCEiPPR¿RQҾNwr˲ j#qy  p |F.eUiдf-.V{samQK 2VAAh (qWx;(M}[Uz Ncz-/{  PU2bq+tu.;{ ~*Ek ƸwAA gBҼL{a`ݙ +Tõ?   r=Cd9a:eio$r_AA_t1hqUx_x)|/nX7Ơ[~_羑eqAAr$öpY3s߰ځ˫0+"AAAa {˞$UAA -{ed}p֫`yNU p_AA}k z.y6_W=%8  *)oY̪ѯut@Jq_-;pBD   ErM\<~M.ɇm*ũ'AAAMAk@<0X?Le'   z1-lVoxok=ʆ$/  598!.abg$ {(܇(VZ!  BASS6vR1 e( fieQ/  :Y%ܨP*Wg=j#{E  BH>('FX(ecLh< K^#  `|ipݬ jb꽑q/  xy{XYR% mA1 /d=M3- VrY|AAA⬳u'`g"r`AAA!1cu_ܗڄd߃2+LcXf RAAATVbNj[c^<AA!5r1ٔFJyet o5)1T{ot߂  pSVA񗲔`dJ)%{AAAe}SMEg{_ъYd`   g샃j M; ڵ {q$  p$~8g xThy*c“F)<~Q-zAAAjҀJ!?a_ZPԆrҬS)h-   LPMiYk-+)zӫ 37U׀1  `LԠn޲2Ufi5sXf|-ϠLAAABS IDATtǔ yXZ-Z-fXV?0+єѢAAzEWTxcf6rj날/) L+jAAa₼n?!ƾ.ߩv#b2c£   Ȣlj֡"Q~1_   BI{c9~M?U0; `^AAJB r}{&TjmXoZOBAAGѱҟlWJᘠ*we9_)koQ+AAA10FVާ'c Nhȿ/ļ1|AAA(&kv$ȃCVEn|95 ]Z_o|>R#  Qʫ7ƅ*9ޔw-Vg jkk&,GAAfZWzr ԛS   4w0-Ce|Ԯ(>^c/_AA…|S7bK̽ 6iU1s_1  P SYE{5=6mI7 lڰ@AAᆢU1!&(?l@mز|3hz AA&MUz , VV#Y{oͣ*;߮s4K# !ÌAa xJX!j8Z|Nw/^xy` l66` $1j{{q:uԹI@\{'wԩ{ $H A 桱1(\Ὦ噝 {k$H A $H=XO1uz X;;WR+-6H A $H f뾎{Qߥ $H A 2a8 *)m.8* rieũl&_8B A d.7liV;}Ȍ ~+:0g̜c[Jԏ}$[N9# $H A47mڌm۷fu}p2>ܫ`ߺ4C}L?t9Ԟyy 0rɘX j1_Կd .r9"*j@| A 2lڴӝN:$̟??L$~Wشi3=tM}܇ݍM8-^Zar1;bSc1qC?\}z@9ǷXj&,).`kCA $o8166R27S61qđxᇱf!Np>at-o=i dHiq)DmG~݁}%<̄#ڗ>M.;U*5 u A +@$pUw_Ɣ~g:&&&0;;p?a<K;^g!eF3KPGN]Fӝr'nB9iy&1x׫Dm?%2B@0 Mpq#*'ˢ`"e{򀏓P}N$H Aw R?dJ f13EЇsӇ   Jr?d>,o8 .?7 PO@+dF}i0ÌVj(..7U A $ :DZzFRK@<rw&aя9C2O2S;Tҥ#MF^ԙ=B=ALg˴_~9y\bD"W)o^XW_znR$H AxmۄW4ލGo~Rƒ1jXh7݇ w㑯߂F‡~ 7C!0̀`8e7E4U L[j;`$HD`" Hd=59U.fѭLȆ1ER"v?H AC2:d.%u$2[y~0:-mC\;/,SŠޤ[ p+OW_85ף8,xJ|bR$+YwmCWNYC߆2,_t  3p/`"Hp,Vt3ud!#ų܎{Hr;O[ S|z14 ,;g]y .?aڒR2$Ӈ8B|}8<޼}?ڣ!L┳qcK{#Kᴋ߉ czN2XK[8tZ9g|"} ͗Bش;.T`˸oYہ0}-'slwwOނ]<d bр܎xXxfV)l1?\Q ǣzť=:?o;3gJtCճ;qUOǍc$ַkV<[OX7zx GB }m֦IF&#WcA @-dK:~X2y|_w e>ۖ\h.<{ﭸ 7cʏ b]|o\pޝ讚Q}<Qĥfff,מ>4}xqlڗ7/As'cٙYD3_w+E+Gr~sq/I~> ,݉ު ޙ󧲷?_9gc&*2\"qIs]2OzV_95Ͳ(y ?ul$nElJ6ZLxurYlxQ|`屚 < >~Z$02}M񑤊RvGo^^cm0cP%:nJ1 1}Yxr`?7y4g4GvAIِ2E nM#@$H An%Yu{_ƫGۉ֒#[K%$wʇϾĂt=pX{F0]ɿz7]Qi|Oo;ԗ.{]?܆WGcB fZ<_߆sΫgbz&MGg~q>y/weG( |d8C1/CtX5RJM_ה[8%ZKo-Ublz*D1ƣ} _yr.z1A%,N$9+=e3%/8O &p{`tfS01^:`!VS?~t~ D{1Jmq1G>:6{bg9#8ba`OU)W U ֜|< z 揀Ҽ<\R5G&\RAw[oK̈ʴ?H AU@NZhA})-YYؽֽ?WwaIkb̮=viB8R"޶/ưEN>c#>FO}斣 5Vw -ևYwQU~[gq|'wwfSoƪWOlK>jE XǛ.Í:ѝގ͏܃n΍ Va=_b.J?:7u~Oq/'e |=GQw$NެKCoCkLfjkV+}UCN#LQQ`cLemg, kqZ3>oq<"͜^W$cO~Oj}1Ki]"X/@frz5O-dQ $H A1lր1}]߸bM8`Ɨ1{޲RL7O]qn/K p V;K蔮/!/<4:g cmer jԢ>a>g2SwGKOSذlxByn<ˠA81>z.3݁q0bU.h{Y~ӏ}!>L`YYkFe;GO)n%vG 2㹭]"HٗqP*N `Qb0ca'צ4DmGM}{f,9}hl>VD7oĮ-Xw ނ{6cLI"vPbHl?{<&mҮk $H ^1}&k/grԙ! gnjK{{n-|֯[^LIY?syr$h3hزl+߇Kg]h<p+š765"nũ[IƤ^ Xv-~ଳB/&\wi)I^VqQx^$zyRjHTKkN».MF˰` $H N!3x\gڻ}_Qatjs1­w܅/f _O^Vb ZO28A n\p~ʿ`w=NX+xƭ?yKם5ڋp/܃o,NyϑesƧķe';wޟ}_q@{rrqX9.@ ,O'_pDk8󽿏+C=1ܿ(EUpp/^ :{om|}XC^xX񞸏ĩow<wbMW.lc8r=777oaǗ`m 7CIG"A4!(-|'${f;$":d'.19w}8sN?l3.zX}iqǓ/%id,[VI, Lى\1Y\r]ܧ3p{N-W !aVr 1 @HfD1q};o9׾u C kwa< dΤEWn%\NSq0U[Tx-aFVaG;&G3#NbTcb<Į^y݋]YX@{l#iHF{;I<  fX0o x;'{gQ(@D뮻p5W#ύZH(p,;˄L)y^}NO1adBTdНӍh9߅E 1.'{2ic=ʡ8sЙ. GD{E f @ymhA,YhImcj !"=ދ{Ԕ>(О:4 kwm@okB=Z;?+t: /ğ~"o'^ 0 W^jڣX'qh;w|F[mFmZ"BD5Ilq =xs6(0sO!r2#&$H A4,#֚-';af-I잙|GgtJar*v1ww;eM̡b Sds$[}=L13dFwz/>/1wf=9߅;v`FM%:;g8m> URBݚs|&mrFwl< ?COLNb?+ۉ^QϭVYBqǝw.Ck<\} 7:> w"u4(1yڤ㡦߽'uYICC]=Œ+2/ $H ]#f3ՇX>q=o9Cde#I I$dEQ~VV+ɒs9݆wmabf|*HTr^*NgL>6)h\K-@KM?Weo $H .$RCg5o1z$YIЇsӇY@-e ̓8 ~w0SCq(_x◿޵y)/$fy)6j DܧYZjr-,0GI ?H AkjCJhമ0s` }87}b<2Di^y0Q3Ru)Ϙ5'+ĘP~!RNeiy8/ IDATVG4M77uw, $H ~tt@3MMj,Dv$(&G{0X GG0 2T9\yIkT^eꫯLF?$F)F"TgѼC{-wﭺ;#,A $φnZ<3Xn͛2rc޽xgÜ1CM.;l .6C.r!N<lذ!?ә niGA+*}85ņ{S/КZ5M>7fa/DL ?H AݬO>d<czz:tJ*Xv-Ny)CrexO>73wI߾};~?>oÕyc#Dh"}o~q/wa׮]ꪫyٻqVvQ!Cwj.l=5 ?pߨ  $H ~?F?tDЇs ٤-[puN֭[qM7//q7_.,]$^oXF6d474cm \[d_FA $H A^rSOG>|O?n w>1<#`vvvWValVF$H A [r>ēNy瞋?`tINgfֺ`XS;~2i7rۻn dUA $H A!."vaXxӏ=׿?x \q=Ngi+ǰ[! ܛcfH$H A dnEsO??߇w\vuYMg5vvf1UwSa $H A Z+f2::qAD7ov{$s|sS`ķHui $H AFzQ6l}VV}r^?Ia4Թ!} A $H ^6 ܗc;YZ>oWR Mn AJZ4wg] A $H !]w7yfٲs) 7L|X8!?H A $odEd nh7դRe6Ϣ? D`ɠ $H Aa=c5QAO@/TpROèjD3lZ}~s3i.e*d sջ|i>IƠQO{_չzo$>^bdÍ&.('d)%}7sK/dAM7HrrT7!A"OY-[6YAA1W',ї1b)!9)^g^׹C!K6V)(Y,) {`o+bxsf,6)kmD)!Uf}T"<52fTߏMS^'QN`/QKG=1["Aew}5'ZMqK& 7^S]st?c%g, ۞n\^JK73rr`:?me+_>~1m.|3&Z 859961Ag' 쯝S|Wxb({Z%SM(Ol63a#4QJ -bvewUSB$"hQHrs0}+Et._L4D(]d#J3׈*OuPNF`wZ=H;?R tyt 5P26W{crn٘ȕth׳e b@^ѯAױ_>!UejP۞MĦ}EWrUI!2(-Ku^$i=)>9Ni.cj@?ij4)4(> ()6Lu}؛0)EW:`XV7oր")*ׯiJUe #u Ys)^H {t9o\4|weO )X '3f҅%voCLSnO5Vo0Yu7z^))!=ajT0( c´P)lge-d{5I)x-@k@j( N<(B `NSefjPvv :r3iO0 o@~Q *,ph e׀zC;9*Й"w}*`zg& 犯Wf\&} &Kp\r`&Z9CfvRjoʂj-񲢺ؗjiEb/eqd:鼌'#h{{f2'l<"MKƪŴa+~֝w3 >׏oi]l`RB3i aʾ7Vl :TĎx;H/*UL2UF;lX( -0b33/QQ'˾Xv`E̽ X+8f  R"'e&Y0>LSgzUiFMT'%y׺~$u |7PL]  AfcA-Pۅ@xȎm[`$)mBY\x) dq)TƨT3kp.5\GD4\HgYJ c_7{oSDTfjożv^[ =L uRjÔ_Mqxt Uk*+̹u@89Ua3ySd[';+*]ZHhϒ-(@R*Iͥ.)3{;ۨN\Ȧe) !Т-!7Eu)Z]\.ݲj?>iI(N|H$r$3([U t5D93&YA˄. u|pe?LrfsF]2# 6Mn3Ɯ}[FVܗו FG-Qr ɸ1WݲEQ ,'.kamJBq7BY2HFHz) zyS'c a}pJƴA2ձгJ׳uW -C)yr[>86&kkE%$>$- Vf0dsBJDh* ۡv2WHʻ$|c.߷hwZ B@ZbR,h k&"TqLDWݢ|AKA (u)BMz5OKއ72 DY"ZA$SP52-n^}̒5Nycs2j~T@2}Q6CJTʄSm:Llv?)#VR0`}~7g6zKA0vjmd2މjt .W,#3Guq#Z Ms:Bh~vsN `DO2:f KcJ9PJ`*t0\c B 2mYDZX98Df@F<V^LDKu|\n`a j$K*rhm+U)eO=99q:qwXh#wk'/҇Ih9ÙwWɮbX[ZߓЮmX@UwDŽ'Jj.Px^C8&*UK0u7? Dg { Q` aLǥ.қSijֱMZ_Ҟw^;C\&1 J9",yy-އᭀ:KeQ}~٥2"4:#+D/mqc/nZMzZ-Em8a%tqeRށвqS < MZIs6]Lw&<),~[(0u)߽ X\ c 0>1x\r})uEaα ~{Ay#mmH_DReE$Us VFRu>E|ѾVLuJt,q5H9os$<Ϗi"J"Q$Z+Sߙtš珰E =Mk0e,A21Tw-؞ _ Af)ˣ.ˁͤ)뗙egMK]7b]΋4BͮiV˵ JmR bXhQ񯻺Tgb2s=YOHYܗM1jlZ)oTuZQ܏2,*TӝcĪ<}%{2ak>W&(+/`{Sd7lTۄsl:m`^D$5*,~V>j|7"1-QpQG~P}4.vo3Udऱb#ٰkZrnxk*=OvLszʈGDWQV/g1T߳Tl /u`ҖR\! xϫȪ Xe>&y%ZS[vdܣ\_mG}Zt@A $nElزU(a;n[CJ66Q "MwTlK@eî~2률P͎& & uԧ >.KؤXܝT,Vi*F*ָJjYJ_dIb6ǞV~ᡨZbSyuҢYja$e%'3GiCVh]rA Ԋ^T՚o#TuY^+7ި٬՛\ %.<8ՀMXM@j 4Zl֍ ۫@\p24e6E5d/ƶz%z(>ľ4K%T]\Zs5BQNI;Mk>X\lx] G1.mklj9M}q(.\\)L>:*ֵ6 <dzHQ?qJ[K%4Dghgh6m@(`6t_$cUXI?W mw1zE:j^ɶXԽ#,TΔe*IYmâj <[ۭ.$( |؀`-cҀh]lW@yR`35T絛}3kR tyݐ}7m]̀&,`#,l5Pgw=CV4a]]ʌO47c$81gɱ).V%)ܹٛU <I>Y< n/6s`}]3LMKLO ځE33y2Ff\XY cmj;i? ‚kӚb~-ӵvȚ̜qT|f~~=Ii cab,\ ck/lD>Zk¸OPhJmcά36e6^Lv@5 ϒnOoFVLYJ5|@>^ukS\>>TfĞyk~=ƙ"pÌ۞Mh;.*2@wܖIɴ.85>:?c3p7).l~h\b(AǙNzb'n"M;hGzT{gsשӜ|a7Mc/|VpF[3v1vM75hQʌ9Oy*r ВQhN䌘(3Y:塰d ȩ )'ul|)mmS}.ִ6Q\ԗ'j\ވM`Wn6eRJ{>,ٖA{%wWn^W"ؘt  kWo\9]Iz9r[1<1m[L6җhlomsq& f*_ܱQjF,٢lc~tYn|RՑ u>=|ƚ-UUgũnero{ҁfdݏ>J~Ĺ7}Yo|if vlZczw8,v60,Lþ?[0)[]k6pmһhb58hI%i{Hqu|}etLc3""#[uLo1K> #\̗Y8XX;/ch8`{ 춱u팡3 ;zL R^<+JRܟ5=͏nf! ձ@jKrجE; >r_kbݼAp:)גWS'ƥ V F⾮ _G^.땙_s IDAT,U`0<+Yy[Yd/ua<_`DQKiNI)IfLc8ؒJQ2ei[*Zk+ݴn}IQ9`SJ\/BԵ$o1s bSgH~9'efd PZuU~pf1 Mw療Lh?zL"8fn)l`ۧ,BoVik6] ܃*M2 c!ϼH>ؕ<8Ձs`XטsPP[օ~Ց nhk\+M2NAִ&w.97L}_>NTX@x_.Ups~en/TI VϦĚ\zC 0ŭ:`؄Ԫ_skj_OΒ˘~3 ;Fs^z!Yv{ϾĒ|zONב̝IA>t I>{R=%N@NzT!ӨTڂ%26+[1'.yE"cSDA(YN(^ʧoީYo_?ͶuV_1k!u^?8۸Q\nh4M賞BlJ4˵J+*O`/k} ڣ[ .kCU)U T__|Ici:f_THtonоd_؈SI҇uH e|2tuaZ}2MYoZi^UƷ`]:dU^6gW-Kt;T/!nuŖz)Jca% iO#qg1U-I$J|!3s@?"Rwmr\pЌ0MPds勵^.*߹lk60d44b5\ D!:]:w:jT]qMؗEmm`xs}>9#NwlKK&9URVUu NR]>FE= ؐUwo2 jG/<ޗ;S|YDe- *[ZVʷCwIJC2  6ϲXvS>=NRjEa^#/D{ jѠ(3IXߍ^TEn&+WʀmsS'-zo=ksR8$ սE9'X 38\FWRtq0o6wwیݘܫ0js10.r(uL+J-(%/`K@?+wʜ`1HlQ lХKg^B(*̳qY}-?4{5-AZQ$ɲzq;%zxڔ2HQ3 Ǟa}шe[,\oR5gN4T4l`]L;[l'p'YbpV%ھOV2Id u&)}@Ƶpau|$npYŜY4w }bń󿶁{f8]jz>U,yK/qlls]Ց[aYlðsE$4 ouq.Hp"*e/62No "1\:̹aPL|r^}7N@oo]kՊq_n}׹)?ehI4\ͩASUqU -~T L5oIci + }͸ނx¢dQ?Ș,I~1j*`Գ W)VRK_ۊ* ɥ╪EMn(ҹ ؔ&7Z> >4Bdfv0ma\Zs5 DL+IhZ0U+3,5qqAa@ ĵ6Ҧc~7M<(!l2ܠepSCW_<$\屛x<__frj:uxe6J3Mކucԡ3]OuˎR,|<4YX\_vޖ/߷C)l\ ~c;.Sǒi/r*aƗ;XF TN`&2w*ݓ]0Rٮ#lމYmk\}Ӕ_^nڲ po;-$kp\;O`>t ~M*<{ѣM~Ⴢig5K> ˜=GZ5F049y~VX|UWUy*J&ÔSllRfn0V.i/ӻ_> :_?蜴UWl02s-51܇W]ߏM-Hz쨶Z k"$V7cϖlժkɦW! ~5MU\Pe ib"y>,ෲS5T(|&5Lx;>RԼ`x{jkј\IENDB`dell-recovery/help/C/figures/base_os.png0000664000000000000000000025232411751021273015430 0ustar PNG  IHDR}RMsRGBbKGD pHYs  tIME3g]tEXtCommentCreated with GIMPW IDATxwfUuk:wfRf"HލĒDc!*X%[I,"`/RK0s)ok|<"BP.xDe߉}_ŸJUF#"q_^+_DD0&^hϺ|(&N95=_״hJv0?rU:-Tj_c$ޒ>RnU cL=KcTq(~t`PmL\-%X{v;2^[>Im7_?,ϙ!k C> ߤ{}1&4<;ɪaBۃ'3THoeR=r~Ruk1غ٬6mwoڝO:Pfr={Isϛ [mBjeTd|n:ʛ7؉H{n5*1k(ux?mMx{cښ^:<^ kYwQ_:uyJ.ߤkm֎ S%yX:]dt~? 8ʎ}WBezwݺ/kΕR6:j$96U魑Yʹ9P64`gC^Ww/QK1icp8zVZ|)e9'Sw7[Wo] sH f4_`YO- n_&ͷ& CK yu]̺ MkBl\HzDhF癓y6yL?g`wt8ۤ_ c2jZq,r|/M$*w!"(I&(L ;윚ݯ@y?Xzӵ&Ў7L/Kԍv -aك UQI)|rtZ0+Iٞnq:K;l[~>K3`k!*Ɵgr3$a|s@w$#(h2s=DŽ 1QOC~Hw#0L Ja;.< 86 :j Tq=d: &=.FJ~7ݣ@wiGl3wV|f^Гgu 4^C*S~fy20Vp$ nGt<ƘJ)7u*&saL琄luh@OCDT0T P1Ɣĉc\g{t1f[΂ծ7,L_&b lb0T>H; ވT3oX'8/4dt6'%1C< $2YFSRLyG;&mKËF,@^=9S x86ZF֐R F@~W7#aWyhYg>v5H#v J 5Tos 2k$)I0Fʖpq#J 鱒sʤ=ˈAZFna ;뵉+RcճO6!@haw;)I\zIELgŸvѹ(Vx4# Ҕ"r) P?5 %* +<k/L7YY@hWAH2IvE]hp MFdb4lW(g&YOplyݖdC'\ n,Al!(s=!Q1TZpXh10*4xK%%WKOdoLI9R@fR? RgLpr聤݌,a"YޭO;߫v+na=yKr6Z*O`ߙ}k|N8bRZib1Q׵c61VY<5)VsB*\{VF,uyvv>?c C! ECTCν5O]C41S80J' H)B3{@u 15cLɍa č'J6 隇cPZ)/覕.)dDB,i,(3 3bYz&@ee(=m( IΒ|E.FB,K\zQi͔c(QLt^'؏oN\^hNy,MdeB(ڿ-YcCt+J(LhG%TB,{TЦC4ӘƘG>x˫MuqK *yhl:>~69GtM,@KXwn.y^T#렦%*?CI@_?$(cy)0SlײzɻϠ'R0^24FUB[:U8G'2é)!dM.Y2 FAz֋W G G50p8K&gIcⵯY\ʺsFE2]s[_G[@cƁ.1NKicS(>s.l*ziln^%Q6n8$iyXdt.Ld׳D{ƬGm&%q7Yނ1$)a`XM0$͐.tc 3NRsI+i %1?;Ŧrz`tAL%Jyz'y;[TJS׷!URɊd}a3'OW/Ilq?Q(}0O,u;3QL}K3]CI_~Otrn$ILx*2ԋv0y)|nv<: 蘾yp&0)"@a֡ nI`DDfskULS4zJ*R-i-$ 9\g\bL,uѹ($fIKcBtI8h*3Vge1߳r,xVQ~%^[uPN2VݓKN$#*>7ic擀"wA~?mJO+u*҇Q "QgeKʹzCsG#=s /SXv> M0NwT{P!a UhN]*b 9 vR(%щ) 71'1t~T0_Mϗj!]PM#A:7J^@ʢL3Ix$ǜG3d{t"/uU&!6ˠ"t\],o*uiƪגP"F:PeF\LqW/rX3󒕈jNL)G:k:`_$!oHe8hzD6iCqf!}=zJP_p#?h&c4)cJ8L'K|BFhy1o{a0=rkēnQR6ÜNY=p/HK/Ow^YI7 ]:9NZr4D˄oz{CYӹ3ɀIK'kDChCz鬱`֪jS}}­֦7>Kt<,}/O4l}%-4 zzyN4"H cNKVQOXQea!eQ~zM7_n lA(t#j髐nnkrה6Fc;̚&OL yrUmaQd[Qe.2'qkN#cFI=Z7͘mt0HHg<:˂ƀwnYl/d'0 M,ķr\K|7c3⌵ ['%:Ql卟yA/_uI<@DVR 3W"̹O[mwQ9Sڬu1 vCB o>q ]&-d_Fy|A,=Di5& Uк9G0N%F>#* .3zc#)ڛ 8 wD??gTko]iƲ,lm'$QO"b"3a#!QRxn? т6*O`8DBbA1uMJ(!ڮnStbʍ ~^a}@}3Ioʎ u pGDyMCLrrZla,~m;AxԙF{\o.  KF.3alㄸx _DjF.Ātn(X ʫƘ k못ָi)O6h.bm-aEfvoş<]t ׋ 5qw[9K,2%7:5To|~g#nj \aucP0hR܆Θog1 mm[À̶ (r4nNbض 0Z:!J&1(mx!#Z ZdN%{GXYE Ӳl J7& T5^ 7zFgT%1]IҔZyd|"eK{n DF?%-h(qZ H0˄iv?v8 .Lq-2HzN^W `~j0!F;XڒZx7D/~>Ȇfc@tboCSȨFϳa:c{m0mh갨:졈;h8 lʭa}PhaQf}eG%ҏ`= @70 Dƻ-gy8I| kn6/ێ[v1ij^=hor[]vQgDYc[&tJN}bI*TD1[@YXߨNaXLaMoG׼&wV7avvzPO{(ڤtˉ2v"Ñ&l%l_i5MpWGgGD=&^b[d"")}жu"U^L{p1TZf#m",eODoW<8lIMSpTM"Kc}$TG%KGB#R3pͶt.SO~^S؏޸D~MyIӓ~pO tDq1 h[G;g%u7uJޏXsӈ(%GEL 6Ҵm?-ϚkWyZDADJ8^U=h H .r:;eyCMhuYYBP\p%>ґض(B 8NƳThHfP||ԆHEpaݺ{a)6Yw Z6| !6޹PBH6N̕ KlPc IH/QR3zylHDAPK%/(~gF!ҒMƼ1V2GmŅΫ3&;TÈ7ƞn #4oTz7?!W^}ƶ;atr'<'kҌHȆ텾1R1+K:Ψ .MWdS,ZRoƞM;䗯Sʗ&/]O|.9 Ls\ _ԹuĈγUN0iRC%`? aZiC6]yFTC0iw\h(e)'I'F R胸Մ 5 sA#q~c?ZHwgU )&}Y <D;KQshfws*SUJco4IJ?#3J&Msd3/|^s:*>ncS̮tiyvhe5ξ&jϸSH!1nu)ŽeȉN0Ù`7<rknǬN;V*G1%gsU<<ϼo|k0V7m (jJNkЦ=3/0~v[|8g.>^at:?Ah7LԛlǠ*5*n=5zɩ- Rce QZ ~f @7&:)3cf?n0TzMvYdeQ RgplhT1/Z ڶ?lpDs^q@װR>&OMQo%%ժih5T28Pk瀡5UgޢJo 星!au^U6I6cSlTc*мކ13ӽ@[{3(WЏ_:,އW~j_ )iKoHus+&5ދЉ9VJ4Hk=m14=vn/0۝x9d>lG.`^_ړy.[;sϣ^c۶;LxzQ.(̟?kr4N9WO=X\{ Z-,\0kj{p bW|1}̋wy/]Ÿh+,9ҙ%|WQ$xA MXN{`>ǽ8#8tܧAg֡YW,8c9x^b&Ys7~dEўԿ/>fW0_˦fwH]_ms۹ Rm5oጣ`C{)?0V oAMV.2m|祼b\DլqkOawo aVհn3U䌌~6Ssx[0OjMgqlͬoYyϋb{˯kP+ZSeۿ嬅 1۹[eȢ4gophek|ޝTGtg^ 0z=}\Ʈυ% JۅFoڷ ^v,sDr A ? p[>?9>;>7m*aZJ9o3*l}߰=xoW:5'쒎|&Kz//cLO6*,I2%6s/eN` Z(rRSl!_mm mcSLR}:jz1 )vݩأfje939%/ 9VM𞳞ϡvTme0>80@MMXl3H~OBBAh`6n9ym~Q-*n>[EkxW'agELѭ,y~/{T?Ň.]^K`MzsUeX7, ZϲX{+@v1{Fl>^N_u>OyY\*t,& Kޘ 1-cݦa m9MK(<FCDV,eKC3ƛ08ɯ9~&v~6>cKCg~X9G#FӪe>+3)ٱEy03Zϫ}qg Omc_^E\9Y#*CW6&,>kR(mlk45{Rq,SKA3A`ݝ2II+JaY̞Qvj X,,m3U9Wʯנ,Ts=wܓ_^?6ڕX$uMK@72qi7mte}-~uV_Uxˇ)cc&`d>7߹-%o2Հ R;^n|mZўo=}WȜ?ũ|I1A~dm8kʊɇa=KY4aX=f#EbB yz2Zu';W g~dFotä"?&vi؎'oū:|?? 2o Vnf[n5Y/JAP^u{bԓ6,1Zʊ=,e3Yk͛_ʟ~ ~(cڢ*i˟9}>u:K'0r8k|x}=pP8S3z&|ILJyKاߣ}+q>eDUJf _s֟Zb^4^pi!ʟW~f ntypX^%uϏ7b6O'0CDK|7D0C+7-,qrۿ kA灻.+MPV v|娌:yWv܇&E_ CGgυwrZmdY l|b;Z”W|_Ԣ+V%ԴFccڶm1Qc=vEa'nYͫ`h ֺ Mny|᥻+F9*s|>y k*Ve1ًf!n3kiu[dM f?\Ծ)0s;^e}hC8um~~,YVCYa,٤ iHi!<-xZ@Kƭ ttdWF=+# V$b QǦ6hXc治fj<ܒS?5YǻIDqI/C8 s 7 tO-RN SF1=nPsK@؍E$ݙS3d (14m҆U?<#-CiA]Xя,Y)/fm5 zYw>Gv%uq6<ȑ'zG 2q7W<8Iiz Z ws!Ay:(}\h1Ǐ1hH3&O~Gdguu0R]20>+X /s\sicw5okᲕN*hӹ@PȅcN+VBٴsCu Öv6H8ƍM-%* h0vx^'0̤ڛs>f|b{$DfjQ.%K=d#t NZUuܳKT U@5Y}:gFo ./8E8}z[P<#:0v&w_a»2ꀶtUߔ>Վd= J^ λc<673:q=RH!On`p1@Cۈ(ዏ)'nv681t?/:CjSpJ8D(|a¶mRIЩZ# %߱c-ǹ1 ,^vA(y6,cДVˎpb"F܆^1FVM pݜ8C2YoD4B;skGDpsOL1Όe's! 0z<0Э}[(w] ar0S`xd (Rj̬9vrlWgþ`Uqv́u`pLZj%*u;p؟sK_{7:^plװL9yXU'Md}jGu__L䙿:ގm`Ъ⦌lRo{!0Kʢ;=R76=g,z-C悱7»O9hxGS۝FX5 qnٲ~lFDƲT vJ%6mr>ES;n0J7nv5Mk.jE(kyM8 0^~Ӈ6ݘe@<]a΂Au(G_L=\;8}G3+oWmd:4 e,Vݗ`CUih~j)g0;._Q'q lAWpap8p fb%-dHw ﻜ[椑xi喫Ӱ"B *5m[_Gd]äck7\{? e,QS掟=N ݩ[e׳,b^őʶnf={b~trًqnS,f~\76?N=x מC7SW%%k.b GY.3gr=9Ĕm]´&Ee 5v/`ߣwmoz?y1}(7\ÊSrO1ХO>ʓ^jzf̩BͮYc$84ȾpKEuv`}%[&y4uX[{ީ\6٭$;X]R\prf]XpMeΜaeaS,ա{I"ٱ%v-TUc׍@9|a˖̚=ZJl|붶1[mggiۆ? Rn ֚ɩ)l޼ehƩ;6A 諿c7k'fki% V#|Qlc(B>(nkO_I>w^w>Pb׿eQk-|8{G[(Sz%r\Ys9rɛ s&Ri,Wlė0˯䪵-,P9ꑊ4Dlpx#W[6;[SzOZ]H _(Y[}/3s˱F~?@ԭ/{˳$͵`_}oN/s{׹&-:ã=FXpbX^Q~z 3ƠeN<N^8gǿx[1/x%vI"ѥͦ[gq7uH MH=/U (/x \:vhfrI;>}]Sz`sz[W]-\r|E3ݎ/ۄah,]ClT )i-i~䷋V :ETߧTm D'6aoc7{j 6[?`{r*&Zkڭ6fi[m14-?8~9V>AFk1(cchilV<21$_4ٶ~ uƶccpw/}nn( (kS|7ГضfrJVM91Jmmyd u ͱ״$Nŧrw`C]9׽h.%[Jߟ_~p3ncku6otnuUV5ۋ IDAT-/qrzԶ5mkyXH﫮K_O~vzmRBc851T`x2Gnm6 ۢWlLn^]W} [3e}{ڇ/࢟#&ܾlcCq'~4]c)m36>yvƸ>w-hy?<8>&ɷ~LtחV##lۘre7}r%ܵ, [-:͍!*eLo+:-kuaiDqMj N/gp!~F?'[ 0cY ,B`0PCS6FK[kFҚFc Cm#9oF;q "U|cn0!Q̾Ô[̟?X=cbrr78T'z*x1!g8i׬YK22V /% UYBRH$nZMGTDN kZMmbhش `Yi4J%*%\:v/l0RۚVs ϲ,% h 3VىfIl5 f>2y/_<1aRn4`Usfv.󍕓YjnrI$̦kDaUTͱ8.|*D($U~Z'i4w(12BVlsy'/{)6Bҕض h4l g*H6#BR25oniUT15 խҌ٨m2froOB]Iݴs 7T*KQ)ILQ[ytNCl̢O<!?`w`,B/z3jMWj\ђem*YJd1q`d@ %/%,'\]{\D3%u.GW9qv[\?9ۛC)` (PN5kb`Z5F؄{4iPZ9W^ VN1Z-&'ؾ}GL3D](U.TIfhhEG(EzZ+jQ%յ DQiP[dk,;_xAUʵƴy?Q\R~U"g2k="BlQ*zuryyZs!n9,\i=9g/WqU.WLdQ*McXm*:2_!}x~Bsb?H2=~yxGu9[>v:ϣv=±?9mRB yF3N$$סI$X#lY=0>=b+EQ!8N (O4:R8 BJ;Fپ}4Q̨H9<`Vvc 0% "J~|&L(msB [Ά{2w [n}zƲvp~0 W\"Xn$FB>x dYDjb qY("{Ksa hi-G9Jror{?Z3K6-G,JYPgVB9 Ja'*%UgڶAT ) 8 B_jJR.,kV8BDc6~1Fƅ;dٽWO*eJˇ?T)Q*Y-m0-줐g RR3˾6]qtd"D$]@_X]RH!RH!RH!ZvP_?RH!RH!RK&g >'RDRH!RH!RS)%|4F$肋 Dcp"oT![H!RH!%mv&?K~0Ϩׂ/^`g4uVX!YB )B )$e/ΏV(CiF?WB )B )B I!NF* YB )B )B ٵ}C!-Q`F"L!RH!RH!q1Ly+|^+2/B )B )ހ| C+/UAB )B )B `dұc׍>#≟_LZH!RH!RH!z al@]mC K/RH!RH!2mQƉM7.ډs'&xK'%cZ(^ )B )B )dJ̥m.B7`RH!RH!㔸pWDBlS{DJݚTB )B )B ֻ^P" $q7#k e%S ѶmmyƎOιG.ke%-L0(MhO ßGQH!;Fyp?m3F+އ|E><|e\ufڻrNWz3a ʹ-+_v>Xoqy_淼_k4ͳc|ε?b]g$ROvw#{ 7O2MR22 żUS zj=w^k>oM /ݸ0!q3)˟`7po~w>9ʬsY%[H%RX[㖇62XsX|YNcjy1g"}( IQ>k=Ey|v!jEj#KU?2}/y8rnAeL?\Uv=CfR7q?Wkȫ qDڍDwwO@}g&7 H2IF? >C[?o܇>7;19U'.ߢ7Jy[m TF[.uD!fl\W%x뗹I JaY bˊXKd%ׁ!e˿j ~;!Gn4``нo"ʍA}TANhfu_75})Dm*vTdl;c\*!fT3Is=o?߸/4>q^gx&W*8ﻇs[}@O<>~Rڹx+W?g|A YԷs(^eɈƕq?է~ͮO-9ٲMV= xł=07ȭWts]*;PsCt؍?|g㣬>HBztDAY{C]ˮmU׮ZFJ&]ZL}LL2I13ϝ{9{ְwJ]2Y?:=Qz3+N8(>w?mkQL-M7"UY!-Svtzʕ loVW2?pՈD;Ou[n,>ͅcj[-H8rd u}K1v) 0%2l}E8ʫ. 'BAmG}'+7C9:ν&pgVm#63XS;tdhrNY'Ѹ`wxFHɽ}LCLn9$Ez>mE&g %_S37q^}4]L㦫#ìrwkʁ4F3N$۵+t{k=ፓY c\=-ۍL-uPuc2/n^5*+pV$i0Ol[B %iδ2o)l%lmf/ u!DFzҺ l߹qO8qze@8|khaYWO~ ="6}"}'o'B2mGճ'xH#:!8ΞGQ"Aֱ4#'`ޤjػ|1)݈¾&F\gK+eă2N'*C_dv+W9øD+7/gؔNZfpYkJ)3%`@@[cǒzI=¼N"ɗk|dӺ`$IYk9=PlQs%yD8X{|ẖi߱OWJoy{GQߘT\[jjyiǃ9C[=;9zYi誷:Oˇ%`5jv}726-b>.wxCəv+C'97R\jFvI۵(30וS+BOH"P|{UE$7 ra"'ŷ?.91bdEaRNcb.}s QrT 7)DAuƶT]ܙ}t0 ~_ڃ0Ms9@ƞ^} d%GN#cJg@FɚM|1ǩ9uAWNkptU6l-NiGY>I3P}732&=db@^*߮ {TIjD(~xů)* ׻\*C2զRƤq|0-8e>5e͎Ʊn ^^uEvqQ]d_cR&ga`Vb`lv|-D2b{gbz< 2 kEGOrqtMIޮe:~[DӪ~۹{v|ݦ1ȯR"}՟=`N8/IԼf]hzyQo`4+^nz!IFf aDQ)z-v-}#:d7^Rg20i> Oѽ7*\FOXdJ2o2uY$.Rb'RJX2᰻'e{9fW9]\HWtxz!e2s`bt*RmZsI Qi.}5NRK(f3ۆ0ear{(>ƌfHxL ӞEHH)n _Z~B!$"ccL"Nu!6G-^Bn27"&@*"JQs'wqf&O*thJVtOw77(Jl,fΘ^2nyI~ODžyʏ"+qh29$qF{|X)t4ok5[)J©=|_Fx'w}# ;o/JXW{eWW_s4]E'k_[WI-.8ڧ#~H"ƐroObe ^&@?襝0smos7,3y}ne îBrV![jp- 'ɜ snpڵ7=Q t!,?b}l6IBPA%o=%+qe/j;Ϗ 5Lkkѥ 2ƓN,q87Zv*ҠlH+Ibp$W]ޝ-FvƬ4SIA}52򮿟kzxSkL1fdɤkn!nUp|l ss7_ӃcP1w@kXh<#86GNZ`Bƥ4*>Dz Hcp[ {ΉMtzHBk̃l? DU5p+o\# _t(yk,\K7c cZWۛ"tE@y여+9shH;hK+&.o{ۗfiv`3Vz˵=3¯- \1Պo /~Y'+zcAEi|µ)Ki jj*OQycQz;ԝz:bz!'EUEDkt0dԳ ,HwTػrH1+߃ }[6YM ;i! AD YĪU߲dm`6 haC92QwUV{ÊB@c,"91Yj߭9`(]B*AEPTQU}[bQUwo*?O~ӵu~miN9UYFl⁥ RUMp.u7?;paUbc|(b") 8_~z2"UNHwR{<|UQD@U)b1`<$>}[>a9;!u#<4>0\w #?˪SlY6|賂̜ʟ.ؗBJ3!/F|~ig!L#K^Y4VpHQ;=)F]E^1$@$v%Y> Ru!hێYAjJP4faml`Ǚ);s'a,ZFڸ{͕%vxoί"#+à]+>x V {s9<=%6a]B޻]SƧ~<>^VE^m A+ jg >gژT]hAw@9C0x6'tݹipb""yOݥF?TI XW|9rҍ,\ &TM҃?|X~93ؕx_ Ũi,o>p{Os#HD% ?:JDpD^,)pAA2f)*B8g>SǤ3՗ޭSjN6hN~dxgm'J"4'\9MVkf>=/z|/7"we &bR0()U+=ao3*A?þ(Q$wg鈢sj;WsDD CrݤtR'y0}codG GQQx }̢ҍ'1u\O"lVDX 7sӇm\z0ROJ{ͮ΁*t:t:Y;WaMOq',xrgqB .FvHi5W1߰: )~~-|gjmh;ͲrJDg]qW_^, 09> o$n ai$9fr|$xʷo&/fxy c:ӫ{,:!Z_TA6_W^;QbϢ02G:$F$ZiŬEoOcqCL0t;Г2b|#F0&'ԏ/jK3(/(B/rEu MV;ݞ4mxįA In?WE t)}魤Gw+R" BdY@"H3BvՉSJl*s|Nז$B ޣ'U'NłCuPBFUQl؄03TzJ9RuTSoU49N;;)}rGUq8,X\@LQQj΁B"0:;â3*H{55v0nDH58d˴:UN"cӉ 38{xjy ُHEFBX^}O[V# Z%jO!mws|~o;̻fmu݂:wp:ދi+dȔ LhbҤqDn6PY 3&b4:]NQp8(RVzOW͗+uEUUi Ԗ^SAeNk-5멭o*K-56*C'lSXjXTVU{ݵTz6^Cթ6FVCh(:K-uNL#BH,X2 l_+=fgڍ:,xb֔K8y(u:6R OԠ!24nmn[E37d|iVN'JFKR\mج^ r%兂ShAC &+e?l`9i8/=As{5UdQnG`0$,jzk!4 z'y </@"IBdB_ĠJ8T;C٨sKT, 4hРAC[1ix} 1Y 5fb4tRStEh })wKä~iPUa(A 4hKHB јO?y?E5hh3$RUQ_ y|[jطC>XYMY/ʂB,gM4WNР]'h!; pwmP4hhl}MT8T8&vixw|wEU\ߟr][Eũ 5NgcWj5֯g{QK~nLEUUN'NoITUEu:]eByu˭|:-ɩጏF%z!~Wd럽½oT˿;ޢl<,QORl|3'jQ1ߵMR=%K}vW1utId ׍ggm-@N3=0/|}z1uň.傞Q%,]w(B7xz e zˠ1-~۽hl1닔6U)QE5h802Ҙ_JGz\cc>.LfЍ^NJ|/kP u6Aی/KػnY3 n~]zXÏhB3'tߍ pW2~^  s=/̇S\eE" IȘi_潥Xd.!pPի͋\^NLY%x?r yH -M.ߝ_^ρq݉j,hZA{v%HmdÊ]TLL(e× 2J2>_ʈ)ie'1H{rƀ≅3S\#g5O3ګ؁ V~7v@:v7qɃ]g tbLySs3 P7=VX#Y= g{9[ˇK86ƽ/$GCtj9k_7JFCSg2ӽ|K.!gk (r=Ӳ0ӱO-6Ch2]吠г^B0)5\b] w.<ʞf|_t͢za ?>ЁPP76*.̛v?R;BРACql^Jb'{a?Y3ݝL&CjfzWRrybZgLBGDLy$1 K9~2A FZF{OC+ώfȐXWkGz<"v@ :gElm)ޓe?Wcȿü FK_2_/ϥ 0dZ-GrFIv$ÁU;pU4 ?K73%>g֛P*!nqtC/D=$^ O/60*?|Jf ߚ997;5M$,*{"^~{-ƱsYijJ(3O-7}안ڗ-ObTܮP2%y ۭ_Lcڭ,}Oy"h7ޟй=[3[rkР0&7'!JO6}aCb@aolGEH i}꺉LvI^^Ht ;qX1@2yS\1<kٽ9XʘԴysQ)gd5;(c37)'zTvb\j_]Hd.*O"J+)v9YТeMdAOYG&v|1conﳧיִ޸r ^3E?ߚB3NQ, %i/.e>9#G0 + SPo-k<ȚYXDm r( ~Av ث_:6!gbx\6LNU71xUAH!&fsj]9"eEtȩ[=]mCpuz@Oδ[8m+_)A႞m~u[!S;l{a ?ws9P=1Ltw;F![m8}1`AM NI;+3Y!ƘDB9JYpBlTaQAbt\f]˞ceɦ̲쥻(6(`/1J̻1YDI+C LN L8JI }%,p]VַE]z%8nQI/o ->CPf+Q|R!AבѴ mxgc߃ $}[ְЧ9g\?dUɃtWs~V"/: 䢡 Ōٛ˯װ7v<e˅x);GbHn!J՗ )ֳVT쵥ڴ?c69mG_.W`W|_:v$K?au,eSGRV;3el7"tv W#)tu';1}K쬦pvvpj;`N k_wäʪ|+'%xzO˟ɺ5<ӣG5,*ƼǎKs}7]ՃSqRQQеyC]X"3|D^Ϳ $;e{k->]&a +h4kWT#t!]`{NFYiwS}v @ew {G2h]a/q^sN -يRURyw z y?9&|(8'7di9 Γ 761ٰ޼'oD )u:ӥGWoUp|l:Y,˗gZ/Gk8N@yӥGņ-ּFo@o}t@dC$: K}Al#rF}e)ng= ' R\2)=q~z,&ibU4Y4x[ "\s'ukvb7IwO$ zDۋMۏc >3u#ݰDvmz肆,)xf Vջyjx-XrzxD}Ҡ1 y"ifc|k~HǮ BĞse!!=-q~d9mb[oˆBC|a~zX/֣.xm꥔IUUp)NU4\2w1p/t]@oq LLf|rg߭asIspr7l/ 'Ŝp"gvR_@NG)Óߟ>Ѯ0YǑ k*ýM `eFzg52{>3 ZKټ(V><֭oƤn$*U$MJaх'{s<%r CR vJL 2Q<%5^TJ;j [xؑ{`b1-̢0/<ݍ5r7T"G'xN\ȼdBlT3(1D}k*]l j|'ҍal9[acuf=5AwEu !&\Pk-svgm`')}gwOlLϸd[9aZ7Gvxoί"G2Bݫ>Q ϏК?<W_Ljg2N'hzw%qOZ2AE΄?3htmyྵ`5ۍysAxZorSŹ=w-"dJ7 l  %-M7/^ޟo|\Z 7#1U[…HQSfqtgan閇YKgb7(,3ȼ1OTv߸lHuqܗP]VYpEU"f WN[]˲3%gƬ[:` ȡj+bէ_Rw1D!aP9dʻ3ab/baylMB':a潿 5 ELbJh[GXjl\.zTU$>XHyD&t]κO+V @~!g-VY'o Xm7Fo W7qhM~4}EC#.bn00!2dVFl0ZC^+)HRE@ v@=>+k:Q͸QoB0_i_l]C +-HJ eClF4)1 .-n#8Mp[Ng6 'Ԯ~wH aukvN|mj)q,X!tܐAɃNJpMOM~Z v,H7ӆH>]#aFz?o-T1F#%{D=$+F9@8T@Q*h}GE?/fhBEQ5hűR= Oi esC ZO FW)Ѕ%AqQ%DW T-9.ozP ]L{N@%aP ) B \[r W]w^J# K4#]7]4TO;-GۢopȆ:JV:NƝyQX+(>q358~h˜$xcQK=KsGw21 u'9Ƞ_MZ߇=;|LGDDڼG)8meG|.  uJ2)+b֯X%IĨZёӉHсiA 4h0VHo(oaS+ͩχ(gTlHF]wfnQ̑$`y}ɉU;$qi$oZϖ}[X˵0%-DIobSq(v6ⰶS1LH9g8y+o©9ΩI浬ݶ5{UTUGxr. 9Aƶb5;~]wvE 4hР'PtA~x ېH!D,/Bl K&LPi/RšT'y`"DQ]e\IRUQ6V vG+$9AxaT8luX(͡( H)* ZW &HJj!!u[jHwf}QDuX);ZӅ_] 4hРAǍ7^gJ9Dj;`tPtrHJg/RJ)K7KǺA.k+m'UPm Zy A}eO1+UV_c9ukРA 4h` 7"PZrz>S|@:Q 4hРA_Sܶ;{brRJTR|/a}e{y5C] 4hРAoPyYlf}&ҕ 1} W4hРA 4 ž[3},1-<18g* 4hРA ?w(1?7zQo̳Sz'DgE)ŝS](TB_4hРA 4VNlẘ(G6بs77z[Z18-E 4hРAoPoeݐ%X[Q$ҲK<`3^x*R5B35hРA 4 la^ !J eowu 4hРA UCݟ-a;Kl~"OU`d nߘueK!\/R"=Br4hРA 4h8ㆺ-<*:GQUr-qZ =%R9YVFYY9UUU4,%HbCQ 4b uEקI mk{B,]D6ƤK)]Wv7RhutxrGMZK]ty< "w#B8T]tΥmAB4O 4y##!*A#@T<"p7"KR:B\|ide)2>LΝILhA HC](q A0N`ߞv_CX1l_L`Bw4{&ǜs1qsz.oJ8ŘHԻRVXΜoTΚ2aJ,QDSI$-#wW@%XÊGIЅ9k - r9Dj9NG)Óߟ> 8a-Seq1,ރyN*28 E[_TBxFHODAmE*?8b[|jl z+jU=UV:4S8x t钭y5hРh<;@Poq:M`Bdd#zhL^E8k+ .szdIe'8QCxD!%_ÁC ͪT!(QQ6uD"ЫvN"/#Lb3Dmc圔o_ɲV:Y)Fl`Ka<òѩNjJJi:m_5_3hˁRY/R[ AJB҉+L)[wF ۂ}IBUU=5:̊,A"@HRvEQ֭t钭ŮkРA/PWIoai)\>&{ AѠCc»>+)jC'턥'wTQn(;]GjSV4: 1{RD 0D'EL\6rl]Axq߻IqI3?P6x[@J| qv6IR RaSaonRON߼\ѽlxxWb4a(.jH>Lb69>\oBNff&55jԠA__Ga._9}ou(*+[rUw?Nu:O[!t=K["K9Vc&sáe 3-œDިa Jpة<NL)'vhg[)-HJ qbJ;4Hgc[j(f8f1FAɆUg{.ѡ& ԣeDd)9s^7V kZ/ٻ# = ?^˨td+ኣBy}Hi$6'C˄Ʉ5_= п>BBbfvcS:Np^f#++;vB 4}s -ʙY4ţxä:ppH1~1-:HauYe218"#{3nT7"L!D(8k؜rNԜs9<(}Vc?j+&6*@73P7)%֊2~s$BZq C w 8J bP~|3E"mGlŅM$;JGB$ԭiԺye$o(nVͫ֓ly+CDT]_xnMv't>P-UTWAJ@(^qw9jH͎.08AAb7 TNVu@dT$OEIi))kРA/Po-H0]|\+>Gl+mw;3νG3j%ɲlmlӌCdKٔl&46ݐ nB$б1.qwd[M3#Q3`Gv={u :CGrW cӽ$)T#Ø@jN 8F;nl%KɚhaurR@jAGJE)pϥ@xNjM-MlĤ ]@zGl/xjtu-R\ZJ*zP|<δ!ڲBBKqi[bڦ,#~K7-p&".I?_Ca⢋G8&'~R79Cj~%\5#Hho렴PLêd ãqv~?aСCQQQ`0bdeeNaAn„ QOJD#2Hawb*1HUj-#NXOV&3='?(,'_;~3Or`f7/^H"@uQc%ܰ 47DspamAv­ 퉌>I>< ۭTE:1Z}ExE6zB0+H-rz?Z&n4Bڋpq6[vF-*kty@iǚ'y,H`$gyjq,nv339 Oo,@rtnNeRxfgrhu1bURg` :a#R3w2}?{` s_RCd2>xg/疏~ss ?Ԗ{cfsWSn%ޝ'>7 _Sj脩I }7aՇ>`jioo>PeXiN~s0aBρ O>jhϏ"~ #æ \KYn{YpMl(AdGbUR$Mيi`t9DxURF3*PX_-/[/nz}}HGՉ)406!]V ɖZyknrۈ4}\]BQ=p?*;[h>כ:#M-Џi#قfQKE|Wwaw=K DT=JKHW]3bC WQ?ں)>j/Z s빩BzzQPò9TWf%qlABDsV"ΟK¹FTg~>ʇVgN}f[ض AF\!fs?DQQgϞeQB-Bz{{BRB5 M0a⼁2J \G"`Nm)2aOijB9 WH=` ׫F,4KOі8qhzY u1fzq :'-Ao_v5Og=kfD DS]ZTkj? &L8kD9JYF$H'2P dxN@.e"|S~ԥah02y"#Bh BhϑR!C){G]NsrcUv$Z;D{\%ѣ&2ymv: p "5B=v@3O_ .Պ6`^9~C))@ |?BL*r\?/w vof|lcԪ` G: 2:5BaU~Z7, oVg W΃bdˤB͇>G;ѣ3"ɉ80 n7r )%Ru bAb@3$RbAL0aY,*q 4' UK@kd?33g3((J].<%`%s\빾*Uɭ5lz'^yi'tI޷2UY4fVS$$ Eo -m=(?ةb,t=#oD$y{߼?~1NNեY53/.رE˰Zɿ͆:$ ~ J>#˭kGҥ 7a„󈨏ehL%a_]ycR 8!@B?CJi5T44:}Fo֔89pںxtDAN6Ev5yj,tt0ֿ"wjNgc/nw{Ɩ!쪹.pa\rSB~됮n˨OEM|]L0adMK&LHiʣHmFD<}xBKoRDFeU񃼺8'j.cM]!NeJW<[s2D8 KG/̈́H1}dҴqkvNje+ViN-Lʚd5|9=oA?xMM0 }x-@Q,I-0׏r&5Dc1;4aĻcy: ~X1ij¤T2C#D$vz%\>7 ,SHZ;ym{7؁aZކvz`WY8}ZM(:Y'-y^mH}0h9=%YT"ô{;9-W/+>\o$_lDC?2 42Ty YqA%Y$َqt/{3h ^ʖaX{3/<`%W\b;;JDZ9@gTWra;n[<M b,ʁ:tP]ϿrMw(4-F(Ӵᡰr.V Ygre)vsb Eo: ztEՊ:Ԕ֝"rrrP0a|_WDChDHeO+x[GuX ͈*d.OqxKf0b6Z5exDՋE aQ@XTvc9F۠A^@ -c>FMl:af5ɑƎ[oOV\bT9[ФbD#񍍳-%é|[_e' 5>,B&9fVl,@hύՃ4̞ri5%"n0u癃!ԇnfi1$("6([w6`_f1$XbUBdx<ZfSX\6ui AAyڏVŢr۫Ve8x7֕`koR!c$~}׷V){R2ߎcL0c[SDVWB$.FUYYY3FSn„O(IOXt%q QOGP6z4tE^x#0@D8(s|B ޒ="ugZdzQ~6pW@[AUX0 AErIh2H_.u# tr.yDF!Cs8Ʀ>b5>,6óF\%bQbd!w-\|%)ab52iޭ8҇z\ # ;E?T 9x6OLw4-F_o/,[̬ll6IYFf҄$;'ei@RqOEcgyG?dorok8?VY2k~X*.=/A%os㙊^t]Xe0*f*;O:0@svo5ɺ &+'bqu!9,Mai2MN78SŐ<Ͳܙs=d 1覢҃ntl:}Ρ(еG+_Qjey4Mc~j7HVC" GQ GfmvT_90I}l9ђy:{~p(u,uO?LW2=cm gOSY5_f&VuT~bfq{y:>yDž䤈jUo :A?9kE?&^|yx"}X^)@u-кϒ1$%~khH@t#.I%0v0텋ߏi]o„c]J YO!'!q#I{6+Ң^Z WZț_>ˠjH[*.Km)%PPWφxlV ol~BXJ|bD5$ִK?qNlBTx,{;#{~@aav1}W7Pj֯(mO|"]>/6v>s1ˁNrP=wV1wSoYF;ώuzd{<}z1"_2'|W{i zXy#2J\J<#<OTp_dcz8_3{i J\ryH;9n>L{D.MVDz'tw'e1]|/-<կxɗ58]]띴n#Oϯř[<.v޿*HSrU|>LSA m>SsZE^_t]p cb hF,NڍRבP<4y &/Ú{R)d]{+2.J(ɜP0+̛܁M zy5jR/KSg;$~D,0]-HV%F)vX]dZтE)pϥ@xt=ڛr$r*8y[-!w>q,BMN$@͚Ͳ9;(-JV5s QZ6:ezBVvgNȏ:ԉŢD7 ŷ_k.Ko\CC@B%-s?V!g`49@w:BlB;nZ23Noᗿ?͛w/&"4{|~j7 {1*XDoD??o>ϟa/G?$opmqÿ Xzǹ23;y졓3{"~%gs[|#D89Y3nw st}_׷|}HRh-ЅPD\/S`HMtdLCj2CF'#/ &ο}.Ӓ1^_D;5ezB xӴ-GG{;4ƒ=>ACNY`rɂy>ŀҔ^ĒZ/B}XR3蚆Ɗ-^y{e.NU'dHE,]}["RUf Y (K6$FKlݝ5+KqNw1:yv^1'N930*iD/ۃ:j>n0I;i"q뜏!NwH)˟x0Pg?&WX%%+r?SȽX5>,B%%8Oyï LQqYOSULdKP` j"{]|*sQT-K;({|<0G^m{:Yi]M>u}yb_g8ȅs5~m ^%|F?mxu:nlᙶ;j&{]|29dt|noe:A}kwv}%~lV4]Gi(Ĉih'20"cA I"1%!0a„EWg"sD}, O=mjPzX.㼴x\l[N ` DkzG;6G u0(q-Pt eZmA`/Ȱ&NFޅ\X6#Ft(H8&ͷ`ˍN0 BCC ȧlvedfC=ptb{õ?{'6>yăbdS盉 ,yQ4Suݍ$3nR2-Lߦfu#+'ꆦ#~b $=BPG2!c:2f :2cLv&LOHz{QR*&D=mSTOqx|1N/mt7"z#楅3)gt`/RLTu0xpjҼ O |n;6Hhe2I?hC2"3+{J:ݝdff*3w'Oe ?_+Mf?-~&CA`n`8 m;B ~nq K BfZ nk-pbsRTf++DBJst*FmQ>g u#HW()$}hm%5w.pb=@ZNeY>czVg~&Q隙[REvV G4RbH]"54'ǯ0aID^_&%q*1rD1~Xcj-P_GNtwFlV_r{ \=v!/, aLM EmOĂ=tTz([':(k- f_wgɰ0;汚 ̵VsE R<³l&d"HhSMW'q#WeK^[6sʚ9v>ί+,c%v'+bӃͯ4K2gƛ{P@Ydb13$ҐH=Au#.M&Fyg„󍊉19Vn${SKtע{qc0V?&{s_yveXТDB!=6l6+loŢXaaiCm-Ϟnt/w uϖ1WH5v!"YglKW|J</! 7>ZBQE7g?-?3e>I-_ohzϲe0ֻ~~`'gz.<}zlGV) fY^/H3 (w X]5EUgt;Ev#S]~×>#kN5un]I,Geg Wq8P롡z0Lu=K]K؉ n1%7ayGqh[vdRJ]/ `B/lBpҰJPtCb\r隵oF&Dœn85=;0Oks3^l. v30OQχa f~+o0s#,Y+|} .{H1D zɺf!5|? s1a;?$]͸mN\Nt9-ְU ک*J"@,4Rʰ"&0,mGN#0ağ ne᥻&nǓᥪz>`a&CFl8KPrz/Cx][<8񘔨 P#"!n+ w2fn*M0q!CᔷvbI`/#3 &#b82ALnbBx]ۿaf(nF:֌"0ё+.KbJM0q!qZ8`q:I_:& GbXw&w&LSxDH&f [)q[UɬYaP`㑒m L0q>qINKĥL2v-1Jd\DŽ &LVPzZ,q.Q҄pW6aJM0qaݑςI88X!2Л0a„ ]dv &L0@H+;G &L0a{RHSr*1h|)A+n Ѹo/\4?˰x[(u!wq".bnL0abM466 .Ha {HNyyg'&L[z=rB/y$JCOu8%A̵4o-m4zV4/'卬U\ǛQ6z|fFl2&V-kh ѕ|M0a"Hrrr`hhcPPP Phxzɓ't:4a]A~S[G( ,&Ö|:ِ'Bң/:u\Hm(G"Rک!ח1;۶\lۈ9QF˘h[Fɺb (ϲfB`z^8OvaB( R;&bBC8rssٳgdggghD999AGG@˅`$&L0 7F ǮIX"ca@z.[ΐ2x 5j ȟi%cIfԶü+nV{#M}$TB?#12α-2B\SGsxWR"&dd0 Ny3^?6M=M 9s4m3<RZ^jwȷYUy!^xыxG4vUwUܛV2/l^  $nfHlm۰_s%9ƶWOc[usQC3I:qIz_o/,[̬ll6۰a[Ff҄$;'e ڽ_FQP3 W7:t%<7^ۑ08gqS^7ld߅n2k??x5>,/X2׹Mby=t" pdeeinnFupFɏi\."v01)I5K*RVOKG9u9כQʯoRE]>^>J}~.eĸˣ87 Uɦ)J6M!PJVHYt#/n (1Cb(+1$x+/“G,+6;v%KclhXȇ%sO_V7/,TMeh 4vYuO::9{hɼٙq1_ZHi{nd!zsK)S=IDZ9zYAB7zL+'iAV~e CZ<MA Ą=L#@JI4i*jގ* łf#32PUG[F&;pps;xa- 𪩑D$+V5F4u]PTF4/n4/\ 7g1Y|d?\>~لh?'$_`mAp1J#FJaP&#$\ʴ()A/9k/"[ho`3Ԏq{@*n!ҷ?Q u{֢c,2&$rrrhiifQTT4Koi f#Ƅw=s>N>"5ClZ7âs>N;sVd.1ʬZ?l>NS*OXb1 A^y&ɀٖiB5Wvң(ۉ#cç ŊE|F+#IC'`'2d1.Ʉ ˚-L;깏En#\q),hZlOvHU/&SGQXiJntn5mtΡ(JnKKUIuU5nqNC$;;ϋ6 GwW'YTu-8wUso@=+.U|oj¸pgk H֦ɿOſn}6}9Ls2·΃g)I:]LUuujYF˳;so<,FG_?~[<.v޿O>aq=t^>ύ\pS&9ʯ/(\C=*%_Iٟ|<2zHu,eӶfP)[7/ĥ tu*߸!I9:v;a044D(0 ,  aј0. a yͤ^19QT¹tzOO}~j(9rf5Y( +։Outc4)PAb: >g%W\Z:g3LZQ 5qD)b"[aELӻVٰ;38PpT= 5qN"W<#2oAL8sW_vD(0?e#}1W(ť'>JfcXޡ[,dep)3̿,|>sjQN>x7o<%ix_皼?_oMDS?=3}~8{Y6> 1؃"zylc3x7o<OFrot}-:|~u+<āNRy "YX\`"1Y 49@j>uѬr*ڪ:.yYds+c s' ˣl/~ܛ_w+fC6ьH;6:RNFj2Y(cs#)g_'s⑟Kv7o|:aFikknnghhhx tr~\ܡiNL0[CGgLz|c~>E؅¹;Svq ޺r7EVѽ 6xK9#%.H#Bgc?xjYR;6MSJavá VԇE^`dsJ `s)0,Q$e)\!ڛs 4tom\~V.'.d$?YۓmP}sJ\<8-!w0h9Y6}ҏ`M/AaD,PEqGh^49n=9R 8uu;h$rNޚs5~m ~~~.*j֟st=loWĬIu<$yy&@ԙ-AW^ȣ/o |_Oq ͈ "K ;({|ҙCГd_u9q OӸV*\U Oړ1pkg{E,}/ERUŪ[ ){90ٹ8U1Q]X9pz?rg 32pðrA}6߳z,_goJezڹii,ܬS%+#fKxEeR\S]̒yn8- ̱:Ek$eh/bB "^3P)*ix/˃2ඊ{w%Wt\u{cȑG:NK̠/q}y:P뜍:/>zNg$-f{rէ>-ގXKh2\l~.&Uvdqe؅1Ó~հfGbzr' gVkRÚ;>ʇg>}ınpaQƛ[+?QG%Z0HFMۋ!UOV`0`u&ޣR‰Hκ!G!8wGmǛѼK(7T|Ք9Oqd'|_:]G_HPC8r:.R-:vslHCs\uiycg8{{@EY,˖-ۺtuȏ-ϲ)%J$ID"A  ,&tw}"0^>CtWwWS^=M4-.LcPι<[ٶ5AR5i1 /%QVHu1u 723D͸\v60ꙴN淸1cVfJ=T}&~g vd~ t5S12f',_vGΫMUЖ6}K̫_(+dmֱ,l[v2U%2ǩ}x%l63{ZO >/P}X۶ø1IfJ yp1_}jx^=vWK|$Fܧ@^[,sl-̙ğ')2hh1tnr4%Tz$N~?$b<hhtc1Jol@]x]wNO qԜ_;Itp |O'^ρ4Y?1cvtϟO|:*01ir2y4j> h/6{i=Λ휠pP5Ёxg87TjZƎM,$~ghV0ƅ JwO m+_rGqr۳7˞W@ez| f?O~?EEE2)z__7 {C.e9jb̳Y4MKs!0@-M&"1"}$ێPF&„c}=d81A9[ pS4#w=ti[~X[&E׈A㣵MNB i G ur`oH۞cqZo+>8ř[qS5_A}'S`qvU0^~N[Dwdaܵ=Ƣ)i}K_y[~j<Ñ~%&>]}]A;N['wrx/#4f~r%M$MOdtAnb$w=Zȳ}GL7sv,pθk&Pg<57Qqٕ1ʉD={)..!v9<ŔRSS3b6ix^Ba&>^uCS(s]Kz?ٞ&<'=Wu&7ͽ)ߑ?TP)>G jDzhBZ< ,[JpݴO׹3507mۘI8ܙNZx++C?op^wMO?O&(a'-~+ hYg,U1>=wϢ'w!72uBz19~aPe~90cLROٳQcdRZ0>_o$ %i)i\q c|31,-+Kb/GABbP{Ý-g8PdƵ|~ɰ:_)-Kp%F9 ri%G[O{N̲g]`0DaagΜa̘1H)룯3#$HDbNCfP[j]XH)5%@ hڄ@Cry1Rl)56)mE2+ߤp OI P*xzPB|nc 6"wEX^da]3PZZ$hQW@qI ]O gDw tYyįe~ǘ8q!g#a6{Q1 Żg~Kxx<>/q.74KӴNMhǁ1q%aiڈ^#(lp?Yز).)s)Iϝ㡨&e)]"=Nױ87< MLKbÆ%'&9r\1zZ5IŰɎ{J+?*|0NrR &͎UϷS)S+BN:j2N.p%$ΰ?–|>ŒQLrJ0b߾;vcǎQWWGUUeeeRXXra'xe+^5kր<5Q$,t]XØ9 ԃ cA $壚(<+]hʓP( %/G=z !iRB<0N{ժ*Exϐv}#3B`|6'lW{zLzj].DڐBP(*>>pz7P(k 7v !tA̤ BP( b@E?*sz-%GC=4^wBP( K)GƳB'ȇ㙊_{%OkزS&: O{i?svQ( Bx!t`2M}&_LPCs5=W5]ϟ%&19gCS'Ҿ_qn3r:[?$ph/DUBP(+oLFg=;6pN*?ī\nGxC ^n+'\hm~ǹҢ],/EyEsYuS>tf^ݺ_Ⱦl~8+}b9z~4EO^ͺBi n ׯCO#ڵ-^aKQ5k j!ǵ#5=Ewcu˹M+l{i=Arc[!(l5X8%YzglB:{*ft?KWqζ?ǦÂy+C!^~!&]6ᰛײBrc3[7oƳnu* BPhٚ[%(ܐEpTQWYFEu#n\Dd_- ᦴb+Jp:xm:sq,OWz]mYiLFDžaId5~f}fb15x01gaʛJyPe 2m h^^E<[&еׄ[iuE z#R%^l5:X#=H͏͙ BP(=6ԿxWM $1z wi]šPo}xa>iY#%F~v!G.J츉ĕƴif6\eMDۦp>бHt:x2w3ELFMЎ,=t\>n6zA zs}%;=P\7M$L 0:m1gcshq;*åZ*Rn9{=؞5ݧBu\ t BP(M=*|rQm'\Njnv^.B=J PEIYn;BWg᪡% bOd\QZ-%uv:vVO7ik^A1NtR}6y7_c B'~Ze$u%[ HvlimxjhhnQ6Ho-Ҩeެr~cĆRV?] SϜ%ⷱ!BߋnqǍظڃ4I""֏dpQPR%?v@sSTxNl-XHhד*#(`]E9~u͘ S( BOr+nu{;2\wiީ q8  tR(!|߳g,(sB&&=C,+bn eHHb+$ow!ƌ DdDdVPoȖz0Ɔ/cF};zwCP(? DU&cgPP(~I.\H<Wyv1o,BP\;<+?Y>#PϳsM~#ǓĺBVƉBaf͚Eaaྃn`ƉQ#3 B!G3;iv9#SPrh֗ҿ*]̞=K(ʸ&յ֑+L2ai P(ײBx.-4cA P;'DQiTs2W_eNFpe#~hT P( In/@:`YFK8Z2FR<-S=KkkΉl;++ "CL͘z(8BO]vp̗Iqy=Hk"ף CP(m~z3Μ:Ɛ2 F`3PUb9I,+o&_4et;fH΍@MP(,=!ݡzdjk5BnΓB[ev/\pI-s>c5 CpŻLØ.t;z=?ųpbFauS] ߸)ml]A^֗Q|7Pz{sD> I.P:]P(g'}ӳ/Գc[.m'J&px5̜Xݴ?euQ^OF˫ Ƥ8O}ź>7֟3z q~EAߨL KKԆ\oR\lf)3 e͏}4v`H'%5ZZL%y2pCͺSuJ-,3om`= 0M?7W( ňqDfp㦱dD;_䉍)Yt[h >*kcun`̺ ≍8qe;Y{]=E2R_wpw1-7ZیG4{nSg஘[e 2vF#m]#xkgr:.|=/^jf>fK?{CWTVD5B}x M|Gx24$}N7ʝc}t{~跹(U`py~<+?aK[8e齟#p~_&ԝVNǃb-M_f-w+̋⡪VF -O@yc3>?*k/W1N=]|ӪCyȹ,E1~m'ߧoUEP(:N&>7F$VHA(;Nzr 3*9RdDcH >Dv/&1 k?{>3 mozG0]\IAX"})Cfo ޿ sK}TƂQ8,>JJ)w;S3[XsuTD?/Y,})/~"Q xk;m3ZJY 0g>3 TkW>`1aI %ˤtS5hgϏzK#X9Jok>݂Zw}^33Qo+?TG 㧥m U ic 41,Is㻼Kjr#ԝwU+m xf`z4o+4n{e~x +(3F;k5s+ӄWTS;P/B B2,pyuOjqk137P(Kremcbw21Dڿhz,,i=3{rm!^xw=i3pI׮ l8f⵬͛[Rsϱ鰠uJn?W_܆Г^< __9BFk[6–jNMuJ`[ߖL.3B:18ـMUt/΢osyEsYyS>܁m=nl-DyڷiS}_qz۶q-d!o’B '_S] 8mG963Jþ㜉T+S7Pq9kvNL 1{l9^]~?l[awmI;9SN%&Da Lo9~:&^F`+rQ\6^xq'l1mx3 cWbGc Żs._/IJϨP(Kza׏ ; 13 ژ|M\@g}|upgV E0%g8jj`ۂ҅K9}IvaaNNE!Ç6LMZ%w ϝ%1%qN7ΆZZn8}!AAK-2tZqQzL}%ŗWxדL:$œJ`ϱ3DVReu_]t:6A-:;F.V΢OG3O7{SkH &~_FgS3]GΜz <><ּ'QgC7ɪ LݦYRY"gLD@Tб;4BP\j|C_2iC#dy&!u*2A4.Ѽ.4Ӌx|ηLkO' ₋^F0 _ׂGql5:X2f׎a[Ѿ8{#qaXY%'*&7?IpBE.4)D#,dH$LU-b&h_JxB8}5#sN9ٗщNr1mcfHic6FI+9 1Mx sʗQ4w#e'ܟ0>5%}j#VOf^]9y1}>mP J@Зm楲28q Guܹf"t7R4;drggd_Ą'CpnҶBP\*=r-#{9Ĺ_SM4l hڽlc@iY#%F~v!/=DTM8OœXPoOV2&yi6+{lsh^!O^w8z%?I[Q̠b Q|S<^f^੃:S?J]b94X&ѽXTՖⵃx=f];KM,WWbS)7_g &Aڃ:yTiO“iHOp2`7U JKj6zhpXIƳfi!~djvnSMʭ<) ږ2,g$YKS:zv]&n63o:p`9qZA-e^.C683-4YPK'WUĈ>.3E,FltJD/KRWLeBo9|,q7ͥLd`or}vS}P4cJ_{1{wh{IY1OY#Newr,P| ~<(<1NXsܲ?ƑR௙̚Oˤ [ }?+޸oO K3j6kZ6T7В׻QO|0?i"%g9VA_0687NQ YƧytKi]0'=1ʡP(C[`5/#wHĢ"&+Yz g[ xް#bQ>—V3sm 9Rw:k'u9K+A,"I"*hXajhD@0q3 DDb!mo3GȔH\?/eٔκ/,@}+?@JDǔ?uhWx~D̗JQhXaz'uE'-?P( Űzq>D ɝ.3chxE"niĕFs4cGē}B#A’`Kmֱ,EA$;fضs7[;i]iiYe˻yᘕcژ3w2BP()bQW(L,D7 ϟAޑwel 4- Vs 'Gzck\`3!A iۥUb_xź BPuf IDAT:#;4m`8{P( BP̑-Uzty! BP( EfL0:H|,*w[|╹ BP(Hx)Yy͸iӗ+n9پ-{1mu}) BP\(M`i;chܶm4M˹\3 ^#]\Y<=~ev&jIu]|< C'. MzNlݤP `Yzj+܃SXݴ?euQ^M]j BP( /Q33n|esr|0hxJ*i7*\hѽw O} nyJ<7Yǻ}/II,?z4q:Fv/{7osZ݃Cie%Ņ*BP( UP23cۀ=# «&]=Mr<2FA8aYg[4tB)mlVĤw2MFFهBP( Ż] 26u_+&:^b!nE:i!4cH;كҾ6Fa ceV[)n0'^ΓG\zAg.`NK#M‚ı?11+x|GX7(_{]M@lJnp43y|17y!H\(ipg 4h[z5l!&p ѹCIZϞ̦'l霜;N\W1xyIp.u㉇[/ŕ۞Gv .F,jVΨ|C BP(NsG;ǡ+NpDz >z5'8DoYe&p|p]o4-uMC7ϣ ЌdNy^lnZ1"#*Ɛa,UMnnW4YM KزE5:,#|DWQaNm5cҵkx-+*$:6uf<[⡝׭fj)tl`( 3vL1D$J ql럼u3+0@$@z^M+l{i=Arc[l/xf^(Q"]P( {lohj,NH\v}q()BvB:K[X1ڊ&,ZNJf8q>[&**˨nd֍z9=x]n+O&UZKCE e50J)/f, oF4Cmy3V8M,c}?<;ֿc"r3t Pp5[)*d¥z8z*}+Še^feumԖSJoi.ۥchڈa,o=ҌnJk+(x(l`LG] BP(ޓ[r1>7.RJb/ףVM]3'N/eT-Ri(Xk{mY#u29f"l EIx .QvVwȶp5,uŧ;ղ׷RH͏͙ظ32BD;]_ܥs='BCvDJqɄsMM\ IkTJbCSX2?ˣϾ u,/t =i}YvaK ^ K|L#;Ȯln?{ږrU HBP( !ȋ!57^+U>_cU>5jV/ˆso LDQΟA;B]JmxH0]H 6`QPKn})4 ]ǥk@;vSvMƓKrgj`kニ*OgFͭP( =٥1RbvF'<^&d {Rj2&~}럢gDZ p.M̙]uՎl1f1 truZMX`Oսm#VWPZF=P)c~kϋi+mG u7S( gq:L/|=u̝Qo^{Y"D]p.TN%Vuzl!cZհm]wA MHSR4vnumbΗظ:&Xɼf7f)eE hhs< eM!43'I$Gv"d+{BfT LSR6vnȶ]l=d. j&Q5^(`̂{~;6Ѵے9wpg+[wdA ))nrnޗ6!qS1Fz2n;͵-mgQX+?f~:㕀S̜UKhJl[] BP(#=O@F~4q.RjBU@B (RzmKfɄ0m np㊕e ^1 rmaD# l4 _[&hh<5USR %eW\#"H/{_y!t?n>"3((ddjϋaI+hXh5'ǦmF #XˏE7: _~pnt ƊE,WíkXP]+=c&CDLE9~u͘}uf}S;6MUr\jw Z٧G(p{{|>'6Q5KӴNMRʣ1(Rin|/?}U6 DDD/ {GQ.ri 3Qf\U+F$ <픉0ގC~lof[qUzia^*?ZۄJȫ!e-ܻWi;i^P(W ([O|>ڥNk:$PP$lIiYmcۣ2+<d@m̕t|<<釲-,5Xڶs~%r?Σ|wkɫ{ Bqr@'o4бyzA3o>8-v-*l)B^?w_*]ξ //j3q&W 6r,T64T]fU(w##}g\nY+9hqs^U(Yw¹ݴpw)~=!b ̜Z:˲M<}&nfԇN&3Lvҹ:"fP=:DPO|Jzo< ȗdAs0õU?n"9Xeȴ6Dr팿T@BP'63whF" /@y8s3>g$<2{?ʉW;ʚ6ySHtw`?Tǁѧzֲ͟wnGξ_9ϓ!z`YG#=&[5_ixƞO-\ M|I<7)Ԩ<9>䷛z|g^# Փ5m2>m2-koLa չӛn>B]c2̯KΪ;K=ք+_>yeǟ;]@` V ZjxI9EGl;öi$n ?1C1>Y|~.8BxDzn.<C./v\I/3#頛^9NdAP\2n>׶y/}R<ڒ"բT*UJR"vc @{iӧ{fln{ݧϜszƸmpO7ǬId,l ZZUf\nddDf^~zwɌ̌/~%]'faғO~}K9Y\¹ɞ˺'f1`ɦmb[1c6d6NƼ #:~ȓ8L.Zd,b`i]xhq{tĊu]74*uT.H7 x嚺Zos^W]j\u`'!X^XEVdJj8[LloWM_.`O$^f+䱆7O?2f84 pW$E wZI>TO?+ߍǖø{|B*Ik=~]S=Dp†oIWJkmk| _µԕũI'U*lTŢ+MnF>焜~7u 69NíaŻ}p=6tgQL`)6_v`ݎY `j,s*N39gN\}?]P~cwQlǯqŶ8!l<[ wcLR躮RNW{w~|wq=^=Jw1]h>;-Exٵص۟W@BN\/5Zs/2E\_rBVOp>Yw3O>]|*&m[^~*?| L£'pūf urx9-܊?ǟL"LO'p.[_}ߏ[ʋN84s1p35/|oً_&fq0W]VO5],)OKX3|rɷm{| 7~&l{NlXC(Pdem_ߎ=*&K80v<%9n-7.u$3f>?\+V55߻%l?{CC&wb݄@3 !06ZB>O]MI!-3H&qqǾ cYMN508`Gq͍_\0]s_ I/&q,1 $x>3_O}܃;ހ{Od-.?8Wuo?E2q]D6޸fW_] ; U{6 F_OI_q7yr`b]9¨/r{.c/ڨQ\U!e&"bTe "S]` vNzUЁU5dKK/_K_*Z< ?ŗ^ꢇ;K~UBYenxwcf0NMLکtrir01?'&/cపX`ӺgEya }Kna085+y:аL!DbFLťl2)!]}_>Wؼyx/!B!d\кz|9R|U V'ݞB!J<(t_gFmI9s;B!B#xSYue&B!JG]|/usIi+DRB!Btq"san31!B!a}E{<д">ipR)!B!qrg/J8nt}sgi=B!BNnL.}=|Z.Ų;\`,pB!BNz+FW* +Kkz_B! J/WVs)TB}&&w"dB!BPTqԭPQh׈E=iU'B!btc%SR/B!=z?翥(cMp'B!$,]l@}ilo]u2fV ?2Q vB!B bAkh@Y}t]&wB!SDzZC]9uc|87Nu'̌ uB!r u C@fP5P-00݌g}OW% o 5C!BI[,6ϞpCѮK$ B!Q}Y]XP; ԧ@!B@sݬIQP)y@!yvB!BN^ ND][i)1Q==ȝB!U;KNuIm&ih -HaDRB!B: ؞ ݾ»-V:E:!B!Q];ZlTWw.xVsW}W]5wB!R "yEnz_FB!!cQmmP@N6-dzSB!*2,c<ʋ{ɐ *L,j8B!:#Vz۾&u^ 4`!B!'@t3H'2RO:!B!m"!7/thA'B!$$Q_!ȥ[Emö^!B!ɭZZ7tE!B!lOH7<#HM!.B!9^)NHPi{@ѦCB!0Z(&2$ wPI)}-B!s3Qs7F'B!U4r>w~VZE[)u@5wwOXB!$Gk!U{kܦ-w B!GNCS ^GuB!BNf^wwcDhIc"RYmB!Jw z_?!a R 2:!B!VfP5+s,7LoWB!BVFG=Wި|H/g#x^B!눵uHKw{HRB!R[|ߨ/Ն;DZ|\]^t!B!'9bru Фgԗ:5Ҷ^]_!B+⵷֮,~z.( !B tU<LL`}) !B TRW`Hc ƢGQ'B!@"ji_Om3ӢN!BNzJM._O_zhes)z4B!RVUxtC: hM'B!bQ/ͻHˍ** 9!B!xUXj/Cu'ж !B!uLoƘw[k) !BYHcFE(B/N(/>8=!Bytr7 p8Df34?AbirYeom#,[#]X(L$|F!r>O>EfHN=u3:c"&mfcC/7mތm[ ĺ:)>s{'itd@Z1g2'B3ȃ>css˱vZ.Xt^fggq=?ă>;Ύnk =8qeazfyXܱ9<8m6`B}G~\OUE*D._UL!r"y'pW`jj GNB2?o"MMMs[og?5ߓK/$FTvڍ;n ۶n]w+Gl[kU AS yQ0!rXXX /b+w队V|/aff XZZ (ҝ|\XX̚824 N'7>3PXB!P 7:M|Q$D}^hǘ j_V,Te'Vmh+ /,ApGB!ϠR +&^Gg_#ANUaI-}13ұ Ń/ 1B!TVheI-,?B1g5enǤ̗.9{=֣w^Oݙ_w=,~x++OCZ𓘝ǭ:\}qބg"^{MAʎѻo<ËtiyqpQ٥Y2߷ݩsVm<*Ԯ;+ГjaN!(CC./} _*o'Ww~9<>Zo5xq\aW6`?//«߉v&ȑ}-D}Sx;9~L>b~RLa#ܸ;8鹛.=}9hba~&*1#n"_\mG|z"<5㪗I{ bzس>IN~%^~F"0)fs'utr\XZ I1^c q/8yW͊?158nj>)xpq! !r\< m/ّĜݛ!ø1ݸnʭf/M&>{V+]8w0!`~m?:oلd\ǰտӑd . [;pଷ1޲w=)xǯ߹zIG$tM+A{Hk/v/kgQCXsq lj |_^:2l,Kן-7c [p |f<׭)LLczj*hF# p|:R><ʅG}G9oLBU~xࣳس~}-_V"kV/(ĺ-c s/_")} !r#śpZlY D0Yēw'<0dah-l.aaq[Zd#KSu)X[I}xbxc<%;UY}@.q})M 6Tkgx:`.._*6l< e! d3X? <>,˭设V8ʅ}y΀o >5MF>vDCA=ۼ4&}?{!BjN& fh-6lG1$M4|f|#7!{wM_>JQb.Y@ڎo){{kit DM_)㧻 ŧϟh&6`x0ܽIE%_t*ˠZNUdXȯn|+bhfkBMC$8oNpL RZ"N$qnJAHZ$8B!'@kmv_6Yz&^tZdw]0C_~=/yرe=֝KQɧ8Si%Zg#_}!Ә._SZL&U! \m!wp:u_Ϟ>v;}r!w(:mؘqTn<<44BJK* `(G+v5)`CwG=dVdxYh" R$iZk-}7!*; b:XoB! S_WHpޅ} pٛ1mpdxpbnW>3fk%w7\$6 gK/s_sWZ.q'aef+7cݎ;!&vY2`텯+w|nنW lp\ _-8 @p׿{o*ܫ}Ҳ=ċ{ }`zv#po{w߆[Pz67>cWy+]b:\_A""2`n1lNv[WU5ia6P3}/}ūw Y! ?ŗ^L!?EIꫯ\5iRLNOaj0@RV;pqG-L`fz lq.A`fRS9eGr`jH aˠ `zjPviGf) [34SKkqۦ$I "H333+x;e]7˟l7CT$LLb0H6C!, ҉)LNHly, `rZLcy`jKG1Y4$bt s wߞi`05AZiWX0|f {ץȆ[@hi|[?o}Ә4L:d2X$|jÉ a}~ a0` F})c>5nvB!Jei4K9[#gqh~6sO\-%>uOsG8]!K[moa{6!r,vĽދ]va͚5Uh#G`߾}y9 Q l݊'{ [m˅=Ev?zQ $pbB!GG(G3ٹk uB!Bo0]VPGB!slX{u]3N/`%bB!Q\51Z%) B!S[k;uB!G,hb{_fQ7D`uB!BFz9,} z̏]Ufj  1XA `*6 N!BNv.nW޴D꾡KS}~8uB!r#R.} ?47.|dF'i_nYWU5:!B9مz^Z'O=.]*~EnT3+ 8s|{=*|d|#b7rOX1?X[cs>'xxպ?+?!<}r>F=+K.(mҿ]`t#=ЃΣk9lzjZ}"{qD_Eo{Z)cAj IIb] D%/ NGjE *7FF|%EHŖ9 Hk{vugQ`hrozKRȴ6[u<=2:>"G|43m*R#7h]PFDZkm(*Osqg; tt@bww\"b%..k?*crWPꔹ2EhK! LqL[OͶ֎mCz޻zgΛu[ڵn+U W!decS.R1\+1:zCkw9VFOV`Fݵ*3-kn)d f% H*G%ܱhCHO@X; g)֍RTDLQ"wX\OK ŷg< eiM$U I 2kC54ISQk,?RNSme|Gq7 1:!m;S+KP;#}b$XZ~1IDATTR+ M<Λ^ZKcG;qα/ DG{M\ZɖȈX.˜T%nK3jXntMj]Ʌ u_P:P ڢ(u2ױ\e|sPRV^NP)2їqŅ5oWK:.>rFe˶ar0h[U}D l(I㜿?-.dIY=HS(D 1H%Aj &Q#ƊKd[mǫTupd)TL~~Zr_u 1Q$IIǼ˰@nȊEs AS%Xkwؿkܷ[~[ncXvL ǐkh} ZZNSGƨPW#I h2zLQqrǽcb^?o]i1K}LQ>>Q?jmծ\j%$BҺ6h9װE[~\=ZCbG 2DG4 u.7\B]ldN_,UGm|¨@i.j ׸iyo+ ldG B uhnrG׮arX7Rz./ IY51XҺhZ8aeIW!E+!U,Dn$??Ht" L8 ^L7W\m`&4D?uF/tG#~m5!Dҷ:7x²q+z6kYsMxowfYJeq +JonE""0b=źkqg_Y T+OqXc«) [,1DQ1Fq߲Rp<|XU;{ g^d}3^67Ar57b%o[3hh4&'Dշ%~$֥UPd ]PQ@p+ C[u昦HPwEӅ%], V "~u}uwv&`,1nu u-I< oxsqcƷ8g| ?,o.7 [ \Vخ ?ݶ**®%"M_k-u .ktjܿ7HTh]Cաw yg_:bwU-+qhC~ke*i9>gۨ=6DrKxoZ ܘϮUqЂɃT&˪6] [ҏ߾F@zA=sOK,ne.36һL,"yL:(kmMRYk~GF꾮|vSt[ Œ?B1+\J<1Z>e>*wVmFWƴKn[Ȋu EdIrY-V9hnU[]2Ew}P&%/W*E$<~2rb-G@i8Z6{Zq ueio1CӸDNҞ~[EG M04TBM* Xtʱ]}M؎tuD զhJ⥙cǀ1utOӺCFYmUrdk߲"\0,Z;L]_qWYόD-'iEBj‚?/S,b3o)+FS ޣ)+JwE)JGIJ@`=,WR% ov3˲Zpn(|(ڄzxe#j\ޕ~PEsiO ǘw:TEEn?ThB"bFW/n0e\qW(Lb޾Z3[x߈t6Pc'j~8Pݐ3-QW$Imy b(GnA.%h _x.0{#Fd4)*ɅDi975"S6VY}ebK˱,űdI#JRSxȘrN&]mlO4՘s~7QKQ9]^E}F_ǰ'&x]W"8cNrbb{y0wR̛@j\F wll\f]_Y(H8;o}4G[䡘$$1U/3'~+ujs9f-~U+C+f;Hs"f%Yw~3B=5'+XM9P4}#їP/ui Y/_'OiKs$|]ۨ??&r.fzN1;N“~|tp^ )ԡg:F':oi6Wm]3"6V|VܐQOV Pnlpj.䎌J Y}wh)BSJ9W!8*VZ HD-Rrq)q-UeZ=MXu-`b 2E*]bki-bqH'N_&UHOg,מW RxwϣDG|q o@]ޘuJ,_hs~:#Œ7&|=_Y#yʁk juL[4r}˹#⤫%kUQA 5u=o] &y>u@Ќ q"(wlEzcXvqr)r]˹ntS.6 ^nCΜ$P$f3'hY}CBcЌUxF)K]TGJxy0J_7 Ut(P3zJ/,.nVNm;jr Zƽ-6\{[GKzHOן6wPА(Zʤ_{F"B#OmNlԡ鮨А",ZUN5k͍7[ce-78#`;jJ_|H(tvFpB}]d78eY2Z?G""uch[+4dr&uMw^-m넴#OOȊݧ3&㸝/ªHWorgseR5eX{7(1 E\nfV0XO qppX0M}o6fsm3n>,:&HL(Yd#{Ӿ( %wB:2ZeM0C$ufXRcK(Nhuz FY5I+/!혈]rc7hoFS.Ƴ!FWFm>}&7Ōiii۶sί,|?.8hrUUyս8XDPsqz| YH#%4,m ܮ.k5#9D6|Ξ^5`}^%-z]HH 롲HZ}WGˊRkڬOo]v~XWjHRjrWXZ;ЪJy8j.B{aeU=[P{Q81r,ym-!bc*3U-nYuYtkXѵRk- ;p+kX~#=E{[s@-.~o7Hąӱ,]G̀oΘ6 p+w?>k,IENDB`dell-recovery/help/C/figures/oie.png0000664000000000000000000033131111751021273014563 0ustar PNG  IHDRXesRGBbKGD pHYs  tIME0tEXtCommentCreated with GIMPW IDATxwfUu{[1LEz/RD5vXhblQbyc&ch%h,hE@"43 ֧?NyN?3$g̽sʮkozבO@(,@k "ϕR(}nۻ_{zOyG] ʢBk|(;R X/sP&Q~"Ek}R<|z_NߣM^~:^(~Qߢru GWYE: Ǡ=gHH|( ɼ.\*RD{GǶQ 'BcL!z*eEw$Ed͟_|U{nwE|V?JaEw#17m˕~}z*ouBoc|^D -7u+iԨJ^#ĈQ8)WVX~~dy@Z07)G:Dև)_dܘDǶaDnܔ{!L CQkmKo2ƺNkxӾMYj21w)-/3>/&c[q'+)莼'nT' 3aN-}- Sā9=O "GG=)/ )ڴg}_6>,)(-|>f%=t<`uYK &ǁ;]\ *1GLq=0k.c!ωC,CSt7QxRQ#@^DDpMB4S Ơ!1DNW>h^ߘTOZQ0z/j89O*6xS鞤Ⱥg O@I=w6O_ǯ+@ͩ@_S Ľ+^ B@Mo4]Zԏ*c>uU]@dSBh]Yu Qyک9YփZѼ" b˼/}`#\lʳ( -E 6<>f1ɧ{2JJxMJ Qq_##)6.x`'b޲<I#\%SI *yqХ(֤"ZĦ ¶ ?4&24A7eٝ1{hdl%<jϽk 25 0G,WX{ |"aό=Xl_v+2(Np},C&̽L<%_OTOTdvݨu#5c%3P}c@;To대Xqr<29<&ӨdTBHJ ޥ ӫcP$;o +Ro$ܽ}OC(F'$\ݕTϏfW3h^K K|b.K_TQX"M9Q~>iOQ&s/I6a{0Vh˶ 80."JQ`HD}ĉ8 ,k5 㐹=L,]w<Џ$&Go`-i HI$3 ,32NaƨBUzj}FQbLx38DT6,n12M1)I)/'<+Sn)č^"aOely{F4Tl c N M q$0 s }YRsQҍ 'a-.=yP 572/KM!쥔ZSJzL|$d&שcrRMW˥``ЌbCOV~/*__Ti lO6)>sA2f5 2ɼ>:SN S:`"Y}!c5sy9 N/#u4*Xm6U%J3ys!-taՀ91rh|=((^ Oe$'{qN;' DyR c#'19m0KR0ۋJ0;G7M$, PT̡S%PKqEˆ xN^c [RYީ.4=H]˔%gtpb&pqB`~&<9&SWJ #|`,2%U!*e5RiR96ō? =~?v7|'ΎDzg =&}cKpGmƍt)`e^GP;e gF<}/=},/=(`b{*83IC"ݠ^ƚ-4oPvVQ >eTżęMH}NƓ d"61g71Y=ig ?sːvY $P2yӼMI U<2h $2ɋt}!SEM.Y(Nngp).r+d:m2iʎ+)IHlxk2:A1 }kRm`7Taq+q^ H?̈ǁԼ 1:J2L8PP\̩`;Ppz0_!cR%ǰg|f+mb"u Imڸ:3sΆRʍ]NnjF~@ʷEa"u5M> KLs,2 VSnsnݭsD5Q־\BO.}֢W7XJ ym TOegTшe]-'?lu_)D!9dB󝐵*@􁒾Eu`Q9BAQ~@ɕ`BF l}dlׯRCa@7Ykp@'=L4닖 SJ1Ӽ'>Ϥb*J)~!5)@SI.qn@&9=͗g4$g/Uxp&N ++v1pCbڢJ\.hW}DŽ SNL357 %֓ԥDL?r*7 pa.2rnߗQe37O=]>K)`ξA=~cy$JB6gm\z*4^A{x{^\NM3hbU7v!7 RC̱pVΈkj: )sW8 MRd_Ae靬"XKˆ,9vžAޓ7RAz{+Vֵn09{ x)ZoH< "q&@GyIcşoR&=3onm k=-Ce3aVKiQ7Sg[qM:7{x}?1侎YKkC T 0"^{tiaT"~w#$& N짒1F*?c4nIFx%ni@qV)\&k?~ILfS2XŘu v[HN 7wMq:`͟І %8mEdUlGG(HAF CL* xh1< 1y:P Sc1g'JB0%~99;?E\^F7,㤓&qP*"7R"(QFRe0^Hn~_'ԝA}b!4 Dxy&#Y=Oi1"q`0Tq{["ײSH>)?{J8xiN/wA;7NwqRIfKhKk')VtmP&)rsL,5敄aQJ%Ǝ(IwRn ϻ3ʈ,I υl$!V <{c 0}w9OA) G[IY w2_^*;/0ibmWbOo|u%+]Pxz@0F<= og- _oR`e9w%a\@$\ ~03'od1aibSz3%1zTT?# |f2A b gE`ʌbb7Sj tgpW1#'W2=~0~F稏;-]0{IAq&}ܚt^iuf#WlLl~ZWMdM3x¤^(38vDxrzdqtK4q|cʣ4|{Ӟ% Ipʳ|X^qZIu` 0aS)V_B*ȇ[e}TI?v7PE8$A>#79qOk We5QFaŭ^hA^ٝ>;D^KQUU-V8{p<`Ĝb1=̹LwF'*-'yZl>|`Rjtmt`bmV Cn(d YHȗi$Btn4\H=M?d[*]&BP^]P`L0ClL@0=&O\E{cb{׾QCY&msh<# jyu~ t_ w`D\OUr*aK[B}JvRRWfeޡ<8J}KGq`;ݻÐVyNWYst{ԥ'ڍj'23;bϡ\ve2%9VvhR%SR{deʜV朞sIڿQIB0FqDhXf";Me~9F׍TX%TRI%TRI%O:/4_zh5IJKSYCP2'^A{%TRI%TRI%.]|]q qM~A ;YeHm{d%2'Ud]%TRI%TRI%2C9QZ3=+$& ?_ cΜv1Z-/G*1Ƹ% &C v9eh6-{+J*J*yoܹdDT^H`";S6\Γ퟈jȶchw/]/"\r"'0mƀM="8'(1b6F#9TRI%TRI%IRZh1cU$|-mŒG~2sؓk fg^xRN\揲dl͓5ů7m m/~ˊYh/,ώ;پ}6<ڵy#su[b9?,`lt)vְnz3= x.=Gе ;J"bpzv2st{8ڦfU'S=ġJ*y<n[[XhDKIӧF쀶S>~˲eشiNPYqIJǶ*^I%cv_y7k:s3i\ng?9355E@K3ϠѬ3==?V$Q:,.ni6v=5l/l)eQh4,@GfKx=nRNFJ9:-fzڲm e/YvM;Cgz鮀3>`NDoM{Kx_}?Wg?^7+7ݏ`ѬͥnK1މ®h ը= @LVKSʄcޝ6{=KX{*="n2t&r(5j 5l4 ӽ<Vct^m'1t]ڝ.=dK]ְiCkrY#Pf;"Йi1krzj\` 7VcO:UoyQ= 7űM6,OSI%c;U;ȍN11ELu v#}CRW Klݞ?;f (]Ԛ|%u8v+#|Sٙv6z]j:'|W\qw =,,Ƙj9 HwvVE`xh7=,gBfUpc8x߃ihS zӭ]5zWNCbfKJSo12lcО` >± 0iO@՘`ZQ9Оm9ˬ-jʡ〪 pB0O@ՙ`(bX/xW/hm[B^qL}K L;Zӳvz8%s>#s9W{ WRXw}RdPO mRUho=R}0oLqE8-nDz骛?ݼ#m>uxruP@of'\<¥fn~鲥Z-pc)[7Ji$-[ʆŹlm9gqz=Z.Z+D +/c ^}늏/O۞~'>?;7Y˙R6Vy'p3/owӪxI0)CXCod']wY;݀-C CYWqO∥C(a_c_53uMoΪ3W=^TG+Ǘtp#k8w`.wNmF.|;A(GqXe@gw,Ung;u\g߼t;}mhWwQ眳Bd'7^U8e1x wFM_!oiV|ޒV:|ξ_9`>bC l K/ۅ_v f/8J?m*7}Bi3ѯE,9,[?=g7|x+9Wh'_v ۭu!// iEXb"݋gmu>,DkyNR)^CFm6M8땼9s:JAk&R+73yuDV[.<_3ծ}jۦu99(4oxi6!5yǿ8k9g|]g[aS4Kԣ^no?}W:T7dUJ*y|d#3[9 uw*Ny$AJҌHJ K}w í4Af= Xtҟ󂧌Çy9O(k'2=8~##t:nJ#ánMl"ȭgc0=l0UHͦ_}O ?>kxޗGW%=&O0<O}٧{C1 H16Ot[l&eAw2/y7~>h iӖ& jLw^}s0^Cwf C|jplOK)fuU~["N! g>o˧gwCz/R:58X`ڴLybuL}}Oz9=_|>z&/}ًPkzfV|2;f?|#f4_!Bmt,$"IG,YXb=pY9Nɟ˜ߛt9 5\66r+ʡuJ4PI%Og_H4L<d1.n6eڕ c!Ey?_0DWtף<%Ɨy8p8;D,W!-J)DO9FC0njcl8㞶AF4;モG9,`B 3s瞽qw2rdo:$,E{NZ-425Ο_Ɲ3S pW^(%ǹ[1i,-ZIKP_c2pΊq̡CO(k`v mƏ b7g8|(S+9Jѵ u׆jP񌗳e>J{?bů0k#`Eb ²ƴ5iX(JCZ AoEaul׊1$^\q^XB1onڈSX):8`[ɊaŃ3溄 7~ozcEqG˟ٖ*o\_W]{=`~zcs?|Yh~u/[DyP,bzOY`av:jj%<.E2Y3ڋ{WқדJtwtڨIDQT$$x6NζvDL{nʓ[a15S?;ӊTӞĵG@ {:__ZeFP)Wn [v=7.iSh?JU؋EsBMew`wma5Դ~+s.:SW0)G5LH3(1zun[4;z݋<5:][~+q7nC'*ΘPI鶼!2qޒ2?(Ut=,燏㷱`z݄g SvڤJ*q% eJU:vKҮP|xY7樚AOM:#ɟ9l܍Ҫ)sQ*v("5333iv RH]&'ZA2b9l|&ⅲtk,[}S)k(&_lffquo񆏽g<布{JeȊ힪SmyR<InN:üէs葌)čWqO[m[ n.ɩӷ^˽Jm*,hwfrc<\:T^~)4F[fS\ ݑ=գ\sێy<5/昑lX(އ ,LJ,Q&G[!ñX(]`fܳ\OWk9'^~ NG|[n #V"FBoۃlgq[/}Gk:Bo㝬pΩ˸'0~i0PlM;.yy[겵tGKEָ0uO~N*;4\Vl2(`1]lKy(dY̌k{24ޤ`q;ɦyޏ;$4#l߻,{ɋ 9VQ^c8 _V2u1ߺn _uIzLu8>e g+-mӰuPP3xPwSftxgI4z7\zKb ̛v_vY9?-'lJzLv jF ڻ}j6_X]5Ξge!Y7[Z3P* IDATkz4דWOڠ]׿Rm۶p"˦kXp{wo߱wx ?s40pffgJ1=3֭v~|FhQD0>s)Em/U=/b/565 ~hqFIkVB>z{ⳏ^-BS7_W9js+^_(z~9:|U]Ԩm){YFs9K8uxyo. iWn/\@7tF(G&P k>~p"ٛeS&Bt@VWPzr^5 xl/o"[ʷv\W<={^W\V!7vݿ]f9󗽈<'vN:76olLvQ;_(;Iu6˻:L|-l{ ±Уܩ> {&}U^K_>V=̎RS_}3/׽.H}R>kql*î-_ysث?_'9*?[r{^[\ yq Z8M7cN zIѫn=0 u}Z0zD)8k{{%<%+00 0Q与?Hk]s0{(3gÈ~]p6Rp4_<{k|N1^G~n#B +7>xCkaajj v`bb )1t>65$\tرq-qӞdӯ^;ܰShk;#|䫿Ggp̶<4j˗m[AmM|fT2xYlk|z=1`3Eeg?}ܷc4ڴغ=uV[||s߶GG]t=hmXmLswgxRmMa?ͭOa]v LԦ=t4(̴԰Tq5˝_(v5bݵ57I֡}ſ--j{3ܙ~;R)r?rO`v7թZ;6pu7VNAů>|֍L9vN{.51RU?]"Xb:ظ=ñh 5IkqOnKnFu/S {6> 7ri-Z7?E@/ XF1Bۯ+jok|kWdͽw{]tp)]-Z{|g :i3Zne"ϏSB<׺[8~-k;ùL=3D+Ů㡎T%.ԴM+R(chz5;竁FD1r1qBt[g{KئS7'ˤ[,[D 7nr3E~^s,ǴGM~m":&8$%\Vm)jFR< -BJmj+nS%v `Y yLj1;.`жM6w!5ZtJ3t{ ~eQUbhk#Z-NM8VƎ~ x3Y <4-'g-AaխNqi?r*^'W[+Uי'ۊ ®i,Ve۹Lbv Ȑo`厅Eu_ȫl뒵8c Ʊh;U*98N( RؖeXnӣ3TW`f;1hZy;6+p.'=_V%gN)ٖBo.ԖnԹetnC9ʗ~.K#| &(ⱒJ*?w=%a9ppAîQYؖm٢2"ZED6k 0)gw+ܾÜ6<)Ƭ6SN#\33;cXPhncdtfnn159mHƿ4 T֭gy h4Xљ 213oǑ9up먢17=gy];|NzųY l\M'4Fjɩ6.sSw_ ,J)qˮQZLMM155jhCqDDğk;wN0{N%ɢGXhwio㷗}&VT_\/&%wB:i|J=J_URr6+R8s{{{RJi%Ԁ&0Z WJV 1;NoΡ2{ޒ@l:^y^[U99X6VĒ^Gikˢ^SULLhEwT\}e4[#h[WJgHLV^a[ZiJ0]-1kD$?TFCFl4 ~ UN>ˈ ?ĮU3P"} R2g!\NPTRI%TRI%TRc#q*{m"!0qnAi(?UJ*J*J~ׁ sIO~K EZ˩J*J*J 5|6dՔ'颕TRI%TRI%Tdcc1*92 ;atyTRI%TRI%T2xƎx[vٵD_Ct|^TRI%TRI%TRɜE.6dv ;C|Qא *J*J*=/}Ғ R=.|%TRI%TRI%(!1x;1W/|TRI%TRI%Tg{cӰ~ǼJ*J*J* #e¹_"`u8A h{E迒J*J*J*y Mx:ȹ>J*dwD`*'^%14OsVT8|1٢?^թTRg'7Ai$_VVclNqmG1 skD1ڟ]W~0g1qj>i=^aUI+LzXxpØMKgJBb&y}ô;:k{~&v:{hNIƭM⽕X( p'erŝ;pc+sm3K7[|/eD?ǙjxJ{ {O0?'}ǰ[tuʽ홱Pf=.Cq2Ћ{1z9vB!غxow?sq[>ǻ?s">p&qK8+j6<>NDj8o;;.Ģl*e(0h%d(k9Y4lsD~AxFIZ~})Kd4n ?aKy^zi!-'EDϊ^~")5 w|@Q :Ki۫.,{(%Y=׵0W5W`*ӆ#hV2b דMu:JDmQvןZοӋUqx;Ֆ>؎͵i H_tWwn mT6#unّ!4 {h$蒏P ^H%FUHJI'3wtI*Qwh 6Qc{3lP7prf~FR!xWZ'wmfcoc|6E7/6`IŎu<Of1$ N &kO>g[4dq՝ie/] ̥` ۴/VRo0%u0ڣ)+Ł.}1So ^T, tw ;ǺE$jz踸qpYx4I{5+a]Π7ůހqSkhIaQ^ 'o2gzt%due5wsGYΏK6qNboeր48u^}o-_w"MIN +@ 4$9A4myV'|x^~F[Or_f8RiGIgiR!މ" V}aR:QI^"!Ҙl|5-&FYL^rۦ?pMŻ:{kp\`GŵXdm덎ГYI Џar_G/1wQ*UԂDbZ歚N)Y8m>9CshH焢=]2O3M217fY-PWE5|'OsUsUHG{-sEtf#\S}QEx:s;tG#9.gjDԦ_3.4 h=t\\4`s=c"+ϊYz1҉a޼W0 A6_PM^h0xZ^y;?+Pe!o嗔kOrtZ'vGR/kj餑?)9m0^ kw:ƺ:^kp *Mn7-9pxӳ>8X [i<2,S]tfn~ﳢ۴?; ;V{g-GS(JVzθfm[[sxG&ec ' </|DŽ;< μuz{0l>uXXmO]!Eiđ {XY:ͣ'EW^ϲ}\_2Q_㹹z^v_}ƫasf?ֹzNNR ˹$!fY xe"ͱ:?>*ؓRp6#NnewHy qTH<114<͟%~IY}:*yC\& MBB U8J19m8N$MS)v%R`@IGrb819fMPXSlJ\2x8V[K);cW,.(,FT ("锒AIfn]Ȍ! +Μ&", SlSEl & LF4Axz踸p՜d$8kqGql;}ZWoBYeo|?IM9Y'e;~f[r=zw'<9eCgճGl(_i1V|m+?wF0(ˈG/مt-`U}XS>"?cQ`ː,2ib֊@T45u*4u< *? |/I+lVy9~FRҍl-Ƭ ۝?%Q6z :)''B.Bߵsԋ %EÇ/29:O_q׌|sKb-oA^^B3g2OqE\.oGϭ/EȞ4 S$ΦZ*o X8ؼ0gcÄQ B֛GX|vXBjuUJ&O*g ƃk.9p-8;wlaHrt8@a,M8.V5%<\sbdh=_NkZCIT+9fP/sU=) ȆxFA|뎛38 {Q/$X M$JeÛ{9Ѥ%&Tl^ašjo9蘈";V"Bo:*Pf7S4$?Iƭ_?S:iWlgc7q<#z ;rM3&(ZT4 %?=兑|.6mTN&>vנ\L&[lqSM%['rEƈ|ilEV*reE9Io5H:^<z%DuDŒTURytw`!.I5q< hrEtw2},k IDAT/֡{\<ѮWf A~Ȇ{XvƫS0 ٜA_g١cJ"n+WB+qrI44phŇX1& c/ٰb; F0qXB P}e@Q@9SH1áHr{jyJ4{=^\߇A1ozd26 W-+^{DVlrYm 5!`Ӟ2&ga Xie)k\½,,w9]HЅA+{1d˪90+Bxxa_[󦞤jp F49x#UJ$ Խ[ᦞg ,f#xE,G<~ "*~w8M/T~"IS2?g1\z`=ǭ%b&^4+0tmkrC#e b=Ent0= h GyŝI2Z#5M`dFD3xsiN̬ Q5,qfhr/*dkf^]GHka۞yB wg?]wܣx9-Ei~­{6YvHtvp9lꪩs FY_A5)J8&K<1VWܕ!F IjP0*FUu!h'>}j6J+T6'缦7XWK" u- "AM'Q)?YӜ7J[ҍ#RpnEjqje#K't#&]_qj!9Fl;NkLI[퇫OBZr< =$Ra3ZHEM?齜"Wagt'?X`i K"R_+|t n>99qFR,2$FsOٹ_mU wY&? 5ɧXN\{Kt MK)%QeЩSD6x _*x\C =|?GcZrMMxrVvz_'jv6_:}fsV7\uY=ψ誧># $+HM:u{IFR l5>ri8'cō9=,ڹ }fVqS6F:.Nw1u|cMȥ=:aY1>qS)EUKa N/<ów_~*k {rl~^*|;3 p]Hw~{PeEwGkYH=hkNlJ.FƉZgT sM,0EQdRɈ~DډH}I}~ ;˻P{%f>Ư>3YLMV3&DJos9X}k|{p4pͣ̚3g~Gƍw_-^D<_y05 )<]ۛy5_0BGbJ~1f~Y^9:OrFBb"!ެ7LUГ'ٷ{g#X)ȟ?\+~vm`=;2f ^T~2z*bL`j䃕t[d壾)4xtU;ut摎ڐ"7vq5 y!~)jzM`NLT՟fr8~}s 8"IXa+%S5ő}\k8g7=i0~IRJ۱5]N=I/ hZزwwb:3hP79wqi9e?GĤ1pp ESX ,zU"1Jƙְi%9R&z+~i/~EO)R zs=i+_.`(?|r!wC|0JGy8a.> ;AM0WW?9aĘZĨ#ƭ@(*_H*y|wa sLa@5Ng_ qmռmY5!I /wYW"7θ+ϠX!}S16Ov>ވ}q~`  y^f>1JO>zGRTALV)W} C+j﫣 &?/}i8 h3@+.I^`Kh&ƴWb+-&kR^G 6W{=W k/H1` —K(>=> ; YI䟼,]#!3*'ɉ(_/X6t:rn$F%,5 .K9Ր:k7vSu*Wm\Y fY?"}tՅs/<1HwOy0k{Fk"0J)-*"HB@W!D#4ICs).)]s#NwGUrQդ/q9q]ۃ)"R娧bb'5zZs ,f%姅hDi\M}X- LXE564̉u;qsj q &54zNb5بiD cb1Pp7]zc,Fzfkე1Y<~9uz?5q۳<:"E@+H ?8_OC}}C0}l& 1YĘ-Ě- FLF#UEU)@Rpq߇CJ!0QHo̻iD*j7\:졌>TG]SBh6:[cמV}_{ ԞohF}$X3S94m#=tAppz v R16fҷإxusqT;Gs)uСϣ'l^7VU#xVNyh,2ғQޛQ[vW7a:i:ΞýԕӇovtUX9jF+6IDj|,ըqNϿdiAl%|ѡ賿OJ}}ގNh~2E$!ҁV2ҥ$A.҄]s#u2:: 80w[cСC:ڊӧ𓑞PBٌhd4* JEHwp8;9T Vfdph8jm)C:t%PhspPH h"f:/˜DZo8]Ul"/-*I&lJMCh{7?IE;#:]SO*c+;:w~3A @z܃ߣ3Io,GT' 6/vxf$Z ĵМ5Y1+wW5_І 8Q~A~:yD6e1߯pͷ|qls\`\Hݷ/SLS>p7B˵o9-mǯS+[KqpU[겧C7Ljv69َc,zOl+ΏNڸYxˆ㲇LmM9sE"Sn3tң-td[< %qٴ#_iN# 'ne I(CE["w;k)3Ʌ@ih.#ٌ`M\%3 X{ۆ%<ũޭtO_h $0_Sݪ #96xլ~al@Q[hE΅᯻EA Jͽ`&(oZ+0/)!F ᒑi9W.?cMDsw%g^(i3Z0 6ϳ0"}]ICpWQ/M=ۛU^nBf`oߤF6?][]K#& ~_O3[z`kW_=c@6~w3|~5. M]:W^rȬU/[8ݨ@%3㻣ȋiY̜]w.ٻt>^N%7wHǠU{}9J}\γ0kBlv)_y=W XXz?G]j)IVuM #Tz 8\K@}z閭:lH|sA5~: }yf@橤ڬZ5|ќO c){# tV8S~߽r%?s>ƴN ܽ3)=ת,xR<δ+ 1 'M[`KBN Ûsat+XWN%1]}6ֱ7׿pc9 aNvuRg8 s.2+uwIՄV;ʡpΞXMpЍ+5pb~Τ\vG5.$ʃ>&,İ1mZ\ӟ{1?Kr7v we$=P6KrBᕼy!'k6fF}hK7x<к%`v.x'WwFx}~Z#'v-'aT:F7w۳T)s-=F;_arvqG2VpE^&qo!0rL B7gfp̻O2Q~Ч{(27Px)*(s|$>y6/PsUgOs Y=M9E Ž)*H Rt%g #׫?624†L8Ͷl$(%آc@ykJMF8Jie1(a+7G̦tsn^l*#isڴ s.?LiSI#w=KZ]>7nlwED-ʎ26hvLz\]5>HVDzz~~n^_Jғ?-Y+mԓ܉#ɗ1:NDaEh2ecىh i% a0g%u"A匲A;aovr4~:z%@6gAuѭ7^t\v餮4 rSM׻mIF}:\2o,`oe=.0$btO/|I=M< 6b aJOрl>7hN[ b8NeZJJ Фl!ĸfŘQrKfOk-ѽLv+g'f~~/Q28ߙ$0w!FR(ï϶pcl8wITy\tעv.Khs1 V< rƳP6_.dۭ+߸9 ױd% `k CAּ Eۢ"y$JeÛ{9Ѥ%z2J:.Re Qp~ʮ^aE:i3zot,ʣx'_lp$_ӨH)qJ@(Co 04q7XcN|2΁̘TDlBV5߯H̥kQfX1SZ`㜩u tg`Q*f(Uk*NtBVcO_̶u{&$FJn~{XVjE0(F#>O-g/dM\bH.Yu0 |A˽n:)?{~ɢo{x^ ?iq}<F[^T=,9\Ȗ}Pt0.//_*v=r^!AjZqE* m.&w"@:]rk5,^'w=:?znawD[;ڬARS! K/qMb6%?VlF{ka`6xQc;Tv)ZMၟ}N $fŒ̜ꪙLQxJ}3iL^L-d34ZG+"Vn;yc&NfQ O@j*؇G(>^mG[cjF'H";;/3)ڈEA| K8*:\h3ā/h,BSj1a6Yyj;X0w%$5[ϱxGCIc4 00~B.y&<ԍ C 2gt* oXIY# b\&O}TrCpތFC; IDAT2+Ow2G hwγY5u:,`鲮$l8[\Z,=>,Bi}9>_/~gLƖdbWQS%%n>y^v>h!~REIs;0oF 5 Zdtӑ^L岂XTE]y9?6l^kDJZ2O`jT B('WbS*9}V 2> ΛIm ` "chi…x2 ś3yyʳHfz0 pTnY]Ȼ1w ?ϟ3Ù1ItчcßR1z '~a}Kb)z?CJȿA2_}`ҎHkn`'܉V. fVQ(~M$:NCgfxw\p|Hjݯ+~*ڡp}M}B{lHTmGM"04 Hr@Wȑt iqjѩiCs U`ΜPi;ee3yX-uPfJٗ6-}~\1D7VKl@4E1SOd&%"\a8t.i}H=I\{i'T!PGp cQ96-K +_̀ T[9W2=^`ۚ/ӑٚ8r }w@8Qil ' ~=#/xh6:mpߺDYwfrI$kk`1MF !hj ) p8 RVx7I9גa Wj{< }<8oB֥rW#HL7 yU_y3&)yIpj${҅@ pjVp\^!WC%U.__lk͛֡CǷ0Sq#+`QPݦ:mtСߏ@[د a+$hQC,+{1K]jh.m9Y T,ߊ)+3>D6pjŀ"Blܧ#tM?Q3{I(8k.m:t|8ŊW~KgߣO{iCo_@(un}!0?{`!p%o9\_JvNcN+=K[{cn>A4{|vrD5 wԚ(?vJ h &;ޜ1I'90*} [2ʤ_b:t|a߽l:ma߽Ε:%t>w?o|#%ՀF+Og/ )lU9} Nlu9u+]d 40h>p'?f'sg0 ' g9c@,KͫYcGal9?' t8j Rl?iŤhP2隗ŀމ,ܶD)Y &jT ; vN,>_!աC:t{ f5W[Z ݰn}\ћ~G5gn"YHɨS J҉Kg"s=16p!گkmILgd%xrrˈǠ:tСC7^[k:P 6xoؐlڕRFٿS6 07f1_2:tСCǿpW>)%Bz24/_Ҙ mTnp-]g~N7j&PpL(bD`vO~Ͷk1 []Pgո4 죬ț.<`-Kf JgСC! wZf3cwQކGsvt'lNټͫ :t 7uXXe87 ybFgLPÛs1 S}7y' E?XvP\P:: 67.du;YI1{TG>N84*_-L.w0E:tСCGTU8S5ґ -E*n|sLJMW c{;!%_r߿'y \ .-ni;G7uСCPIӖ4n?ӌp6SBHZbۥp!hҽj w::{9EÀNFO2 j"Lpo1%8:vF+6lSmXʱ#RFu#FC:tDi؃-F 4ϊ &WR lzS"2|`[qsĐ'߳MGjqi {/۶ui\D|AÛlߴK6PȚ/y鞛O_pΩҡC: `,+V5t.܁О W]JO\z;{n9k ɟֺUkC1̐XץY8%gUy#@H.o'g+=f? sy{;I1уI}Q:tС#-xʽv phzC1aEHR !r|+P Ps$2]J fqjѩiS"Rx25Pu G, /NҫJ lM9|>C:to~ rgb5[11L *E*Bhhj ) p8 RVx7Ir>nvH{.ϟhƸKW<@:+?NY??;kh?~CӶ7 ю1jZСC:tǦAA  ,[~nۃo~yBh<w=K>di׌ѶsUOWlVD)dZ<銙4Sk!ډvV/deKJFJ)H6sZcԢ:tСCpWԠڭڽ3v$!0c[ po;(H^kqs .4]uUTT x]MFgk}Px<M_1E 'M5gM[r)(MVYw D!D1jR:tСCg*ޣZ+ .\hT~f WMkSv,bMejpzݿ \ʳLbH-5OXHDU3ɋ8TM$e%VҺ2tPwRd'~Ζ#op*ɽ1h#'6eq*4 qV:~]/e6˲s4yAƦSw(tϽ:tСCG w\~r,2HmCȕ1i6R#[>yc'0o*!Pà0!)A s0|zӵ*'է YVmNMhB"PfbظY*vfFg0$STg. vcQݦ1FŹ+t.F3,D]P5ud;Vi)IRmw:tСCh w/m fȷrP<ьhdT1#{;CJwZn@Sgf4|FCNb='4 PMO$!6էpx/INj"ɩȌ3yﳟf*LfLtJD%S'9 ՚7_?JK&5#~ СC:tDg_2=rkZRB м?q)5$ur?lZook K'J]ΐtN[ٲU1bpId;8slj{lɖ `0 JrsBrCHnBzHn% Hr$T--۲%וyjծ\ |̜2yRdܧiWP=~,I&:ow#PYT=4;{ ;y 0`Dυu=`D9̴ߔa8`0he+uN5)Ck( qq^:ڭp;e2 UZ9q9>7޹wBjЪ D]SXy:D߉Cv 0` 񂒌NS~bB eWL5ኝL;#C]꽜8L 4?11ű1eC?ԊXkKIv&Mwg}> =t)&[]&%b(1|Tdarax -$Z/MG7m7` 0pԤ@"e-`MͫYcBew.jM]RMIj 2 0`BO G֣]3G#A*?G&]&=0Rj\mg-ݴ?`I)`%3܎ӐFKj ;[JflJliRj+wS<3yX81s(TgDג YIK<~]t%ax{Ĝ98Ċ z+)@($e 01b21 ߊ%:!]ʀOdҮͼ6؁!D(*rA2E]t&uŧ¯k\M b4 m8]U^<0Iņ#ف8mJӱaSv(YHJcRvkXSS=Qϧ]_PU,EY(X]i8.op?Չa~wv(R1P0ۓpج( HM _RaƑIOtPz==ȄISO?0`>~xⱿuG# AՎjfb30L(B:<@8BBf)eңdRjAүqCV g O)Tv{I/du >t4zZ)*m6_ɂ*{C A&}HGZDŽCGAYJ_g1 0`F@wд1s jB@y`b :rHT!v ⸟hܰ[V%-AGӍh 0` A(1cG^62dY]XeݜɌft> 0`# &b٩l+X篚u]֎7ZxT]jx:̀ 0`)H+wq#9yPtcHE>TYcs 0051`@Lom-aWH# zxc@q7``4F g>ބ]D8(ew#\8cigЃL㝘P"ؠZ nO!lAOW&(Nk:t!~@A T&*iWG=pob1)pb|&e*  GwH{jA 0R哑uOڌO} |a2N-o4aW-%2+-1wz:!9ÕΓzl6+߾n\.W;߾tC>gDc%G*փGg@SUzۚ]7jk_YB_k#xMv2[uGv1u\EǟU}H3HJu7{Wd6Գu0K/wH Τ̂i:4mKMxd;M97­E~?|u[l_qcb{/ !r >JJKXL&ƍW_viwg%t]A-d:i|-`2gֺQ:<2𩷶Jw Zz JƷ8\pLULߍ~|?{X^ /?мlH-|_ |>͟r{waXd3܎#3d4G*a%3/L'fq-V;Syn~i! 'P466 JJ1MhhDC}}}q7pΝG(H QKNEn2ޮ*6TT"7 słb#-+dL 0ZdR5t)E } zoG+>^Ԧ&L'JRrՏ\˙s~H=gv~Ÿ册Y|sP|4ױWy=4N, hBxB ^J=/h IDATeN`,Embp9Q:ji"I_F@FOLY bem<"/[!/F?֗mDe(".@(ae /b|@18L&_#$';X-466AII ?>JJQL 'N=Ѐ{(oz/$Kh.čx^!Ofmo6(+Z#~v/}v L-H];W꽁=t6Oqù١6 |V6RsS0m!|1I "I}oS+pC$gsU3S1 jd6m*fm"b (+/ ߚBy^<}^cL:Dhai#2 '2L/DW ڀF8ȜiṚl&g13 ~{6Vpgg>yak_beS <~-ϽŋfBGiՕOL.vb?XOf{UcA[r8M i9'*vRZVl.""B$iO ٭#,)NÅ%|'{zMQ̽|6艛5l]K[LS2)2J ѱ 6= Tnm4j`J"z&g}dvV޶=&砶5bKI㕭ٰhh'u,P4۷GO|&6V-l@ nͱK-d ,ϑWL\x_Ѽ |74p ,yp7ssyG쟇GX{_}{w0n5|mL,qh* ^w)Ծ /~pK-gO_Dzz}i~] xMX|B-p14w*lB!ehLoKd;/_JFe,N=bSkʯܦǮO܂)x~h-QY>C/ҋb˰)m_t.>-ϤWаǟ{rGsED~ȫw wVgaqٿή>|)Q&Mw>kXmɷ @g@Ϗ6$o#-@ 0 3y9a3jbz /O!m|#Z8'X=IS7ⳤ`f9c 0=nt-ɣjBJV2%ɔ4n_úի-.?HA(Jyù. Gx.O.֮~5lO,4ڶfq :1=ޚ UO^DO{ ^G,.I9Άh%("\ȡZaZlp Ltjݖ@ʘbmu82suicM\1m,jO')5#㝊*5ꥫ0<;d.>' =rr޸*m6M<5+P^w]̫Z]a/DNkN%Sp(U]cg\3b\-[Zm-s/v5W-dШ6} bJDϴ\ʕn̙=2q `x!%PiE#-].on/O~t2c㑤πBĢ )Ip{cʯ`~OszY߆#3 >Zx-5tL qPqb=]7䭷ߦ!NqI7אƒŋe =e7^ygX9V^69Cӥ@to̅McI3%X_xO9yҝREs.E^0 +2NaѼ*\V 6G2.;w2"RͽZ2 t$)g %}_69gP2vb5r@aPѸm5[xnv_ĂKqL&2&=16-w1.X '2`hz`qrCƤ 0,왔S%s%wؿϘ2z{)r(Xͣ(Þ-uViCYIV2tk­`3!%"jhSU6Ď];rG%<r~%25ی^RMXDBΘet >b"sRE#L?\,j>.p|ڒ5ONnpsLP<{E|Iׯ,(p`w@#'HNaoNFYbEE7^+eŊx<\{' n}?,ۇ~|Ww90F3RqWe MPN3:J>vl`z똳1:;xn2LCqnIK}'0#A9Ֆ$$) U7ݝQtS*u$O^2wT:Er5\OW ;6N{3TsYܻ,dZ7 Ξr\fU#^gūȽ4~u+vhfԻ[ۍb`Πʫ59i5U2332Z-fxشSOO8YbMIw 7h>}?/15n}qA~+Rq~#űYezgw Ivp#({?7 ˗›o +;f|a}%50y^`ͺXmV,YilԼXDOO M]D=2~et 8e;*6臨U#RGx$qcS].KK/X3G1;Ԍ {Kyr<#=~%`pR,]_*A̯dr5xr+n,}%zK1}lc*r?yWAȬMS6 K\zS[2y_ &G*eRlкQn$e^ϔdB8r㧘ge]9f\'})6hRtr^`O/`̢HpiOtb_I;b]Yf|r._CnJ*ӯˆG'3>NOO۞c骧x5K(fz'7tt(#|2Jy:PPV8p{ҳ B0>8AbßgիIH U.PEEXm6jkkC|7wgi6BD ߿z(B `Rl!D!P&R+B [ Rt)횮YT]ST]>]咻ndy#\~N_ھPAM6Y2:>5pMfٞ1kgxG] ԣ::G-ih۹wҫcxx2EO|DZ:^ b2ث ;5wmhd'glT[@,&+q5O8FE*OwllWOf|c]rH۫wqhL9 #z8\{ 5/ CuxwffopY>6*naw8O+C#` Nd{?#mćsKBi|λ;lx}AΨSXP7X,~pAID,z|^?oC1 0ctՁn'aaX-L&HE]Rz.8.< j߻]/DK؅)@6P((*qdRRu[T]Sv ]L!:ݓz=E0QbS{v&+6S(ϘImLAC}]Ӈ&c3y+襻cT`:q8w_kЁHGtX#ʠXIvZPݝdbi;حf{[~)mbA7%a?QeF(6,mzBO'8ҳl_q7`#fY'cxi4xt$~::;0d5MgTy_]!2:=0;w 蚎a1a2p qwdڃ4~F#"CNN",`(wwN^og;D׽{czz$ ?šz NrDA[f NԓLӆvӰw )<[0rP{qw,fÒcɭ. =5( & ŒtL&C ͐^Zj#4IFVd>u9iGĀ.55DJIA~vC&Bnf躎Ñ~2324p=9%I/g0~S>8B! YQ8M$VpSf?PeXz\$Aw+e1 8{!LӔ^W 8VRBկfo!):|I:;} łf6>*&">R+/\ТaAthw0a)y5^b:ɀQ_>aN͈ #o:t"@z^dl6r;U4MEQ(f3lj( 8X> -N2RJrlBvХ 2-,d BM#xʹ]t.FA8-'4DtW"di8p"FO2Fg618b80q@h3 /en:TJ?l'=*7ZCnGr0`Nj+"HL;Lq)q5` {:]&t8[lR R( h×iCyD\ 0`GY#-F>C A尚Xe|%;~X%T |& >^7k LbF~niLy9{~ R'rSCDT=`>0#eT#B2!Cn46 3Enn%ee8XBF^f_P͘r~hl~Q6\cK$E9 ,i~M|]5<{+# ɕu^蚇d_!u ZL1 $O2JRM4~6`AZ`oA wQ~ UU0y*s/_3aTTMc[h8~F?\Euތ=]ZP GtSqۏuԷo㎇6ӡ6^l#LtH1qd=r=2TM`  X#]a.U]'pAuf/(qF>6gu2'eb6j*v:>"3ZSR]ddfQTRʉc2201ڻ-l p3%,Kdxsז-oEb#cdf]~+$_wz{n'O`͓oLy6j="s\o埿y0+M$3:뿢Βq,^Zɳ4?ŗ^|-&k2F /dIJgn=)%@xfei$JcSޟ&gUQN |ڨy _3Ti>A)L0>y /PqεUOВ9 Rw0*IMKb lZ9o7dL&g̹| xie/se rPD)z`{P2 G20i %&HtMń""?J:"Hu}`;3$`PqJ xYv4k? IDATs{ٷ =]6/0p+|dưU=i?9D֯K#2@Y?[&X2e@IRh&@Dh&nxقP>8???$hr=6O' DL4 dI:rYv׾փ_z짠h6o6-` 2 &AO)|A?B anc]?L/!h/9<G"H$+4hvYQϰh%yd8ϠGݚe}"?-̼RLGYS]/ЇLFF&)))Xm6MkK3";&9v*ȱ9Ri#\sobɵ9,>X]vy|vXsq5憙E W_KWl G")~.X/] (x~H ~/\@? jat2g.?77gg=x eZ}H,W0/2P5q=2tXOǑ+}edv&p:4tی͙=kH-e4?h7uhbIoje{8r*kMj#Ogвع0AI'FC2 &8dNJ=#$"}>Hesp ?FlĺWp/ &p\쎜TQv" OfS{Wg%#4`6Ib2@mcU@AKYė>7 ZV|>??{W~\csV6x^~knQg^j_9ɄŷpLDw;xbKo:-ڕo~qEQخ&R*gs'-Y<_]V^UU~>3W]$/>[ҊH 5mX&c13iՃ~}?VM$9V*~_hU0[Q^jɄŷrW,KsqC4e\ǥݧd7ū2~-O<Vque>CSdֽ /.̀Dtė{iD\ͺ/*"hMõz~ȻXwgaiՖ%9>.#ⴷR6-Oҳg;4q=2\e*/ k`vR:x]S>_'f䀜rb'*Sn &Yqh2 KNc`yػ]h蘓s5T=.[)ݙML+K]N& |tk;NO^':b΂ؠ'n^P-:`JdʅL/qȈj+1'Q9u:1 ?m6aZ4)ꋘ7)cms/x<86L_pK ߋGp=.=gb+ϛZ>@lWJB$7}_I݌(nd_tUP>H zvܫX}vC0k]܊&Jo97"`tѧٽ׬aYL:ʣwc}8Dl9:9_kaO A8}ꢐ\դbs`tkIluOqK~(_s-ɰrH=*šS͔ 8jX6Ϻs-x6ǟRfӦd2ixR;__űL(j](rשy'%{p$nj,2"hyF(h$|q#_f6OOB>3⋢msԑzwcqxͬ-Ph\o.6?@fdD_HP+aR=|{AE]QfOTJ\Mp}ssp5C0vpN9+T|I}a{pA-P^]9̛[C9{}nqqe=4'` )(xcɳXT}Rf.jf̛ˡi5Ya $ie,YEh=Cر7{(=RϷ}h#{XNLFOSݮsmkؼn-O5*h*1Z א /}NDo4'&iZ;J{݅G6BmJKY,,M9Ɔi%(By*V2Eɔضw׬2˚c4+d`kԏ8M7$0?uO۞DQt]ǔ^%nNƤwE}߲>;SV˱^kr*)ͻu~G|tsn4y2{a-{& _GEr;)H=n4k@No,_AF'79ɴ I2hrЂ[sHz`2ҭp Q9) {8)MW3$GyoRw-EcB}N*LwSQ5,wzdH/] n7@Бw]4o~%ב3+-0zaI{"kg%@220ܫ5D9ʰ]FYs%r>`䔒 8˚S)JǤdWs %ɈzOI}a[{OmOװTtPïKHt )XyqW6ls@+.ut-rn>݁l^S[zv-`&#w^lZCԯS}A x0h#WQVrE8ߴZ4}~h](Pq]L+L, Tei.2 GiS{"c]tiÇ&9s5-ʹPCFqm(u٠>N>XP{.fzU[\s^:ir񥌲B=l4w+mR@5mz[)fp^J$)cR4*X>"3hom!-=#.q4&20)q/9VT$%k,1<*q(ɞ5B<"x#%8Ҁ[+f:Z2+)kGjͮ1h~ _KBnRZxhK3#NQ죘Q,VsX׀yfgOceH(V ǩ 9%Dvo[#d%߮@z9݂ޮbd%=Rnw!,.gu0'%zQ듢 zn<|3}*'xmI/'[y;N.:*"H;s(л=F |tnΤfvϽq@|#pCb}X{ 'Ki?x'>*}14n W85W~ yνf̝]LC^f#=u :@JLޯ,WjHPPx|ZWF#}r/;*nڂ@h0-vځv7Qx\\`$PPPs֚6͎Y\~~ IcSB!9yZCv^~(c4JOw7mm-L4] \/=;?J;5/xܸ?|"ff6RiWzH6*2ԾkKzݝ褒=*H'M >3o"^(|0w_ {IƦUZ7.gCF2Lms{ixRaōX=a/h%VydvrXjV&fE ģUMtSGI xBoT&P=PXEbreANԜL,B uMG!eB@~Dr$ꦻs xҩx(^|oq̟F]$v6ib'ǻP3ueR߉,ҟ!$QEL̓+}^ʤ1D`;h] O~2 T397T8ܝ$KXC`Ja8o\9c>{8[=3A  `ΙK.&m wU%ۧsxue;gYJZiw2.s` "Ocf$a|驮zy~駞E~0lL~h4~fpg1cW*i"*ӿaWxs׫|gs$efǖw6FIÉ$faclhR@@J9tm@ p D˅SK3d(jԺC1RJaNwoC/Z@}&N=K\"X}j>Y+g$z8 OG8ʘVʈ|/8x~ -(^,1v3Aͣbz1x|R[`+|b4OtPfv"S6}5K/ /~3 0)rSPPDܸq` pPXitU4 a,X!L8%+)+/rZr/׆V. F2(6 4ڻ"jKP0I݅Xnw :  = }YH)sZlBȠv= z2 Z<[b#0oq:mïݫ8p8J侠^ Î4tH,zwG2]BYT7( 8` l'^@A ۏ/$sۙO]C#_ϱ!/&k?V<~LՅ+߁n wj(z'UUEc _7xk̛ ?|qqpN%Hc+vmH>z,ve wZ Xoq:0s_?k5=%M+Y[' v=ݒeo,Tp;/*O<>b槾KγۘYPi1BfSh(ů ޸l4)NN, IDATy(]U7~,M7IQ3_\G CZ4NQb!~?!9l >D j~"k9WY? f[,0FS>JE\6>mؒO<2]Q^{"tdLe,|00} Z.,X`9.fHC1ɨ%f'qIdn,X` ,4FcN^Mڇ%비 n ,X`BDz(O:r=fi` ,X`!Y>doJ}"U3I)QRyٓeJa2-X` ,X֩fc+1=U~}4=T ,X` , Y#ɓpp  )j#5 U< ,X` 14͌eR]Ri3$\5.pQ5XV%>\Fk?->w;`W3f0RC JkA1pBP+/s7|#f/Wo{1@ ,X`2ܣe'TeNNMjw㮠E-=aS4͡5TEI՛!/}P 4T5V3~UQ^EzDt#H=Z#֯Y̓kkf%Q m)]"05i;^'`-նHխT(bЈ%r%VFBڷ%2JT~` ,X9d'cl02ʽVlg[s+}LW5sVoY@]ao/ /(S_*ݿ2>ͯ0%/şy[^ak_O,Ɍp!C=˄4pW}#]f.Ϲ/C\!kjY<ngsV0;vy\^/Mq۹S M ,*;~"^'PT` )F}^|+}a:瞚Ko ,X1f$ߞl61@k%ɈOpeNDg1p7H%W[NH{8Zչ0DϺ.J\ Tl~Iqy)@^qElva(F/odzu2'ikHRscG3Zz9w]hN o?I }oJ̍mo\oe` ,|a#>͓^-vS3 $NgQ9XsLWvGk)ucH$5_ Pc~ɉ"<~ ig/~Zs|OeuX2!W_'~kA OC,@: ?ډvf|o 9 [Tg ^-t̏),Օg_7N,d_ols{\Y?Nw` ,|1s|"8mL:=*n0fF5 %,7:~mWSOzz)`  D#?&}HS" z$nMTBئf{{9Ŭ)xR{ۇ?U`3f.<.G6v?~db6,aO$-KtM߇Nܔy$]_xߢ' ˱` ,X˞6=T7V%me߅!T%H7y݃6ųh?㋳ #9"|aenIcy@,ʡP5%p@:PcwOFz8]j^Ǥ7/N ǞfKrx tD~vZaje&n=8m4Zv ,X`0wJD/*&Vb%}Y?7k(Ƀm4'~^'dHMPJYGl<&WI@ ("6r䚁֭zzx)KeB\=BsQGH rV;B lF@sr;%RT2c|AL,eqD"[b"A.Go0V3'+-yճ!ysg ް1"rF ]3yO dﴒFZHkfݣmł ,Gɟg$9ȇb܇+JDVb(ol ]R(O(nwt\?/;0I7'S{|P_d)ADZS_6iݕeL-|ebuzo?X2Ρ( _a=E '7np??`HPp-|Gkmdl8m i}&z7y(C5?^3KQ-h!"Q 2$V^c&Q_pLqc EEUPcbTEAU"1֍3YX'YW])b3QAGY1fH9bjpuQ5qK5_"O$OSTUVOFOjL_? My(_.ŭƓs#*( 0Q*O4 4H!o -_+ϭfjUQqW3i*!o_!U磪`*" =!"7Ⱦ4`#9ew3G~o݅\н1$A묎*]}{|>2H'#f;# ́戬s߈2ΩG42ͭiG>?>3c 27}4dR)u(wZ5'|J38ǧ#f 6! {%E|<3Ü<?>b1H4gm4C= ]':dN%hHDRk*y-[=&f:!I2x?Er#Ih=޾Q[Qe⠠"W7&wMo2H'Aai)%n׽}CqHBq Z: ,Y:u_c-/<ވ#!l38O飜x.OPsWR7e UbW)y?£eFߗ.IA?$.xCm\QPPILqc1L1܋x/D=˞2~gBeL=I,?;<O@AoxL3Ye'= #&z'x2 `6K@/2TƋ'2rwBoq' YQfqvBk<2<b_fm1Pi^G=S?GD~ Rj2N'cǗIw\r=";,ї cm{Dy_g$tA)'g'C#5/&4#)҄1L2Jŗxn ib{>20Gu337'2r;2pOs\NSt1XH*@(Ba赡NN-`Em yjKVFriV-e%cБ\ey~wa|a;y𤂸4$M1 GZNj!aJ-Xйul'zzyT #1tb'gq=QDiYjxNkq-:FM)r֛p_fk8#g7 j8w&{ñsm `wWJ+~=>J_H2eJ+L֚x.nCWIPMXS)I !Lυ?vnv~E cn;6S{a:vĖ < *4F_{ UOD.xӬf_ZΗ9ǟ[NMM}%|&gL|0:9Mz "5fK>Sq|^5O[Dc2jkɍN?2-Xwwr1fq?*^Fw|yU^2c*# }fOV?ԀKv2V-,B5~v24s-0 mxZsxVO,D!:lbF"L\ĶfS>[vr`VzUʭ,\an]A׿JK(WLZt _+|]x,}Q6F',0@+O%@xk+CzYGmM56!iǵ9GP&`b[)T[>ȬT>'RF ^ň>;+I|v4NՄ)L:r'(`}a(*A2Kup߈uZ)#dvc ~ ;|2qc3+sd+&w?:ݓN@j;a(1iu~w Dl$4C&Z*h-MBŕ)ˏi|{&RLJbqDg6lDV>3A+ܺ+cz4m:5؅ȉR-k;ۓ0\pMڅ}"Zz+Ěu-!@пQÔZN/I'qnbv>Չ&C $`buЧCmd\]fjƶKmx?pV_&NIhx>3S9C\3z׍a :|,1c;RAOXLwK3ϝa念˛(RG7uSR&ܚ͚HLP˜XudD5s"gLX\" L7;Ns;$¶iCaISdL9E%soX^w vKhFy`+%O0E )rSb$GxB|4I;&#iHԡ Çs?i'RY#:fHb㘓WjekqBu3_b\9Μ8'9=q-@^'1l{$1EimO '50\碭j8;[ٯp#TZgXn̉x$'=+q%腃㰽{kiLy>{- KU\X&ۜsҙMIJ-ȣj8:D NeRqmn,oKѨN^c+m;Q<~.&eΥͼ}ձv CReA8)AkgYŤ)s=C\4磤}}kC{F»dYGF$!n;KhNZeǤ.S$$ {yz汎`[%ӧ`^?A̸ ymF>WdI90=鹚^#WZJ76Ԙ~n^녂jPM8.|#fՠˏ™+߅iO|ȘN(cڼԔ)tST^#~Tai,z< S%ji;{_=SpO4΅gh3jP椼̥櫄ʧRT(=lW5E |6H9kUs6.ucF&rv >f.:bA8'xtnW͈!]mPPۖC|4:{x͘BHW8ʥ2(|Ôk?G3vR:Ĕz(7& &J2~sxFK8*(qiȶ# ͅ'[Kl4H̻ E:pd)MdK^ f>Ͻ3C lc9z2K-]8 DԤl2L&,XWFG:'~i3i*Brv/%s1–9s73yT%yx{-bJo14[XlcSK lzp֩lh+aب2~5 !57aǕ'v^qy\l3)*..t!Jȅ$l4m/KXK{5){{OR ʩȷ86%p>]+j Sg|hG q(< 0Ҏ'.QH˾:MUx%=AjU%6δLl* ^I y`^ IDAT oP]dvcme)δϑQK6 0Բr|>i_b9r9l ^bi %،29gbxhd*F3vu0,o/`)?Um҅)uEhBt\*.g;H=DߵӜl3X22-bT.ZCӍ9֫ΘAcEvɭx.j:I_fAiƹ/34O/Jpdݨ z#7*f:J܉$\3atP^@ 2b+F*#?%.K)%eYXT:ȉw. p3%_M޻"mf߶椺ySO0.yQr~]!FdB&Bu<8!QkhZ, ])Rdzr#^rꫝCn='>k6 jfQ>e|P2!v^X –OD d-ێqT#Uz~hˢq~x%uy)Wuv m;f`+ўNg6`b*4bx'׮T05dXZOϬR"4-Ȼ\sdj-#R=n]81ŵLp)vP|5SԮw1qP6(Oh8prێhL^,&]֙=4{tD^g obޖBa\ʏq>N'{9x0À^PF]U>?9鳗=bDG{>QRdm/)iQ>ծTlg'"qse1hnMpp¹C#z*쇗1ZT[{0`/i#,nrƼz?H)101|jJ|? H(CD 6H|bT 4׮qYWrm2黙s{BExQ:mvl$ o*K>No|Ĭ¸h\(D!_PE"4MCQh|0rϙ7^T:^X[OD^:PXHeTnC!ºcDTG^2J>ՖlZ//zL^ uL\>KXN]PF\%cEM )6d گ2fBI>n龅L-̅Eq)ISqAzc O1oJB (/st*%k'ḥPD z/mpuKPWCxAE$mVO~钵<0\~G3:)?&Sj簂#Mg@uR\RL] r}lQE6}[<^\f `GQ5f-`N0e6[i,ܡE^~ ud4|3|eq*M̻t㽎q~ZsY6/SKlofMs2Z""9v/鬜_LtWvdn z:QI$Kjٵ~I#[<@GxjSQF) 4u(efYφ]>sɇ,ap=l`5=zMW)Rc'Q2켉prg+hv[ZΝ4XgZm]}{|UrN,u˒ )(^ -eӗ|-|fDB{ _ hIL EX|[;t-NF/3PAooݏ+-/AUJ.7~6z-!( JK))r11{8} 퓟,o:x'EypE^X&w=Wiƻm("lZ2R@C]y^B_b֫X b1nYsso3<&>8;o|0'P~,|=^J,2R!jޡ0@ $J EdB~~S:Նm:mНg>?n +:/DK頶J%&L3dNr#[' ͐JFF*^6X!M7vɵIz'Wg}"$1.)8Hwe,tqj9&ђJ^)70N$4iIV 5uZ<BֈBfZd;*]Bĝ~+#9o[t4G~JssGc(xCs[F^r8Eg:_GQe T UZ1N丏Hkߟ:}#a*Vx&0*&Spb;G 20P` BAB@R9V{V"cdo;2(9 ofǮ3M+xxM=n6_+Ԩ1[WhlbBw+:0;ANqE{2~T3aȾO9sn3~c,ydGܠק%䱹6ν3Nϓ3鿐$U8#g7 j8w&&P!(aRϨ&/vjG\/$ kp%s&z)xmwо Xx*%vǵ8v[@ͯf̟ 98-<#k\2zff 379'г<9Ur*$lB&^^ 6,7wI9ؘ?||%7H%'YRWRBۑ֝#/>=M=ˉy N[q#ӦiDAtl/`3) ē=-8 `-#h_JYuI iJ#1FhG:&i̚)[ sr̞'To"UN0Qq9U_dJF.\ݍa!%* C&H3H~([?Ӳ;}ؽxbR JpR}0x}Y#uE f [sc",&|Ebȕa::/`: /7/خX5`hkzGg D@H$߯ oxkXXmro#6zbڰS= 5<׎r[xQ*tnĶfS=Ɋ2ɭӻؿ}+O3DHEƂ5sw*βo*9%2`GZ]yf7vt3$obfJip80G5Ϯc[MKs1H :=i <& 07wrr#=od{̫tf_Q1ە}mL;%H搭!MupYYj&a<]?CtA-imk !0bAν5Mf`qD5@^ fyNY4a7 zTjQfR^9fj]1vc.?LM"qOcXSc2}V)aq;k~c͍Txۛ9.Y9*@? 20P4B+}pFEMvQJ9f$ =CQQG2UUbjlBPP?Gǂ,0fItOH(8/]I_Z9~YX5?B>";57~e)\̝^ U8韺R/,\ 9yiT4E~/,Ϲ v_35;Oq5v8+F''52^IIh yx]8g24itjqΧ#eLZ +'9&,vwf3DOTMNu;UEHsz$V̪:LlTM(}PlmSʡqbnl1I37vJz'a(Rii>CMݤýw9eCHQ9r^BذYZL"rqyR}$=M)eċa^ 9.D!t066SWroZru%vjݏSP(A!]*{2ܠGSX]0aIe]`CUR(5e _yT*WV@{:2;]o/"We.Y =XX)-OGf#Be뷔2K<]WC5A2HI9 a*V\)b'oMebxeԣHXD;L2g/9=ȩ(#Is/>]ci^hdb|2fzb1&Ǚ Z ~?dtIlb)W'?f ic&ƃeCƆoaϪHd1&{LL0s)|.pIu ;+M¨328z=d nmC"KOfX8 7oT֤~F+=^s6C8vQoYAxt***"T^N&93Mٲ:ji0J_O>X-Etfx e PBLDBO'?:B"þwb$2 >*Xc^ӷ:(&EXTX"ߪ#!u~/r463}\T^ajlnem#-VP2fXŖMWw5 oxj!pp$:Ϗ!\CXؼkriUԔڬV*WPi%'qŇː[N^.m^MM—yڼ/3LxBay]-oFm,SOlouCJ6; ?wytQ_.6bF]㳾#|%<~AVԊ3Xͫ*',o P<xZjsq /fz> K;Sk.\Al:wRJњMתnށeTϑJOW}.g_-+<3̌2酠,a5?7ƈ-1r{l{} ij}tE;~o"8$Z5.P\qfݫ"LY1AqtǸחmAcT]owc;Ʒ?*̪zK+QAO" 떰l^R %29Xy IDATg9q'ҾUelġf9y hZ^<">0bɸ7ʓY)'A:9{N(-ڜ=`Y{Enyͫ3A+ܱdf6WX~[f˦H_ _Nf?>߾|NRa>+9NiǸ8!Rߘڲzi6l.*Rو)oWd6n}}}KYtpQqj p-A0sCg)/yL(k>+.9Kpa3$^W_Fq&BB-( X*X,R-R "tmGJ#$DuzX[7bæ ? 6C3'aZFrD0BaL' ~N0M_ED ;upeYou8-9rO~@t/LCz 2 _7ALy NLR '˱%I4tJۜ{ a8q'}!D GڒR2+Ts ʢ2Ga CpcU--O"}ԝ'mx"6ealH8HJsibpg ^_V'ms)ۘvIz3A'HӇEĶLJTB,Emc GB LHٗ=üB}aa2vUJ*C*ec6ib2J^I`n !n(nJ$R%= C"{tyy˫ | 8xohJG d9gy]iC_@J!]:OKcd桯R2+TsIٲ(,$:UTIuQ]wrSIx,k'b2]&o^⾪*di.vD^'ms)X\Ҳ)Ǯ*YPJlĉ381 rgx쥚6ԆL5T~&zs`/.3nq3 rT.g;YVi~B1*ug1>l=J)r+(:G;{Wo66|O˓; uypbleQS(=c/h{1[`No_J'oWY}*9/xou +U_J"U2Rb-ڮy>=,.5_E@PJ-2?WI/1\GOB5GOFRuENO%W5Em~{yQȖdmֱGS2}VBIyNSyNۨj=žGNrR/ngd:Yr+W5~&eV,aZaB̈́ϙnp\?7IF5CCC<|L\.bSLsm56 Dt7x4"zwū+5_d\YAӲm~e5 !j;LysͪvVneu }s~&UyI L@1|4nfuuwfuh >Ñьif]Hr{qތ_YRJaUwwϗ+y^d)te_OOUB&~ ?bϒJ 5íȉu6,QUGٳt3'W7yrM?|AtթW3?~Z\xʣ#Lݼ;ɹ|}*g{ker.oŦex"qhooo&dbtb˫lY@r˧8?p3.`ibɶü `MĮŗ?b24/Ϋ;WQoQ&jXƚU LߺΝIB/ΞhEq[7~vp\?puorxM-6Woxwb3_sI5,fŦ]lZZGf~##~kP_)ϊe m"όG՗> ӱn+5V1&F2, y^B(cӢz %6v;D|dʦBu䓝[ZiDM[x\b` 煓QÚ5G4{ZٗSF8]\s>EŦ ¤m n >zOhumjT ]TYqữluVVrxxSlzmR-Gb K_cnK N ְ[=Nrz/ZvEm 8-؈%F+?F8Q!i|_SCCLWm." #p2>bj g]Wlnc>勋Qo=v[g9}_#,g : >D.nRmk~hs֌3]Qso=-92N~vڔXu3/򸗣'cm<{+)fZL[f0Sv[zNdR & 1]:_Rm_:MW@ғYd<)+!' TXzZ$Gi7q`ҕlR12t (*Xa;[{^5˝NpѤWͻض#Jp!q3^va~Sfr(/ܭQgafsda-amO-So1p[V;=̨cli5B!tq=&b ;ټ:b o2|Dص,y{ۧ{?{}oȖxo50g!{]?˩4kWayt/nFp#Եk;FxoU&VBSU UG=8L9 *4ʕky>QA{n=kP1QR&&LfOW2*G'^bVO&5s'ӧ!M~۹x 1h[h^L@cN R&#B U06d7?{k l#^ҎBB9> =o/ _ǝgA Za`Ҿwl\F 0%+'kK,++` 6 ӾW3e7xd{Wi0qa"~3B{ >"r7'Q~SgJya@2Q#{ltAY6 %, O0r_1Xf./z_~.#29/U44~M~va*Y}n 4h''-[p3;!:8XAz3DR{D" p?FqZ ;R 3I;QICs%ٿfht{y=v.XU̳-AJmۥMJVV&VT~̵k =zhYJK<+ݿc;z%,BTW'&L3MlxZOEt6 QFFFمUeth2rϓmc8To>&ԉ>FL7a Q$GP{|i(oIH"kUGC-e|gzR#e/O~m5~w?']=ƈUŒ|HPvO8P=u6'Y BYFK`{Րޚ6K\Ϣ \>ssŒ4pv\8qclnzu?K N^X{: ?,s.;kXgOrKO{f3*K0iy X1fvٟ2t9~Yr׉ QOyYrTME.^ff ]k7`\P-—w-̝,>:X̦J,o P\b5Ts/QJ6/ڿbӷ6m& @dؒtys.4h:{ҶבH oՊ1my?9ƒ惼w`&DP8DF!X}R+}8+*yKJe=HF0ii=$2y!j7x߅%qJx8и:n0;Gt`-|[FU'pZ<+&!h7$czVW.ĭz N^bp"ViZGSq9~Ie]#Kmks<{nxN®iy%#;@F;~o"a 'MUzWuS۰Cߟ-b_IO" 떰l^R %=ތ\J {v gu]BZfL$yv>>yk>`CU⹌rn`q{uP[\>w}wIs!׾NIATdvn}}3K:T~ãKsuAYCvHNxFnNp wc;7?*̪z~}M" io6l9No?`"!b?=6ݾ^g$ K>""˖XdZG֑߿|}c_З_00LqxݳSA 9^ >;]7BDZ !ˀ.T*8*a;RD\]o8pyF?3&+X-ՄC:ٶySb1swsקXtxgKZ*c]nÔypF9O_0CYU]:7s'm&S̟G{k gwlom*O1tK&M6S/@OG-!ejڤg 7|̱ٷ-~¿>d0'mmwG? lر;ʬv3^K]C !9Ӝ3w,͟ذi™\0-LHf{pW! 4} $\ J`˜*N<+ rRH&E+VGa̧-~9av+?+uLfd1Vw6`d\i2D?YR L7Vş% aY/:C:eat$aDab[&B%=8e` PE:J`{i-,@^?AC( 0,l@^%p*ZŞ=Ym)9+%q*|g:Qe*A‘:ˌ/G>nPi EEaV۲qgB*@FJ[ &0J(dSK 9m}ks?pڏy2fzEͦ7}`Uw$w x{r1uE< adz zS*ܻ\?bRٴyM-Q4l-FNr"ǯ^5(Utͯ/r1_뤱RQw|>9vEu]=mt9w(B4=@w{8٥'poiVz^'4S^֠pES]#D7uSxţd;8ՅRȢ^mˉ?lRry8NprDV`zT]nF΍w\EO~("ȕn)։鐈;QZ@8) IDAT81QsN޼}UCmU#1 ]툤9yNo"F슷س'/ɒSbuQcڞkl{0=~wUqw'$QE*V*g%XJ*!/~uHDgƓZ uuifW+>w {TL/@¬639XUuTY1&2) `Y %"D6{(s ]IeeәPty!L#!nt9e dznl9I6ٟ^XTVRM!X}Az5^<# L(BMرk 5|p'7~O:6Lu9wfUut2uB*D0v"d[Pqn(nQK2!Dq˄).HgG544q/ qpD)4 /_ a`&e2.#)7,ё%qq7JuPPPۆA}"Aܓ2I+_(dFťB\S'r(K)~0x7 {(gy֗osғ hlj %'e77W ,m5444^]N-=}9  TB;AOCCx!6o&'7#kOr#ku"DרBG(?'ϟs5|u OG30aɔe񡡡G $K"3kh,pf?=`5.4 Wбm;VQo c.eQ.V]b:)~/χ ʈ9>wguy8 ^7h&k[X=-Rܖ"BD-J|ɻPD}m%fR {WRzZ \=w 2CSػo U"F##TmakYFoL.TcL=B '_zB!2C2H(2s'cS)~OA&/H3hh,g5BTGD,[)v;,QJPswӬ\f*D%^tU=90cg/gʕ:lq@'L@uK HI=kRgg7ݷX^mbhsg ə#MSs 5Uajqq]ҕT67тp8bv-.<1/جi h2|S6Ra+D0 RCJKn d+| \3ĸI"LCCv5"r%Wy?ne5_/{X=;Q5)fO/TfJibʼO.Wy?mcNT5F.˵S16fY&YG_Ie~aUFRߧa5cC~1+XmB g2ڴWnf;pA̷M8( ҳJ ͩkhhh,e/SٙD<7=;=jͧ/A϶u$$TwcG6OBG;kL_}WCdd7ML9V[c6aPձKֳf= LpJ Չiچq=վzpkR̮*zTyIU8X4rK?r%,ˁW q]]]HPE5! &[1)h殡B {'sbj0rLF9h{LB)CwQdv*lpy<2em˲@a`D^x+N%u,JաTbtR(wѻn`6;zqL?W>9%qq? \_Ͳ$6lXփF\a8*Umԛ >I=O>Ϥl1LBumSvC4ox=%- .glzxb16fCg ~@$#&LmK#d6}7DƐKE)ngZ`9B,jS<< H 1p})-&CWx iݹjI=]j:(sVݝ5Y qx=Ln)!ˍh qP?UIIUCcPw2Vt .z2 a1`M*궼S\|7$ 4.B;\;s lzVmTBqpkMGBdzܸ=`UrA6uW"鷷m}Hsyu/Ūl}"\W"H@^kYrjf{h)xgJQ'>Kͺ( Tvls89K8s]Dut4v ZTϓry|,7g]5wپH$zϵ3q =X^gС2 ggRJ":B߇BB6j!Dr`]J%dT*Jvk$+{~C}X[7bæ ?+)غ};w6maOuIc$\酣- C$p`D"al;@M2s}(E(2Mrdx pٸN^CCCCc!Թ" Ur^te;߼*Wkh_|BHދ /ƋP޼x>(s sWS9\+K{גIܳ_J0t\ƋWǡa Fe$/e ,|Fڽ\-G  g:51x}Ҕ;ʤ@_(1&?mX @ye x<΃ijn)@5444^b##`k79qb=5 !x<=O<"yUt(wPnVeIƯ R2Γ^TA = &GNyE Xˑ2T静jfmRؿ@d_T i/rAx;ثeĸdrY1)WmWYi*z2 B"EFsy mK%S^)q!EKfԤ8tSYiXjϸWA <6mfݤ!yuM44~252cXk Ju JrfRF޾l{2T{4s zy"44^=\"OzVU5K`K,gJ xs Xy<6?=D\ڜ%JM t|wAhh|H{pd5!D kKn ,RYxHa{*hhhhh(.Ag.ڤ@oHao&ϝv:UR^e`*=6QڻtZ^ab2>4oXD9/g_o a۲^"J!~OMY-7&r~aD:E&a.RCCm@fQ]b?wGIFul۱zvs7 -{pt;GSs -w_i@?-yw\MgC"BuC^BrD]Ƌh s$.ޒ adL][-Z9?qOߠXpKUUpS Fin*QOvQ`B(\^׳o jîBdE:6ACda=wg>7jXC֨qGzu{ DD#$:khhh,;7@; 3Qhhhl$TQ2S.:&vc],b8q;s]d\aU|.wU355u"w\J\ꥇTm|Gn:K6Qg,E.o\-ƣJVg&,({6saҵ;Xs`RM'\{w^mfwSQ/WY]GLx@ӓLh⮡`;ޠ ! sٽ:p 61LS2qyiV6S+3r #U+YvaKN\ym4)oj9K "_88q'F7Mć却Ra{[V<"3Jy 'p- ysYftiQ>_@ {9Y)JLT&[Ba1muaj ^$2z,>gwٽo_r*d߯mBᥬugVɡxV"rB=MVǎOh^e+Wb>Ef˲0J jwa_`+Pڢo=,9toG9}C޵HB np`ykܵ}oz>`>Q IDAT%\!dYnu%uSd#]dfDfzVɌ̌ /ށ߹_\xUXޜ³O< Zy578,z>^h5L*5k,\1#@0 FN{.?k^‹.zУ_ C  5$(N Xl){} GVqԓ|pËRd%< }ܽ,,Ǜk.oü" c7Y88=ޞ*s^A沋귟7ac.%^ | M܁6Lԓ~FOǕWlp<̐&lX}8Xu)`5 $F>mFo )gϮ}C:Ps Q&c/VBzP{y9~XM2H1ph{nE.a${A+01uZrzc ` ap<$|;"Iyk\wzz mSݭՖ-8pX@qEA7#J9/߀7??c%VϷw!,@#Q;\ƕN6fbS#ݢl=//oOIUc`Ek+l|R?6q/dIdYTَohc|m}0KG xIc{KK&'}n%F,M N|XKGU;{6nE6O^ƎmwB? ܁-cs4<h,Nݍ{X{%XДFᦻm?V` [^~>NYs~ 5~- ËO5_ 9$70˰EH`%vA%>؉X1 lك-\+#*޻9sګq 4azq<24V+/ ?\5kLXp,ߌ,)7?S\U\B$ԨL,ϴsfTuS8CPID4`""Z` XKD˙yr@ud[qUt:hmS8s^홥}݇s;A/ƲQĝ@f zBDlnot;V;Px$14AdG+h `ڹ| 0 +eej egSA@{j‹Ӱ;=N ?<%N 692des9-?wn|9=4;}TS*"!~: x;17171m χ'<LD@43`kf>LDD )BQrL)p@uńCـ)Cy&8`թ2kOam^vКUr~gW Й: չCɟ2ej 191]v)t57=yӚ~.tznbL0rDt‰ T\Cqspy_-,+Ҥ6RRp{SӆTčf9&YѪ#7xOvN5'sU.>\rA%$ UUuw#1L9KL޷f܍~BDL "Q Nufx<ǮC23㿟'՝Tp2I./{GGjIpKCȞ#'t.55gwSgR"^($[L6-fW~u/(aH ֞zY:wʒp"$}R*jD6x}TX#rz^ܼg6/k]edD?7=S@r.%G^Q5Cm+޹Ë|dUWL/5pp8+[Wa^ql3'ʮݽZ1"IH*p/ !Ϻsi ]7aUb'.s'sFNf3ꃡ%DN\e KE޷Ëb=dpݘ 0#a%G-^]=%Klړs7ކw:|9,X )/ pE(:V٬2AU<GRJ^O? ۶nEyInz_UC!^U <" Gc"M*9#aNiG&zHËjf#Vٌ〕^8QtQ/u0K}ܙ=ˬ2Y3<& p2~gs)fOYZ+wr%C.&"nRm?spppppppppx{wFK bŽ qwppppppppps.ǐt>e_uZܛwpppppppppxI!Vs3@պspppppp'*q^- }<$ BC8JzBHQ:d,D0ECPeg@9%mP|dZ$IH%'wŝ!A$cUߵU&O"YވC$2T_B@:dzTy*W՟ͣŃ#E0O^r=O= Sbbd4Iu%3f֕"$;laHeDeHVey a"%7l?{Oyo Z/ѕs0:P*!dL Akw,=klP|1▫)/P "Yw?lۂ%p7Wưx{$rg7a2⇟ n1ԥ$8  2!(z^JMzdǙ CUuXLugyz+~8Sb88=mC"/x"Bk^^<6&n?tqͲFĻ߅95)HYCU&6r3f ~r ƞ;]6c">RPՔusǐD.eQ( z @MЅ]$#} XYv ]]WgDdFx$wwppppp9g+ HTS5CJym?n1/-' @/.ZEi8Vw lHΗ?0Ƽu-F3#|͸ ,YoA<~w)$\ڷ3!9I!(%C|Cї{yNc-_m;q! 8RJ0˃#twq3G$kހ\Xt)X'/rNQ}ބޣѻM߅R߿~(HȈ`.ވ~8eOHkuȧ=*`ۦɡa\+G-@N>&2{x4qB\'v{ Npbfq#lg2 Ox*6qrӇЌ.ue54y3شt>~ Mމ+| OO`ghⓖh" u] 99(TR/" ZR)&{KehŎ~w߷U@5-te`׾/[?f)ݛ`;[|Ɨ}W-i3#> z;S恎@g(w7q[ZlWß8ZG9P#0UWݿ5iCmsǟNލ7ž݂o}>7oXmL{ӇCݏZ|Y3QG_?pm.ɾ Jk9u>t@~?Wo©A1:D{d0Лv-?x[$(rbO([|xCKط1s؇ex|&hcߜbC#0v2\=BIlICg'f{#=AfKP\xy e]9(~.t )jb0|/r ggq酗ୋ[W,ө0.2x-f .Je+ԇ8f|peLpdv O\E3Ix| @zafqUhZ[౿z._4^I]{'׬$@끠Gpb8eoy|q#{qEgR]g:(͟mYû,8i1kz<^I k0osBOJ{ ֝<4vwg< ]9(L_y7~\eLuWAR_S}m\VV;f,?c)VlRC"^~|%Fgjvv|h}rr P{] fEGnQbqX ̫>u(#RH}C% wR% 5 t;eko:̕29KGAv|ObyD!LDF& `5 {mNʳcuY%iY\(g>{\ 4!<5a]v=1>0wɀh!p%MK!M$GA ԨD.X:cv"+)PIudSU_Ep tz ٻ{x)]<9dOv JBE}7'b,.9~OE/tR{,hM߇U6f}{cXmOm*{ؼk% ( R8ܼRz NMQ03)2,Xn~~=گ?^nw2yX1v؂`g03xMOGj> OVVS'Y=|qѓ]Y"zDGluX$n]?C.ǘ#=$>瑃+C>1܀8%~6f& pet] IDAT?7|A\7, O`N43B}f>]1ZK+U7ak^n\_p?;/g^a4o2ּW5pw'=K 3䨜غi=g=31XV]tBgJ\aAZkmx`_y%>31͸ do…ǝ®e#8sGZm<k׎Fރ8.#?[ z\{\}e]Fs=spEC4*k^YN=Tq睸+p ,\DkNg{_y Bbϴi+`A3k/ U+\$hc,`P gT7 'IqO_tĩ ,z9I|[ xCs✱pS &\apc{Xcŷo_ecXu;qXv' u2xИ3^{ ]wTx| s.ʹ) NA{|X{^|0?0NZ95#'GM0CCӐH@+7?sĥ~ wn W ysmz<ǵgYy׿kV~104F^ ziLNu!1<4ĥAg'`x3`'Q #s8DR18f kƑVfcpC "d;#- Pcc# jEW=< [ofոv! 6<,15BOdL=5Vᾄ8FpB]t[hu86wQVq LDGθOK.Ck0@v; 1]ZCo!0|y+͛7w;íM [u>w$J8ړAGgTx#y𗮂7nAwOB==&&&000woo:t 4@ܹ>$|o}?gE/j羇Ā@  x &" `a{< `-F~痱,8888888'QQj*t1=ŴMOup?Z8?_ :#贴aww&q3iLrrSjq$S^u]LO0=Ynjtl^"} uKEy=ǴN}Ew!Iw"&=[>QUAߊG|tO=={[QV^'.÷^ xiimpNS  d԰uy?2uᥞ'&_PxP1C D؏m:2}NʞԡTʀ@?%!ΰ)U"ZF q+_J|k_;mh4sN@ @9ـ)gL6KҹdWupi 갌btxsuAy©sRb٩88sPLI1\>:!c= 7܀&^yIlz3SBm Kp (Rm/s1Y ;88888$bѿj*ۃpoijjS9sԔCCCXn=\WǠW]juYqg೟,pgW1U=l6ªvᅆzիvZ̝;̌Oş|.<裸iSxRUuʿҵcf|<CCC^_po|. `=,ST \N d }\f^H!0::Mp+^ 7^"01?fv-d:OB"O000WRʔ_s~o~)?VTx~[F} \jIU.2e={k8viV 0 dO $Q=HH0x:i'3λ:37rBY ^ 8]B"݉;%gwppppppppx؉WXp!U$㫾 7?H2{R|}K#VJG$ٯ3 ĥvL~s b_ǰ@I闦6S^bHĽ@mY9GRt!4$ܫ=_~l l*)dE|![F^@Dה$,?msRCzU1nՀ$ A'?Pƌϒ2yN+4@ Qa}V^,-R3`=s^㬖ʬ=/CuIjڪRiaEK|v:$ *`EewnA6J@YcL>Zzυy;?dc[S &LE7~* ].FwmjKá* 4̘ "K~V)t0 V@yG*mfF]*[dͱv[RVYgb.s<>l֑w]__`fՖYw2sw/]4sB$2 tI\ %})yY{`Uj5HC ܀%9ϐȩฬJHȻ$t ФBьU<ܯR3tˋ)h l6A$SHoN1AG | mmg) AgtT4O8{Tt!`&V>UGAЙT?kL3.e&+9S "ь.Ye/'B::Zsmq}I 1'P-1+8*FsGi5h4{L6\%vX<ҵK]* CKaIUEx*TJs Rt=@vdab)KBeAT*zV0fcU u^?V1U9uT_"T1N40Ay 붦 "gUnT Fk42Htj}At5k܂XwU]^U~5q3a}qTUeMoj9C fJũ'8k_h)g' yUuMuZՔ6%Y%ۍ^TfI5W#0S>tO_WU gn<{UfDif2s)o$R%?>xU͛?dS,Ax/AW”52uٰ*KjplgۈER?F<&:*C$SԖOxLqC0;J}OQ2FE9<&떺TLޙ9ۮTRvCMceYR/QHkf1Rg+ꐄ ̜@ eZ~4y1ג`dہgV0ĚX&V r]{i ճ!6(ON %ꦄ:Dž2Dixff gGrQIjBiLLd!OY:ɟ>;j>Sr @J鮚eRTM8ˊxΗkZ #OݘGSJ`E}0* H:c"s.5e)<]DŽ:9QJg8#^ČnL>9%ACyHy$).A¤)J/&˥{V,rE3q&#P_2^M.8A͜ԕS&_Qw?)œHWu|:$&R+GO`^lij7]+/imJ9 4N .=Ȼ& JY,(K!WsL1e) 6]t>]㛥 )+$O" IDATB/DD!9_ 1):+u@U3(ٽSf 1tV6T^uuFm{7P&uoZ:+u +rKb#U+Y1`/jSЮm:mi  v*c6-:WiYnl:+Qe*vUD.5'/賾TW~VLnoeJd3%Q/nl`սbipu;{@cn TbfGDf&)<=`t9,eW~$$)UМJ BCԬQ8npuj<4X]?H#nͤo#ÙYvec}XH^l$#UeRuogi>w1SՑ;Zl4 D6EY_*Cԝ m'[ 9oHz$23TV=>cw9C `B3tq*6fQJ[f%Pۉ|6Qb4 < ]y.m%m)6UaK+-dB扌~3 )UdD$dve2_eJ TIJdH'Pe+%/uȏA+%UGʭ[4+#yUؐ/(#U=s"eqvMPR"^0S;t)6m\{Z.'a/\.H gNq$(}e3vݔtMU$G nէMf׍Kw9j'LtO_Am4iVSd[ʧJiWbޯqEAnFBy'"p0"@HIqARDԈn<>BQKgòQ˖u~]J~5)ef~T6l/{W&7zQ16&W6\`Ver2;{7|ݨ[E([폦z\ScيV0*;UB*6m͔.fZ})NܙBo3ʓ`JAf}Vz1V;JTs> {*Bkth[ Gj֘X;$0O\n<[k&oҺhvi6xL¹#PD3sb]H/)(2CDԌ;EdTVt.ѪRlʶQnʙOh3(VAXY$Z^_,HڤWgDO#EV7HO\ ^˞' 9;Z _lr)3ʖM}ēWJlW}V3]^]JvMLOZa^ސAzd>6Is$g۪uW' GNݴAL|غ0sr-icVԧ =ͿqmIeC-CHsu㦈\|I {$p RLCP!usջθۗhW~;t7JiФw)36߂9_2Md7߹ 3u:=i R]f&GYi./jPZS6H^~JLΆWs~DnC&`]V6F^c "WДE+#f*n>S>VO|2 ${ :4bZyQpyL+[Iv@fc#RY=27>*K뤜Y+6 7yW_waTŬҽcIՕɼ,qqATg&~MCr֐Dԁ"I*{W^D9qUvB}+*W QA&6VX/\lzIDRwt׺I: *fLO]FdW8XTSEʅ*3NQqc!uTϦ+Y*m&SmCGӷR3dڹxRRJQR6^+ \P*R*Hw4lTSTӻ 4هl~ RVFp_QK8ebT彐7|QvU,ވvς:.Zu d\gȗXT|{(B?A-Q}9,DD?E6 VPņWݎX'$dCt o^h}sR?Z4 U+.6),H5!8B";]NmZYTea-(M.2&WӻѹRE" .RB@2S'=m0eU!6j_ն+VM eY٦rƚm{7DܙQ\6ݯfw~ K >U~AhVkar+ՂL2{¼X{U-djɗV0Ld+2D-Nu]FxZk+ sRVaf)!gcrG%#4'y)9VܧAeV7:~ӶZ˙Z5TȻSeOjG/hHC4[}ZՕSH&rQ|T7&&U2ChWbjXl3%\/:VLj&jH XǶ2A2u74e`/`2IqB3N};zEǦ $gDbS4E1gMH^9g0XFc AO lO~4*uS+ڱ_ dXy4+*t&AFhۨ5 "P#ʕ(JsTI,x:IMHS'oͪI>_O8w#fo ު6DJLR6ҕTe)3l1]L3>Y}*SmUuS>x} 2i 5ָ`xo5Sכ=*Qj ʭ)]:al~+#bq3yu8Ec QUeLv-EJ1Ru}6jڟnꊑ %SMFo*IENDB`dell-recovery/help/C/figures/hdd-recovery.png0000664000000000000000000021076411751021273016412 0ustar PNG  IHDR*pOsRGBbKGD pHYs  tIME6-yEtEXtCommentCreated with GIMPW IDATxy%E;YUiYe_dSeA@qgTtgfedy\qy}tqqAFGh}Ahn}7dFfdfd޼)+3ofȈ_8qlDVoT|l-9pX(rU:seo414 ߻+N_8}/Lȼ}W7UNʾs^Pro'f;+xޅ3'[s\v#RP)ߨNU^T4%V~T@4E_#]TT7 ʞKڇe?c*3V6V˜Ǽ_::0L{h@1宙nU,OUY{mg+:9/]A\;ܟT;fyS4{O2m=;TN/s[焋A _N?pGW){J*Rր6m%o?Y73jJ"NHSJ0Gbn?%b5;}[ءjA)q1[욷HGu+ݘBsΕ"cn:|'4bJ[AҸT6UhBPh &xmJ{ &z~)l5z>x %Ȫߦ.S$z餬N\uՁ! (f`JPq G ]Z\~ Yam sQ@TZ eB؆t"QdcL ?>_y`KrLe(᠜ W;tH\68y`gq3"AQb δ$.Tt>O"@:7U'͈98+2hcj~J =,%/pjj-.Iѳgj1rQN|^=haoM2dğ)Qi2uD^Fp϶/N {Zjgae:Fq<8ε~>svUպ9~S+m'DZveGVRWiAڊnutWdŚY)"舙13AL[\ۊ3g©l \bA #v,CZy*Vj?`nl(d)EJR:pU _b@wjR򜪴3W.}WSoT -䶀,p)AoSIdŬs3X\ wi:Z03tTn:8evS Ign0l49|.}o3qfKp$ˑ5w_I J%vN-Lw :N #جȲXbk}F-ò[Vx:)ĐsdompvY4idˢX"SA۟Q \+wIJbLe wZKcY#oޏ1s. ˇ_(BZcJcq2tPжfqd\ت;*%t3kr\3;fTcf3#E$VȂPvڲePF^KYq1KHf;^$ZCk5XG);˘+*va$n6ļR p uSKn57 Ѡd"Α$4UiHTZ3dڄ]aK YmUB])j߳nHY7`$nt"jR:/G:,i=L}R03SSAt$XuTuXÌ,*~oeY^)mf%U\].滛383>QXt]ZU}9eL9 !ZU{F׵اf^UC.+\㴶 {wS~swȧT#Α[TeϷ rN2]^V[gc?sx*C9xg@t$P Lߔ`A \8 :QmYlu8ʚs˰;*&x"QL .v@ٙ eL_^3mٰJ?4rf̚e:v)`)=#y>Q@*39 ~~{snڶjjaxMg+EU@;v&v@G=Ѻ+ef&$7/5aP$9?^ziSΛuUڢD#j$KK) OxҜ+~%%L4զ\ZQ mRS9!q'Y4B˘{:h|B,( Rujf9elED柛]ƍsb|29y*tY!5Ӧ+Y1Ӆ攨#+fb)k`ʋD+xT.d;:*$2wip>l1lR["&='{qUlM"Y M RƷ۪+!@Ҿ4g,\}da;q  d̓؅,x3s9^E^@o4SH \MpfIK T"hձxf!H/,O}xטu궙[%ޓg@op [$I_Bf(5Q$֔crAWSe|juz6Y둱f[~ٱ#/^$4uR-8&mLF@"o͊Y#9;0pD"jѴz5 `ЍU }ݕ ;Ej#4vsbT|^ɶ|I}4ƋXJ>J3uLDRSqHYYQ/^=:GVy_J*֨ؠxćhp.(\ S\^,=P!X/ Gk dYͧj6ZTWpkrx]r*ݠbW8?N[&36]j|ʦMTiBsLtوJL-SYXjݯ,7ǃ8;gSۨ8bBN?2W9[+r[[Jh /{QW(d0ʴ yK}Ye,ʲ B^"Y3jp\ik83b[ptI7 q+gLHd2/]`|-#FX^&Xt&΀Tn"an[2kۚ^1k:r۵* H Pj -5 qJ2a֪O+>"wtseO-p9όrdo.~?c .#Y>w;IXt"k`"ۉ؃*URl0Sk?WG̪̚>>dઓZڶB_В1|Z{ww:'GpPFYCehy:yj5>ME~Ull{.5RXȋv馳va !g/['ZP;[&|&0.ęA5 iU&d5]t&@|=侹Rz"r FX0 `(2̨#oUŕR udieB_$Xw(vhEkb9,ĩ"oo (lMEb&Ο:9-ŠlF*>e&4i$Z`,MxhO$ WZ#L#Fnsmn;JGݧiJe%=,Kk$q&)d ,BBlwy y,bZ*pw&XěCaZ":,bMYEd5xE}q2^'X@&~*-6'wڗu͘Uq*Db@q9^#2^BmH&)Dʪo TTS{8asu&yvUVE ,u &E-sFlusK5#:05BBKP'\f}&\ghlq"k,aiXٙtߔ =bʅM,I9+[_1}T9E`0h2td>$U8EOI=44AdZjf⑇Bkdr5M#<446i mw2Zy횅bG瓆d8Cf20Ѳ)Z9C]Vt(=uD=f༏3:AYrhsDzάT)OO-ڙ٣#"\+R[;":зո(NIf]I(^USf]ɲ[8e訬>dB&eLi=͊8S tn5;3"*%)=( Kil֏2Zha!+ujA-j-ϩcRi$9 NYcs{C S<v} oD1I~f$dH/$E;E,XEbz[ xW,VWۍSU#B+ 3I9H37) 3-vZ`%`uV,3v% Yylq,Y̲uELYҋΙ c!4U V<()f3F ':jz?s36QMY mjVIZm"pMeV4Yn}Z'12c+7t3UIS$m2 2E1]m0LqO|b[ɼUPZ1`uR÷nf"YjI+@jkD"i|˧. a枋S US#65]S8%$/Ey+㐺^ė'Uw4ZyjfOW~!ti6x,  YZ_tcтjѹP. IbjGA0eNiL+dUZx[=RpAY f6(Otʢd[A֣Lǁ)@/BT b7(^84|R`e2CR YYZ۹C3O6u ]N(BKf)b+`6K2c唕91Ql0pdK\T6ȏQJ#f>eΆqtT_/wu+L?N:mI53IM@Vv@xսg訾#5̧*e&2FR{r)weKB#W0fʻ iۯơwEHYc˪v* x9S{ۛDM [K"Ui@u(Z)p⇉Ⱦ︘ EU+?|Z]Noэ}-ޛy9N7.Ui<6kmaY/3]R,Z|fXF^IF85#o/)kml3܉Xmy>C웪2-/;;0uR/y.**Pf&M\9s4hMΙIJjoq[s.ӾSH(?S=<Ъx"I::ObYU+Rzqbn J~4}`*D&2d46r}GOvȸ,G=-<@+csL'Q7Skt6LY7~lV8:VQ빱gE_x؂%8qkDOx{NC ^^}0{~ul>yf?Ixْ.{? ]˖ⰳނ^}UR~6W܋:=urFLhFc ǽ>ыAPlĆz(Sx=.;chi!م|y/>+1cѽ8^9tz"L6Lv= x=@1ݏÂOQ=1C J\IxG #AAiQ"Ddq*kEuI@Vȅ`F>FνՕLP8htb!۩ NşU|Sw; X9`/-U2U_Ѝ5'L+ ڽ}N"5W?yеf< 7𹏜EKN돸65r,N[ ܅ftrk^-轸Ɲ^Miq8oѾ8똅) uV:! P\8BjYdy'˪l&,N-ukv,W\:~Z}C}tbA2 ϯӾuz7 ~{fpЩ8Þ/SXq0N;?z|c'0z[,Mw}C@ ^W<^N?\ ᎛`#˻' BkF}U%K+o-7Ff6,;f9B[&<q{\Pm ϶ v:R|}o{V7YpIp;mne]c:Vt8 8 }a4|R.IhpiF?{^;:|%1mAAp-ZR lַ5E>PVwACo)J6,Q\K_n_snYzAa᤾ңScXu>NǾO=>Mb y;~P[+b3O``{#qMqQ8<ЊkMϟ w>o~#`;ygZ,iAb%7,n YAA" q+>5Eh+:\oKo{o<N»)9?/`v_'vnW^ -X?@xgk~<}#w#k¿÷O!\;{?\y.;^z9qw^Z-1(Oq-pE)˄V^?ݡdon[N^r4G65v;3CDXJĻjpt֮mZ0˲uY@)WVhE;z6_Oh0|~x&j?4u @J-NSh~g֘VՑBG%hL40qG>G&fVAAZvù333iu<Yf~^ mUffAAZЬ Vx5V)loԔ5}př$  PERb(R"PF݀   (wWdF~ -G   BUآr0%VXIJ$  LxR[YL8NX   D+V4w R$z  PE浦ggb3fkl]Zb  E+YI(^oPTsZ)VIVA^b N2F5&DC ݂v]mOwaaMaaWҀ b3`3b2QCHQ qRu<|ljэu*x-n;(pNm8z]=)tAvL0j[\]*7q&,^Ag۞Ɗq׺i<1Ԙ0gG4 OOw_p®8ev|vה<Av њqu5{9N)ܺ59<Ao4pÓSɪ ܲf ֻgG4~<2iNؽ -9K;& ۳hE΂EN`gH, l0{?MOLbx{ qiܺfp>5\_ 'qaG:jb $̕mUg2/VA7gM|0^gt~jx.A |)x&oAkkM'V AUXo׍\(vH7.K[,¶.Z e]5ҝ% h0J{3bX[@o~X9'ĨǾOvBNiG,c1ZF5 O 509Cq3WW/¥uxaHg2Ѳ4зZ䌕 ¶onS3v[ҎvkÉwE^,H5@_Äp.m?U ܺNujѿvhG'e5y l{L(kUr^Xc֢rKAX;;FՓ-vqp5? >C:0$^5ْ^?+G'O'by|a[ғINo>&G^Ҏ"ZAV}cWVvڧW dMk<"CwQ۞9?yڍӃ *¶"Z3خD*!hS ߁<A>&4޳bw%qx^@6Kݥ ;+D=+ÍL3ϗJ"oB6Y\kfmrZ. y4!lj^< ׅdC߉/ĕᏃ8A|}xվRYAz(iED[͂ [_w 1 3t{K{pyU//jX>qhS46w#',@͓[ ZcMeòRE0 Ი`[X*`qCuMsw_zH'&*8cb|1\urعS]A%R+62FXۍ@T|haK`=fIh9~#Xm=Gucጽڛ:^{  " Ekپo+A1eai >`o7Ѭ lI֌x5x)\~0/Bs;{!xZ_Ogxt!J-(ZC}IdH3VX @(+S 7 k%VA6pdإK|kŅ8xQ[q&4. Z7-K-$ZUupiN,VA?6p~~tF5s ^R,AYVf4.vTT)W @եZAW6Nj/XK@8.) ׉ՏNfM.Af%Z}yeĭ@V1&<A懱_\LuՏIpy VlX?-nAuњYYӚQY ڭ`U `;-~dzjƑW͘*¼V"$?^_)''ћIv| sU85s]ڥ*Ǣ#RX ̋hU?6'kyE+| =[(Ze_@ s]{ {D>M EogV'Ac RI)3# PIG?WR%z s wBP{,{KL9rqҨyHf 0yU[oYͺ*T8grGZ^*\P:f{S+?2x1-UQF,@XCS"6jKҩXldaK݇qS{w#戋& |Q)(AH5#b:,܊jqFȏ5x6W Oh|b+N9',K ̝hZEBD (Y4EjD 0;G 3^{昚G,bSmM@W:%j Ff]TbZT35%0Z7,w]$R|o~Yo[LOJA 0KњO$`,^_r[5ǫ*'O)0cm#(9t'%Y p^1o?~(FY JՌ%՞wfMYZb5iᰲ^ 3?AϤ"/'3:[OE.cи sN(X [f|$v`'[=xxQ1h! V0㸚*btGaf\)`H!ma~x7 M1 0 xJ)-ӤqW``E. Bh@q- qŃo<4@|[Ape&8V]B5Ӫ)}5fki 0;I䶲ҥW[3nk ?2!$ŒhPʋTVDJ_A=_}xQ_U H wQ0)/f.*y%0Vm psšW[u pRH |p(oK,hXA+^~!j+#eG~0.ֲϪ"1j `SAQW7u5v_DC LfWeN2e?(^\(S9@piu/zعS܏j}k}uƵA`ZW->O +f@,. OVO+_M h8l* &;gy IDAT*}QW K'`Ɗ xz ܧC i%mkw۳uLB$e,oDK6򚷦J&,Af4Yտv4ۯ?'Xzvl_l41PW (/^+őh{6@jFt (\.훽y 5M7p~1|Ql/qWk׿`/jÿڷ] VثכDeapBBTАJً-7 SE<74g-_3 VF;mn*X/ޯ/XO3M¥jFX!+J͏&0RaR `w 3w  MoƻCN3ajdgେ$6Oja)Zۊ1 BEZ+\2ha2!4~,.Ԛ'Dcכr] _:?xH>ǞKkh 4%+LǺ"j 3qZ+e TL 8r}ӿŵCu'qՃM1KˋOVMk6mׂٳ*B6 e-<oWJ  ̞_q7Ca<^g\vf{xԓmt;+5;FwX0ŽKmKk8 q@×bak.ApRfO+zx0{wE 0b6@kcC|sP!;*lYlt{z+p@pi놡„ +siAVm :l˖V T/kЭW?6&GhW;>j?z;['Ec4IhNOAZ׏Y˪R*K%_%d-V#umr}>tF?j~7&x =KԂvw={:cvkp4w :w-M"ZAd-jZ KܢuKz!߹^}\\|fd_G;~yiZT!A8ŒWfnXYyo "%]Ep>ዧc'._Qwхӏڎլx@Г .Bu&b7=ʉ$# pТbx>rŝ WҾ-qH^oᪧpɽ8{im|~=t'$ޕ s#\5T Tᐝ?;]*Z ZVԥp"^Ptv\vY__᫯\,G-#f}_d0{g.\9%h*CҥTAād.\ٲKztx5\qtUw8~v =cU١A2f! @*mb+ mm]5 6|)}j#Kg$XGܖe }dY հ}SekPfitg̉%z -quMުn_;m_YKwxjx:&5@9VlVlȫV,bmNݳo'b?ON{RAhMVԏEǩP b T%;Xܩ Fef[#`5ܢC'&[A=yJ:Y  v ׮BƸP_'Ձ/ -DPJHG.AK.ܯoѺqu3dN) AZ ʼn%A1߮[Ă sɑ۰"uX3H!m#5~Uk_S8eOg5֥vU 4q)m|t0jjh쭂 HjIVTjm*ZSahy'TL`pRK!me4 פAh3Zl7ǩ@WAf N(9^g|!nm~֏]5[&AJV{chSRYҲK-e?cD_m5 )$Af -0Veb6w)FA$/ۣG,v[놧X[?{lό{.prY%H,kVA89 ctG nJ 0-WғI֋T(]Afi{ww:cH!maw w)\rfavd2kV?J [k뵫pӚi)-#u|э-AZZ?&+Ae5[o4I-#hhwß%%œW5^8SqZIXZAJOOrPRc) qܳ^N+ s"T] )mcNV*WA xK}%r +7绊_VIKA 05oE EȺ&@ZJrA暿9t2֎J4fx0]P=턏@ J-i3\N -SU3E,0>r|qMY1Ts)̌<\,A- NJa4JrVb sɫp~9.a/=0_,=+A枪PUTUh1j[ 3/~pw0/= ٲfի&𙻋>wj?$ [  i(o).A:}—G/VK{ )rSSxM(/p}ةS f?`o 7 |rX>xnxjJ EPǻV ^T}t]%Z sOvUqU̬eTAف]hbր0$µ]?j3&{wGtKa 0`UoX54*qYAضpƥW 4y?rq:OXAW(0u\)FA5=p43>p0L iouuy;ܗXakѿm![DeѪDa Q vv? a(.}Xf~[^.K=|U & A]RMq"^R9K.- ,j 9x}x/6I,WpFQ&]IEa:Ij~\ Ok|:YA ,b~q(|RPJٱX.qZ,aKcDѻc2VO9.Ќ/=0^ڼBWW 5?3 $Nkl48~+pa_Sq^•|}8Fv͎x՛GK;~صG\A҂g Qć5ћ V+綴*+\I*֦~Φ>9-n;ºupR7k6M?s|UEW l%V0Wr⻄& "Um_>{r/۵ u4\z7_ҍw6` |1ll>զ;o?[ZuA*5#ԥ*%\tlh)}*NM lvNSyf<ܒ:^g|1|c8.š]]w7 uwp}8j60 l3ՎwQTmnz!Ҥ]EQA}^`A+^+ ,'@@ H 3n&A)}]egWX+* wE5C*█p$:ܿ6`ʊ^[]\!fGg~λ查wۀDqbU3WCSpZw>Vw+pmV<7YkilogR^xkiѢfk$Fkę5b,oQhJqRjpjPj5_Φ66uSK ¬0AlѪTuUyiNϫ |>c8,ޏR(MLL\A8&H.dG}n%SWbk+.Y]h;"D͝c9E$&A8-ߙ}MJW Gx,͒XWV(֏M[)3G"+A2AL32Kg5un!Piu$y)RM"$|O6o1U4ECY ±"b=#hS/ޢ)^c87w.,rTN~~D/9Jc@V$CZGѽq̿ Cbeq;knfC*8U]Rт {tJ)ç^ s+Xg&hSS2"4S,Ⱥ*A]Z_*wT/ KͮL^BY7& 19tH6ssXShc^rΞ=`H5D$3mtHqSV p< LϸVaz4cV ]vIAQAJl:6 t]& Ƥ(b-%TZ{r-. K:VALJHyQ!|iauמ:Ե̸  a몦i> :ޅOAAX,b*XXY  B]5\MWRǂ  .ʤ9"SE P#+ϿՂS  &`]"T oi+AAFSV Cәf u|E   Xwch@AA8-ƪҙ4]<5rE  (UPOJм   UUO=W}a}ȎX  aVc,w3oD{ b}@AAz4tP t)Nϝ2jO  PxKCC)Hu}QsP~(AA`չJyRe8 ekQVk@Vˀ.WAANUc`jF`Ѫp֝̾y+{{!sc';[yÑ㝲Lvϭ-?#X?]8>ܱRc+?ypХ?]E@8PʄRJ9 ;Z];ezqN*$ ]:&sSP}Gд霜~nbSnw.OLr8 M6J\v)coՓyqpFUg5JV0q,*M䂧_bdzCQao/Jm:Vt$Em?>&3.]l$`;[{sVX%H\W`PrDJu 63 qHbRۀ>NWSS<3rla9xGg7>/ "-Ub)CU4jg8\5#;x89$Ƃuc͜_(欑w2O{!s%y}c F9߿Y?Lq4><&~jJM?%'7_NTb]yapr(YS7֩<3֝w?N 󘿶{1 IDAT[LzZ: F25c=="Y# Ej=NC ɇ/PЂ#G>yәR)- ֑ɉw -8k O㎶pz!Vr|+c-σg9u'ku ᵽ^e=,x)fϟO[_Ʋ2gla= #>O"uX9Y䴴VNzjp.p{aE߲f֍+ٺt*윍clʌ*Cjc' vg!/uJz9o,u7:pt1u&i N:M,QY"|(b-N[HZV{z?074i]_";o߱Nlk:L^y.?"8skNzNo}%"9wgv!#-s](_ >$n6V>WsIUGfׅīuN{2Қp%c*k_zK׻~g)[x9'p\)GdC` 0gu i9ieH R= <~ÝڎװĶtNҿK0X9Sz=v \KqIĨpyذ] ˧=UU^5[BVmʚ9({k &sv|ì;hZf3 %V_ (DX]nNhFkxҺM.͹8yb~[K{fF5>!d?a2 gNּvR<6М0M^/>_ş!(hg{߱Ju➶ =XY;alzg )tf?gx5Emյ&ocB5No 8\~gsBLm~<a.>ϵ0@Vc·:{S_ɦ[(h|*-[Х,ٸ k6CӉW-P~:^sy:x nw:1ҬK?x;'たvKϞR%"NXڐA.?->l(ORT>VGvĮJ֣laЅ]hܒK;ܴBeb\ k?INAzEUgw^VR jP 'OᏛ筗r9M#5T{vVT}V{ 1^hk w'kw~_I#e-riع%itjezhJZ?q]"4U埪iZ@;-З*['X}v%4K?{K ر}6fw=.w_ 5^ ?#ߧ|;qnXv ١[U +aXJٷ}}'R"R2`]  ~s FмIxt0ttn.uܟ8G%@d-cx\[D.n9o~p>-n?o[ŬJG3o3NF1:}q[Ե?-Mc]i lehr30+n f"*>%4_ xt\Oky C|jғb x f6}Z90KŘ]haU (b[Dk8ňjF ܖ Z+ G:dzY;>ws۸#2,@ 4rlTRF*U{ Fzk08 ±5|Ο: E(L{a`(Cӝv@P[͆alq ߗV0tV&RjW@N١> ]kCܔn\Ȣtn 2wg"Xeo\ӹ}jl"Okz<?\#5xC9<.?H?h2/y9{u~م.T.+ ߚ/yήӘNJEzj[c}2t {lt eW5DkVhs!1?%77LfwNҩ4.p5HXٻue0{,ҴhKa&?J~{jWI`YWCɺ̴̱Gn[a)h3``S73F˼L(c7Ϭ+QIMhs0;I戊Lsy(}GKvwޓ:%2MCL#:WY3X~>v@sic  V[Cd mO>k;bSF7E[ uGqZN#Xe(O~ɥ4$FmrfMzVb$+k z#z 5-τ1<sx$j?{14V2 V o>k;5 `Ft ^xwFit - Fʳv;3|nޛ&!gIq1E}LjPvr>8<+ rVZkzT` >vG5z'qs-|tse+X;ry{R`9 6X2LLlk\?5h1@mƵ ˕%<Ƙ;W0WW?+xwҫ|=]ُ™SG̤Rknze濟Lm^'1-o@yg BB 4/T3mi=j,*MHz߀Ldm53 m4jۉ:$Ŷ˶r(޼O}D&B1"H7S͗! h,W'ֱ}Ň|7Wx2 3W!V)ٙKETnǬ倅N#M%dx[g W X~nlJ+ױނw۾ Z3nz9%?q/FR5s6#'9iFM 92]i--_Ĵ93R~dN_|d/Ή O@hB;tƠ Kxh63k=Y//foρӸ4J笠// )grnM]5?+Dpµp߹M ŠJTLzb i3ѭ.!?j9nAck0|fN]x.rk+h;^\? # 40nޟʠp~fTnzNmʵKXuuxyxX0 #!0o0s<60_&1B󊍬pװ?OAc[l~þC妷?<?^+ mEn.>@he^¯ʯ7EΜ~`I >#f}[S@>*>8yWw $Zr񹭈ќXtm}6OJƌ7پn64ZŚ04# $S%h+ w: MFT"(.PfМ=Ұ ڛcJ졤凈,>;9ͯ>%ڀD &2vpZDk't^Q's5<%xYz0@F,[(Ƣ%cZ#حqk>Ϻ uT!Pveުk[Ӝ?a9&-+aξ?~`>ἾC(1vW񃧹y͵g<1$;b6%V# BJ$XY_d̘In2}MCPvys7M[,5}Vhj ;7媓eE|X6thM:Ȏ [ȯl7{}t/ciQ}G8y\;&()czv4>+ţJ:gqAW]qp|!_žĮXdiXB;D@6Ofl Sohhq $EӰ6oI"[_WMϨ |3,"Xr{rPp~ y'8WGC[$P#B{žn*2j;r?aފc[6gi wL Dd 䢖_VVNoGSv,D[y[Zvw?y3xm9a9+:s,>ofx2ЎGK d IDAT ( x%.0+XN\t LS*=t'a%5۩LkG&FS*g4NvCzvBzFw^ԅ p0dڜ~%O>5vBR+ﻋ'$vd_z5=kqP pW%9fiBi@c9u>^)U]m\AApP)jhO[`u%AAD'zD sU=@  Bmp=EO:0 4 CzavAApxЙ!0Ѵj;5@)FҲ  P2|*u=hAq.[  a3tx_' c+%@AApuhL;5u~7*  ԷpuEp7?rvXݿO   ኛiPޥbkr?w3iAATw~o(ȭ+>ߋpAAB%^C\Ҝa*k6_տp$} 4MT  P gV1 LAkrN!%AA0R>-h~K[AAZ8JXAAi NtácVWOA AA*vy]H>b}AAjYt"F@kMXTAA%ht%Z   JaX]>hZ׆˷Ϳ0 4MwAA!taZUGTCU?w*\zGlW$a  ?5oixNo =@AAjnt45k{WJhnORW{AA;ĕaQ3ʀ{녻)V)zK,Ժ  "PU_UW(,UѬ-  B]ZTݐ_-Z( \W  BmPJ95*O54dhMK-@AAa! M刍UzcwPsQl*  !Tsù>_ tfsCXK)rWE찂  BZ7c3+S"g,o ($  UFPT^WNQViZpW  ?#v㴺>xkI  aiB=CJvAA)mbUZ-M&ORR  BxRSWzEݹ2aZ(T  B(Zҟ~-o=P;  󯣔ctGVjXRE  /kjpthZ=>G4N   +Z*Y@r)pƧ{d*  E|=6`]Vwaw|*=LӮ  pUSK  X \lX˟*  Էp֙kvn\)സ6  Bmb5@JУԮpAAMӂ ZC@asGU"U y%  H+PʗK;   ԅ`1Cќ5qՕP $z  PWp.2 0Jw_%d%   #LY=@J7$Z  P/=8[C>EJ\  u#:kVzЯ]v ax&fK  !c # OTU}W_3N{bqAAj+btC5 }!CѪk9,@AAVGp꾑aUg`WkvlTP^(/ZYa O?џ&qxOXApD2jhKw9ʷZOX++(/+anbp4FD$ $5"*:%"Hӽ3q]GZB 1D.gsn~|Qzhӽ7B̺31wL4~:'gf?[ATZ[N=r=&g/`KʼnsKWy_( B}Gi?UnZpT(u}z+,X /w#ѪөDFPQVžٶOt 1%"H S<3Q}ʔYLˮ'nmvxc,2igPdDF|9R`qwct0kzsLl7y̽y)30w 9V,*3Gɨ>iX*62ml3'z8me+pË=0ɋxַyd`*fl~r?}/wW̟>5\D3%yv+g~|:;Sְxg,?~ vrԬ9qca9q,r56n85 VrMgKY Z6[G$'ZBnuoelUxG{KBhsmාC  Ro'>U!e[ ʁ}49`u'.!ۄ3~=,|3ڥ`*aMWfE~t u xvr2|3gax4"h7Yf{>L~~zQfkUOf qzWLx#6WVܹe>}&_yZ%w̗<ƻX ~=?m]Pwc2 _;{~-TNBss8Eu?ۭFYi1IMܨi`݀%3tХ?*n0K}aR_ҿ}&irCRʃSөs+2IjO'G' rgg݃+]NV޷|Z>˻$cLXʖC}ֆ} 02N9.,Q/M6ڳo0Ȟ | m%5bl`Imxb2bD/*>z+.1=KBkQ=sI4̤Z믶PA$9.9dдCn K!׭U?fP_c ±LUPkjViX?yV4~L1 ]NDdtc#"cnA[apOsQ. ߚΗ+6Q4#1ȫͺۆׯ2zͿfțߣ+]oɈ}N[&dPjfNjCظSLõ$vwkaꎬE oL)}= L><8$#&gk5k=~O?°Q5E/&ZYU8fQy7zK|˯c֢U=)\NYEhm "ZAQgW t's_ iL&SkM'+914'r6yW˽i֊3'?ѷ8yb~[K{fF5ow *5V-ʌy+5|h~EZ X$el+ȶx Ok>ğNZtz]~ z6or7AvWvHuݹH^|#^p'S@f|$N <~ڷAds},^AKQmuOaӚg)ݴ4%2keycX"!6ʰS")HjCcxS,ͺc荷3q8:oT\攖<)ڃq4o;D%-<.H⣠C(pE9y!a\<ޜ%(Ւ:ѿO)|$Ы_jkGE$Ҥ!T*I^CzUŲC$dc9 M"є[r)/[jsLm<>& o#T_\7A,Nd/&$.~5LllE=hu{x'Q0L ?#ߧG|h };k7o'wZ?6h;1~̡?eWYDzƜuV hN~]4h?{-1բ AUj m @7Px?? hwc*5 fZ7L?Znze2c\i-|TD.n9o~~gLe~ S3ϣSj@DJ[M̀.ęz+U!g=Qp߃Cȉ|c:8^;/E"SZq5r6j05h0~{QGoɹw˲-hʭc:5;'kg~/ -16wW@}LA8^ҘsrjQJEi @L]כkcFE3e꺞Je=a 8TaSoʷbvbn^+uT ~-&FCAEDVk%v/aJұX"UPo7 HNk9"VU8p:]tL:/Ԉ p 1텇E +i(WJ <`+|_Q<^7TjgMsX]ܣvqaPrK߉lАF4H$Q R;ڋvcX+hr@yLIuʊITl瓷i7v f2Cz(B KA{@(zսbRs=jѪ;,&ڶѐ+1EšWaT`mEeE0tj^2Rd_u-4Q"Sl fAR#G%ut,AANS%9 (hjvzUMx Ͱqjc/ރm&*ˋ 7(/rf$26KƐ;m׳nzZca*X2l\&5! ա*{^N5WmȐ(/WUCs׬E˾%4ٛls) v:5В^AŞuD&6Y}2>CH<`  !a+䪻!K+ssP[a oshOd_0(/Rrx|mǶ?v$kma=KAX}V0VVݵQS-۸̛A54;l~(?,HjQ 6prD  {i3bUUu)ߴ^^vOPJC,0*Jk*ƨEX9slC  Wg*P1t*^LF5&E5S [iiIo[R#̈́%) [ߓtR/2I$MAAЅ{U&=9>ҭzE);zߊx8Ī9 s L)຿(CDzJ^C+a8*KIU46^' POhtTU x Hs_ADD(Z17ؔ)7 RHw'231 CE7Ē؄P[&8Kz  B-q.YSOK+T -\)Y3Y^HvqԖ(K ;r;.vݽl6 `cǏbjЈ):Nz  BIX\~"X2]2vah> 4+o#mkw1󎏣83{w:^lKmlcӋtH@h!6ݲdXvǵI:ɖm`O{[fߙ;#mlRpՑcR 4 <Ͽ }<ܽ?)BP( OPjoyӸҟ>w9iZ9ŧLgahqIhql39N~RҼauk6w4vjY BP(R̶*1{\aXZ ;K!a۲[& t'&}(˖[8G !i.]WɯqX;+ޮ3?Nos2G±;μV;w~*]~DS?`?^sORϤضw~N !%B{!YU5Xؼf h])IxkzYDKpҴu;#__'I6n{n"CY}V+Ĺ^}?|c9ǞǍ%YkOi5ðq'3!ICت { IDAT, ogѬPQ5?>}*2k𳲍◀WJv3#iVͿifpB{KLkd9W g5 kb&[JI~8Z\BK6'{^: N6t˟ݗ4K|d&r&tAwq nٴPw=e_b\. K֩Z_kn䡫o[-a\ǫaKirJHR7݃#~m7Tф;-1 gנ5]>YwZ{\PrzXѬRݞDGjrfE4ܡžoN:,l+cw'}[#q(G^v=Ʀfެx\I_IK"N&?4օwqӃ c8r)nm?p%O+ya VדuZIu'$˩]ʉc)y&oX2c. ퟅs#O\']{|8sEǸvD[e6Z#;p%_ Dv)$w1kw8@KӸ#(װX_p6ؼgL;*s +88fGaH=_]ľ˼U8brM.ݶHY҇66J_s7|ץM8bq%M~(hut}H:{|=3OGf90)\}O.eqlmUl K NepǬ11n6.5i(r26ˡΣwS1m|F<+|3\~<!R~ 7)<~e2U_SOs p~iOc _}.Kr)> 8nS|\\Lnv&c'\-~<ԗQO%q],FZ0K.ٗ7̯N+o3V׹y፮)XE dow.=;,NgpΰCGw'gDLϝqY[%!nkh\=i }=m.19[ȞVtZV H:k64Vo/BzyPC 5֊Mw2ױ' W5X;]NLAU!_v OaX(P9;6ĵH@G8lNwZ*:Y3y-lܚVtA㆐a2bd-t;UZ-ӆ_b[fӊwxX%8>v`]N GgaU]?_wg 꽅I HXRbT;ecKG`;l]_Ǫޏgnn351(bMؔ66n(鹎b:GF1`r׬Jp\Ib$>d&; X>IK`][.}]25T `68V6:5}s=" "gcxa +'ٱ16v7β$tk@"#E~\Wo/^”.N+r6+v cr,ڸw@ ixޞz,II\zV-Zy-x7is=e,yIv\k;ʲΧlp B$!W-.g3zlN:(^y5̽yJȣ4rv}>ڥ6}R7||n}ٲGz=^XA.uԧQ!2ׇ iQef,`sA\=4|o^>]-A|LCjh7 d{m1&AF.OKR>c}\Eon|ո, <.->t-HT%iXǟ:${6KV.L+X1m#ɥVҽЩ^UN [ICNR,8[;mU:{X5 5wfԮg^'SlG:ͥ Oo6w6}gli䧂I-g_sEWnꕥi`6o{кi?ݬo44R;5lXV4gus"EQu^]q˖=b 7GL9fXV1ocg_ێM}u}+ZE|ES^"p*Lmt;ű?Ӊ@Ö{/[\ͤz] Z^BsedۖtϽ5jihfEi I|ecL|%11 v ɥa'3yݵG+g æ*ƌ@-)W O›=ɳ9+1pǧēo\T#FR 8} 1k׿3_ǖZ'eoE97'었Ib3a{W؟kX=_iœ5cNj/>;Kpޟ9qi 2`!(Ùyޟw}Km.6]=A?τ5cx&y2c\T UҘui~i7b#{S#ݻ:Pg4KKb+noe7N@L=$&{`lKvT^o}OuPNXe[PD 5CR ƥ !, (4XJ9T ,!D2]qݭG+P8}v3u;Kr&O uJ.=يiC%@X '/OGMKL|ĸV$tlZwm;pU-h^QnW-RP(~HGk?|/ܓ;%U Vb7Jķ #$RJK=a{E@ꬣhnDKHf0tnZ 2HsPNȶZpWqP(?5x+K ̼\$P ny_)c0B1 #4? 0@/ռΞ$i k1iv`4jHB[}ޅ nI д`0z(I2Ta!bvގ SDT(Jlk>P+~zM~CA@"ͬu_ô|%kj/\ j!ȓhX5QNNA>e[p_x=ּnVwVZ>~ck "! @:W@8)u* BP3~ fO nfȚs&Ez(4 J]ȚrI}#3su Z(P*Ӊ{R\_GW3hsspmZnOD%Ż0:XR? BP(%\e _Vk( S3//N\&z̩T.l<]_I@wcVL\Zh%ې16Tڐ-MrB^r%ո6 b$c$ctt  DR7EAcTT( B`u5|G~ ]! GOߣIRbFSMvhm&cIO$tw'<-Мb%DžG/+|g'NBQFgZ jbBP((Ujkv;+`aM@,`x<:Wm`#;z6O[+4 ł&.]N8 M@:#މKhi}A7M( BP x,ZU4׃˃*TCzϞRbC1 n6S.bmh8atsuwO0 lbc3tzZsђ1 S( BPYJF0$U}+<5|ؽ%U$32D6ގǖ'x?1ڰDX6mcfP( B_a D34 ),A!+@=w2&]Y4 łEw X5Utv, Ӌ0cVcMT#hijaRO'a,X, -U3s#O*=+ޮ2E(3z?{ys3jgdkj?{W3;Umo'߁KVMDos DQ* 0³k; lwYd"bzyAGaΣHhAv:f2Զ:&[Qi톍I1X-VV VźGY|WYq?fh[mb7h~K$E@g h$Szl[a <|Tuܶڒ7k.s"lݔD:U%ϕCL|Lv/02>l-Ѻ~y߬dSM`Ke)|5*S2bSy!6[éǃN}q#7PT]EjZ,i$ā0<` O+hVXh48N9cNŖղsڇLH|YͲM1$khl6pl`UlYZݨp CޯMu@ ElmiOr󊦶,k_fu ;wW~̴sң38NC﨣l Vg^5::G?GigA'.yM;Bϻ?TϬ ##]|ɏ5?O岳g1$V+9\TMwyl_#;]0t |r[ g2jќwORo[NG =7e#>u?}[JU-IKe!pYo0Kyh׸B)cϞM?vzlalq8ճᡅkLo-%Ffrݽ_PaP'yeQx'>cmA&2uB ,_6'.Eu_ k7w_-djS[hI,dL5[k%Kxi#Q_HTX<ٹy "=zIw︇7WF9=zQ}7p AKfpA5Ԇmo>mϣw;/ <>4RGM$v5 ;ְupͬ_%q=Ti3Kx#Ȧo'7v[ q)eb=cqo\*ۖ{epaigq߮L GZ&Gpglxhinזy ؘG \kʛ?^a.O7 >*6pl"C{c#.'mQ7;Q#v(8;KɊ.z~cpEa3zID}p:%b /_wW2H޵klƐ : R1=HIz+o)M3bIU`iN"Y4ZI7M5;S|f%$3&Q8ȸwjJ6]MVԂ@ҺjKe4GMN2Fi_:i*Irw1d<" u>Q^[7[![ֲ4YsU au cK̰18hImRc(N:l?|fmkw1֜k-.A:[ºwѷWtӦhbFdD{/Ul" 0==J8^ "4#b;Iyc>XHt(cl߳Ƚ>C5ɦelq;booͥ lrL+h˙9X`-!iQ\~RCB5Q0K`ҟV}Fóq%'pe #Tb[qLM}7̻ =vѳ1|pwxʴcpHH C4 q!В=?gyrʷUnanng菢1g 8V}o +Ï:c$W699]_z~T3X->kVx`Y\,XE0>>5Vof|}9`fo/_y_R/h;sٻ-SRE9@$ch+oBE$xkңRk(ƥBY_l0<ML |wQɶQVpWw`ޏ/aKảqڗ:-9Wm}?đoB4~^eG!;PS[t5=Ŝ^]r~bYO,) *W3s`l7# :ә1$8$F멧ϗ5piݻ>m3sNcG| :d->nVTVSPL9,Zz]X``_:ynUS$gb7x[5DDOla+}ܫV\be0+xnJ& AkHєZ{L+5uV6ם cI3@+:s~ƒKZ/WaD37Ru`h\^܊ytGȂ ɊǨJ@6#l :'˜՜z:5u8$*ZE%QJk <"3b70cW^M6$vɜy/))h^#5l;X30(ʆ v]= %&7_S; Oamq猣$jvÒ'9#Re_eZ5ً-%ay{+|øiڰt[=IYi'۷Pu X(~ )kICiJi?/h.' ZpwQALJB<*uΈ@O~ So^H^ -gOe^͟+BqzޞO[/d\IZw}'kdT\. 6/X}t4ضGچ+{4N:Z/NQ?yֆ,_e$Mo`N,v=\d gL#:9Q>P#~=A6msW6q-7rҸt4O5+42sݹr}|4Z0ZvPY9cG2ەq-7qLSp՗1wb^'ՇVWČ"L-ClNg3r-7{V{92gD2Isvl|P݌& ޜR`+d&` F!؀X ҰI)b`(RBd M&\~nP E0y#Q[Ew˲h$c;W+3)O++%?I,dͺg]LP(FJiê:wW1^UsH BP(hGud` _;&pLRSW( BPDM /kX TĴ:yV BP(5`A\7OWc"Dj, BP(>I Mj5(CM3bUpOjWP( B;FH)n4fVitWAok@"l BP(SL՜^I"tT ՔLa%(H9YUP( Bw?%~>pLqP( Bf),:VWS@LyP( Bؕ7_v^C_b55BP( _4סpP_m*YP( B諆 /"jKsnV)ѪP( B~!(&ᳲz BP(%Ro0m-E ШJ* BP(tջL ep@,.RUPBP( H) .U/7t//-r* BP(v`,oրpaY UQ5R( BP(z#5YZ3_ŨWJ? XBP( 5*Bf[Ϳ#v@YP( B?,Xw5|,#VB R( BP! wE ͗=K"\BqU( BPDO7}k]\X`W_h_ ЅI"+ BP(#@j=MjxsP( B0*>j`Nvu = BP(>`tMO`]BW}X BP(IOV`U( #x)UjHdU( BPE @Hti` }^V *X-",gT BP( 5U5!ݰ#@G&"Ҭ BP(h1dۃJ0"n&o[C'װ9`P(_4zDz YXR{ 45Ftt *Mh]4 _V" ꟩kQ5P(@\n7Uشv5 E#9%Ǒ38-w' TmJG[ ^*.1Br lm:`/N/V _#˲!z )A 5ߨ.uR(_PUKST\4wE7dLH;߽-w"7 , <7|62p 7#M]nV.]mX,=;yt&mDȱ$fiwWfA!i(/rz, :i62txOP?o/ IFbZ_EBb*ɩn WW oгm2uDļ* ae -&)! ~1a>Rt # CJou}J  OC}nG$}b@F tC`6}!̮?& 71!"}$eR8 gbኍ'>&Ɔڨb~ à԰>8qI6#WD[G7?MxdoiE4K6#P>! YA׃ z AG78!)fДMMR27%r~V9XO)|vBPT+݌ kLHpA;vɡ¡[EjfC;DH_ĺd_C)HvV%K>>[zl.e&$L̯m$!V 테(5O yFbQ*D@\I4?g_Đ鮵UhB H)C˩֋i IJy:-iU(_fu:Ķ4S[PF H _La3 DԒ"o(B 8S "0d%Ea/ͥ0GCX91?&t.ӳ(ZnxRt  uv x>)[P m]f-3IHp4{MB<~qKFlFʦ{Ȧʬ+٫zڝ_! BKRzQ}F ^@" /dxG4ՠo%8%d a2GqMȚ>1ɓeiES7H@x{/NѫM?4.D@^16/f#A߭70]mCfO֕ ;m曣^(Ar@~ib)ĮJ)9pRjNY3IQY ŀ|@8I<ϳ(l|zGܛ&*b39 z?#L#/^_>[f`1e(i:c׃j*$L?0\ P;Z*@z]bh -=6¼ׁXFspyY-ofljh|s}aO7jY:Aw@KY65jټx1Rz _gv9_wݶ 0ό5$…N g%VaK !!#Glzv;vUH25Wբ'ct "1A3 7y1d`Vbrkep";p7?~7lk/dc,i+V/$6p b @Jftr+õ~%q8w? j>\{{J+%3gRH>K=.2l|{f2)9e؀1sd 6ЅB.@dʌiyXw6/-sXK`^>$F01|1EH4;'CN[;E-ZdS_KL>I#!Q mxD>[@ Ԕ1@ܦ[*4Ŵ'#@,RN';ki찑}Б thoC d0%]Št`+d~$ڨ߼Z:u&;b ScF+>.c,-osbX1!'PlOL)-뗱}G,ӇQ4j,iꗼfy|&h0uBNeI[N|,QlVR)4S0+_p5{Z}L{x 2 6x[&qq zIϠ0Y̛ٜ/|Ď٧rUo*JW%gsaj} @0di Q2*mn>vvI #' 6'm$ĸhnlGZ3βS!.%:WN'vjG[ C'f(O oxc-&/j@ҜX_vm8{' 4 Z:|j]ǭz3kQߊ򆕐cFhLNb{ -NXtO6'&^kzs+(Z,]mA'I례8!_B[Nly1jͫnr ɤtvWtEwo؆ḳ@ ŷʽV k<6M[M5v]4h|DM7"t@ŷ%N^%+W,%`۫4xFaؔCdM8o{Iږ!'%Y")KȘzP9[aZZZ=k gQS"NUi OiRUP"̀4x6 (~m,Ë'J2 ϡceJCh:8Nx}<&y!1tDΩ "JF]R^K1&у 'ngzg;:egk. H}?|FYu.cr5tMkB67q.Sm4$Yʨ_w\ ;:ʃNVd=2o}ip=;ty]4oZBe ggˆDƍ0I;ș|#rua'+!- KS- MiddoHgȰ$7]&ѥ{7q#svR T9~,S ȳṂj[&.58; Vs*: k%7{1 IDATmE# ٰ-^K|ri- n^7^EÃJY(݅A/x[Oq~zs .{V-)&p{ǓT ;AVz-; YZt0 pm$85_Nj|BǹlTs)~ݡB݌I!%zsq6LR4ߌ8f秝$ ʹ)gH08FWś`SV N6 2g4h!p$ K7hCvՒ;lեԶ;6Sd!Z:dZSQO8RlCIJIhe! Fo=Էz ;RZo%kߣ)q$ ,vM.UVJZXýa qӘT:Z*-_ꭥ ~ 86Zx lDa#61Wc+{1H') ͌Zm5'-mVlQZ{_q;u&\DR)j${sl-|U·@cK[QngS<}=&wpt;p{%lQ61  u ׶8} {Fv_8kuzO9' *ln,e2b`oӷhG@9bQ ְ[8rh x'4o1zm`o"YD1 kowܗC_ǿ7 \u zzOD<ҳA6[?~U>t7.*IXXѧ< Oa௿Ws̗?O~Ozv1x.WP}s|? ƿ'ޥ: fv/_.ڿ_yX&NW^+a=}{Wg˧Cϰ_VڅGphi7=c%PO {wXn堟٩u\kcB|W_)oʾNOKx`I :1#mqq:oF+g? \{xyP},zkڔ񲦅=+Dߞ#q4 }ʀUxxhi}z5&PO_}K+)x=-,,.V.Qw12<0.|![A$Heſw+:cy {ēg?~`os %X~BuN.|as& O0;5颷z|4 '·?G?|hMM|v{`Wp簲# 6oCmuzKW)~Za KX1-#N1F70md[q {70kL;t)6{ Kr6v} ;O C9Xe2>`qyzrntP&ػr#N *D=v%0TXc oc(^ w_-\?}M ]l`] p/ڍm RWXkRc0ʍM| _BQM'XEO!{Eh0qГGP7 n:՝Br7i?ܵ@ ^N= xb}j,}W8v$_SAE{zX=z\Y7o^ B EX\|_x ˫G1K~u%&-+Nܑu2@  } 8dT @CSKD@ 9IT8ZA+jڃrV@ `V}`13ʲ |_{2cue(&I, @ JKK:P8iBDEa@ Zkv3I[WKf4@  T'Hsъ&3b),)\@ 3")\ӿK(Ƽ8w@ ;,%ˀL`VYIkt@  p*pVD%`(4k@}@ f!R`) ɪ]*[Jk a@ yEUګ*Ǡ&+ QZ@ 3Uu> G^`v,@ Cg kւjMX|ZBX@ a3_~/zMLfv>*@ ;AE@SrP݌JƿPdU @0 ig Z =@ @ TČ7ʌE $ԕ@ (VkY}j]JLW[@ w8b@9cYzOAj(wl Uj[ @0 J]:bJD 5yeUtD>]TQ\@ ]aUST 03U^4C @ ٣tA$*b.0)0)b;sey@ AgT_DJymFP\Q=_@  ~ %Ub;]BRe>hV$@ `k Uʚ8.Hkb% ?x@ 6=GZjw4XuVZ-&"%B^@ }DXk]Rexe3 +ȈeI* Z1tu& @ _<=<_`]̬h`03+6D[8 :ZVG(Ly`c3PB.`u5S``H3eD󙼤Smr-dmOqhSJyrYMՏM^LOa [fǖ#~N*Qaڧ:~k^Vd^rz Z~mdd)s\FRoc.qԾFquDž2l'_q;ӥCAl~E:[oɷuCmۼ_O]'Ep?8*u? ^klm? GQqzbSNSOr}UU1>ԣnEvIi׏~ 7 R>VFmN ]~ (PمȤd}?'ڭ#m|3 L1sڗk--}N꽁J(;_7Dj!60!ΠNHVi(ʀkߞ)zl8D+00ojCl++#ErU% Q 耴Vq3TDM{p+55I%^iz<twƮY~ hV&IUE䢪kU@GuEr}͋J~)mk%ʪSj`e6FgP%["k~RNt'-jHG$ܢ]UMX(HEƉ\cda3y΁c_/&\y0E OBѸ(PwhH;G$;l';oUU:hPJ53a=dAC&((fL ctݛP@vQz* g}~TOzR2ɭ>}vflvL[ (+Nm6"/jSCl.Huך2EbWԜMv؛X֠ʐhp ?sٴ@u΅ ߽QZMhB.6## m{E>a%?-{ݼhNBdeDwp;lA?M~q\fk E 1{T/tŖjzH!s9d˜+YBS T|aE*e@y`vo]` N*C bfGf!Qr$]a;5ƹ|)cЍc*u5MS颈'i+R$>;otԉ)JMg@tR&ng#E+04(֕R\Hqn}ʛfAčL6]ô)+RO#v2|͎vwU6@'ǣ_n'EEi+\/䕢 O!9״,EqZ]4}Yxp'sBa3 8'nkNd}oX[p=*{ٕs%3w0"\6 E_6­DI)Ö́]{<"ZcWoj [2HxCkB;v3v+*\R5:ZHTvWL@Rz`0`C^1pm+Lg=3 ~Iij6m`y5E& [NFezs [mv%@EOz4kh@*}d v&O{<b{.G*k]V٦WJj^Y& H#6WfOeUש!וX+ o۸RJleƻ'y>kL5ʒG&]R7Q@^"/mu]\R8{CCwU ;k?~ M;lJAT8 lkQ7%6 6uZ`w쐕Jdv1|J)kCEXU>نfRM2&(dr׃fXpxu(3UMi}˞~oSygN O !olf#$8Rjb/H u]ս aUE=;.xړ$!]b `r`¤{3J(n34 szc+'ՠvUSJ]mJ,oՌ dWxk-.yIDAToWdW2Ojfբt9Y%W$=O~Rgy'쒐"nk'V2%&0՟rX[}ߴ~5C69 &v+ b=d` P Lqb$3jv[rѾSiZRyVy%^/&V6p"`\xB԰l ׾A\RbvRG>d}i}VVbDUNaUº^[5 So0F0*C~s_Hm;)w`'ld6A$EsHC*6~l(Oj*àmQ['Ǿ=!E@=kG\* ;$l*Il(xa'Z[^)E\9{2"{hA7 L2Na9jBV/* .}  l=ٚ Z="F/9wݦ̤9 -vPml;{[e_UP>f}KFi#T}b`Q#%W*S{ގI]_MfL4ea +-`("wPss&wW]`T`.;h r$܁^XظdRy D8ei+QRboBҺ*mR[6k[sXW5"p]2a)lԊFncv4*i]Qw@"Mּ `H0ffa8X`3/X2Za O5š9Xp$Jk'Nܠ,6NAEi$[FU5}-8şT8DFzO2ڣ;Z!?(.z@j mYjj\9Wn31C1}5&)T $ZV &]E Pa~R[_mBRBS@ d˧gA&U\aTl{x}B;f[A4?jŴ*)v$XX(^@DBs/US ~0V%k32Xl{6_e7Ňkl( Bj)N=7!>}=uNq)>m᝵??(4fCev;Sei;l*9̀+]w/l8j0w4] Z=[b3<\ZI-LDJ.X3#L3ZYf6Z걎ƪ&W;SBDT21){(k`R*m2^B)m l֢z'>`zvlҲ, m1XOؚY5N3ܖ@F6O'ԱFAѴw6VΫ-Iԧ:*J-}p0eIw{u,ZY4 {Wyuf?ϻ WfʼnT\PMX6]>kTi&@X?nKspҳ:[Ofb<.Ca@юONSB}P Aܪ췕;Um_\vm|&ͺ#w2m,;Y=KПc07geE}BP`}CV*'.[UDe5sQZsW{6!==zQ[PzZNjo 8J>u UZU lZreO]"m:=XroUxeXNk z*OOS8P1M\b E/l!an%m΂>bC8JC[n):aI|uv G*^] |YiOJNTמISrW#>n%=aAtkSRe=B";W6n%QqNIs ޢ5ق},$=VU+'Է)6Ж@(:4K˭ (OO??VBӉR.bsT_PԾYOn\|EnNU5,V7Q.TWEAj⍳ PՄKd'&P4aRkhi^d2H{)\m,-GV}>whj"8m_DɍOlʋ;8,Y۪L,>hlxrWFK/r %iC(&I SF*ҬcN!6&'I"n҈uWju THs=K_`8 %Xa͇3TIOwj3>şX!/:06ڮIՃxHGķi*.IQc": On琧"#&#}&wof #uv1v۔:a,:k>4LT"̈́!"۟> ??7'xyQL*ևc5Gm":?l3kվB ߋPo#w#H1;8(92=! KXF2dDȠE'kfz~3|xTħX 4B!RTv\n!I%5^QΤS0oVa`&*K4mlAqZFՙ)zU u MB:i}OrTJA"T6#bF}mQJ;Y|NK(gL E_"5}TwfFOJuim Ty>.75!zKD jѩ5iiʦU&XtnFW_E:޴()jUbvyͥSDM?b.KR+&IhVqZXf|sћ`''}Zv|V7y/mQU *sIJf;vzp{r>z]Ň'kuݩ⪸Q^.0|9U7|*JFKLܶN,)]Fȗ̄VjST#b~ᓔ:TK65JPd#+߾fmuK+u/)`q)~E肘uMC/R%٭ X' #88`mkQE#Fƫ):ML_gӋmXvΜv۞ |V?%|ld~mM&񼧥0NޟH]U8|Yr귒O)9F~޵ӚfY]usP 47ZyqOIƾ|5 iaLS-jrSSj3뿄ȷ)AKJ^4m05>|{㺷}OƇ *R~ ʑO&;-T4(U/\}}ѬK > E0?9RfmSTs7X]Y{c܁6-'Oe}޴)fƗLm"O*Ɯ_EQE4|U`8~wvÏ㳹Ȥ47 qYCkf^$2kqm<6pFwTj_NSwe8DmkΏ^,Mq.UwQ hk\Yؙ]:ƔZU/n|}N`xQ̧HDvIENDB`dell-recovery/help/C/figures/up.png0000664000000000000000000026452011751021273014442 0ustar PNG  IHDRsRGBbKGD pHYs  tIMEw8jtEXtCommentCreated with GIMPW IDATxw]e[I-("EPXǮbqTPgtl#Ňk; EA:H $!!=c&\r9~ =5~ >?=[=1rHb?FJmZ޿&RndI鶯eE {1˲pe}Fe+*}]/nYTJq*FyEǗhwˣbXߨ$:Bv%qd~|&r 6!:4cLK|F~fEևwᴲk`ڕwr5;F~7޵dxZT5h[{ߟzԝc#Ů-o1dǃ Ⱦ[bK|.6<}ʜwnڥѡo"m:n"%k^HyzpzcQtz+z':\=B;yYb;W4=۶~ݶ=vrDƭh1Y" xN]Y#m B/*)M(1c\eC3Fl0Ğ\UtrAy0Ģx7\#(|Y&RvtLD}1&`("8Qޢ`Yt6* .ZTa Qc0 bwQס'^&?uPOegd|ƶ6 %;iA+)$x U1/PwAk^ b +KaJKi'q2>^)#N.kس{2DEzޏnŔ ]EObAKFMnsǕnR^Į7*`$׽(u20La'$i0R> K0i& _=VԤͩ`o{~hL>3Ly*=2.^lYRcu>H,,JzFe3Z 0{ 6E}E uY0Dޫ݈$o((vdϻ>,su*0f[֢'3ToL+w;ϝ;DP0Y`4yop&3{,hϺ>>Fm"ROE1Z 3OYdI0q`7s\~>XZ z!7@1PYN!O̱5s5xgw?XD|k&}xoPgR~-kGXfS%ɣ]Fs~pS>>>ڢ`什@;Df0 f' 3]LS7z2DFj a2Q[$d{#`L^$xGI*SOJX|$ALsdՋ2b"hk˲gTr2!DKHn=gMz랠7K1I2`-o<UhYc]Q:hMפ#X!F62½$閟0w?߽gEs>7Z)֖Z$q^LgKzm*s",gg&BJ8KF HO_#_+SED]~S/$ͅ- 3HxB$dֱ]7}Z߈kԀ6Pcx 1ʛvr1x`>`#L|/:Ϝ."AYbce2XJSYL4͞Wۃ3YL{d"*+ L<'8 5WM0P8$Z'G-*s|$r,Oԏ[Xe"\R}26ysw̽>0EZJH>Θ{hgl%,v]i;C3-3TF3&'I=3R`f7%=Fq}:']Am#T@ E|0/J)˛\% F|$KLfq?_:%Oip/A#h-O`(gn0[tB~!Ou]ItgJ%8lbuWgkތ[%<`y{`jTQ#`-k@mi?0 jEZQ c|LHY3 yʳz^ ­yIe{LsSЄz)GHq93/S|3O0~'=CGS:}G3P} НAV(('c2AsԒ;cCHϰ]&?,)&ko}q 2{kp9dXKhveUv&ˢg5%TI^\R-U˝fyT3CQG ??"Axs 4ߍQ1;x |UD A`cj>7މ&اX/=yEgҭALb$ 4"mL<dl$qPx\f)hnzY ]97J2+˙`ȻJ Ie4,=&k K晑">I"׉f<2噵RJ:z~)( [i}&ΌWc>\SW]ת@9OY/#[kx.t&mFس%dYR-dflf2L";1e')b{Xw}3$1ܾ2?WEs[US5ӢH8qC XmK70LTH2%:>~Edgat\n56^OQf0廠,4xtS_L&8g.^=YV<~0CWL0g0}eR0=7 ~T< BIJbЖcZpk372ɴ$4&2ҿ.DֺkigшnZi Brf2ӄ)Y0uC>P&rԛQ0\Z3R zZ2,qz7=o9%Ҕ> (3-&°/ږw BJ_8U Mi i2 &xK%hL6w~*4_̲!eyn!,2At,m2,4cl6GsOKlO3&kI* ^84.g˽'l)1 NL!ROZTbtfdC<8Q%94@dJlSR30Fcw \j qw|oKD,`1ÎE|\l*a0R@*nOD"ɇ@,&}EW4Ģ+CJ"KLޣ}uiI;*M-DIf˼3e :aE._RP,EYc?+X@TEE~^BEKzԨ 'W"m;L2hH2}F[9# F}Y匟=)b ƟU'M#6E~ˣuX<(_ԕpwsks(( ZNTԵHYza_O|˙f!f/mg1 =B-'T5!OKƇHނ&JdLҝ\">#]|~#:o]w [; WF[@C~Trx%LrN%4q3w-+.qIɊZ|@Z۲Xo)T$^(g3x6i=E°/:NjσoZ2\$ɠ!EKNGbu>EDu1^!Ә$w<~cmD76dYG|a17bً+Yd!8;|DG(($-?ͪ3,Zl-Fz"/ģu'/M W",8-%d\yl<y:iLSTr^`$8}eRlRF'5o<40 z`kEVF!c̰zZB%mLqd3ivQ:΋Mo)0dcGsĖ԰xd ErLfh&TO 9-H$?Db*CCiɞ@B?u""*E1q1MT,3|m-M( a_.#60s*cH6x靥1jJ?Ew+PyЍb{kL4u7`b JW&UpAƄǁ/Ciu(o Iko҆툲򣰄cGr=hgX~۩Z;N:U :i (xUńÔ˷-nCBD XbD@|*q'WDiÌLlIPMzB f&I,(!ygʦ2 ak&$pXA")?P5-V›tfܠM,GbugEat^PO{nuZNЎ),IJd>C@P*.]L炿޾:R3%zN{CfM8m.3M"jk=^vI'Y41Nkgq=8ݤH$e*Ybc#m/S}Lbg#} T{D_I+& q:)h<o0a0ӑ+hR m6;>s*ٴ" Om2UA.SU f W}QFa%ƭ^hsV^ٝ.kFc<ˌ6bX#,?*v,8&[v<|11t<`'2;D`fl9缨/~T yƠSvt]rTȢmvCĮD Y HzXnyN*J;NKL*3F2&w̜&*&nt3c2'm;WJzu6`,Sus0v @|z !]-83n~j 9iJQҍJup u,ĚDVy}kxH㟴Wt/ }_8~LMV쯷:JFb/N;o1 pGAMS &VFGK-2W~D2tZ뚒v=>0gMK" 9 YIԉuRWL4M% fXD\xڍ`p&fQ NX1m~Cb 耇v-q.1/*lHՠ,DIl*,?t+E`Vě[$`:KECbI2s d|-ME0sM9|Տ0@:\`{cg<+ti~!5:Da :EFY~\& .,HaKO&%D^lQgѴNsRři 9\-;(wL5qwt3,Z23df 3/R~AwL%J9 ZUOgr,CxSIL[޸,$Tu(cg.)htU4S 6 {1Ty.~ڶB|z IDAT)O+1jY)o\lc#h ꕯ\ o۵(jO!D(Wg4t>w` ̝;x{d~/e}J"3l;Rn6Q2Q{_$oeǾ &3wBoCZvb.Y3w&SBݼ?ynT;ߟ3>gf7_ff|dFǾ5@B%Q>R{L_~^hf<2_oN/pMZ 5(&_xBJ4G;O _;WBLTCh6[VJ)RJ)RN<7.jvcYX &?:W=wڞ dR G?0xG|?RJ)RJ)LoB[-ڎhhP Kaka} \ RJ)RJ)gL[pJ7 FTf ?ȏGA _D&18̘wM@E j+Zk߾ r&a7cYz ۲XJ)RJ)ROxW xa'&38qLz,֚fBPy8B4(9,* +7q4F(LOMc6Z+F=]nja-URJ)O&nc+ KYAiQ&5m^^t3?ze&дm62]PPy-f/Oub+cXwL>ׯ`Y8 qBj!* lNFjitBfS}o4) X:*MkT+-SSE2ןk Qq#[*剙iLVXޏlw>-ԟr㧔Ra@h;ˢzf(Q" }p5+w>ơ^UJj!թ4SgǔE>G^[]nbO<pjz*9t@iST9c⊫%Dzi9PTx+n 5:' |.l_;n-\v ƀx.ךdUo o8jؙb#p]a?w Ӛ}\C..Rcb{wUCm1eL 0X_c˱ߏCOu0刳^̋s$-Lo_ǽ]Ot-uq>r5e0o1d?>1=~ e|~.otª|wػ.b}ŢٙQ/^#9h06mvAk5* '9*Ʈ4x#O iNp>ӖkpzƉY`ΎeΙo8S!+R&"ǧit:hMfaZmZAk5U0L5ڴk]2<3FX=߈kv혢P5ʰ ;̙U;0fN"s~k@b<1~D=*UX?BmD>L,F<9Roh)]=^=:*L$]`uq0pNL꺹i[6#q^<ɗn[^tvC\a*.ZHqCv#op0Q.B==A۟3C[3Gg%2pЫymª[9o}ggQck0pIb.U37+yXH^{?ؤnCYgř/8UM[`<5"-}qVo%+r#s:nۦ{99 4o QS`cøG:p̫g:0g|O5, 6yzT+T`OfMZ(RʓS%f ` Fa'F } L%HL1).!V-S اfzcs87 }O{_O=pb:mcp{{ا)>Tݾ1: F;D/wcx+P, ړʰX,|AN32d={Bn;"Vmk|7r5чDcYV{zr,5*_Mg⠺ݡ~8˩p*qo? Dֶ-x#sܿ&Z0r<8ڸ,CVnb۔bk{k-dm?-$ԋ2CQ9?:Ӱ쵽ׁ\AUrO<Q<_;~of}]q=zb 9g֍;HRLhݍUcja%{ͭ'^\^dw_6i"g pZnw=Ɓ#m^q!|wwPg疈&R-"B""pM>ヿka ڴS6{<ľhVbw+X͵SrY %f͗>x2 O=?:tHbcu*Cm0^e==g^b`ªth6~|>u c_Knw_@8g?=!kbzV?mϼ1kTf?3|9ITsRNؿH~0m[S 1gXƫ~_ͪ^>}DX_2p5!^+V 1>fCWdf  ևx7mg2t9;͏DKnXs+Z׳] uј|*ŽZBa;nވSUXƍ[Qup0%š)Vys݄7}\>"^'{+~YYz|E>(=ZcMgϟH| !=^ǡ3k3g$kt5eM{Lׁɟwyk~qZUGXc,آ K,5BtRJyR e(B!鮓bTwG"otE_F! n28~zoמpzXYV7{RLL7"Fr>hˬYah4h5Cٵ\{fsf ޤxXT7ʢW@؋݅8|̯L2 tC7p?4,Оex`,WVӪ kGc-:}^v#-:Ǟ͙Cwr=6'èzG 2y3ߡ}URQ۸sXqN^°sG 2u'W<@ ` Z 0{mSnGW<^O9Qq+?f'm`h9V臸mX n& t{ '1c9hI5ѦAnBBVb:8ޱ2E1`U+NXP$ &cMTm0`9|?rw6|" A(J鶥$:#tDYNUG}]ϯRjGp/Tiwe!,m_ߴ Xh?C}g 'hk~w~\-)BH_.=#|q[z syz]5B`}Ss)& MIQ%Rº@|w\Gݗ_TȊcMh[px}_p_Fv!'\6ύp)رa(B)?"H]Ƽ縙 "GtOLQ<@ffҮhQ̃[;0Ϗd1W\ӡۛy]?-yϝx012"קL}".?_v8w^v7CW2kթ>|8#"t5 *Gj[5ƭCÙ}8#0y۵? ءp:s.؝cͯGr`pN! `蠅LY)q6U˅C:y׋bPwox9+J`o;;׳9tBc\FdQ&Ln(+D Ư{a T6]o|ilsa9'~7N`+A+~$Cg1Q?zփp KJL<ʣƭGYhН! 1% (0!s!Ow&˟ז76 G&6?a գ9ϯNs&_cǺ`0hU^hRJyMQ^_aGty5ffLp6 8j;00wv8wqˇ}gKu˃t+hչz B;PmVqRR 8]o6[l}S.ȹƛS1lf`De-^^%w%ˣ2u^,P;6 ^ea ?JlOfv.ceũoX2 cU,S=.YÔ#FjHx78 >y7_(ǜ±?>< &ﺌ&yOlЏhq`Ka0N}2o:cpjVlRUc1m{~WyK.]GgCYӻ̦{yU,W?00Wp,}- әfq8㏹̮GYtFOPz۶mgykUeWXƓw.h߾c'۷t~N1\y$< 95S(&غunѬ?·Nmcq?m"T\>x<<mmSQ;C܌bmԜ\MG}mP(|y65_C2Xnלys>7_צM_;o_^o`3yOuLs5,X IDATr },\@92Q-lЂB`R_}7g)TCKűqX]=ll=iC^1.U%絥j>U9ϛŒ?Sw#dcI[حu`s~cϵLϙq=λd F+Y0{w8ƗRʓZsqkM+DCR_>kGޱ@gr G0N3qvÙ"p_<  kxk꠵fbb1vcll1 ִkZRZظ8i/Oni5])>)GPF3m-O>Jm7M Iϴ?nHmo]ƦN?}lW)Olih nv*oO~1gQnW o`F/lupIn l1KU϶ צqQewX_rn]s5sAUvZ4k3߻TmPKzOYO߻m'Uj4ӻ6buh>C>suܿAeX=tH9& rwv>q4YnGo䶍L8vJs*41RU#]`r*nc7cQS1˿_>mI{ՉL{v'7qI-Z/ޅP' XF݌w-wӫqnO\]M1IҪ4[_ S&c[7Lz uKxpk3u~*`1~f6ϕj5y^ͪ3Gy%Rbe/:u3u1*cEd"T њѴҷS1[9v`F"U9|}^2v--Z`1|Ecjj7'T7n|9e}#qCK_fcpg:-$d UYBRH,lڡ ImS͚vK6UYM,/Sњfʶޡe%ZfM=hY[5fӽƪ>j"u6ц#>< 37OfCvOnzX_5NH_0Tlxghn% 23OvF`WUvY&i5H*[c!lr}~ZGIUYqn: Ev.6ǒuӭM/@U@;L\źVPgC̮5u>;q:o 4;-`[:xsU[Rfk~|sZ|/dzw?,R@y_! j ՊmYؖ1ƍ1f X <y׵maF:%AR\ixa|qr+*XM&fj7F2AP\_7022 z=k fI0k_}A!h冏\n=gbphZCfrb;wuH ]jCPPYE՚Y5;QQz]]VsQ DQPGkt:xϡ5*uc:#Ī£ٴY,p]ku'ƲvqW̷Zʽ?UW"Xy<9=""u1,2Di4r:3vųJd -%VgVE"kLtG(qWw+ [cۭcP*|)<с;MRZ`[JJčG micpf6k1=iLP=?bTɂgK$ј(N쪍]6Z@+K)Onl܋J)婥{8:|.3)yv/ eq4RJ)RJ)ѽeu=s轔RJ)RJ)Rv_̼1~"ݽ62G^)RJ)RJ)<bqx/G n4p }~2U)OIR(RJ)R8`݉#*;;pWřxY%/)/fkVsG@RJ)RJ)$/yɋc1Eu$B4L O@ܔRJ)RJ)RJ( S@hž,nb[})RJ)RJ)H>ѫ<\tM&ڵֈRS)RJ)RJ)4wB$GQyxbPaוRxJ)RJ)RJ)'<^T _ϠeVRJ)RJ)RJadђ`x;*ra@OԖ!J)RJ)RJ)? 1iexet{W $ҥRJ)RJ)Rf,ʸnZ\Bfڻ8$4RJ)RJ)RJ)eK9TۏFC&%/RJ)RJ)i:$bBH* _+T K)RJ)RJ)8%a,m(#n\KRJ)RJ)RJ #e$ɫՑ 1IWć/^D+(RJ)RJ)R' bRJ)c4dd)̟c'K?'Ԕ O_qbg]9#^fk-]"'z'Oȟqvr:&'jl͸bM7KiBJ>a15qp_b,>' e1/Xg4̓bLuRJyHk-_N9~o綇ljt7zn;7LkZ'jlʹLpp[<yo_zSi?s4񛯟;x[.ַƌŧzok#H*fqw7t=Vv;S _5k̚_A oc=wqG[i x_~G}G|]2FN8$ oC5{Sqh]c: -mL qg6%7Zp,a>'g^9tܸ{ܽ{g3'7Sd5'O|?N YiM̾^̠r<6-~9n_~TƂp~$4z66WIm 3wKϣ0vmۭ0NŘ/-Μhs)ax6uJ :)Ct { )$9g?{9 2ٺyKw$rJ;=sxRΡ'3`4tnYqiw~6H~@{kGM/C {e-~@ߊiߎol+O8м~)[<ɋV )E}<(i NψDm(:mvhƒs;_7'^!$R^Q@̈T_/>\?IC1gG۸YMTǣ5|aƳϗrG~1'+w^/FfzLDs2A;C0vh~]!R <Q7Ϻ)B9͘iE |>^Co:̮_Ѡ1(ҺRqT2nRu,9̨LGk۰Y2ћh =O͊p`R|:>O2bf,=OeP6\>[7dXN֤2WZci@xhոF0a6~V}ax8KGn`¥Oe", v<[BS8g:{}ɁFS&`k붳2#1{3-:ZfOF$3#o3VTϭl6gF3grU k|,~~v]s=#y{^)vV~ b*)?g}vOlö可2p%Tյx0FefKws<;/ˋ`ۇO_$ۙ<ϰv%-=ka۫7t%80 xO@\sRe=;Yl[^wȐjHy7la Tg5?OO_Gޟ'fN']M3 =#[%C'vd5+}i^?8GBul*6~n &<{7},qU\'3{KG( 'o-Es6ZsC/^L8i`x| NƐKW;mWd0YZ ތ|lb7">~ڍ<3mra9zr.˶ٝ+RL_F>.hjD¸Б=f whzC<=92H-bnby[?K"2p T.Ckτu5 ^IքTFHr<,r*Rpr0tJ|Z<VDU ŋx|W4ӋQ8)KɧegcnZ,ڲWE[$<5r*^WMYSŗ~,XZäp$4 My HZ^yg7nY8azȫ=w ÆF740(;A#]kx=dNkWU_R_]cf[s ÇdZIz~QRiIϧ$QtK~u !v8 |<,,)Ϫ-z DsnzSu7əy'WWҸS^KkVPF;Lw.Wσafyuf')*4DP F6yEtB ڜKIq\*]KW}qu}1H]l{&￁ǂ:5$(3wngȈ<Q\Ij!A<Mw7Rm%/~[3mP, aJƁMxa5%27dW1x;*PQ^AY~2V!0Qgkk~mMMZ,x/7 E'p壨پuk{YY:cKIKdB~z vRg 0:uu3-Cmrw{ ψ=o~1U6!v*<&.l=rIb7"^8a M/5Kk ٰ M$_zvyT.p ^OGz}tΪg FLbʴ;^CK3HzƂ\@a l8ԄAvwp}{iT /6٤,5Mz9kޯ!Vj8^Vt%sx#kk8hfg$u3_;ʼ0{1d>mp j{y~>eO)K͗]CGo,{g_u]l(:N/:! ]XQkw;}qGcc+V;N&sI5Kۺd'2eB1f~&EXZ;ǔȪeYz֔g^8@S<\>e 4 =L;l{Oy Iֱl=Fbzhi$2-fqQ>K]LzVK] c`ǷCk3 $CDt _=(,) SJ8_cξ%OvzZ1ENw|Z IDATA;oٴZLZwVh 6@Xּo{E\X˭m$ ]N;+Wʏ;#neou;sy޷ykɶDcCD3y[ jZk%(}c ,z247y)6lTғoBћѧυhڶ-&"9Azа:V]â 5bYjO`vh[.#YpurafI{tAK!]xК8ZW=B#Hit :0u|&U&palV28>$חGS0a=)՗ҌEG9Z _ُ;nr~lW@aaaVѯYt.+rZؼr7n k!?%67Wn˨gҽݏ"gx fVr 4D"82{2p'Ga;pTD#pCK&;UPcMyV567Naƴm}+ _P\ {Z. )=)I NG#EC;u ȥWޔ*"/wYֽrGk,q_Ng}Xwseĝl{@;pw+=tr+XyVwyg!NV89!ܾd|B)}Ȱy&2p i<^I.fԑ )ALf|-0Zt[ ٽ8ױ)1SS쐘$sٜVd&ןWLc."mX|잌>V+bfMnUˆ18GG/xȼZTV7tMu։cbm!_nXGpD`u ɹ8c J!tg^}&3v!4 ]o?Dr?f~}~ ^ҜeUq/͙bt֐ρzjzT_Kkz|<00uge3D UϝO࿛i%A}B.y=<o}'$~;KzgyAR μrFeNg-i~;FFz=;No糼?kV~vG&|PEKnSʰˮdʣ?ɔN%+ӣ:ס3sL=|}C~Y7F0!X4 7fYD'X &ҷ~v(q#6=K=_ͷC픝{nxyG>G^ .DܾW1yab3ɼһR܀#I'cJ3o`/r#1z=dbW0w1KǨrori_c- ?i85!;qȬ:zAg~;?@fXhz LԷ^+BI)stDP* EB M"i5LS3M)|!%^`uٯzH59M<4ou[2N3HDS,I$%۱v>M}f},$xjau$aZ`yÇ^'Ӂ:X$T7-5h==Ec/'fPO Ԗt-Z0e|;Ȑd6 isyT>غh<7۷maaG'Bdb|c~ fD<߁Dng;%PQp\ͭ8)Sf̜9N>dRv+6k"| @lJ)? [J[OcLÄbM4yt7g_S/% e3Mqwp%fXZ\Z:)fxhqyxogOa<i<DI%d;}"&6v GKAV*V~Vk\9 {uR߷0x9}7ͺQ\70AX ѹU57!2̈́xvuur;a-<`Pf Än77W6c!%7g0~Ж/8薀rr;I53ě{%ɥ'p͗2$Mw>^U8:D9лP$$o r4IhN!%VSJ͐R0~VQ8а$ dxZZ_)$NU̜9O 88mvV6]5MH@8r;N0e[8MV&%bx!R.U**(+̣8DM/>£sw1~OTBقvu$0;j0c7x8i9˷7Ffnk]J!ld%ѿ'*GAAAAAA2"]/@ɸ])2Φ, }<Aj'dD]9 ] x3N#Dɼ)%)p iq4L5&a`,B^wS}b` +:;p[d !+9\hw  P h8hRot)0[RJVW/k.DՀ**ҰT(!&He'eb}, IRU0z"RQv^|1G/ˎa=,OK &L=[|6j][v S? z±Q47:RJZ`Û xM[}f&X !pc,>v-';=5{G\'xlhdլ۲>@ÞCIa®ku]0=}fPi;?lo7A%V*/K9#zr.i~ܷxoQdL ;F6|(LG#čX {:VũIi%f*|ߥui!@$㥥VdF6WN`|ȸ}Cv gRq&v顾zLVGb;O}3O-DH~#-d v(î#~Ί XAt[brY[g6&Y>+B";pϤwpoL֑XhS*((((()#aX{0 f)e+Y7M! f miHM 40b8E|z*ɺFfV>1`ɫS (rY}(A3|o eGnoevsmbIɣϠ 흁M_|]4zrC04yqustt=kln=KJ>F3$ G([qo,Y _3_&֦ Ԛ`,y7͠!}'UE/H4ۋ׳;OHHɹ<`Slֳư)Ȭ_ʼ> JrH6ٸaMM VmcMscTy)M)C,D!.qhyzUGϋUXZ >~3PȨGwر # 6a d2C{iiʬ]kDh.z&q:'%jSG0urNĞU XB=Q9i>$ hDOͪh3%9j>-XSL#;saCe+|;a븺 ^| |Cӣclv r&>,sLR(vceD==k]z}ï͋fNͺߦ> OQm7eAAra M$8.ϖD鲏"D0KM Ô ?/r9釓)u$*o$Q[] x # hzBZ^*o?g:Rä!C?{|+{ &K kz=E&NdsVYح\-Y.dt8dxOt,0ٶ(٦"NZwɭ"q\q\Y?Ya+Y~OT``Йr1*a !M'vGʖ&a.Cд߂{;ػ-[AAAAAAAA"T=ѩ,‡8%CDP=wGo˵#&h&av-0{R#*@\fu\wLzt , 4Q3aDv pRa8Mm 0r荨QйL Kp-:Zxs,|g{M |(_J4=]~'}+sP# Y ܽu=aY`o@O'zMꝇ! ybÎՒ C c5,@[7L< bq$#Wψ` ԣVzo#>Cx8?x\ٷ}3<1e3b˺p~`~r_akK2 MֱlN"S2$򲬬ھ5ȱi]Rt欜biL7.򞤉#]ƎqA[yk'nE;/{ql3>VjM;6422TG=6sS؟ 'i%{z9,f:>U+ti sblZG?[ j PjZ0g0#niu=z#ۓ#Cg^CV"HCW4 _B4% 4WMHI/ 8\)<*_E&R{Bx3Dž5CvH;|g-l#x[cy"n@'^+((((((((|_I|,.Ɲ4G"DA!2#/1]j@E[u概1%\X <&s{f\K]6|l촕]ŵěl`EUO8Ȧ1C '8#jww~kK1)̈CR & z)/1͐\C 7`b O#BNOV0-_{rqӯa=2_t'2}HolyAѹ<#;%{ڗMHط c-474I(5y*((DB׵ ٖ1RLg^hlQFڴs>D-,\hp:VYO$#ۊp ^|cYrM,-ASl}?)44ٲ K-dpZg+rԗe[`uߓݸ$S| xo %e46٤h"r/aznBZz6}$-@8x)&鐠| Ih, (ND \7C>@k G'!1q5xZ*Ne]A[&LƤR[Wy!AL?3~@eײy4 B"MC/͖z{4]ѽ-Aj>2O}=֊ Jdî&|Qz'3Ӣ|:1Ɲx"Iv:݇株9, 5AqpgdK[2]zx䪁$ANA%)X[?1澒ֽ80jx랻x!2q()a6nZ0W n өN6MD;sM$y7p:x,IYӦ28nsgߞڭ7;p@6mC7nG,94y7dMj·!.lXw-jwޑdڇnjYSڴ`н:vf2]L]K _h%w^%2ő'S8u0˩[>/HaeD5A~JFO>q󃍴Nle&d7uL$>k^o3?gNITϕoQ)%Cl~N3T_]LFKJ "59#ַ䜂"zp*}PwBx+ML 1љv_S ^[ƒ˔+obrT&a`ha߻u,l}bI7AJIl,$jՈ̎0~5#;z׈ٮ_&O2p'Oyc3vr/(1nIBb>|7Ax9}>~NxuW'v'Khn%4)^"a@4Qӽ55 |={KZL^5;#A>Ԍl {b7)=r8a5}YT] GGTƏ^Vޏ- gˬQ8 Nϟ侗W=>cfR*;oodR zY+Ns=Y|5_gh]_=wOswX9MtYҗ;WAr&#.#G Ԯ Mlɵ y>\?,!=Lk<󋶰 XyyFh'ct{ u,ڷob&&!7' Ôan[ZhnjF P^xo o&hٳ! |wIUeMфґ^*-}ĩ/³t'&^`Ss<y" S|: JxlEocJ7k^c}C,*5o5V!`tgdLᚋIlQ+fZyйNݓ+žr=+k-vڃ̛LEZ^Ŏâax]6uzvMba :FplڷZ,k;.Pvx^,&:o xG;-+le%0p(=f#e/b& ( Yu[z1U^]wK/K+dտE:Ǐ=+OZMHkfr\Tt!"t")țp64 l)v6dwl{ߋMWmlK#pd : ݻRVZ(G뢓(v3lcHꏮе@ؐ}RGZjgj4NOc$9+ck⵭QreF^̉WrV9Sg7X9w!|LG^%7CN>s{ oK)y9Ӯ6LgbA[DtKjEE,* />rUjιL,Q|=&:ө{r,M?!X{|լǀ~ 0>wK#La< Þ׏˩8EpDu<;MoiّCA4[X*FA-"\ ;ĶRb`` Qv=c=}Nf>ާ?Kл#M- 懸ڥ++陗 UGO"2p&p.t,1:4n)=:㕏%3|50= cx (S~M ^oS]׽kv{-~ u#O8_v4WC=#hw䏿lGC'G;;}v`o R\f2[Gͪyf6쭥 'ˇncᠢ_NDt cNʥ0Yp3X:ڟ^CȩI {^779*хݱ<.۷K%Ŋ펩Z AKK VEMt &cK-&fc19"x;@>Ns D`U('(OssiA/nY}4F ebʓM,-/w9\59V˞{hHNL %}d d"z78 :x\@d9D2T|lksvV0 ]#ȶHJ$;Jvo񍶯iJD.v;.WSl;&Mhr5D-A Oxۍg^A>D?=7 F8:!}ߕ=zlH?\ξ_O遮 儡9h,{ZГh:S0'iN;;c{2mp_`INewXi6??$j:7Y3{Sby>ܡFV>El>z ]DIRJ⫭)zذb7͆@D%2ఀnL㚮:d4CO$`}Cr1%)z:ŽW\R*Nj>Zw0>YՓ|bt3X>MrHu\1O 3H6; n<>Wܷ[-˧|6>1p"dsAvKYr͝an 6K$-ɶi3F$0?׼4zSO=p7}T?r͒"xqJӲ{ +T&5+̩"` ةL%|cr.R[o ^RSjgxj2قR2oJ a0VO BSw Gywب^WW=Mf0kky|oQW.fC Zܫ|mS^ɲE%x)΅Bggs3a}4'1[3gg i1'>ն}ԝt-;M4@$hgQ/x@Q\j>z+;t/Jx]nѣ^ؼ>`Ǒ~VAw݄0p2l}lPک/<kn5nKj0_k2N'f $N?gi팾V_kƽ" 9eL@bhi@(J"= GYx~E71k!'Evr%~ZO%+óSIX֒e|ߜ(BTc>)ՐR C k\Yrs1G$-jxp8̩x)˥Į֝Q1 'O3/?c3 V~by{?a_Ε= xlbLJ3S^RcBňF ͸q5t"\v2rssF7a}=,{[]x.\6;Ն*V!Āhm^J٘#.Tv ? ~yA&ބ!= OofBq鮢rr\ypcLdcQN>Aa#k.(>@G&qzt  ՆH$].ZNr24΄ q 4),][2q$&LXp^ .(SUUZC8a>?w|3ͫq! ~yc3tO4b8NZu::ě0~h"f:R5!DfOH_͉ބQȃUE1ń k;N"v#gxxXp ]D4%ց `ZZٛ  s{'.S zBewK&ΙD M(?:3l„ ۏ{Tq;Ut:q:|>}MG28F __yv 5󝯯,Qn*LeeC#b +3nOiD:>j3!5{i;[ia- 'H,Ǐ+b:[/´4abL\( 7ٽ՜YhBAʳ}@]`]) 0bĢGKXJԵ:Vlx IDATbrjs*gN |Y- p|5<ۍ!&$ވ;Z8V rĐD~,׆w\|,(1UȶWyX>Z(%L,2ۆ{\|^B7zzovW&&l22FT3۞kдmtt3k<9l6KNn啣8q(ܼ|,K/T"? kPv ywq2橻ygwC6Xu2Ȇ.)g;n!ϗ7.DC~x'2U8/+Л~zLSyE]C1 H%Gc,{[#[c^д^n$>q.8qU|UE $q2."%^-bX[~7YI& =߆[#!3 (&[x1x:s$ft]h!A~]Q Cɭ<񧭉p1yBfX4C;z=M!"ذY P 5%evbHi~#3%E{ ͫ$P|B``>N'>~`S dSgC;ʱvP U,-Ll=77qT_łR[R[ ceOgqxmVN^"1=5sY=f!kĖՐXjx*8% fϓMv0MGbI+;k;0O2i?^cڽ>z+. yuNfln'7S'[p;PՁ˲8q?5S݉XNo5u I셵,&9t%4Խkg7Vp3sɧ-Oe^}{YH2Whc3[oױL`纹TF[ᅲ?m=DSG XƳOsE$o<+UndQAdۏ' ݟCg_ mϑ`b7qP:d8S3hxM!??0oFj Irotn,Oܥ?>#1iO pFV|nT\g> .WU'7/\W m1>["-(q o]@`8 D RڑJ,Vd&Lj%@fߣ$"/eot =+2 zT?P0 W. 5kN&L.`x&Iuo!D2w19NkGaU>w$!ՅBtj\.>"']  KO9vT5/g9d{h>ց5)WN$DìKk1|eǦU0֭:sf/hor,k<5EIIjͺSE}^zU.5}a|;?>Uk灻s~ehvʤ۔O!@uP49seA~.VOO%W&(v69qXήJk+iŁM=kb{ rו2QDl_]U똽-s$}MP4-`t!tЛ́քڡi >;M OOw+ΘEhnjF4RJUW0t9̆ 0iu[PX\Dn%̬ο¸R?VΠJiM%a.tMCOc|iॎ^S8mmK8owKr 5%>lFnKU}ڷQƜYT*ݸ/>Zf/A4s5ab >L;O%ɿ'z#.ۅ|_:^K'xtEI&w)qLp&ګQjM IWr^޽th5rkeDKYe'/Ƿ+U1 C8jpl];ظAᤅʷUGdya ێ3tR+Xfȶ}.\D,vptl )w1q$ʎX]ŷ‹n:~[=ƘDةwq3*s GL?ֲw5˸2MӮJ=TgAbp,fp۹偔5ZߡNwڣ1L?%lܽi'WRк==L#=,KnN[V]G !9347 y}fhYI$:&7abdD^J3ZRD ]$\w%*iv*}/a`hQ"0Ig g3h.\i(haɋf wjC F\y&.:;"iMp㪚Ulz,D(C"Z+0Ýe2Qe+Zh6ZBŬU̳0BX0<ք`\7ң3bDBc|3)/p8tB\nTUB* ;d#lgz .t/wS%2S8.!N Xٺ*2+^3`U$Lf m}D֊ "MD7itF+6]8 #LZ6O׳y)snsW+V Wp."#?; ?Is>go@GŭĸKwI$^f_e0absRL_e$([0]S(PF`k$,-$}vfcHh`tp9ʑZ#vXmٰcx(Z'F#e,*'uAA"eFXRjY ~p18ۊpRy5YppQ5[Sn]Ie9JL64ozCyz(+[> s[ʽʰjdv#A3iwK{6cjW3>G!ƌIj3zb/G2>qfYt :<_-^cb ` &ބaA P+<;g 4FjVZj;ރc)ü/C7+8}!(,.e: Kz]Ii;;9}$Sgd|7|B5y.nfߋm,-ʥ/*ז69bcƲ (T\zPErղA{ዋfb6]̙Jn 'd-)u"gۄw W//ΧODJSve9Z}7:ciuOi,.PrrLR7q{(@ i!azJlz_}|*aoyկkn%ANI]]&PEè}4(g̯5]_[x(X0-3hrjWQcL_G"3rzLKKl4&LL RI,쥞Lx'f+wO3`v\'YzMg -J9fQU]CKq,j5 M i>q1c]s:.\p7㯿}b+Y|f]V[eIo5σMf,Ǡulk:Z?uм)l#(BTcB2@A. E7t::Q-¯|Kw&LD4Կ5\*tsO $0h ߏanǘ8k&\| 2,ݿcwd6J銱#3@ šnmmsr:q9mN+VՂ"I\R"lB4!^J($-@G"]LJaX2`M-*ƛ0 |S'9~(HTnQ3n"``&=(- )Q/eÌb">ĈŌ4'^ Ť Gc)ĕSƤOtS~Z݄ ĭ#Ҳ~qaIMœ$9|ndjO&AtB⇨3wLRB}CI]~Ipp+E_Vb V&7a7$93~kl3b ϊ,j5ԄaINKҥ~>e04RJ,g!JfP&L0a{7u\CioH@$G-{ I"Ld߄ &L0qAXQ-݄sӏ0Hj:%5af ޕD1a„ &L0RȬ<=gB`O[<őu48jhbK}xGn lX85h3aG9rho10޹P^=u]jcƘ&LzI|2yyؓ|V篥O@{ ”igY{BMnt>4ZDɄi~sr gb'5-'hU )ϳyT8ҟZg!tyS̷ӄ [D"Q㡫SNGS":;;|>aoRVZ4ӄ i"HhG( ,"Tk}OΩޣyy[.p,@IT{PvF{6z%%>mu>#sqdj^:%C^(N*ƙ>haL(jjM|݅ ??۷3}trssh4JKKK"]7yyyAss3`˅ᠽ$&LN83F?>-H{" a2`:vӠP>21jSLTr˄WS+ $dFBA 29ý"QM%&|m>NҋUr ҡzH6w R$_fphZPC 45 RTTLeUN n,gY-dc"[Q9Ƞi#FwEx{^YC\m!M., (8V+hwl+((=X ! ؄ mzf6B-Zxv:. w N,asV#s ˙ݾx֪)e7Gn):q WLuLV!zZ{,si0M]̭r&#*Au?%7Ixp<;?}qb68ʩSDuyLG']29MG8[uP3m63|i5#ƭ*r )~:ַ31'@8[3ս2/hm}9꺪YbvfiuqT*eV;ShSG݁G$O153f1ƒE8v6>ĩn(8eSM} r;wPV^Ax8q 9v_\3(.-fF;8?]?#BӁ=4jV=;QgSdڧx_W`Ok(S(Th]6T|}<F'oo g,=ze|n ꐚN}o^`0bwup8L{{;Hǃbt:{'ZEQ4&LdVN9Րt!90kĽ51"'v5~ b{Fgs3Ay,[ZS8w3[_~NVʍ2 MMRҤidPuܩcHPFˮu;`cܕ,ɓص7l~Ld?4`+vҎ$5mtt3k<9lރ{<+GqQN'yX,2kOvğz=a:Wd޸jScys*/YY26 v|_vnᝬPa'o~zL%vtKXLzbJlI&R~'!5kV3]~b,:XjZWgz(\JA[T%O=Kߢr iNJm`׾6Ӯf~⪶|E Đ૾ <mĒHbcZ(i`DOsoKx%y~[TKᢹi3:twp4J'>)埕\ vM{~=1Cno}WYpBF)abzYm"FWn +4T$r;)f`?4o 1(LL(*!d .$pp5XS",*bb`x^``nBrYrݛZˋN§&G|!>=p~}TJ]E"{~* uCc-eaJ̱ IDATœ&%Cr 3n' !o_E*Ml]8:-wvk{VLm+C '&%%4A8v6~hz|4<6`0h&L q^>yʼoO *Ҭ*-!W3k3Cז UPM:KX,!( +-thkB,zӚ2;p$U-G{4M+]" o$ ]8Zz܊n=94u1p,ٮ>mF8t! ,hZl^aUE{ |C8(쫳LS}]QWqM=jՌct.uNfv;pd r:e( `:.Z܇%>;%n.!c?:$Zpל_@OiN=>L{u绗a'}kg7Vp3se 6FϹ||.ati6*V}o__ Y%}Azf+: ,\7*hc򧭇hڷgu憋Gt~! *\.v0ꢻ0X,(B(nMfb„D` N%V0}g{)A/֛Or??2CosYmXcA4ĉL:nwmmm"tr!/Me„ CB\OËEw{ ;d!|S/ $ƩOۜ?¾\ 4"id⦦9WYn](br=8چEP3rьj`w)ЫQl4]Tw1ijlG+*||q-H76.<.'.OPV:,ϲE3)r!. ؁L'#ˊ_Љcݏ+{iVX~)86)$DFUJ8˙\ۚЮ_^h#?c )vZXqImK(ѣPkO%;jp&dwaȼx{+/xUU<_m/Y@q:TNJ[gز˰N93k)H#F,!E8~WW=a jtf&"qW }{wNS`ꤸƼ_ nt#$-_徿Y3&Nb洸vWvpij @*EQR:~f6HA0"''`2&LSTR&LGf.e0m{g3MG"~fv$^I9xV*c\j;Z,ɺڢsj6wi{s`^Ofv[_b'Q>vy%o];ظAUX߷ŷӝ%;n#Yuz$6&.dT}NY7qfұxK*fU"zHOFXvyc\q_n;_c^T'E1*?IgĈY0?m,mF'dKٗIJm{_am(wr˻w逎ax'RP#v[S@%3ϣ!1>g[+rf1 .lLj:>M`XIBg?1{u1G+q#RB1`UUX,\.Vk?v;h{[,6 kvc7aDk1,>f(iz(b#JtKt]y)a:ۻ]*, XcA:;O`+ŇWR0tHtgLcCuҙ/2[ !aɋf $ԭc='-- XP(3X*| nc="1r&-( uX8D~ YTxP4qC |g%,ȹv<Ԁcue؅rRU]88N97\EVaN,l=muZ:kD*mq#'T}ێArʝgD3Nu]pt:x<Csh;0a„L[1wÇkB֜g>(I>xج&J4cct;Y]##tltϒFƺwio/-$ 9 љɁ10n?1m dY?HScDtD6 8&=vvpL)ga=,Dn&R쬣\ 4M#':#"]@}{vDΓZ6eG'c'•K {*ז69bcƲ (13[ڕ9Nd,Szy1w>3~&fb6]̙4R\si^s~|pky?]ةRl|_}|*ao}{4F_w)c 噒rr.LejyC_5%hċ-CH(uub:K{uKk{Pv2*i\r!::;D"l6|>EEE3a*Fikk# ( t:ioo3&L + {'Uc/3T6=*Z)a:2?Z1y.vbPQ8Dg4W3gETcDgFUu -MDZ*.0 4M+x#Ucb9u&"*{U '㯿۽ttJK ^x} \9FIbm;拾ÝWVOzQƏ, `޽\ݵM &5Oj#n ݎisbڰZ,X."I\#˯hm)e}CJN7,f1-z\m woKc^24&h]t0\ >ǩ?~hBhz|Ԍ*n6Gi?LHҰ<ͭKKL ֽHkktwwt:{m2`km|Jw0q{KT7x;κ_%|_?!x21`7C}}=PPP@NN@ǃjb$ޗh4JWWW/4p8= &LdgN{xHeI}W|&7a5&A`?:~gfv;H Ib(KVsؖK;N7ů8y:}ܼ&wɒ,Q("AH$uufcv 5|Ybw̙sδy9jۦAYt阥=p XcB~4DcڴA E6:oDzj&{f,Ƃ+ źk~p"B8Qbp8<*<*WBM$)Aل}ecsW}cM Bx;; !NCPA2>Nbe=[BI'>/p|I3* BP(131 TQMu@^oqi+.ba0mlOo[Ǹ1o,&?`˜g/ vWSt%BR ؀k9R }J)!BMFP( ❧s2#'Oq'rQ6~.+ W%Y\fG?q3`!|gʱJ:Ђ"bUt/ٔr)Չ߹,{ô͠QXì+X:ԙJ=6Hh.p|`gqNQlCH U;1S\I_" FlUBeXT-BP( ;G;1'a9]hcVħFyã7)Z}[J?m޳o6ZKu^³d3-G2LTF?~ZR!&xpz5'ٽy$sf -ah 4;~"6qw ػy|<Ƚ3 shQ a(Ykh` pX7y;9C" fʆ:g9|/a&v㜛uBƞ6<ݟ BP(w vpEsNgJnG\%UUQQ{R#sK3DD)㡰idq]:T("g:>H$r%n_;{%lnIs EK%Өel]'^eȖ`MR|0!py)2/`IIj炵,_RA29CiQ5ULFϪV2w=p pk4BP( ŝdUJથ1M.Ϲ ^7KD"H4٨\Ċy5bNfJ,-+ᕅWhča\DVX'go2h/f0,@yS)\P\ ? *B0,\hz5S<]< s`SʜQdP_ E!X Z0#-X^8^P( B,ʳqid0Ij1lMgx1 ۏrp)NX϶S)Ӽve[66Rb);>v&Wt[ND yM0l9+i:# WMta C+l8$?: gC;!FqBP( %E'^Fm2xIBlIZbf;k+xDǭ Gcs:^(gҙqQ?"m;Űn߾(^PCk3/eqyVIaHl؃f2\:X!,@/^r#x}Nt!0tah]BP(wd>`Jd21Wݶ팂^1&OxsT5z]%eE]~@T8~'*S jQRGhH'xu`vQ'^bS~O}άMi|O+#m6Re0z$:Q 0'"LFSa/\2ŭUF  jkirHK]dsJq[XtO=]$RW2өoF.bBP(0ѠpvTDtB$,bT -qS.oxS'9M]Ә'muk7Ѻ/͍ ٶ1Ȯynw!3 |E^8D= Im`{~k=%EW_9yr3lgEpciԱb4쀟p IDAT3]hDX2rHIђx<?{g9  *^Z|ţ<sr:D5jiBP( DVFI5K)cS]@f!L`РiZXJ'.˶5۲)m"I2ǽN-G]TW22FSR12q- !| | <QE+a(HTj^ܺX!~ ]B XQF|FF#ۜp ظSꃆF@Z&(5~6H:EAIZp`  GDp|yzK ybi$ `MiB .>nf BP(T^xFv_O'|wynt4MGB6^)ep \ R,~EMxp.I`?3:ϒep@b+㉤{3w\}1>Fd6H.8txdXgʞ zb&m!Ai蚎a(3Bs] K)'@hؚfrQ( x۲~~j;MyE55MY yBxL:9q%˘>v8RJ4-O^ y¶,Yt)^W7@ gCmM (P(wetɓ= :3z)Bc%x<sM¤(0aVK ǎQ]ULP(vL#˄|Q`yg6BxcH$B^3bo kSl6j6v-eW(`li F[I2%D-{3ňײ-\T) ŝ*ӆL~f isgz+o?Lv@6B q+x@̫Qk Bq= &i9&l*̝B1mOSwMI7)V!رIQ Q(;Sk?$3=&| ۨw~[ѱ-ɡ$ds'bѬRt߸5&ڵphBG ν4wO|mrY~"^ n:oUHۓD9 "ڃQxGVaye,%~ޱLTUDz1WP75{bE߼Π^MCESĎD-J Bqg(xG|oean?E{:KaSz۫gu;iq^JhWQ7k)Kf獥mmtKs9{*7SR[Xڽ3Mmm glrjK\0ueѰg [P(ogpNt>gx/(wg&Ah]D;w35,<۟y exxmyڭ4GES?ሚ^;T9KYS_ .n:b/Ɩv6kv+ѩR_3p/'wnM7s<t3OBXҊkg+o}@e4ozAM^SBPcD~CVe,kmtG7U͖Y)0IkODps-Z4>=VVRY\89aǩ>ő+~)ŎY[eMK yŔWJa-OTs=ƊZ A4yDw WӼh5;ȍ9q Aiw\;4_=LK m󩘳*0`rt;'^a8,1 kd5 ׽@nN0gc5tZzm5Ay#{9u_=z|_u:ߋ-J,%~ͻx#lWL#w Bq'E[mfgMؖ9U)%f0͵c'޸J[jDHJ"!4آ>5Vļ͏P 4HٛyL޵:gs-"`NSn p_obA$ '>&",^6"#H墳ۿo6L:_d%XZfv|?qBt1q1r/a,}3ЃDq4INj=e6VHN6\gn?#79a~ehr)3&Fz<8Xh¦2 ! &78{sKϛѼ˃+_*xBӐc(d|oGTAǷ+ã! )]T/qvHsz$"#@BRtu~*C!BֲlK m^;v1bDzc:`>eyZ\wa/_e8,AR9}!MK$YD=%x5 ҲRd;l{. ?k{G WZf-\vR?9W@zAf(UE %6 ]%WY# Bd]Ww`vQZ Q.,Ovci eV4' EEeE", us+ZKϕ|1mHbSUX9t)6{n+Z- x8y廸wF!P]/h9RFOLjfb[D"&R{'AJ9ˠ墺΋D;2ӧ)m(KSV6 9Ɍ-4ka O&3ĖEc%Q06wh?wcZLd'}l06eu$&.w¼Xy;7稄2~jBxvu .HĚAיNJplL\^fƉEvp.XK*o`0%8;Ba Kpk:_SlZTT8wYJbX,%sgx ֒I4U>:E^>Jki1=Bw_Zc*+еrjk'.08}+)Vi"^$\2.5w.1RN޻dw h"a$e!"%"4Bfm8u8Nsf:k:j׼*N(Kz `.$]5Rtibmҗ5ou;L숍ͬ+)XP(wRO0N3N d=nľėfF#MRC2B0,\hz5S<]q)mz,n͜SOԑ3\_JS !j04GKմ rkYPN(r.H0L\w!rf0ęI j(N1FҰ10q+ ŝ3,>"poe97b#*);9>p/DP gC}L@t#Xa瑜ˣ:m'[ֱec#% ;‐J<{+#-̸yw2daEwkMFqg}B)[rٝ1BCE.a? $Q̨u~;8/E)N\4C}WcST\! @tƐ5,SĎSm죕b\2AF ]{uν[gP_Q[F0Xf2&VwOe3q|eF^ʹZf)w$B}b>Ѽ;oM{L> Bx{KxwVI!}"M,eqEB賩$í;ƍ:=fmmåZN 5-dB" j)7Npr?jܚ@Ł9Y:/k zE+s ܅oݴ2G4zvޫCPJ1qly^KpI2JX#Tuw_N]sctb-9cc@gwŵS9xZ0{,n`FҘazΞo!wQ#M>Zli`#1(GKzzz5a9'bT {hٳsGvcl:kWd;V}ɻe=MEZ=UhJ+ ŝbx2q4ZaNSkѨoiF&fL-r( "Dmcu*t|DDl Jx.^ i+mԷLSʥ.v az7})\uv:tYW7طl1a9'yEI Lj'nXg4G%uP 0#C h4LHy' ViGSH-X *  [, VQFC(m6;&piY'JcT,c{Wk2&Pp3"(m 4M6!a#dAz̉ˬM\w)\,ìֵh=BMw%+I ?;>݆ƊQK};2+ ;l:<[qRp\lx# >4aK4X~vO8_.4"D, |ţ<s\̣Y_1ޣ} *dz]~/}ld|ъʙLîENS4yV gso"<Z(g,O=߁>2:S4m"fly %T&qHO$ӝ-4>A?on&I8xk`.uF\ș;>oI7p;B(`~| Nqn3[3ǔE\x3C 2*v;Lp4;Q>CÄm)o?f ~_KJ`ylzZH,M#e߼;VQFG#:/+~ϭ/:-(I]Fm ![e |bL a=7V96FP( k6RcoSg{S0:?q_&qSNB?NAB/HjKFB:2)Fr4B`&(P( [[3J$5CuP( BPTxwγs9g >/q/ BP( EfHÓ)D=W >)Ts+ BPIFVsjHJ- <p?q[ඟ+}jS=BP([TSc<%>Ay'}RmǴH'mh6$&S&ӆS;idsrr?AKb4m=w~|sEe=]nmh2p2MA1L|Ыip#T[?<&4u* BPLBORN~1ߞʩN]/hxJ*is*Ĺ+,nf nyJ<Y/p=>")~WP6QA&dٶYRWw\4TC BP(Se'mjo['S&ý"7=-XƦr<2Ѝ+z\Lt~"K\MYX ̵mljXc(}_2xO>m]4tB)mlO+bY(f|m\P( Bx X4,3rLħ[)b"@s+M:q:i!46f H;3i?yAY Wtf)nH?~N,m%Y\tMĂgEgy*wЂbttK M@lVXp>\%ӘRk.J-bTk̼gK5l!MB065JWg;g2,[Œ,[zt\zN~2}~*fMlxw8K>CsY۞p5n,Ol]\:/) BPqw;72 z7vMN_7maiI0|8Sw`:7#w󌊇0ݶݸH ҀWhx˶Z 06:7hFbG`2lNvcH?7Zٻ4._Ö5%N[Q /)KrI(WO{Lp¡3=ܴ{6yeL@?a=<8#DJ q6<C4MY> G˕w׹pǃ;0Cgh;x ϒ<:?%J+ BHjezm]8eK ea( E5EHN(|c)Z.6/FmE s>ip{Ԛ߸I)A#ٌy_ߪ%>m[}ͭ^L7u `:R|bD"H݉N۲'Hs,f$l} x .A"vJWɶp5OiNuv5f3(dЂѶmɻظeG-kqut"Snި\Ċy5bNfRN BP(@b;U>hHO&]J9O@:.c;-1]J ^ <o&W4cNĖ΋5N$a95P; r,\ljf}];6umV\j:g =gS#%6ܸuiRJi  @pIJyAqQJ%$hz4-IgrI-$.2lpA#CC$`&id`,Rd(݃ &j̠_zʈ!鳮CCR츺OAۛVL ?>6wLJToKO;lSU7:)۟Dv&Q( 8DtrT==x9lmSiT(,vB}Zevd{ 5zkQ^ŹN3/> Yض۲vJT K<%|}|GԞ3 Bd{&ў)eLw[o&V(llF/ď,O UXVHv2O78Zsq ^_t+ )kagR0gr[8/L*e%6+Ǔk=o."F BFqbŧ]zeP(nB>wh/\O:8_JxcbN~=>6y^KXgY9]oˬCmy~W A_O>z.DPmnNwAV>Ub5:l_}3NIq N԰:߰{+ n/cllg =N-3o급"Q̧AY7W8r>{DJILdr7O]̖=J7zG9ym"v1}wy%nXC~xuDղgV97|4 9oC3Bl'К$?:û'}Ȥv݂:ZΣ%ܽq ~o|_TRap׿O?h{Yǧw50ySM_؊w W-p῾oW_}?W>reW({/>6Tu&f2cO;M35f"fٷIK(I5Sqz>.HsR9_^w' <\c?* 6Xo|-7H.k|C,|#ɂ b 1@6Oi n\X]k=#4J_R5 PNg(|r.M?_~"WVQw#O-iū Z-:8=̃ c-+Hk5Ek/aU]tY_O\%Hӄ"3*1o!s1LZby/ԅP(ELmFDaٝF؎?j]wfj%S v4 ŤqS ۊǹv߾K~SOCyY#6}s>]g Msˢ>,rt3;=p-KxѦH t[^L(J=5Zswpo3hvZAp(orɒEdH B雠L.čCO'rj/fsӼG"Wmd}[Y? n BqK">jyBnO3002*55rUxRfzYoE:h_y$T'Q.|<}za@L2yjdEs]iŢHZRh4Q<6Q_:*0秹jpw#,;>,O<UT*xB% {,Px1.l(ch, _ }t-ޮaDl\&]CQ__?-u!bb׶/[w8w*ANt.\$-0y4>t e'l*ioa)Jɞ&Srލ_.Y 3AgU^=g#xO{]NU2^5x_DU$Ʌ`L>uн9u4o: ^o^~:oֱ5ԅ?9Wڻ B ct.etf ]ӜQcpmlB_J9 ѿ#?ޔRڀ75/B!Ѕ = ]x񯷈ƅػE^ڽOҗ?>9>梲u5s<ϿtEXv|JyTU[\<2m7Zغմxnp|ϋEnlg^j6~ |b} }}%ΗさUcBvscF.,T%i8:iweB%B_nzػ \t7=9~oCc\  Ve.CM[Ü[پvTkذ)uѽTX\<]=-t<^} eǟ`Ssz;W+W(D1t MG~4o k$Rq"^)!"mBhR "b h3UBb)etRjm SD,e [W \* /SBP(xgi]yx] Bt-nA`Rv E 2Mo'WQe BP(Ƕmlێ=lNYflU( BP(H2>iɓ ⥔hp!AgX|wB Z]P( Beo}Ŋ2iib褫 #UXP(NJ@1KBxk2{ɿWY4@É8+ bn~.|˄ixiIF` rO_!x;ΥNkۼuMNt|0XHuIL` ^:D 4T9sD.?I$)xu'?—֣G>kad:9uoP:g'7?>q>'ǟ ?aEscB:s2mPn2j;Oa; qQ;$4 BqӷoRcV5pἮB'ݢwv VR,YӸG4 ZMGssie>%D4 \bm1~&JW[)ds< !&瀴lt-ἰ b 5Th!Fz.r_ͯ5N &h6Mqn*S~&uMK3Kbz#S'9WBxS:_L?u tkS!?z,UGix3 ]\⡿}׿ɷzKs^ ]ϿOwtϤW"=͓%j"V72y^i"c>|]=~zpUe>ɇ&bf}F)e%N.i>FNm7ήoGij$_k6U(e]/fn|y>vTUw:NfN 3$"@hmv߶֧}Zg@vQDT L@ S2 G gWUuνAcynr9uTڵ^{uE]w}qlQЅ{|8+n9|'t<[f4DG6=3Cvmn L{5>/'.: Ϊqɿ?ۍ#^~|zYE}:a:ڟ1ߡxiȡS1n OEx^%|fƪ7~Xҏgĵ?^gfKƭA3暫''%s桋Sf6㙟8 fG#Oi//<t)~z0ugxXz21u@axpZ}|tMuGWE5< 6O~z[-M,[` } zu[ͱ KNr{4@[׿[ ~ B_§N x?O/:-Ν%F#>lsyiL-mCDd+ꔘO/ \A}߀zK3.XzP =_G|MK?o\u6s]eu}UQS=tO= [|=.1#۶c >z"s1t,~޾3mݿM1o|ĎfUxʞEWߌǽgt:.';ۅs̀g8n0fu7by*+ܜst?DXO-sxEϝ 5< ,[989ŏaӈIomux/C4|LgFܵ9ߋv 2tJy}Sǜ~౗cj|55w_]OI|(N; _غzfn oǡ̃2͇.7>]^~xT]\Aa|b+'Ey/yu*L3R t< hA؋฿[R(J ނ6l‡Ի7EzR^ lZw)TⴊM߿~-jǿ|Aٽ k+Q.US6QvTuYhv%zz;|:Nx.l=o]m_9k5>1cƔxxۣw>3var1'm\_A1'ٳba~xr=?+3 dťͿүxAa;>z&gT^8no!˂z'y317xs v8I3PH7_z 9]X:`ݵ#IeuuAul&K=Uk4jٍꌃF0o{iX5 MvĤ-W7y ;£O  s,]ymCCV㤩_->gEao>A,,\8XjOu[?$ĸXZ17DXAӑ;׿dx|]ӗ`kq# >x' ƹ<uo+sބ+bRdjX>u5]q8鰴>#.|mp^~qu^Y꧸gbɋ1}S Ïށ{4⬻쳱?·a( IDAT|^6;l9ntTN>GX;p*\g !;Վ0%f Y??Wkt8?OdIhg#ҥ5n>DDD̃D4\"Z`1x.hpU3+_>GoOZ-/jcxfSXq*ς hp?/aI ~W}VSFׅj^@ (k1l3?i<[b1"j3RV!/  :߀aU3|׍O>]"asY1hz؋tT,lp* <(Ma|"AᏓƋշ>ϘxgލKxc o,FtLI84-a$~!m̡s).Sr [#  [ENxㅭEͅWAADG%}04HhX% 5X33.ߒFAAPm52J*iàx[ -ŢAAa`~1wbO銬m/q  'P3e?Sɋ&$FAAM=*TFͣl6 b^AAL"1:|O`XeAAg$WO2B*m_֎po   e3gbPPFā).qκ  ¾)}Kv61d%׬1 bҌ)ތo   !^wBX@cNĻ   $uXǚwekW:,\+iE  m+ "j<0[Ĺ G?Pd)  VƂn×%b2srۺh yAAAZapt5XC33{UR&J)kV D^yAAA$QO3&̇%FAAr3[2-l=**SpVBhAA&ܑf1Ҳ,½o80AA;Zk0=;>S.`U 86u   "\ Z?(?L(c s@ޢ4   2?wQ`R t|Eowwk_#6$FAAm7i@feV.ߦt|Xax"kAA}\羟^ډ#=}9AAAطe<'& ޚQvIi:MEYAAOpC_&>Bk "Jx3w&2궚   5u5+@2F@Wl_E*DbVZ   t ]bަ*(;ܖ`(mAAfѴ.Fm?XѪ8$W]RAA8 ';.¬j x?(i~sBו %[AA}hXg\ɋyסpOŭ  e*{hDp:AA}Y'Ch9Šu_6*.n(/m" AAXB/Ql ]Zr  B,ș5>UxS6>i AAAsh[yUDNKHBVʲ)rAAa߀[:nNDɘ eM36 h-b^AA"w/p3DF3iDUnQ1*ܞqW AAq5H1>^4I҉gLѯJ]@iAA SĊ`D  B GJs6M0B%jx  `neo;EL'AAa%p6ܥmY+y*?ZZ>/  W=m46򶅭tbkq8AA!m6Nm4y^u[-fG  qy a//G|%QY AA( 5ukY]IteAA=mP+]k-b]AA!(* :c:ۣJ-O[FA&onjiqa*n[1wQj~L=Kl[PZCE~#EE`( ~Æ˨&Xt=] 3fLy(n?ujfCw݀'%I] ǮU_̿t(o;+O<@97(fQ 16l(V\~)!<ذa#-Z(mp7Y9DT&O*9}[e#}|yM5L/lQM{ #u$< hq Xjzzz0<hţh FGGׇZ&m acx*o{lYc 0"FqAD^f=TQH}N͡=bZ; >[.\qM`h AB|R<)Qܶyia#mgڐCMG:Xf bn-MhU{-;EGb/(0WZ !uv9fy?/xAAXYSESke/<#o(^cf(Zm566 ~ 9Z^BC1g( g4Kq BФ@@F=6yپZIDO\ 1p=N{}wφ)k څA^ڑB>mx5X3_9:<15 |hxf!DA*WQvnz:0r~X E|Z筈MyP  ?Уp83;8noN'>06.n%5aN[/mم*8bj%ΠyOY;a-PɪZAV|Ӷ8:Z&*3~OAZ~g͟n BKA4 ho÷CXu['ogL[e+O]6ۋ߹{ kWOFu P`6<ϡ1>kS>~\\> &#oKǗ'+D>o:L Ok8ZG@Daj `8 C1<ΘxWD [뢐Wɲ0IcAAh󡎔f(H:eb]_|qc|1 xGL`[Z:P ݋2ˌZq}ğVnqba A<Ĵ!n؇e'w?X3* 8ɢ GmEmƙ\gp '_߈}gΩ^u-vaj#Ck4/|ױ߀+ !7COq^Nt?h@-C~=?kI8x^)=?+z׏SYJ|LJi!_`ſϧ,׏@w+K5Ǿ!\ < |о؉vV/Fx X'MiG,[} ?#㳓0Jz~֠azUhYk#9>XCK8  ~#:cǞwo:Xxgb$賷M]:sT(6{[ LJ\188m*5lZsy^|䠩Q15cMj4v>n[9]IxkkAv>?Gڽ H؆/\ax߾gz\mxQ ό[tP]Vѧ]{_zyZDZ Qexi؉GO^)SA)+N_3]DoBuAxisR nު/V6O=tN;u5޿=%w<8oS]&\%mEp2RʬZiD ^4 PPMx 3i/b(cƲہVL oyw߅=fa |jwZe}<v⤙>n{SN >xkkXxx' <}3~(ΝRj0&>Q5@(ٲ}-nl> ߬*1 Po ZrMYPx[[;0^t54>ZCẸA̚DXsMo}7zɨ$mbsW$'G4i}a.DMvNjè*a<=5ch|5ak=lxa*^ˑ)Ĩ?+碛͸kѓu54 ÒF>.C/ػq@uA4Qmh,D rps4']k:6U,2cA{ ’cd, ?yY: /ꋺ5 X`N=h̹g3BZ /t-ޟw(l`xSLP (d36wJ%qE PsQ-5bLMTl"DoW9Q{\Yjp!TG#/`4 5yT}<6Pw/z{Td:A9cOy8~ވlIWSG] 5̫重mĺ_Xvl6ѨQat6lPE}3b u-9N]3C8A; ՆAVgiz|nnxnk oTxQjfn L~R4z|'uN {0d쫵Fḙh<~zo1}&Lza*׏y+UEeDxAi~3gzq۷V,^-v0Z3Ս#bc&uD u+f=^nӳg<>.n u/ʥKq3[qҙ!lVA:Ӽ.LDYw/4 G8Eҋ2Pa{7^շ^*pv<@w/Y.ZcT۰ ՘vL KXCc`ÿyX1hq-ka~-[:΋5R eǿD IDAT/8Ӫې*#_7 60 GO`b='ƣswmķy^3ö[qK9b!X:yOR6fue$]ؗU˧Gۀ>>ZEvxuL>}xqDaL;chFXvGT&Otk320 B.dy,Oc] K\B8>+[Kkz'cުHT`ad{O?oWNd Snĕw6܍iKNcqyg܌o;Gcy|i G ljo b {o3P4 [9 3>Ot_n?FeRzШ3zgD3w&TT0cXp!h4|Ьܕs-Z|-6jNyXӺNDhK_Z??| R?hCŞD #{:,>y|w}A =y޽_ LS<L{]at9͈z48q7ASg g Z|>ZW<".z )L>G zPha,9lb| g~lqmua'LpX<!f.W>|AQz 2L\,p0 {T5&}4&㍟}'N9ς0Nj1<)8|gA&+ի1:: ѰUTTwz3ïap =aP#*L{KtťS]L ~4~cC 9α!ǻM؆Ďھ-Gw>j'p};ƈ4EEϛTo& &Ɔs1>2Q۽5rE~;؆13Egmײ:6pgnz=7Fp9jo{:-_Xk<$knGӉϖhn~i+4Bh@o{ mf!L\|Ș!vGS O  ObDA{c801c|#&y+m81miT@g(0tEq\h(0K`Ĩ%mHUq f Ru,5A[7 >ZN=QFN$  N{l^&l t2F?PpOa((PT&qRޤeBSE=S&ųQ'E99}8帴v(teIA6EY0a{-*`cy^e INL22+7'xI*sDBŽA)vukn$"T@$ ̎F5 U+  vYݍ!hX튺?6)#]V1440YpOaoCc uyXX/'@[ZP:GWУv KL[8M؎S ˂ PdbfPv60У;/d;S4kzbX\B>DpA P^u*w-֮]i^,YGu+ІN< ZԇvJtb褳&\p09vVvx, E&J{,=Xi|o6 _6\:hò1u):T"Ә;lwǂ  >҆҆v@-Yj8Liy]ע*Em;O  ¾.QS,ΑMZUm#"^AAtAk_ݯj  Eȷ2d x ՎPF#yAAA@Vd\"L*  B ;}]iAA>6yT5{B_ۗWire$O   ]G">!-;;*a ` R,)XlBC  '73ӘWʹ|սܙ-V'~-rG^AA؇ v&ETy&k~AAuGw#<qzGD<.!A"PpfeٳMq1>Lِ{lmN۴LjtƳ~o㙈}%}ur B">gB'D5n&,eibA !oCH" s?QfS3+6^Hʃ}\KMhhjpb u\n>KPFZ! \^vEme!G$5ҥ-KMld\v=-m_:6uOQkMvN!ete(D9_gx>1VGJ.׷ 3,l©A-]7lߊi*uO ; J9ߡ9S)c;s)7 J_jØ(z2@FIxc\DTxOnKqj b:7nXU"#D6ĵ}{Qc1(@.3qC=ɹu#9K A*XlftmSCo/3q_8\1I1DEG}|HsJh%"o#OQ̻)?X>o }~O*ۜnmT%=veDleJ2h ؉oK u>ަaČL97bc2R-.T`jngB;!)?l,t@|]"ybؼH -BAA1)(C9!~)lR5{ϩ.Jٖ9/ОEBfOSӟ Ļ8<*V}>hj.#ۧ|xn1ϊ{׳gL顖my={}ϐۘb&rNzly75+:Ïe,1u^i/fnJz\"%"x9㤏X )mFcn6u-QD:F 3<os%C u&J)qx9N7NmLxbJˁJ[nrv"2s<Ӯ1"ڜ=Ed$*ʋUjq)!;cIcmc5 3v ;páҞNKOO~?漟7\ymvg; "Z lbIT(g %&a󚒆q<[n4}~;,E'/+Ns6sKзtn'O~-΁C-nSDhMٍ2^2IEyJet+FjǝTvN tA$&su"#6o ),ʨ#/p_G"#:r̭@ѩAx˓]`}w>Y֮>'H(牏:Fkn=jlT|̍ee:f?UGsXQPb[YN{bmϖ[3uLﰉtx ìTeWPY=mT# &Xfۜ%΁:ws.*QRțz2F kkG{}F؆eYј䂩-r(Њ N>!'3c* NhҢ:t)ϳF)F)C3/4P&Tux*Z"z…y M3oF{RSOՒnhh IDMf#QxsW#VGFSP#ZV "BgfTŦDDĄ@3P'1#7! )`F+_M<]B냒:; _&e𭤒"~Tj6g\}' j(Plct6^qxNp2Sy)6ANK,Gs/u3 x0L%yx)**x =F;BeJqYˌ X;P⾳lBw,ʑ!xl3"+)si-bn8'n:QShB&9%\ֳ̹mPwWVXt:χT*wŽbNgn W8W_5P/n=|pb;\QYa^,v6! J/O|a[`&af0Pv>o FgyF ؉{A[3ٜD:&(P #Z[F$YahxL:am3bT漭JUγ~;ܾǮ\bGT,]ٳĿ%,ⱷy*WBUxJf߉DxUf^`G8,DC|SQ\zS,PeE|]K{tϘŭ>,(X}Vv1>.pLk]Tk8Ff[ be+me GSAf5xekun]62Ƹby"^#jWXė3Q*6#+md<~lgD4: y2+,Kb:3"@5lp T<:w zSernM w(Fo&NEq.`M ݸ!>B}8YK!qLf(sF5f٧Q?e;󑭝}&SLkQp̮"#͖Z-[K h*r UJ>sHh3_OƓMCPf[v֣dI#N`V(l}={l.nc!" `3"H7ZPA&Z(#`aDyM=, XQa ^dX7~iƓuD[YFbY$`'\ *-nꍧԹ%-m(n~pÆ(*l2bF P.CmUDyP/ZКH^hy\U՜H NZ_\2).d1 kqd~_Rp P:"w>+ΓS6ܪcn{|+C jW*:#S A;,o0!⪡:adDƣhdIg*dז9ߐ,EN [,wr-<,sDǛHk!adz iq)Ѧmx3&Nce S2Ò*%|9UtM2:WSYzUks9|Kβ%% ROV5CNQ0q8zk׭Xdx"3HfZ@73W omyYኲV{jVc)[˔sdG(@fn 5~G<#JPpcֿ\Ȼi{Э6cZ:;%=eZl*Iun\2-OlOgq(Nc\V_̄_ܛ׵0x[m ٱ['Z,Y\JE2p8H/mZ}l2ckN3y1kh>% z&OgI\plF̊ w ff6.F贡rhjg:fyW-cqi:j ȼ>ѹCy\`MOkOg9zs镵ma@:e<Ŗ'OP '}~%=(H p݋p42]6M%t칄'N?*;cRkX*28_ӳGhʋ/6.tdxݡgL޶Es~<}OhGUiVŅx\we. pkWKLҟ7ڵ!棟D0>cDU[@^]fSd E^,#VrډXb<;Ӣ^8h݇Wh+q3Oqdq Qcwy2,K%=Q"#5^Z) \_dymӔvyB>=;{e_--s^}xwrSV_dd|o "VtEHz4 dbIzoe;;eu#d߇|/"߈ȷFEK:ꊐ5o߹;>8d/'#wNڊ~!Ki2L oIُ~cdhvru!èn6jwצ8f;cT;g%cI+ydt0˥\prr1;󰔥T>%[\X"?ˏM{G~y!t]W5Av-LRL?7-8o oU7}脥S{_N1co5ڬΐD NVN5Ib-څ ˈ?E'lU!>RΥN}$ڇ̉,HM%ڜ`H'"dƵ*"E"_?_ӄ)5`1uړ+Slʼnm3L5!p eK뻥Rۙ3)57:ZHIsB_/A\)lUF h'䌀FJN$}FaK9g;aMZ3x@>jPg(0u!@H@H@H@H@H@H@H@H@H@H(N'7эu[VZK9w0Ax_ӧ@͇j "䠋*u!sa-KYJǖISRڐLчV!L)TxEZlTmOs=vMF.r@J[blbi]S9;Żcmbn8e-BiBԐ\ċڢH9&!Hտغ핬H:CEHl          0Xæ2汉c۴?1֪I, O bssEKIYVNY[,֢~dIڧk^^y{Srj;sdPpp,om|5+S㵵K CǘjeV1GhM>?MNB6.x ^Nm)ǶژF7->B<'Ќ8rtKO ZQH9*sϕvb@͡h>SmLCDCPq-0 Yi $T慔!!!!!!!!`~G#r \)U۰fyVCRS$&nKݞE GH6ɿ􈽯urNXKbդj90ծCOnh)G ֮7naچCNclt,u~rۼ*ͥ9G5_ȉsɭ%:k#/z}?}S>SVXqviRK5/dqe_%eRqh}ȥ2]u!}hݐ:Ur撵}FY !C0 L͐cCMEHdSHYE7oqJC`_5߽]TDHՅ]s}~r:UtukC15@H#W9Q,=1@к5˗\߇l9ɐ%lWH찥u! #)+B B4DSO./5뻕i?(YU)1ڝn7vB߽Z(fII*96##)kTtl8VrG5 [D KX9_+qADs ʈ@|ؼ1}G>.SVu,-,!oc9 ·=Jr  5V]2Ь #B.]R#ol_ͧ5 - @Rˈ "f_FRu B&DӖ;'RB 2 O 1roKCCB $ $BBB $ $BB $ $BB $ $BBB4u!u>5Ndcul-_FȜW,my~n)|wV:"sX\)?Fbi`ξܛUq|4ҞзS9Ę3EqSZ_b븑8p;JWK/yu k:_+NYa2A)T8;L[K_ro*责&F6}Cۗf(k>Q6ɄԇXK*LE =`3,#!RVhmY@Jҙ}F_EQV/","Ofy4˹"$[!{W4*k#ჵ=B|ry|E} :2ˇw"r+"f+ OΝqDK'd7Ò|A!+"qƈyt3>ȗis{:ZD~3.(Z{CVds ig17н%}?ߋ;':"$k! nFk#qdEH1DG}~pGeb{+2TBG#Ӈ|j=Z"בUd% 6I'HeG3bH")u,:t} kČ  \@EIENDB`dell-recovery/help/C/figures/driver.png0000664000000000000000000023072611751021273015312 0ustar PNG  IHDRY2sRGBbKGD pHYs  tIME [7tEXtCommentCreated with GIMPW IDATxy&UuݻM< (q67&ƁDqQs5x:$(FAfFƦ鑞PG OU=U9hak[ꯎ:o%ֈQJߛ~Z J)h>QfY{h9ǯ%{~~^z)-NQ+??EVHjk?3I4JePqLV4V/TC[QM!4b!:m KS 19K"jR,I'=A$4IsqF'*#vT)':3?9뗄S9UAOU(1JgGd>S(2K i2S1X1၈؛=URd*L1&(ᜂ aƧ1;曩VODwso2=5E0^ږi:*M'^Xs,(۔?v)= kRЍpU>PZkyHtTwgD$o^9v]`C<(׎LXMqJQfI"ZПh넿z;4˙*{zb`A'Lc? $T'#g0_P},B&S#E@cA˚ pH0F=-T)HDzJkDGE;Ju^2f²f8z=gǽ ;ad019tIkzIJ ipޣ2%'.ğW: ƨ++uXx% 1!j1J$u< 3̈]Z2p. p kЁRrymr$2?_Ԣa<$ } !o @iYpId0#^ڮ,py1Ya=ƸSגBdv %Re/ ԕ'm}N[I Î )%(.>L¯a21)? {^"b+laUsЧMhWI6.}8t . 6 1R Ҁt$`t̛x'Yu:3Fu&Ep6ZeW.; T*38u}GtX(iD,ffd)o9kCZk!Wt7XޓTJ3,vTU錶N ; q%t 9r {FcQ^n?o0 5=v2S$* >%L85M0UK9c;0ystWoΙJF(ƔȎpO[M#O k* )bFI6]P9Nv]Otp"?Ǖ)i^nGbU^*PUJa6z:uB6APz8y AE70:1G{tD\^G;™FG4kU"/e*S6 u;Slgy<)ϊ K~ /40Wb+EP"1{F90< ڗMi` K|hp]lVoՔ6C Z@&u0ɔ(ŪCM 2q0Z2VpA2V{;v< iNWtq2s8N[Ixմՙƀ: Bv6KtKwђWaT.4^Ld~{Pt,Tb>S1=I@+;э*k-F{7JIITn'erOA^9{DW>x']KV)Ew&ud6/PX%+w¤(qcRpVsHz[O3򻓘:Ni=KDJRRuDjD;x1EbPLZ]fLT, ,S p8#^dg1IÐ攤9d9أS($ALZHqUMw_c I1 ~iCuύSkdط$Po `"C{:ͤ>^A00,""2(>jl 1&$K2|n'b<7K!ON\i&A$lilCtJLxAlDh":A:@+0em$PY[oX$Q7`tÇZDS>9=\u*`k,x"[Dd/4VCDaDփ+}t\z"9_V& a=?ɘ$sb⛑ 1jB3A߶2h< Hsm*6'TteQŮJ#L1_4DtE3ۼd,A4_4et CxI2j:;uZV.HD $)!ިOK,fU淔qp*Yg+YU#fY) { NjIW S MފHHf<[0={O#oB7֝=+*7EÉfڃl&¨Oct/4F LFZ֕R)f3Az++c[ɒN/0ibn!݉H,SI)xbiTYN DI.˞ǪX,=3,Y̻tgNźӽA)b ?r&T/X݉n&McTz0DǛϙZfr4LRsp2n:-<ҕ`񭦶R]WIX 9"yc k< @tsc(lTZڳ%յM`z]Q>v1EJ tm>O7O.{si/ķLJ-B4 Fu\p/F賁yi4g.]҅ cr/ճA6ὲ6+9{@?8LVO!#L{mbbt Im|.35:Ť}45_=/{fr*i"lIgDJ>(/S8Ik3m.٠ثЧOMyn@]*5JnӉ6LV+\fҀ&=3kʈ5ϐ(bu]<&ɱr rÐ`n2Aw.q/!)}cCt:$٠v(.\I*C`WJg1bAJ nc+uIg5+ .a6jgk_!^SJqVI=%Œ(=PJyegI LdjgYyl2^4$goT>byŖ0\++>Á C[-c̄Ϩ}=j %Lsn(>> ̻!+ xS]QNcrBqO/3 yNM7sTSE"͉|!)ꕉ"`NNB~f')y$H=ʸ~gI pS8%4I%ȥaW>r*7&V-η>&C9%g.gvx}yU&Xi3yd:d{ʶ=?=4)G2 w_yI/7m:`m8l  9WE"dg%̉'j gR!S{B [M MJYYM\YhRuLѝdfI@l~*QPYv'|ƻ}q,;'n&L"},-xc>Fue'"; }}0[)5:0]Ԇ͖םXG1]x%|u}E@D%0l^>Αnb AK%]Hh^kN\'EcHIM^߉Y8%dPՆDREP]k!aTxbd'$ 1zs|6dRFP>Cy#tpRV~S]+@A֊6o>3eYM'J+@ܬH!ӇDŘGKF:z{g,(t2,ԟHwIǤKc5Ytp|ۦĘDߗ$M$B˚eLu) pO@FYOcrz{zmXAF۩q;juYKwMT[AgΥf1qlT܁WZ!0R)M`/oKLm4 ^(L dC"~9 ()2WKsX K4RtbTA{*wL[! h{/%C򊿆/Zg2,q=0^I;Ѿ @q,9GF{ %DO%'cΓg׸D8hs6 -~/W6q0uިND$`}n' @1Ud&7{ZVjܞAWBiq"Ij9F?3 J*JېeC s( He۲ޫ2'bP*oXR(KwYHFhMjjtCֈvup܊JhmdSm>#Gsߝ.}UhDWŽ"~z&]oMZKsQĩ21'+i$)c2C\;Lbϗd^2uim-2bK";GU찕t20qSB2KyvDL%V;@ÿ<|]$ VSrG{G)UKlPt{Kh?Fatp*3 aH}NQZq>H1Q*!8PRA U'&5 U҉ōMN1&I6ubD0kKBO_bǰ$N%픧+LI'C@O95ʒ d I1f=ZL"#St>zE\ CyN`Lzz`%{[2\-$NrһxläĝwѪ,k lJrAbc1hu ay}L\ڈH?8n :q/z65H։[+DF%^$Z`4F4ͩ:4.8@ep/lqNM4fm5R1;O?ѵ[/d0g ȊRpxMwT1 F?{'W%i+EKDjBY"bpχa팱a Pz%tV%t0LȞ߀Z$Ju(ѥT7JNA|`p؋1X$ۛ^ޢH X*Z&떞B%P~P\X& e"Í)b1F}8pMbo;W/{pP⒚Getפ.'{'HQ׉8t EWn:a2)* Z3&MjT%aҸ2ttp]2V:WݓXMtL~3=9NtuQj zr9#7ymP(qNH]sznoHd9 73Y}3r Zxt7&Q'}Jka`dYytt4k?S||ߴêϵ/^>uN.n]PJ jei 8LQ4eb+ >0-=<+z3&)w=Tei'N`^ءGFpuM@tv d`xm?ֈw\NKAAKdz+l]mRS"jY)z16( :p;{"EuuAD!$)vc J(2A&[[0{,bSCU{f*ajp*DMPW&ʼCM[9 } DMj)Ci#$gLF4TZ:]aųOI-RB}T)Ӿ?#q4}zNe^&Ӿ_>oe%)TiuS uL~ eڪ9co~ /UaQbC ;:"`ݛZQAD|핦VIԈpۀCftJ)RJ)RJyɀwz?_Dͮ X:8M Y(Y)ٰBI&] ޏ2Q>꥔RJ)RJ)|2&[-ڮ\1";l0B,u/aQrRJ)RJ);ikh41~aLR%OT{˲kؖ= K)RJ)RJyڅsHfL=b/S6TDHdR3MVCs)vZ;P h'³{bq]$mSRSJ)RJ)ROZm cϮȉ< YGd'Am(3@cr;t@UE8h 2:ɚcv.~H@tЁ,Z9scܹ֬;aF֬Y#gmѢ,[f148w䓫XnNaqGnq\AWjJE:v"c\mSJgEl IDATse|Ln VJW_J)K`6ђzkt}nxA N(f*fRÈ (Ǹjs]QV uUrQd6-&EUN^8s]v1rRϹa0Z[4 **3g`ѢlܴvEp`kh:gqG}hmn*CtЁ,X͛7jpJBUeq+x)dzY3$?SغH.,<09ju&Gh],E' (Fa'MMMD6Bz]JB?yzDcNYBcӴl쥔KCS8?J 3( (RjTDv;]ySD=)]9R1Y'{g{&F Kj|CM{HuzaGX3Jđ{vE366P-8/嗿1K@__{zI" ryqdbbfI^bcL:Q_K,JBfa72ٞfVzjn nmZJ9Z &g mT6K{.68@ qPiN:Y toXAo>koǟ~^N fFks]PPy'~1-&fΟKul#.X`wLR>WeBze9fhMP(mQUh Ɲ<VapFk'1m6Np¤Pԫvvߋ1:3zdhM4he1;5^B"W.`ǝlT؛'qޫx:|Ot+gR #`SG>Ÿy~Dz%՞p_,(]W|~8,f.^ƑsPCa@J[}1ǡ9- _{xb '?lTpٺ۶0Pz.+w&ů\\_qvߛz pO?y+^+d7:8Ͼg7D4Jvr߲\9ͼ畇wmƪ[15&'w]yG™u40p*+ͦ*cۿZc&u:{oz:Rص\Ϳ|n1;UjWr>?p\?oY'c DNXꌏןqsl]g|;p?[~hLO4,J^@=6n哼8G?dQJ)eXW1\*F?7A܎|b̺HJJe êA&}f ;_q:py qw8څmNK5.|VZͰTT^EHF/?f299?)Z`LBiU1Pk7}K,: ^uiXKad3׽jW$HĸĊ,ah+˂8,}s^~ϼ46iJYQۂo~|vQ Xws¯o^90*Ē=<ﯱ ןU_C86ׯhmWh~N|y(13K ".nu3wfƁyU6}2n۝P%XNV2.:t&s}Zr9nyXYv'bFw%hI8(O[vQ1,S sȑ@ƻg4Vim3⁤m1 R*}q+O+|}|eW/gޙgqUbSEXG\fGEu IT; b |y8&/c|9(qٽi=CY8sGw߾oѯAmٽMqzL’7+[aUr'ZFrС6=}#9R,E,](㎻*}'עȴS0{)1ihtE둇xe,dKf[y(?7\$Ә,7KW(nj3/˅ڌAkyh>g^5W}O_8Ƣª8V'C6||?̓^r(^P'_iGPC<䌩E>A ĮQ"8P5Yqp<뵴mCըpaYl'l: ,?圵~~wk~s&_F=٫|_vyZ5X/nނuğO 9aS(oMa?y2^74q ~K1gNESVTt|۪JeƩ|2d:Ln_<{}c|sU E_ua|gSZ , @fqlPlyjFiy.uԒz;n $/.z%GpK|=÷,W07%\-ୟ8fW_oe3/Q3_=wl>75<}БSn Vgǽ\,;|-b}! *\x%:׏F1Ӷ WeocN䘊A\zŻ:k݇1EhUc՘y#;wbxx֚ VݶG)h,5#s;%>8nF(7ia* H s(]+k'#wT;Ԙ7o.{y N8?yM_ ʊ&):Şʍ:8f,?sfH)FGʑ^k}<%R0~-<6 ؑ4"άj'FGX_er1v|r?JkђLx&}uսI6?FT+>?~SW 6\}3ke1 ^0NTT|Vb{.V$YaKlؖMz󶆰߂23X s G65[҅BL6+]8zz"6?sǑi\}OCNcޫûw߿Iv[s9?'lVA=#;4=ڻ< 1wn "ul?.Ֆ([&A9|?7`R/i&q#.垮 CHO#lDXAZ~Bu2RqQd{4GKEE$|pڦ̽^ qwgXhY3zkpG<Y:Pkc&[hߎZ4jRl߾sPU=\+,z'k\x|]ر˻/O9+wܱXCbTȴcD+۶m6q9<}+}lWʎލ/#ga/whu84ytaR͒w\'۟37s7o|WGOO9odo ~߿.9c\I6m*Tv}u|yK:w^bi4WWR ~uXZ #m(58?a+[fQ_ph'x?jnnPgup֫|[a|sXOpkLZut^p*v\j>Ԉłi,_sҧ̱3YqYqaomᪧlJvviv/jm[x\C֛*_~zCvɣ d Kv++|6K'"qÓ@Ǹ_̝ͩ/zGy|?R=[nO户~oClm{lEymOqoG8%3XlֽL7Ynrn=>qvӖi\2>v֬i㒫"J18⑝.륔OKV_.cp qYk]Jo6w:ܱ͠;]7 a{^ŚkiZcpVi;m#B+/=|5Oj9ceddݻGad{tt c 'פk;7mẸ~lz>~G;w mM}~VyzUh1Ll_I/fVꟿ m:n3R ck8a3`O~y|khimwZ-\1c_]v0gm;gql?g[odX.fzƹkY<EL{0Z)v}k[Rʳ X)u +%huED00W)8X ,A\aGL1mcC3ՔAD!3qRNS'bBt{'g][Qo/ǘ[,X0J6m2#;-EpZ&<$ZVm)*F%1GhG&@6+Mlh UϺti `Y'14[HжM7(qK5JHNgeYTlM|o R0F,цc?Kq0VJi;n9wMRΆs *Fdgxk4VUg0+'8&(V Tz[meCmpR*W/g۝ǫ>s)o9P姗+ຆfR6NvۡJSUľ㸸n${RؖeXwLˡWU`\&[][^ 3wnaw[@ԋ>OG>w gn-ؖӎ,*ulۨ^cv`"l\dϼz#߿R~XJ)Cg ըKl2eR 5"${+046`nO$sb;qR3GXVcj2x=35Ţ_!XcxYZ)]+ns22-]+[Bf~os'ak_D䋮Um ۞XcuI=^b-8+Ys5>_ bFO`)6cڥ9uۨ^czv`"lO!LVl[.nrKK)YͰ{*u?Td=J)V0%bkBpccc:D,L9wkH щ甲=l :ns;;|7#$y*xy6K Wy 7ڭ3h)VcYkķ_#(MWJGt?Ԟ/VJ@+" R` 0L; f{,>OlR+EVxNiRMڣ.pi%J/RJ)RJ)=&\/@2bRJ)RJ)R~1 Σ$cr2T)I[J)RJ)'($oS[C<ݟE?Wg4 ֬^ǞPRJ)RJ)//t]k1tO=KSJ)RJ)RJ)i4S@ܭ['RJ)RJ)RJ)噑{a0&ޒֈS&)RJ)RJ)Iy7d}~|z*lֺpM)RJ)RJ)cNKpQZ6xYyg)RJ)RJ)$02XbETOD}M/z)RJ)RJ)1In+@XtMU2&e(L)RJ)RJ)L[xncLPLy']#]@)RJ)RJ)%pRKJ^J)RJ)RJ)tgI|c0s^+RJ)RJ)R^Ybm;DZ}SJ)RJ)RJ)FN U`"(:eY(RJ)RJ)RJyfEPRJy΋uϯWZhg)ysNIZz>ا {űRJ)E ?_]wy5JY c0%ڜ: g$YZdǯq=}S{2_^iiʾ{Lnq5q+ygL%'ƈT-g1jNf_)+@k 񾯮d[۩(Oy'llOiw(G,\_ n.tu?[vGݵWsC;qu_}7˔׏[{ly޳qJ֍4v{ÑZln^=|d1c|>8׏gu?#7ePa`|~ G8j߱1ڀ 2g8f7Xs͏9\p(CV>TJD_>:O|ޯ)5䙴u.Za og)~/qa+}U}6}XOl":Cg)mXt՝>Yƀi394[v3 H;5J|8%WJs p=瀣N3o9vyϧA;Y׷|kZ#[ظ{V]bY/)}d} G)qzۏDUU\rƜ1DVB+AuVˎqW}5ʤikrQ Cz2rğPZ+ 84Z3TʟoZD1Mq~H&&L} lu]\+’x`w9lX*w< iô~(]JM.]cSSԋ֏kjZz&b*:M<Enؓ@AHN.jWAfoifΞm6_yw3 cOVcX=N9i* pعj%wܿ.b39;PZȡO [w qk`!-=s%?v[Gwi86x U%Yj94'ZLoo㞵3Cf0v5붌ҦSevEh@ZlynV>_ _0E("\'Ǜ.? k~]|'ٴչGpɛẈ&x Χ\W(~󎓪:;u{g+² RF&17Uc&KMA+*TRWYv1333; w999>9_/s˷q)E:-iyN L$f#{e8X֫sn8DMvqa6_ykvQ uV]j)Fu|71_p];WןEqY~F`1ҹSog|H[e#r6+iXW5ϰ?2Çw)Ct36Fba"cAyVM~Ӆ .uq&gAqn?\i6%~+: ||:θ]guDGWT$};je#=ó 7F(}_O5j=hi}[eR`GwICcKXYn ?']KeO+Ǹ-3c7ˆ_^ϯ#o@^7DC7R{sH{֯&>Vm\&cz_Y7rS}K9Yzx Ө*ҾpTrQ85\5;YjSsYָUbvW BoΤVbʋlmYjYӨ xkwKiTik#rw,ӌ-KOן,“i|i>q=֍6G^ ӑuYfR=,]t-0۶%(~)z~{l20%hP|'3e2?\ɢ}32ٿKartNf]WM9w)~/|tWv՗v r߸8kr"$p$m&_m(YZތ|l>$"'ºa2 p佽1_s~Τ/`>B?fv~tıDXʓueIBt)8[wՓ\y5Fe" ixɰ`~!ǀY?@:2u왓YyolR F (V5vXE9M`lRÕ%Eؼ'̑UZ G0?uGhk6^[u?+W!B֭e~phj -%ksmN!`RN}'_ZA/giPh]~vcBe2`OqK W.=†-d G hʋO_K̀[#TÌ"j:u$J˫7 GY%'.Ȳx.[^#ewl̺hSfkbuDHJJ-$_LO-u  9,(tUs;_NSvَVwSTW2[xqQr.\?z;G謼ޚ @ʉoĢ7YJ=q`QQo ,N7$/.&}}run k Tݞxy c+WrlR^*1lpkb;*ED-NMe/yz1H$>W5WX6UXAG[ش 'ϴƆՔ<3QŇX%Ng`@J ZKͫUCT1i3Mkx>1yw6%-W^`)9MC ݂ԡ΅`R糑lj0q%ywOIάbKyv Si rW2invz!g.ń7yٴg^^i! xksp2$q/~KA|q0px `~T,pդ45rv+I` + >2}qB1|/#'0bNʍői.=vc}ky 㠪-~I>^J܏k=%vr']Ye.=?Lq,4ݞGژXNXAF.Z"L,&ʁ^cɠon~ +wt/S:œPEiYd3RH`BW#eynz37NpH.unDе:V $AtCC+WpTs;XM>%szw xaaʔ LlSG۬?u[g%7 # ;o-' !I׷ ciF ,ְ"֎ Yn;j*SUWs1kQs/ϭΰy8(fweε,[O?WÏoK%iDNq7$(Dم ^1Z\D[)_ ŜY[ꍰzSr~Ce0ٻ$dQM0 ٌ>jcߖ#L H8nl ]/9'm*vEP-z~Ĕ{vyT|ݬ+Dzkٶ(СaqLXzOfYjm~ nz]$\u\2y۷6qig=xSi _9Y]xq4QsxNkL(%YR̶M;k3ۗhFK5e`3ۨ9֊"*FVꖷyS a`a:6EcFQYoR-+qU6/[L} `5Z8uh69jFfjHSb]md!#FN|S࢔snm#셌kx29v5r-;^uGJӮeגǬIPn7m(j?^ʔE,{Y$E *Eɰ9a%Rnz?\?#HF 鉇q]u y`c<|Sl~gÐۧPb`tw3g^ۯ= }wk?%Rp\~oC I69v)ɋ}. IDAT7b޹$ iKjqO Ҷ5^\Heo0o_a^ZDEsAF2zpAId a<~<]Ԫ|3;+/lʊm, ͦHV΄Ӧ|1 ڛG#Gt5~d;1$#k}j"]X2^ŵ dR43_2`ݓ( -NGԲ f°8ik \?+"Vȉ.a^H ㉔2e?~w\{%[<<λ% !HȐwn==۩ݬ~sw݅bFMͰ" ^Hb$6lᭃW-Cz9k''Z.K9uiJF_Uwyg5+ɽ-4fؼ{sz3z8[z )mދ?iF]~!Cs>_F E~ wULXGf"D[PO/߉/&c{uH7ٴ|7eMGx+t-K0؜:eIL8%WxѝNu?ܢ  pda,t! i%Ak>\[~Ě=w&]lg|D36J&d3Q!vɠ~3y|=h:&&=^_Z7 H*ʯ~6=O7}bY-co[г{ٷo,vg1lyu# ϛpRv Y[6@Oco28y—<^}wHLߩ_clezDqTWu?3f:^b}C vXd;i>XK&ò)>~xĮ0lXŸ~: H.ʕ~kFd{Ww`]LI7!_O?AZqIu~Oa ODE/Ay}ι[g~r?~o\γt)~W+l&\&Ҫ#@"( !YitxMjHyLClK1yᅗO԰&>6ܞbnKvT41-xDRKЙڂkcq$/1}.Zۢ_+4$V+oxBBp:XõDְ451Ѱc5_I56Kr:7Mmk9`Y8l4f^<k<>e.#΍gts1/ ^]]ax5zO(7tꔍ{<0>CyX1{LqҒIqI;H;[جViuS4@FQp8 H)LK"0hni`&KoK fO .iv%Lmx3ܴ5. 3kLkX}-4$*L)'|M>G)bb=FnC (<>tVáOz>03"vR8x9~%e٩X]'ضd>;rB>M(N&q]y/AO0]Gkv;?^0ڽ\q7 $w Vx\S( Í~N$`#{>ݛ8KÊ.FZ1+s$L` *dԼw[-\˿s"߹l(BJEP?2oK~C5~V% BP(0\C0M?.noj]<[@ h(hr\c-d:.Dʎ~!K$",i#]+oDeC0ÓZ7ga]w!Z<4w䡉hK *NDS"qcb!ܺJS:؝W( E3V}Y#q|;'dRU^5{?s7^/P13oi$Ǘt`O;8$#F"BDS"qtw]n])0݀YJ$^ BH!tfFvڔ61_"t{eUP(c;r*k6_Tޙ7!?W̝,O `:/;'r-y,_UMx8xӔϼo ڼ*;`9fIK.{x_+l! ~^? nފDSf4,(ɬ+多Y,<Y}~NWةu?Kjsl;y?Z5a_!1vnBGY00YK (H3Bk3{=Kar3>J~9i+G.ۆ-d&<]uvMKB7=T;)ږpXf^F'QąRs-o0#*pjʭ{!^̘+bh }4^ӛ\Q4qd\O۪i]m;/QM $p 84n_N_q\ʊ-Y37*/AϞWakJM7jœΪ+~zae|'XIԓx!ZgȽg|8PUDw,SasqDQ4GP`mG30fh_l ) {r"Ѕ0?J !mw?6"¢^;L飹g_N[lDCӶ%V*p? rfzr foDU5߆O&:&~~S(a}Pkz7/g1_J Zo8 WPа$Lm)7<`2! GRGw[.E B4ft)eg&B5aShDb[ږFfjJD!MÌJO*oxW_Y/tDqzۻlMj>J7mm>Ğؼ.KJ/Wbx ݦlwxF/KٰqFHi޶N>Yf Gwlf#4%|FeXI 2n5~*H _}^#榺)a\uQy1꼞$Ѽ-vH>:'ŏ{5L*$lxSƐg QR0gj>.|G&WӐTؼ2WcCBvy _*/w0I–x*./ j2}xɾoN7Sqt[R=]nG.~~8ӴzMC؟%;w>z2z u2<.v2}^s8LG9tRss`ɋI2[ f$͗ߦr׍NGa59d1늡d̮ů5g7^ ]tGcbd4Y{,l6WxK0+_^gM\߂i tNU^AKz&s:z}0{{#<0!KQ( pss ҒIv8I;p86lV躩k« BF8 R>RJLKPo1)+ YOSBج LQM#iR";>W` Y%p ^ nJ׋3d41 ݞhހ𴝭̠QBV(bĺl5s)N:eϳKmSQf BP"uCuh`ia/He͸ ?%گAll֭I$9:vʥi;s;ñe*lYzD[V71=>$րM|X&/?s@@58n"&M ~jLNNn\mU? B8Wz@aEδ~b{T4*F]b0dK ms礼2l*89{+;O1ٖ<ڀ//Hũg ʿҬc4>|>V,Uk$!t=np)bSxJ BPWe=dg=L.BiKR$SȠG=W'N `AY0JQ|l1;.L `>ZNsW˛V2\ -;|Lrk*^VZ]j+)`tlYś4lf²ޤ(]BP(Oޮɖz, #m/WΏtT$7wH#,* CE]G |/2ɹ ,A$Cbuk_[R@eSdžmtv_i`D*WaǺU)L!kUv;[?`^ILnYv.+Vf;oabĝ * BPж"sXgEf@BX&}4DDII7iZ}yL8/'S7m5l8E+M( 5i$:Ґvhl'vi<ڼhXI864 j Lհc5wLKi-NLqb7fZZ}@] \8s܆!6nŹBP(\@3d$gjм4:yRBjD7HM>#L̕AAκ x[ihM֦.ir~n8;l䣭."F7m1ov BP(.pPuf&`W鲱 wV BP(de]rbpRJR4LKzw2k]) BP(Oith=*eit 0Q`kG@& BP(O~6po%AvK<>Ԧa69BP( BIG YD4z0tpzu3OH KB( BP(>b|Q;ZwW"3` BP(^e=Hft;TB翄(:^&RH@) BP(Oޕ.ѕOPܯsLSv(!7FF9":v֕ͺBP( ӪGӅCtg)./uc0|׍!_ BP(EYӅxplW¥4Ṭ}֐;ꑇLCÆielUO) BP( .MU׎:4[C ӐZ -{l_=tT y!!}4לGqC F.@E_gDAy"F<0QB,x,H0:B'%5M AP(O(M ZCFq(;B#MQtIG=v c5`ͺĮE6L=$iw ٗS\ώի8&Y6,prRi" $ xӱ6'ׇU)ʹTc7,,|R( Gw=%uh?|R^EB L/^o7[vד2t KGei;,UiMϥ ']dwT}Wm]WZ IDAT+ Bɜ_2/8* GYf@=O̠yɏϺ41 x .Vñf}R+o G r)cs-|^~8U߆+C" vyh3Zj8QPlrBvL>E265hϋL"\7gSBP(>stw ¦Eע\04Yк\'ȰBe=uaNl{05'%%om8v܊>j؊#a\>e 6+vg N _[ .ٰW,Ir`kc5)Cb m3kN@],1j3NBP(*tv׍{R'wn#@ӵxk2GroR ΀?N@Ǧ&&_ӌ"];p[m-QdZXHIrБpx?z9D'=IW*Ʀ ,DBOEG1.S@jW])U&>4v^V MhA2X;iQZ~]ardV4e  B_0Gw[Y.ܕf8BFzb5|B`wg{iTLR@J;'Qr5;֭Bb#{ɷ/s¦%O +dto}7-堳Yga!._kULbՆ}S/ٯXHDE1p$uU\i]͚v%˦0 'p"S^Bz~{N*݆|g´˹< {NrK蝟 ?'v>z/i*%&|;z` VϒKLj6=Kdx)s1Btxq7PeȆ).tV=B4Ͱ0=# 7R&̮`og-M^W+.w𐣉i)b/2Qdii3~݌5Ebgd-}M4 +5?O1H"+Yu껩-45摆AR \3xRmŋ#ܱHJn/34o[_EDɋ˄[iP2yu4ikhs82qx [V--+w!`?ݾC/@1MÐHSb&q_4Aڹ9Kʝ=w#;z`kF v<Sbo={)韩z{j2H%20>Դ?Md!vM㞻Ɠi:!x?=_+K=/);6 B_tw"6eah˧߀~hP^afMi\G~fNQz5|s)I ,^v-}mz‘;/0'Rc,OybT^G~e܍Ym3^BJ^)?s7"@vU8r.{]>-׆ԇBP(>vmg]N -dFl@]` c#@CO=f4lksʘp8r5/rҡ8@T34 v+eobԊ߱anI¡M819lOZ>6FlHiAX7`)/Jlpg]^Vlc~V8bɁeO?|2 ٸW"c@oXji" (NEzT6 Bq.n+뺎ti,u-F"-zՄz KWC]|ϊ yXwV;nާjLb`!PBvr&غ-L'6f1vB  }>MTxvRkDwLud=dѹ\F֘/k9Z~s9d]%ŋȷ㻜oy!Y-%?1F`AN4ܜ__ccbz0[<G"|1жI&qw~eyI S1XL}bφۃv/Gm }C/a˸<L` \=Qe$w=LYT#HMͺBi]we-${p>ˆߵ"ӹP` '+_|/V$GةN|;),. Y{\!#gp~<5o !8sݧ7!y,qEG|$g䐓n0Y>[{+) >#=`)=M_<;;'n  40;BMJDX?0rj:v _p?Ҙ B89zEKb0GId¼Ryb5!6E= 4.Q3췁2gI0.헼zl=Y),'HotLӇaω>H-N>9}loDg20F?`*B, 1\\'wsbnHnA4~yvRm@^F=A3(EK 6<!ƭӇ#Hx17 7~w/f5ÙcA Bqnn+롺pKK7D ]) EFuc`xh>8.4Vs[sK+͍eND F0ڇ)Tp,.yRWOm6+q8meQDwLkC &Ri~3"iČOnj溱#00g܁d\TJF_ nL`δ|Z(W2O\00hjô'OnCzSpՄ ~ jJ4_ˎCvU}d6ϛ[}d6o#^J-+PBPx.Z &\{خ/G~e#Xe70U(@g33# mjz|5GrggpQ?'=4kGy_Ns9>r(wn|_y8FcNDa {n2ϪVr3H]ĕ b'@ fe>p_b#OO+Һ3cH{}|/e>_V@O{Sy1wܶ8pǘxq;ޛǷuw$J%jeK%Zlّb;ӤMizݦʹi:3m73m4NbOId[Eɶ,ZbIFqw@ ElE~p}|?_/}(*gSPg<ķi)ϱȹ 1M{%R o?PJyR~J)ՠjUJs4zֺ*uxl16gxx# J"3,]궾 ~$1|~|fkvlqtndn+e x1da+ayxጠIH%ɯoxU2L}eay,L8N3nXƑiX#Ou$Tkx=4n*A2fZ(Ӈg&$= L˿$ŗLËkad 4upRIRtAם\"vg72|~^>ej4]ӰR2ZAgsZ@HiQL;q7ܩ瞎QkxZpH"&)T8_ߎG'|=EI\{NX$q4Jcc[ڎ'ڶ͵}q\7XSΉמ焹_`$Ax?tMRLW"VsơJgT8(n~#JqgUsݵ PXWF0ü,q x{/?;jsYA}+[ ֳz Ż}ƚhƴqݴU*|Ō?Klye#_?7uQ11N@f':IܶY.Ŕ3f33]$m 7慾`dBo%] C7x/׏ʶaxt=̮y/r.pL}n}׿'C#k`SΪ }C;՞)P>?,"ڵkn'"pɥ5yFYUkdJN֡GKS !l (p'y |dttE4_Hq77.e ;f21 6Ta8X()x!|K2p{ÇR(5v]~ 4v5܋MEDK=AA3F߬-ΨZՋ̽n&A팘YslZ[fV?9sCΆ߽Ӎyi]F9k}3D́G0`Ji_uU8O~p 2T~]Cy'0!ovRcquL"+>z{? :oMw"'R.v zS%"A;o/nQUaZ;ɔY."7{26vqqˡIyG`'"LP;/vr".Fxc6wj+>~S_Sd=wmڣ=9M3?_meX&"&G羷IJ. w(޷jXxkĭݴK4zتnlӚHy S"Tb2CWF[7"ԟLsb1.8nBMF5|[NqIOnP6rg|ǟbqr9k?>@ޚ%4k]jZ̓(gvG).lY%>"o?S|m,n{\E^[O|Iyiإ,CgN)#OAA34 >/F`cu5FN8¬ΤVZZukp]kPӘWg[]΢GW;СeHCp`$qUmdv ]4Z%1Q054-a'ybm=S u}qn+jPy9 5s %ٿS0&sMN 05(U^նs[g{֐Y{ZWv&aPo(b);qkz߽%: eO! :&T#m s0%l}j1A8^z '>W?P4"hb$l߲2,2=1s:2%VrvS>7N煿ϳ&usi^sy潁Yݱ <<>^ߝе,-9)wI؇}FQ_# pqP/SlYxk.Ke1:(7PLEо+_s#Q(Mv?զ'@V]IL|y 񯞳kS8z˙݇YOƳE6c%?¶騋K e4ZWI FY AA0LixWc=zKb]tlgZNdq*jsʲs* ,<|Aa>Ț[ʔ) =>uhq,L~>+h̢rL\Lh2*ed˕.Y7pZK=w7H5,i@ IDAT,h `m1)02<l~sPnY$}OCW?]μ+Y*IJq QAp+|ۿW?:YAA4{cX'R)~JeDG) h3PsPpnpr]Ǔr#ji$E'6:v2A"d8gPģ4lR>ʃXhRє?>/fFkKRmAM %vD WF?_z6H33&OƵDQFURQA h tLj=N/o/şTjܵ PVI8e'cb >Dΰtٔ*H_ŷiIM+ w.</E/S PP{x-SHJŁAg2{2xyLT9Aܧ&C*<F%Eto⯻ "rzxdr}i'g'!vɂ  Rh0% _#n0arq0ZskCql|Y΃ O/)C  LfWubt3<ʺ}g'KnuBHB GYzؤI  S!G4,ág!R.0ńz֚āN+V;TtTTVBA@v<᮵{=TkFPX@  °.zU#-a8  0Wg):fduJ[ڍ,ÖwԸwAAAH.*zL{a$ Hx7nH?AAAh0.#GKk5H>cY'eIAA^>Q(szxgȿ&  nrj|bVBqQh=7i'JQ.vYN };yp  4_=(>ﺛ F/]쿳| VpHæFSHVCkK\M{Oec/^M~L&fUnD%  B) LZ>iLdzڽ}W9kяK6P94|TQu{6kX2}Vz/څİ87|5fŴx#JVAA(!8KZiԅ쪄]?:I.^9..fZ[P+;LL[>R#Gj'FH n:%j}\t2 Uغy>*E|ϞV֚?ָxC ׿ӻ5V㭙  KJOb"]e"-8zIqRwz\B?f..k1.C^U51wj )ٯsf3ϬoJq\;I ܈(O{xI fKYwvWNcے"-uXJa N^3Me>Cs1] U|tp`n$hml8hƨw_ǵ+ƌU rLrQο*f3KűqF9{GL_ ]ޗp}`(#;y˒\zdottVq[b . ;P57{-ca7&K[cQ.h] ˁvOKމ+ N`^_C}c +|0"efbS<\Pf]GNPbFSm-M-sh!HUy%˽:@*W{}<^eIJ^tW̢y\zP\<kªi4x=>ơ^uS z/qͽtm՘j?q#'\iYmsO7¾Wx>0PwmW8r|%2mWSH'罓Bש!9TVԳN*NJyn~&|@A;RzfW U&3΀i2NJRZaІZke%CyTRPR JA\>^H~^xvQFly sc=8=KM&I9['Kiv`dΎCnl'ˀo~$Frִ\dώ1s.38 pG1^.m.<X$[e\YNw"ׂ9 mKjJ8;8:{t;^i%)nwǙ[n!rvثdOI'S/Wh5EkjPU+#TzT Xxwc=NK4:["mrJ&36>Cӽ9e ,spg'{_9ѶyYAA;_OD2 zn\>pXDvep֓78y6BuaUަwx坳-X4cd;n!\BnaK9eE\(oAS=2r"~h.5˫C^J{s'FDkU3U0mb^,Ñ9ZOD[S 5qZ?nk% lҺq!U9s<.m ocͽ!;)w:|!:ճ},m{:󃣻yZ:gȉkf /ū*ݿ׍36>ENw;k*1z.GQF=J  ?~*& 4}ص(=E)Zzj5-^ɿf3;p̌ɷ9Qz=ar-S9Q: 2VqC;BaQ5ӗ1^0Ii򴋍FͱvRaf7 XT.'=>G,4k[ '{q髠,ffOv:qFf{rƟ"ia K{CmצnNmmа 6[?&!P[׾vS<7紃T4-]!.?ξp8zLƕĪ  5/Pz.BhL1g`(<_k]eFRjV  պqm]Oʱc~/^<'>D$bx LMF^'qΟ;&~,UA?* O#ٝA ]ФMr2'kyeaxRRq t= <q ayfx0rDJxܲ;Lrd:El'Hk)SQ" Ŏ Gua1v1} K64Js- ?1^87f09ѵq:˺r=Ӈl&_Yc7AA;m>ץ*jG*& cOiۅa|D/qk %,*ipčEAY 3!]t+̄j]"2~duy$E]F`P~f8?k\;I"#i %+ҖuT%5X?(rSe;:Ȑx p7KpM&N4)FVOEpAAca4s%deP;:)6뗸؛dq5biXZN{{ޣ72m w?u\++Lj0^ʺ{Q]gƯ?9Vg7QtDoŪhd5lƫ&b=IQAy,.bڢ J_^8‰!?UVx4"3q`| C6)jt {'BN:O_"XMZˊAA>=+FOqTli3Y4. T7QQQ?Yu y|<^elfZUSU^ɴ{BWHMp\"G*OP#l^1ƺFƦY} !WX֠`M'@͂u8r~Gkbx'u,h,e+;j66-kYV6n'uzvN-,Ax9)?/ p3ټDM #X*o];R) PUت_ƚ 7fe~|4vq'йCt;IN~K v<~1-p:xAYUxRc=4V-':x?=0zB>72n8N"k D  °O_=`[0 }q1H'M9Nq o<9xٔj!t;㶯gƙ(gw~JO;[?v p6Ot A%x rnd4BX2>/ڱI#ē m<+1 K%0UTC,4#][v"L,˖Ѹvh8H9 KaUA?* OKVXAASt@woeC_dh%ʽey>|/ˣ-t LJŁAGA7p8>GyOzHU(HTAңbVqqIyZB}#(Pt& ^va1v0v WT惋3/&A ABɌMG81v;&  dsI{orGS"  wL/sӘdx&Hw0N`AADD+TVnaGG*t,  2>uοK M`tI4&+AAV.m%%9VE#ah#7AA|t|0t\.  ­t&2R6cGkhX/S*:EAA1ո1A9lXAAa*yixZQKY㳯FrqRP \[AA\qJg>Rw$~l.|Р IDATZ7+ ANTEKN VU/T_~YѬPѡ'ETY#+N/lzxq7.LkrR3o%F +TM7z?Mĭ*e/95_d LZ=9gۧzҒ6+|{e}-s+Ow 'ɿ ccs2aN{l#^>7zD œ>rx[AwYsƼ)hO-'߶4aWT%L.WuLLDyZJظFI`Qu~²F% 7?R#׊8(g様ake+zfe[_GE)TуEUo~]%س]A\κi\"dE5YJ)eIF`TP8(ηJNbģ 4X'/Jh&WeEKE={s+ ୪<сLv?~c5yf}>W:/1`ụ֓ ,Zk<=L x @jb,o 2Ůf^ˊr s14EAE6y Bz'P2SPh0ٟ܊]&! ?~L[N?'_ƻAV+Rь;y"ʌǷ9N4Iv®ԯzOn5nekAy1=$iE>v>뤰S)씃3ٙlӱbW:7ty2eu•+yd̙+gbS7̞ ؑmBy<b$`9=IўʹqJ*c=\ 9pC*B+Q4VÛ= ,2 D~  KnRoS-';(O'hR1^Z!X5 \4ML7E_FqcB: ٲq&A+ٝcғ?ԩ-s\jgNE3XWY%81g|%  |R]y^B~4:㛞ֆ.(wRMx ,BZͬ^5Ԝմz~c&jL!2Li` SYD>kv,]Fc`r10";g}o|j;7Ms)M'B]ANE >xqBvX煯)p4Cee&T-]* UK0Zr3y.^UKio LoE{W]2̨ GjJuu޶zM_̽\LJ-{xh]s]I^:ơ4UD.eMMt!p0  ?S +[(O|};!xV3k6EIf׃AԮy'oFav ihO_\1.{7a;zf7m_ #6^?d IS!F,o[C ,aqmr=SQc0ׇrA3?. p=TLK3*!譱 V<3cg$I y/Xh.K6[1t,s׎ pƉ'-ݔuabqmYӿ:;P$vZ7h'!IؤT>!204:#jM,靾'Ei됌G'cO  w"-뢍H}wK!cNo$߭0x݌NN2L89r_s'i{évǠPN R7AA;t 04( Fүv]s)Ү5χFC2]! ]Gu7 dIAAV u3Z)5H0b]:}WyPh'A<%\/tAAkp8^5%-nְ)b}6RP?1na  puyHLKYE  Px4<7)xu?v  pJt?KO& zbb]iP(tFC  ‡^3~^ u _H  BVv?XFRBX+HčAA!G3n}(&'d>0|YnAA;"oV;+b؅S}bnvַ{}3& pjj8R**swC@kp]]<QrS&ꋆQS3;>jIoǗ`{ݣM \m^8ð \ߜ:HZ[wpf=O<Ђߐ  $d$jXkA.\_Vf~)}vb+6~j/ë{WøB=w8w-L 0|M_ȺԌKP`)Em4zG6(z*0%  (@q݂OOpx+th^M3k#q Y8Wl`Yť?JFܱSlt"o9ܳ$s9T?wP؇RoT E3*Yi=RV~"m  l1^nFC[]Ui!:2oUz >qh2qlbf<v\=荻X]mx\/10h_խUi]R83{3ϬռW\Q/$Coy ,~W?Opګz<7$e_:o:km>iҨ6h}ӗ%4VEֲcW ʵtT1MzJ;r;@ _XfY߄'-=)=ޮ9hExdymv;AA 탞6jܥD\,T0^N claeM,Ld)}];yhlb]o[;<4u_P2r{vy%˾ղ7U Ӿ27EVel*U KG _Nr [m!q]erwݻ;l5y$fYUåǹZ*slzd;^:͵ttVT,}+Kk';ƙAͮ`9&-[+갔042@Yff\k_xmZ{:ES j1PAᮢЪ>Qz^ cB"]v 2nrP*+Ѷ[P*OP#l^1F?ͳR׻\$x 4P7m&+~Fc=CׇcXxR &fk 6Xq.*h;embZ›P1G.~~1݈ag%uzvN-,Ax9{)[x*_*Wl{he-fx|<^e}c]#lc,>zfk)奺*̮'ZA JYӢ\ _;JL g0Z3}w"=^gk{ j[uB)dJ l7@.^;FCm`R5+qP$NgpL苓r!/({9ǎ揻8ܺ͡"ˀo.$.u|*r̺6j(Wꗱ{v<Ǎs>9Mxi]A.feϵsҭR5vQn7) o5Aw Ev J(Mh<.iCJGH)ں"ɺ䄲4bMFJO_Ysey{F3 1 0P]^wY b5% '־`ًP_0ozz}㎘qyPol|P{)ljǍ/֭t,NE^W`Yur.*;6c^̙<ˎ/LʼnǏ/~V{+9SK8rbmY&ɹ ̛<)b{o`^a12v>AaAAxt@΁6 &}g DRόl#qWbڧns W g1_rkسO` 39'ʣ^Rh)2Q)ZkVDP**8ev%Va㳯`JgċN :cWoW<9t2@ݘb)6?ϼ83Ϙ ikƸeg 8Eq}d^Уx5`10{J!zڷGnT|vvs O~ fa+1ZiAA!:=!f ]mxz!(0t"`<]'3qX:WTիә7^9oxv"_B!6.k *4b ]Q R *ƎEޏ[=-Ci8m%샜zz:uǢBߡr$ 9p]' P bK(rpS+/cr%JE8җon/GW@zwP?pK(u6m TjoM>4T/cAAx}{7;_DЅb\y7cG9Z)USDf>`7`3̼1s5::)%Tw:؇jWWI}~Drpҗa@,߳7T}ZTC z ɵA ̼|zCC(Džj˹AAxgB$Hq=x%IJ$Ä1던o  ;SPOQ'F{d   #Τ\Z"Xb jAA¨~&~і L OhiiAAaDzӓn[L1]0BF7  »^3 -C<}!]TS"L5)  B. B5=6O{t)i[gl@  C.  HidRfVuR*1; ̠;2)w]AA/u0:5_ [5w8mQyoᗡL0&?ܖvliw" @ۮMdΛyiRw׽]yމMAvyrYkr8)CKK6[a޽Vb8q"f͜0TA~gBbLN PS+PLSv*֭,cɒ%fa?^~eu̙ MΙ-FAs$&Уc=s rUaڵK.EX@㡴MQn'.b-ڵk1g,Hl:6.0 ΁_1"uG}p v#$P*P.ql[;S4 s-\.T*ahhHlzm* tcR*1ɍN^K fZȃ{ߍ4cv un ?k V@FF p)[*50Zl4?!Y2􊛙NBEvDbaS AHǾMNĺFTSnx^yt|e<׸ܡ~JMl>J/y}4N*Hiw ޾J= A@ՌuZƫ݇k'@LFA&WfMd> Y q?{RYg&V%p3eA `xAҞV/ C6O5A EۼlzWX;5 9E[&CVXOD /iMYF! DF# v:CKL),#&)yیxiA:xc}zgWGSaQLLǰfzA p6nzR?O޻Al۸9ma6qdaT^i֨y5@@" 2|"θn>J_L.cM;b|ێ~v Vݾ݉M/_<y¶U?=0c/߅ݿM/'O {wW1kZ*vCN].cK>/ܩ9޹MA鱺h.U2=*YәIA.#$r~G9]} v/ACqbެ阵T\cSeX8g:|a˯?,>~̛{N?⺣5~1 s{=zz [߇ǟJ;r\/ °ò :ĵM9Pv)kw"]LDzSlHεxtKNl桦J8A7=S&.̟WB2{d_T3,3usY> ȦZ;1cEr*votk{ {|uTkUPP/N@ ۱ c htiTn"5PMaL?n*(1w.N[]=Oݿ a鉓h>6I)A1| 9#uxeiVt_#n ijZ#YaOb'og<>'7\2b]exI*Sgl:|prx5<G).E]r>Y9pbK=Hl80w{P3X$,X&.Iuk{;gS)A:Ҽjg7]+A^fJ/@8a$A :ψ0S&_jxoGO>m+/s1=06ۆYsѥZeXFBfr3'xX&L42 7܉?\g6 7^},z{gcZn5m:nށx4 m@mdp5 fߖ3rcӋ;P=}1%: K|O=,v;睈5W,eg6AW\֥;`L`4e5u}a(9$QE DCB+k88-Ht1(=;<9`>.>w?|x2>Ь 2fϳ/Gg=^fVNòin5jN>݁] VN7~ũ &س/ŧ d CZh|\tTêX>+^qp̵bxXy$fտa7@q?}"s>N?)z\.Ȧ Bgvuu(Nt;}A׷'WEHqq9Zafxj#GX8GcOn1<۞Bqt39oėҖł. jc?5䏿 |pycѥ_މ[}?n{&_ˏ)e,)Lg`_ Wkԏ};z[O9۱sٹXe\w0}/>DFbSA ,R*C}"d"`y5h2\>^q9牗]x34T/=8魷 /D\d0Ŕ`dH~x26)=q \@e64,a2J>〈8JVZk D4cCe8TA3AqL/JN}PcB؍bx ] )7zA В\XC8t }Ao3Du \GH1c7[M?Q!#ny]" N] 撨P-ێsY8oվTPlc n?tm* .v 0@IF= t07/ɲӲ6I7EeH'?s2(h"b;~bѵ yu~/T܆ ;C p,1sRA6ʞ#ߩ63.*m!AZk@E'EMű.бPOY NHi1"a"*kβMwL+OBai MsrĦjS)AF*vΉyC!H^Pc̞B~J%jLLaTo͑ߏB MGϦFaF%i'35)5yl7 L$@1eDz   r#Zd4ٮVAAFKGŶqLvxAA!.1¼R79m[Vd1   t,D{\Iw`r 5-cLAAǢ`˫$e AAЍ,/sSTԳu"0PB=O`C_4,1   [!Y"ʙ[`t PԨ2TAA:#w=\ ߘ.woH  »Y%z$zjmqas"z}CK   4q{Qa\s%[s<0^KuAAAhof f<ónyIЫ4%   1ci#<  &Ƅ4aW0 Som{ٙE  Bmm񌌾XgIB04؆ J =#  a Ǭ3{;DgfTL0Ծ  BV!ڮBËN  *Kij凵س$yγ~'  >ayJóD'C75.[Avk44f"@> ΄ikCNlY#  h0 B[ ̸f֫ )0<Ǹ&`(^Xs 5f @#6aIt ֕RR`R@ =`ۼ?Ьژ[FnuAAph :"(C6w 1#  @{@ f$46ƌ"*8z@j)h_+OWݤ'  {ÿ%ny!!4)CPJ|M;T G݆ L{h{ә}qM %H:o'k:CH5@8ZZ[`ډxn]A2UaB| {2H 6x̘f07KC4^Kuw @ĺߌ5+g2b}|j\A :ǂGC3Ƣ[aتs2mN f9rcː R (bS l  B"?$]`|; Xq^N6lhqs':zOk*T9`D  tXGHz=LCr͸XſՋvpSP!/`wՋ'^k>p*u)@sw܌׽=U0yXqɇpىG V^6 w^m40'| Pܽyˮ%ODNs#ݟ M ԰bmX{~39 Ur/a#wZF~||𾓧;<:u*& 3GMƿstO܄ŋ'^ؼg״ 47>ma0A Ö %,\9\)څ{kƿokU W,bI㹗a_)Xi?g7^Cx{`tͱ]ۺ{O { *ʑ3E˚J_Lc}hb-X6zkO9J!l[8]{p-^*>qxD"eB<1TBѨ܎-8sq|ã3 \ khZP΋/0n8zo?j{@յ}x<OW ᇾ f{ qޮjDmv{,gwKk؋i\&ޱp݉Cs70i8c{7.)䇶9uY|m.NlYu6r*'Zp [{WM,Xcf㼱N2%ts+qzwAwb>E"fL  j# ]eƤ@dG;~3ACPG=n:9cZp|,7 yyS=7?')y >h>UQ=V=3޿Ӯ~t8pv5ǰK0=Ik㫠?ۍ],z4|o5w"gbx-eO?ٸ=CM;}xܰs~St\b5`D ۆ~/=Tc 5a nn>U1y*㖡(n2z1G;}(P O>9~Ylut!_f{k nkVٽ8`uلkE;j,Q}m߫Ugҭ=DM0 &/0`lHԠw`SAAȂ98Җr0.P"JGbR70tHZĐGqӏwGcR [ IDATRj0QM9 [ )kkvE"+*LA'yX\VRQ^ܴO@?X4tV c;)g#po3aGqA:Gl\,:W؁?ż² Ԇ~LfqK^[Ӌg?%6 }Ϻ#fQ߹kQ3&Kq;1ԱewC{O4ױg@c b0E0TmS0 E-06U7oyQ'^ģ/je)`xc& }a06Tgm0n`$gRYALąU~f^wcgODoVl:-~>cɂ`d|\`2܏=rX|110,Oix̆9̹:XƎNq'p`|^ΝXcܒgp`+4Lr6a7l@ uTvc닿;'c<10q>UƵEig}V,ش:ʼjw>rΈm؜Ie?xXxcZ7 ^q1w'܋S={>u=@^.#q~}VK<Ngev"Yc裏CW3?.= 9Ջ *[/m8}|Eh(3s,&惼ژ02e6xYXK, =]+/W`ު{ӿ g蓏&O~dݳ ?ytŌcz@Jr}߱)s'~=X3aڥ_ğx~d L.s?~|,袖󉧫3gmxpdvOU̻<oj`rݓ1c1K|;8ceQƅkdq+f ?~}O/j5tٸC)עi;%nM`Y suTK'#׮tya6>|8( 94\1fu?yX¢EԹ, WvX~1x_6C~sHAPcq/ap0}V'a[\Ť: '_=;\u+OŒ']pK;~'ct6^<>;%E5)ie5rs+$sw `2D4<s<di]սG8 `?,¨:~zm Q.[B+lq\(rp`XQV00X*P* ڏC50ǁZE1Up`0樐+Օ2C+Y**_Z}ex P1E^?׬b〈8JVZk ^wcb |9akkC,}Nchpjݢw ^ӫ PQzal"@al/t?@GlWpi+Q?Ԫе*=qG 3p xeC .pƏr\޳ޡrpO:N^S== th=ɍ;u > 5(s݌f~oߏBЏ=.b|gӖa̔pǏ .Am.r7PӋ[%{^G݋ TE7C!p)jDTpnl 2)RR]A v`ib6WCJ.J?V~|`ʑ п_|+P-[)\@b Sc" 7ΛSr :*)QCu0Ed Pj"P1S_V6l0gڄጯ7IǘP޷}N3~ rnjs݌_zub}ʕwO>~s9\qFiO R_j~1oCoD|xc6.I½2XA- =IpTll0 `#SfTִ McFAAHRy^;SxU L[P BqN; UɆub.R|?g$=~yaBL&A *cPxlz8)u645:. WLi̷l7ыyyeGl8:6'~^)O`։ߒuӳnzફBRƍ<3ę.D!`A0j7˨/MYId%f$˺  dB(JjzSNO7?r@j#\l8r:(WUȣ PB:*/n/N8xlæƲJ'y=N\88APp8cF$m.0kKLO[[R B |yذaϟn8莾>lܸMhQl8:6x2lں&Нρܷ 8݋O}/>wi-uQ ](: ż۰Pa' φ;6:&nvJl:l%bAeKXv-(]]]?oLl&pʋc /EU?_yؾ};>+O)GA1O 0݋'h N|O/&.^g\z#_ĥ^ HNt6EfIۀ3-w  G!>qՈI_bbë+.iRM͌0]~&$೴ AApBOOOdvW( 8Ŋ+@D.!˽ietF]7>]FAAAx+BBM?M})˼  dž7=4>YxmUJY_ɳ.  MlXsƶfa4h^CC  vN9a6q-7q%`k4.!  »tiϵnjgd՜ev&kNAAb= =F ,ӄWРӮHAnlzS@1Co>%[Hxx*YjvMd-OB~h_?h]Ƿ/Dg}C>rM{[ Bk' 5jm3F6qz}(m#IEv}uyFiF3M jR>4owpej3e%,g.L 1)lY8rU5G Of2YۋX[!)Ztlٶ]F__0˦jz%uG9[*18ZAPK~:ib-s#][ʚĩcHҾ-{hJֳcN 5b#D=#.|_sN,5B@pC rs\6 `(cya=n8cm'×jtE]{E 5KXs4m\cqb;OD.uhhWY2+J2ƍGĶa4~Ru*)ķAm|tYjRMBqTT&"-.pmm48sԸ|[DVPFH~/qDES\'#0T 935- Uj{H[3 QqkkBig4dMÃ- b)s啑0gP6M*JhZ:!@u=@RAR;q]mMOыA@31x ( #: uC$4 I(p쩵 qYUi{m>1N}o#-ǩ@mϣ eO=RkDžzpnoZo-62ŋTJI 쟗8l&?3d[sPQlNlz1FTdLنJ.ZF1MqqXqdf2zxST'uwǍ>SfzQhLrn>6l8=qG'`ë4عmq!s؁?fH=j0/=&QhNFi'[,# MG)%<*-:OsҽX7!OmP+"i)^l[vNMkz]5i =eR%du^`AHb]sACFh;;̑MLw QNkYD(ڠ"h7Z"#E G~,{U<7*Zd9<+2UmPBhNbO@lykPBMX"qccm$yΈ:-+TjQ  (QejY6U7(n9=q@KMTp< 6~2- ABh0Jyf; gFe*:8Qv1w^ԫN>4;[:&Ƹ-NvhcM*91N 'v %5rt)(W)!Y^@CM[ Ba#^uQ~b qZZ(x q0:(KF,n5aֺYCu=h#ɆsoCE8E'ylzcAYYF5Ɯ|G޿o,kql66$[rŃ>=yGO|BbVdg[te/)"Rl-Z;zMU1! E5;8`퉈456]سo}Q&TZ:hQ2%bsBX݀"S-NkIļg)z{-0#Xjfæec5 (0_(81ebCC&y-l]MCA7(9LP7 # h$zxI@6zCn;$)ߕ@$)zRE,^\6k5<;D\dQ"bjOo6V_Q*ۅ5v eSGaՌeő,eriͲl'=Hwq{Þv(Uz fMۼ&1lFkkOZ֣n^-4ZpٗFX= Tan&oI1*ZW:ٛn.N'dvFO42XLh)Kͱd~QDg]!pbʷL5Ĭ"(&4Z>h7)*V*!R#uG-C,K]uRmk,Bge'j;8|bzk.2kd#9\&Qs|AW̑PxȬ hzuZ=2RIDAT sn' ~pZ'ENlз LG[,(Zsž-V]#)^֑Df|':"hNĖUI/luISĘ {x릞{P䅞 Ƽ3׉ `3~N?7Se,bjo[8K~{GUk[ì2МE?inM3(cv›TMDzMS!cGE^$.n3z]]xIz]B8f".qG%n+S-#OcGA@qWt[<X J/<::Зr zSjer!߂L+84&hLn.ኣsDɜ`!˚2km-i5Er!;cvul6l/w#חmMC(hz$6#dԲ}99hca ujFޮ-ˑۆg7G9<Қ"Y 'I3VDHw" V|?"#G L;} P@@lz*8$zkS7V?}]ͣήhM8t5+Ū[i< ub{(. =28|vԷ3Vs".]YEΦ0C `o{$c}w (5Gw^{]T{\|#GYHXu`N;:Ԉ pHQMp_3&3} {^'`:.@q,2?^Cc9yippAfeڵc+뽭}Iiw?B95A #wes?qQVr. s`~aK^Ӊ XÎ.b̽h%Q'URNƞC} ET_;8Z^|Ao@t'3ZK/w"^o'{/X0rhP WlnudF8/ZZf>xIW}-˾[,L_[$*s{4SDB@YG>4*s`A6qPjɲ1cVAË`\]s%G#5Iis+f~KfJ)u,atsFUO2kZ{}VwWY9mQBu%4Lbk]c>B:Z`h)mV&ig |gkik,75B3W]_ҎDFDz;|FTFv:mWm>x8O \pN1e |4 =E؝Ҙ?|i@BZ^^)5NqOMLhCs Xzy|LցJSt+: 8*GX{iCNM>liBkQhq;46od#h(!u"Vi$K2ֺ066m'|N{2عvaVPPM 9޺^vx-G$id~$6;bc4;< Gǘup9-?L} ߑ'^,ۄyƼ#⏊'_Vc*"_twBL#BbAX &5 m&vF,U }#Hwn4xϤWiϧha)%[Ë>Sf"ӳ8|/vpk!>%;uJgjei[wH)ZG)3:(o=ĝr$.|#{ 28ESDl|C$ܳ@wD\ڿ;]m|z"Qi5VX+<Zaw)oWf8;,Z)e8g_n=+-%Rgsh-ZPE{{F6v s*E HDt?jЌǤy"+E Gx83"kM6(/ʲe5BvnhRD(I.Y`1{Q Ӿ'{̤_ēvgkg3',H$E\q 3y30N}X:jaX (yl!Q#jΦX51ח3CZʌ=Kz]~@S~+~1t͜HXU˦u0&8ȼth[$OmLc#9&#V$ÚHzfLCyƖ2ø#BVLjD,")/gY iTyYV8?ރ&f9|3}{Ʀewt/rcdu+ȑ֋~kO6ϤG!g!/T4D?Rh0:JuVʌ ^D.ILu#:K-XԩD`r[bhp_{w1}n{Yao/U6/4,%ڞFCGm^IMVzj\p3u`i1,5Y1(twu^0z(.hH[hUl-N8'VhKW4ƚ[k8#e[R{˒C4O0ֺ9@5HSãcC"W->,a!2}Ħ(J.;s 3MQ8 s_(>q!jNk{z 2_7-cCidSCa_-Sեp)S(VI/sЫOdWys4NU5j$e`|?'-af镪P;"҈OdvNV~:XA??+dZ/2~Yxޞwܟz\1| \aJ2(vt_DG)eiF,iF0:\"5`),LgT蹹[Whwq$}<(/Vs,(V:SXk)9Ɋ2NmIP\]Sb[L#$s= 'hF.TBK E2roKAabJo3 cdBj*łhtv}02‡LYF : 2}XG-hFJg00=SqϤ=D{ ? +A2 l ȑ~RzgG/{O+:JvMXRJWZru Ecw2qfbH}s{PX–qf$5-8G`Ib~nia? ):.Y`eݴG}g5`E;;,]{s'dm%$IENDB`dell-recovery/help/C/figures/fid.png0000664000000000000000000030070211751021273014551 0ustar PNG  IHDR~2Q*sRGBbKGD pHYs  tIME24:*MtEXtCommentCreated with GIMPW IDATxw$eS;!E9}W]׀#aͮU5 *\$;d$3<7wzG{]ss:T_!Ak n;5J),"޿D/Z_nJI>o"RN I}N]eבvSXY3K`IZ{QϐdZ#/u1aa4% WZp`xm[11P䙩eC(+nqY.п^~9iH~mhy͢2ߡ[;>MUfQwpMD%>o.h'Ǒ=1D^Ljy:;2w)mLۙ"[ɾitv~}t.moӶQL#ⶼ^''LFǪ)iNe:Qz yi{6cHX︍:hI>KZggLP*` Q"hɜxFjEIKX{'Ax1Js,YRzsezJQo53ZEׯn.ʠfJAc`RgwRZ+M3)_vQi}˝fdkDLt[oq$MU4 Î[iD'QО _4=YpOm{yr/)so/i iؓL!iM>Kx~ tt2NQƨbU}UfgEEu]ZRM0l#YcXm8TTz"xjp:hC1IàxHSTJJ[tLg0_#;]+q%4E}[2sQ aq%D$sn*m592N)˄Y Lt5?&ڬ$nWY.F&FviJjRc1SA2vkDGk;()X) P/+_)oV:u6Wӎi 0yb|]&逈JeD[PL$A@?c$cGF%F913*&%TZw&82.nMITc[jjM>9޵$qrϤLv|*1ml\bC7nIFKjch%&D@{'Af cJ)[y `2ySv2 B:e&g4g):g;YL|RQr_I3R V63IW,},3TLIUsZ>WIRZAuERʯ"K-n}CuGLKˮZp-:ƘNZ[/O?&L lxIN ٍ&N~W֙e wtRR:oWp-K$hȊpvp_V9}2;ojJIsHe}[9k t $MMc]k,b.-xHߝ:^\NfHvp"?n&;AG@Q)U ~%"J||`qhIe4,)-;Eo'c:TɅ,m-8{DM$!IX 4MDc?Wm2:T8E?oMKhc8$h뀢 `H+Xw(Q8P7]~~19I\6 -\@l*(pҪo>HG)J>/+PKҎ&/mg1M`(鳞dVM>nC+>0ce҆r5cFs\_iO8y.v14$]D:j%wP/ݑRVM+%MdQ'cw+O[lLIORK'iIK Z2g1iQd\6RZ*4 N|)uW2.T#@ڱ-NpjܳAJ3Yn9>ˤ+$kS)inIh$0]vxLnu]bgehI~Z&;]5 @u f}WPWo+k;NiG$&\Xcnʴդƕttd99&{cݮ sD^*x!ԀuWJ}+^+`CqdXQ&S-I(hZ^,pR,bQlI5@!".fnwŶL7&v6t0Wh룡[1[S XעH1ZE"Yu5?LޠšxYe m|NU%${u40dH莿ZRC>hCI!19kfҀ&4@ͼ>>SY߷.vicaՈ=w|.J:D ƁG8KF;?I%<ÐBl}hl+Яf,pSƇiE7xnG-@>m%`ؓVB],w EJ)~Pz@er'&טT}4ju`=mO'skiL3PZJ$Clg`<ɤ 10*agwQ&Tp`5nx LDW)U y)lgn!)Qn&fdJf'.iFE LRH -t'D6 B228~7 fS}MwIaR$}S~4'״u$NIw-n*2e&<.ڮ񭞟ʔ82N=L֊Hi>vR sڼma4'#Z$0*Hd{`{+_p wbIPFIͷA2켦h7cL9e J{dNv,vc'#6͔3Ou1pIw>p |7PP.|#QD$1$#cV4o '>K>'L:jS"`x27ahi3AT6K39%Ttڭ'D|f[„A~ >NXyilG2nDȌet"ԢʹQ(3xQ`a&%|h&ו@n0}CLuVV,JSd_~I=0O$fӡoJ0F"߻!8o,k: 1Mbw搶A&io}*a`g( OE CB&. M~ML#bO=#JA d1n4'܉[);C(G2GHQ#M0/ٌbYqӉQ*eԥ D„-IGgBb!6Bc@Fa%P`tgX;M:41` ˟YOvk Jk\m61e -9^Հ7{R8KF7!ՐHXxMK#L*au+;-wu#磢SQ>UqfL;]&7H4下 >nMZMh)bFѕ`̴tH"LqPT2ɤF,3-A_{_jg3%;{$RtSیr{446]]y\ɕeXqS\8Ky6b)S R )E,|nEl@d|w ?LSJM}\gRJ%}ۆC_4GV4dU*jq#Dv>h1Qv+!Ȥ(F e'9)U-V1C'.I>uL5 DAnj&wxY_v@Q߉lKTUU5V8Ac)12!Dcc˰|fQ~3I=sѡ X9\ {L&g! 045HsV-]_RMqӾo4fyjbWS'ص&TLto?'Ʉ&p;)qc^jD:*z:w^%3!ՄAiq'7=|;tUPtpJo$lTIkR/N;SCcfd7% &Hx5$*270zܦ 2\Lk];zMv =>$36Kb;Bnv qJ&4Ϳ;K%i(Ӏq Ǫ2<{&QJ9("RP#"p[ݤ0AX1 3=>pdz fRx0`#uMȻExxWbZH\e`$g"',?$@0?)px\zT Hn|L~A<`G hʡ/~1x*3\8zƖ$> ]Z\RnfqbQDܔ`HT<__K!kiդK(h̘S$*`yҩ`L2Ie N 6X _5/jrlcZ}\if`NIe?.JMuOnwƍn"4f 't_kn4==xOyOW ͙>ҝ3 jxu3&Q'}0JkndY{*c45Ue~ l|W%\:}JvW=\MyqId뮦Q8i;ӻvGo CZuŊgǥ:HgwtwB23;b Oݧ\ve2'S?$tJ;'G&uL2塕9ds} ^Jb8c@k/i"nR_%A;cụK&TJwdUv|c`A R#===T,%\r%\rNz|Ƌ|%Xb ۻ,* wDw@ E<;wҙ4 xԋ0H{=\r%\r%\ -]bK~"*}itО&M] 8ہSx>AYr$%\r%\r):<ҋ ҂(G2b짂V'QMׇi}H#}Yw5T*?H㴯18Ad7$2؅XE\¶IgZ%\r%\rOzzzxϾw0RGjfLMli2q̩f1jCIy3NZtB9A34Va.s\01>e۔K%ZAK.K.<{8X~XX0F컊dYNִX8ɭ / Kòk}]l`(^ӝAN?.^{1c&Ӧ cNoƺuYjKXxӦ(CC< ֬YSww\{&^8 %Jvg<E:v=N怩;ڦ`3:Q/cJzMvV\rulmai [h-gYFs{qݵ6JV= Rj0 _)R6b,/ߣqXVN݄}^Oo|,n^" z-a~oe9yYܱa'5']ݜ|I>EZP(288{ Xa=Z)|WW;>^kv>kOΝƍjKXw^+2Q5&G] E+ (f~ʀ{Fie,eCUSȑp@n{:?{!^;z!UVsi,z9(3AHTR"2vW:@$O4J!de"϶JUCg|xߵj(3q'a4` UCiS_BjFGG&.N>$J"ccL"r)pW1>>NZ\.O q&-PEPT;;2Q͋z*;qܸg[5r*;l m6ͳK}1AQ;gEml.WbJE IDATS:|3M?nū>~^`3}zE0 :Z}](P*Px sfQʰ S*3_G? :g_ZDRPgi vCZZ0uBɦ\^ q&@nFP0^kՖ\^ptT-Of2V`?{+ny|[(?O.<&~nf]eZ1լGӿ1FJݎX29ǷS70r7>wܸ^~21^ 0q)}\su*aY 1-P(xsq5Q' 2Gz2l_{o_y'U.TӆXo:l.]쎳GY~\vc%gj!Q;[qk-|ʘ}VBovP!H>,ݫX{r(LҌrjrye}kx/ody1/|Y\yǸxsǕ~}`Α~l|nv ;֭.g>΄S`ǿYl6sf>uE-XT{K8߼^l\0w\w1&J%Orh>h]eS)ӝ:3;SuMߝß_z=OCh+@O7eݾe:<Ą*28c~ kx6Z׿y`+iŴp看7#@+5K}xg>i,09n٥|ײXl6$OLPq ˦TZcvDoO1܅k?DJz;`asV۶%eЎq~zmp'F1]f@Rl\@dZnE RIꁦ+}2Q(b]}o^7/?yr ӖaMȺK Ї̻7a> &7}(F㺈*ND/ wn݇]<7;ǜ pwY=\n<̝CRu];6󤕣a9[.TsΦZzI7uH^Gka[Gh ]yǨE;Nbav U6JE#Y< Ϋ~bn &e+fj9V771>e Xjͼ翁3_|B8ko)_ό5D'#oxё;k͏~s/[j%<;ɻ~?ƪ@ wp.z/0 c ؟bg1K({w~Īc-;KyoM|?bu/u4zŷqVWnuY&y[ߛax{59㍧qTaw,z9ks}\wU)>`˿p|qɏmabpb* {Rj9}ޅ:ž-[*:w 3ȩ _ 0d[/l_j`;‚3bRu:|-Uz8͟擧`Qa%kJ/qu?}?6]v7K_8uFn+nS^ϻؗ^^ r#Vيϱ011q;h`b_t~ G-NQFY}eQ*e2Oy{;RPٹw]]|'l9Uj˹R>f\S7W}"vHj̏W3l]JzW#,ݷ<Y5~ lQ,PrUƷ-fDz/FS\#d]ǀ#.rA ^bU/HtGG> (<.aaW c>͚/~_OG[={N{.X;m`zoOZ5,c2td24ѡ;ҋ 211t֪PTem?+] -8z,~9{l8 o{p>yؽ9>zj/}no$A %Vd90GjYgYPEoU5b1/URfZa8_O`.{.K_N]>y,,ŃEnf{ꇬvHK p_`TLyk185Seϣ^͇'xw1+?O k[d/t5^צ_K݅D۲y@j; :T*Ùk:e)i9~ZeE-rFnGx)㜟*h ,f@X3dލFT#$Cg"qޕǸ+QW'FL(B5ZQ١MWGn.;e+-1ˣljļ{R[o9fYw)ʎ!KM=AGzw>󞶈AF4;zM,fX8ŒəFm\~ާ z|#2Y KS(gBi.ywJwqi[KG3棔W_KeXtu[XzQéQC?<]#_  N'?~f}ٿG{߃c,Tn|ɴE;z8b( >a{w1oڻRj궡hTx ô^ 6\k6j"N{/9dvWU=/-XLSmW`QbiZUX_7l:|23<-lxGM?짷o?sz6pìn QkNASVt|۪HamYݢLnY<{'Wc|oE EW#[wr񆴲)Y(JcMcpN _i.zYTs3۵l i>t/.zBP s E%^ނ[Bw+Vn5%bl׸gG/~8{Ypy|E=0Y[Z[7.'LG:|tQ}k7 x3R58ߣ$`oz 9~ZN?%s?ūB=..+ݹ-Fcbc e h"Ҿ"T|>QVWJ3:aב*ݮ C^wA\~oFWv&+awB?I5RgTed|RWթwIBF*,܃Sb&/ xqݘUk*d3h0I0QE_p / *`9mw(BGVP+t+o7{ ([w=?SgrqŃ.N~u+\8^N-Rwsgx>;^9ҫPqͣ0_"`7/9^<8UKoX1 t1꠯\{6둾i|Ò׽wd?|VӋ~T#| 5<\u('VHAec U,x:7~l6@)z m* n|\MUt9eřyk?~Ubzc>uhK82=LHNkgËg)AXszgR[SkޅyMc9bGq;-FmwX?oItTt=tl3Kڏ}rnexl 1ZlM|%\6^^&T^7h|g 'X* zw|<.O ׮wks@U{ETر^D ZkZNX4###PPw>9jW\wm)<Q"i A@BҷBu0r=aS*jTyZ$G=9?zt:~9c_fG!F5*K.<}$Ch s 5xOg^#SRܴplӲ]]ăYa#zgS1pwz\?(mVz{q] Z,K7wmw۶ٲesԃtyl/O-۶ټy3$0 PfsЉ䝯]V>|-lq8YHC_=G=3w.e^dּ^ m]&#$={z3MmPM,ݗdUJlx5ɾz1;W8__VֱCyѼnVrufSm54wqA3̭Wj%._ݺ`ƯJ>Vsk,=2$b=KYbeĄgn o`,`+^ʉs },v{{xE\z 6M@ ֦Vs[I F@=CJE۔lX舩P;̺@YPW]UĦwt8t\MGsD_.޹f˺ x-+렞6](8=ޜݹ̚UHkmWe;q8}ຸLj%und~E4?TڏCʜ窳06B1ĚN0K.OsQd{U€WK nG("y>R :`e!Y.CY:Pc&jh?X\?bRl۶3fP.=V]+,{#k\x`}l߾ӻ/O9+,Yr(}2q'&J16>֭vN8?:)0"M7q6(l\B>r *)hXoF7ZY9~.~{ga[F$?|8of׾' ֶ[ qqs)P~OY.i|M~Ԟ;/ָXZ!-<Ȋz]KktDJaM:36'mHvv|;W.k̾%~ 7Xp,2;xadA+0b+廧^@츙Yz;B`tyˇx["̴/XkXڴlrgo{cڪjK]}<^0|ΨH:Yfro??vI< \m.r+_s:;aڔq[[+xh{.<%I%!cp r2Lô$}*UXܝO n5qnj.܃{VVa;j5j=ˮ<9W=A`attafx{ddc Wt5vlFuq]TG=\ xG;[&s?6 -mX=j?mT\c6}fTʱ2уl~t%ל0 kW{sn-\Ѧ^vZmX/ٟʣjbpGs'.!MZk9V:ն-|i-Tk=^ՕW7 ' ؍[ZW/!juƫ^z X}5?<_٭^;E1L mf"u>v)_&R0sͣ6ʦ)GהFm/}\tAu]Ce:vVU۪m;kۦLZqwbTR(B~UrxOw1$u1Scdž^ עU [Wq?O{&$IneJaw>v\vl۲ڇ.\NpOαkv ]Ӯ\ǟZɊGy߭JgG*TyG_{|)nMuRފfetc~<:?L ?SZێ_˚|< J1tͬ)rK.00Nr'רs;s#WЯ%"󁽀EJ|`Џ 11G ucx`PMyDDSoʑ];P(qP Eƅ;g2$v +c-ΝMwwwS#86l"HFs,6B"ruT>c;%Fpj&L-K## RmV6kW*ugM娺, 3b ՚mSxm`' pXhd44YEVZ hm!*^h5TwG_ڽ|o|L22lAayCxIvʅʋ/m;ϣP5Z%=nk:3 IMPvAc괝ۖI )MFV˱Ъlrټ=5{>dk IDATfU[oDo.^J%u#i¶4vK=m5~2Q RBkoޱ1g/Vxݚa[ N=:<-MVs3]GSO)BQ,k:eoc9wTUbm&N ˶l:$Wmv.q[Mۖ)VeKa?|N>$f*iT'MW5maSMsn:9V9޵66[ bFoc ljoQItn~LM<]+\g^{"-W+7Xyr\ryF3džJ]fXM<< p[]{ξ0c૩Bl(:WDxI>ghh;SN<'=LP(V+/[95c+8h4" ~.5o_7?e\|~0U+WJ{|?ß Jc+ gf Ps)<U֟*8m\ryȇO|%]1rHP,JTLVJmu*| s2ygOl|c*ػb!;6v 8\Vryfv¶(\Y6sDJ+o"IjvDd]}2fr%\r%\rV}=^\r%\r%\ruIf3"3/i=r%\r%\r-vELPE M&c1r;d\r%\r%V.bWB5u3a^wμKg/٥9/jU+Wp>\r%\rH8Ecj5#5ʠ &\r%\r%\D#h?Ư/Y]V[\r%\r%\r婑(xo6|mb0InAi(?y\r%\r%\`[AϨ7ATퟷK$>TK.K.K.>op1<M6 9ZI4\r%\r%\ll,F5"-ގ ?yM` =\r%\r%\:1 I=yע=vmb9.;h]gr%\r%\reʢsGpcR{j&k ¬7mhr%\r%\r%'_v]&= |.A|.K.K.i&#b!v$$di`=vٟrK.K.K.vyObm@+H÷&*R ~K.K.K.QL4"{,/RV~O4>ыr%\r%\r%Vtҟ}\ry ˚C.OX2`z|m,ݓ߯A_{khc7mNa\K.;̃oƘ>xyțvY[{`}覉|d͏ݫGd߾1voX=uPU'SmH2{v\11^~^9 yhz6 ̘â=(Pݶ 6Rte0͎ª+~ɍ}rwg\q?r*?9(r~O2ti#U-8Es^)M`pŧ?ܺ\*o߯ Ս?ţJL_r^tq<"M#_7Ϝnw~vHx}o{cO9NITݲo? ~gqe&y^5և=?5yy|q>v2tW2{)(Omk:J=ڶS}ߢ\^}N6Fs1CjSs2 @>)FNN=i1=&VܳWyɩ2hm$&Wql^'f0o=k)͡A*kYӵ#.ukjÛY?G Ph, tк)}d};l\:y[?1l;|}a.f/s?K]cwh_=J0~ A:%ճ)WmWoOl#u)˘n5Ɲ=mJT(8w}Tٲnp ׿O{PMuPOR=S69ZM. Plw(:{GZOvdoΞoLmֿQDHMs:ʞ:` (Cԃ-Rbm̖'nܽyv(]EXDbHM+R/=t[鳘3Kb!:W/_p !}bcrnw&\fCgzgY@o.]ƒ{Ön}Wl&8עK[gKX[wtǽf)Ԝ,ğox=9`FVd?{UwTH$ћR(**+ʵE,pmخ~ xX." %@HzLdf2)X='c:Otb!=Ȕۅf<f*}/'OwX%g)MO綜 $g3{zZѶȦ70W2z ѻ9 Yʓ.CO^G^عc,~Ly7n a&,}g(҇ˣWF%K&sNyooRxΗ9~TVBIKaDҹv6lH}_Wb KhMng|(WoLHl#,r9{Vᓥ? !CM4cs|ļ8aDRP<WJKo0_1.H-7[ȗ=yᾣ*1#c N$."I'@1^Ε]b*u7/Ó/@[݀&w|!ϽV*}[w梫w&l8-ֹG͊hB%O,jrˮ{Vd{jb`)X+pt>ʤƪkW&.ԅx'WX#jAt.fTfRwlY)-Ւ{8G+#?ZKȩXJ{ uK 5Q]u "'-w|́ݧ&([sGlF"*º0 3^?nВ]r:ի7*4"Q tP dŶj:^ĥ-Q YNېDc2+@=+׈H~ZFy^Z1 ~;N'=b2C_S nSbˊOi##y{U+2&#Oֻbb1cu?HjDYY|7t&C=k PǡP6[ojOT%"P~W6C?0kӚGD+WQs7EQ#cbB̝v~X5:Off \NdukfnvXIO"e[Rb$I+S4\R&.s0j)޴>M\FҿR'۷5LL|jWSARp ڡxg"ڊbJthq7, "ZEYӧg9[i`_)B qC|Oy.W's,BRvwF&k?_&{ܗ",bGA%nQ^?$IwuS1zz%I)<,^Ͻш3mP3$Ч]hay{A'r} hlyg]y[s~6r!R=аh7&.qz͝)< I>ǠwL}jG ]f66ж0SLQ=Ҏ3kv]=0Yi9岖Nb\<˙RI=ƓǽYREy?03@ZCIS JD)pVE|4a:-"(ł*8eArRVV뵐eZ 4>Ūy lJ0p6-6l.b[!= -ET8j)=wy)mZ"o/ߝ˥tO[M^RǓ֣x9ޱUr\FqiOӇFֻ?7CDMwrRmls3<9QKQ*&5u9=ORHe(^ ?ɂeD cX#j铜rn(e|GrbG<íStI|N?yTl8O5cK/`iF6oaO_/Tr23HF#JmPjrLЖZ7ZY=of6>DM|lCԋnF|vnؒړ=Sz dU:Nq҈EF`CcPi#|VYiVFc4 Ǔ%؈A.1̩ϙφ,g7p #yDdڸE Fik,s-=9i &!Djpͧo\̬W_xJ[dlӻu^GTv0#ee%, Rn8Hp#TG l2prjGz;JFDx7U2i,~7 LKoYV0fdfM{].fAiN6Rw㽟 .T78fS=._ceϏxg]Yzxljbڑ5wsΒddBӢ'E?}3v Zbs/0el2g~Z–Rw55`*v $ g4$@FT;'O'Kc3v ?WwKFYvgcML;F7&SjLQK 7Bl/#Ah%+fŚRR^HaS_mkJm Cay/N&S^zL,F',*)>]$BĶ;ѵrZ]*P&,2\M*%97E["pr]WߑЩpYNiLRB*):]DvMH EVŚ]D!"X 2NNb +)c5]"2 ,پٸ IDATa*q #?2ct]:tcH\ʱZ:9yqΧ3gNgrh;;-ʃ'[4|~2G wf "v]β-%$ }1v<;(ʊoXD6;cMזr$\ԆrkL/xB9|t]吝A"8ٖi|AvDh.c'2iAz7-w@Rtl~(ΌpEfL%ƟFb%e,Yv/CѦ&=Y Y7 ]9%R}rϓ7SǭrNI)~󫟍K_cM{cWG&4~q8^6ҕ ʍ`>C! #Hהӡ2fpO,+)`1)lϼyml!wcl5Q_uD|}?=Z:ڟd@R?2ktԍX9ІA}cߗqB-=je|A$=Pk-г?ܗx^WΩ BS:ִ]xڢ|~>߱ϣ#,&.!I"#sȪ[}vRiCimt(ص)tԇd,+Du(Zl=6@CpvĦ+n)r].Gl=@MpLKAd f= !D.`=ثVB>V`/t$׼[VQ7=:H@j~LB8X5fF$R:^!Pyτ)0ydç+?o,ߕX3G%[/thRyHF\XPvdSis}cOǨ;`ddeʧGw Cd8Ҿx& ELxb}2"ևE"AwҽC4%꩟{Nk?ɟ1B?_b;\)KNqQ3? O$NѰ9zo,*[vZ-}xʼnǃ1d<-/o~k$hJFӍx!4cfl)wBDJn WΫ_ .R^|ˬw=11ufu-)vlwAsqz2#X f-B\?ZYvE؃jo[lNH{ !EU!T!Dk HBa hl,ɲ", `ml ?sTwbЪ\/ Y1m,*m0@(26K%PC]sQl\U"֣ռ [TUT{"YHhA4T*6 s@t zKjdv\BBATQ^fBFBZAyۨ "$L,P6Q^VRWC0zI\ųV"Sjnl =f0:'R@ӬD)[NjwLմ'EA1`COL1y#F 㞾L^GNONNAѠV$a# bPQCswΖ}-~ xIYzWTRY\A**Vj2TW`1 }5t &(?Soke)g2vsƒuHrBsA wcGBt( BiTqQN]O%RsZa Scg=[H"@ˣ+:_i*+U[d?3': 69@ ?^7QKSFݶ=t }5M t4a,73Kx|7ǹ?tVu;='h$IuS 㱚1UWc@!䌛ql];&T lj{wWYq$U;W1ڽ \VDpX( P" ɓ.@Dmwge%}g ~G,Ŋ,#;q4O;y L3ߙ1Tw7VJ8MZrre-;u23ֱ|F;_kyLQ(1㭍E( WG?p幥&N_"5 3ͨ7xoKEf&Ȳb*ud W~oneCf+cKvl!s`zV6<|/7Gi3jE;th}Lxv3s = #:1PER`:==8Ë^㣟vt`cVhX3䦅M"35X2xa9\˩~K^*l}I^_sjHڴeW1(+\Ċ0%(7sK;r_}W6D%2zbv綾3k{%cpϑo[O>p^x#X.gEQ#^V$I X$2讧ȹIR.K=((8Ηy)2rwK\3zI6RvlgٳmC̩NYFr2E&/KuMA9^=C+IԖ5H )36 WmMd)|iԸjx_|SddexK}K'1 HEA68)FDGI{FqW !$-ѭtP^# +[7g,z~0&K6;h- Λx~Ǎ~Am^ ;Qh7YA5e=Ƽ,6V ]dXG2!޸=ge|0'L((1EװiO1F@b˘8aTO6qZUi.d7~]}7ĥ~b9֯f1o&V*rp[U5j 6N_z>fcPŶR~/&| ™s{6n>~䯘e8xֆ6}G_USR 0{{NE/-t4ʮ3cƓcYO\)uDg瀞xjnk]l ^%3@ҧyWM!eWmd.x3_ZCFFȌw^]+΅K7-Mok;ɽ9nd;͚ݢA<Vwfk_jm8C1ix9?vc{h/kOtbhZ͞'협)aDfew7s40Rr Eg# }I 5zsbwi*y\毘ǼƊ'\#a[e[bshԵ\#J/SZ2K}͎= rk:mF mEaah&3&QmTՋ\uNnqq!T $dǍx^\.";nJخ *CQnM5sf̝䍸[F@̞ o%d1eL+tBEh b"C%*Yq1>zܸrS{E5h4jɨkB;BRv _xVO:ꫯ lLAإn}Q^D/MF@((-J/}ƠjԸjxCt\v?uL(p}2o嶏hK$#N^[_K2h !ўIh*(G>ϭ;,h/?u"[6+gZsI޿ Xi43<3L+MV2v1b*~Kqwv 4r0Sv1#WSc7EQùmB;mgطsxʋ+ u}zo}C󭶛Z2F :No^D3I<{M +[sԎJ}:FGx6yw^>bd!;ԗ#U#ޗ?hEl R6iV~~4y]H } xw^.kIZOHD JζTHFSKQێ`t9P`ʶ7E^3qbHO[b'&5ɳ jAU9_H;۬\̈$lg"s.!kݐ}:3cJvKkp^5.>nk۬FJE3|0]\6;`i2w141UyeI/HLNf᳍/zKFZոq`@;JS/G&[tf)+q=TGE:M"-+0Ԣ5nHNi8/&Cs3&}m)[Y ٞt[vrT*ۘ!j|[v6Vvjx6]::t%Ru :oܑ\97:Zo-h oz\ъhsh:|{sC?7?5cCyuNu;l#Jd‘22((ްًװX U3XK.udtO8XJp"S2!&v-ž<.O95838BNd(Y)jFJFDx7U2i DzyCCh<4H Jl 7ih ,Ż|1#dqTzajln? 7vi?'RdpaTF>Cԏ OV#zѣtCV"Rd 21}4+BԾ Ne2^ʱ2z1dŀW7}o c/0e취# *5j6jUm`k2^}c1 qՕ?Y|'##[icܐip0a=iP<{7P⪖:jv󅋾(Vd^FBbHxɚ6ҠwolMw_&ˌ,KJS Nm#I ׵I ~`:w%_K]<9MnS."IHNvfM?-If*4D`c~!Ѻ-J@!0U]P>);HU{Scƞۺ|[^w)cMxYxs;5c_tNQTs` jШmT9[hTY}zM-4zmy ^[]+I*Ir)s˲ӟo6ǟ3T% luuׄD>I/SF+RZq.Vٚ8}ێcZ, 5V O 11/>B@Ae9!<ηmcCm@EK=vY9$$LLq*mW/~9=4-~hkTV&Mh 41e$QG0M|^0d ڵg| )(h˾|WpzWl.r]!( HK?o%Fa_.\]_}K}%&dfeمN+NverbIKX0㛝XJؾI jVhǛ1WVӗNy%ݭEQj_e!-$@A%5M#=[3 ]A0a2y]3Xp`Bޞۘd=>$@(s÷eMk2I 9st7+ֳv>W3"8#zD*+o&DѾO.QsB/ѩ k&ZBhr]ځf#B"8 V.}[5qZ;BDDF%oJ.lDŞUu~1z@/iH|Z: Flfޞ[ATs'ե1dV~sZ:?҆ !o2#*9K0a ):"N=9ʀ(4Sj}7*My$nl@MFee020hƍoigs7bL;?"+%φ=r}!nYOmdf )gٽ kMV&e1b${͊#ju__q+#ȗS&st%\W*r$}1:fڞL3 'AC/7ۿ+ΒBm˘]&}\?u\ovh@\ʾp.O TZC\.Qq0"vy;'^!,W߹ݓk=$|5Ƽp:*@RF+(=ёG!穏,Dn=؎Ȇ$&$ Er$$5:7͊lCQ3%^}(ز]g' Z.c7 ѫNu ~IC\aHDhq$J5{+_@VԄFRy_|xPТטkx+YUl}&yw[8i,(:(r!B0h?ﰶ[BR@Ԍ/a s$ o>f@OL!ߍ9P2:|B1mc֑z<'2ژL. 05$ [>`H#2!-u륗WF 4GCQ"ˍP:p#ߜ͢RE܈FX|~Тi+?2-XioZ6M] ucၙ3fӌNp-v |]L(t Urۯ"[R"86yů Ej'fdDL|Җ,UފjtD1=%M@p'Y1חZ@N='ĞČkEfx{>7$=IYĮ_ΌWw2:0q\=ڮTt;,/?+Y1Z!8*M;(  !4^"+IBT" Hb0EBHVYVY"۰2gEՐ[OI|ZP7C7H\TLItM:ɺ9xl+Z瘬}Ӹ=i>8R9'OTǦ%Gfߦ!{LHՆwx8-G1t\pw}F 'σe6.^ 9>>8t :L7 )&*S>[ >2g<}M#pqa29tp?;5Chn[J:^m,7MgR(T!  IDATms! '=ɺ hE^a="Gnm\zE+W߃PUr&vBXP0z:=zFVAR)*IȒ@(A(V 0Ee'=9dYw9YFX-5.$!Z),6d,s. P w t MEt oΔh%r9e5֔Cei!WSQf]՚wSB1K&vVQ TGwX8lcIEce*B](fR2sY,1ؔ_ h@If?tl'E]ˡ-rk >zNkc<N{.5CZ)4 9y#E"6u3ΨSFPJ9ۊmNJZj$d6γGVAv(>~ԅc5p:^r-sfihe:{{4L[ϒZtĤwqaq{*f>L?2 $r'ʿ@F"#Կ}HgyTj]B r|pW *I 3E_fa:hA" gt݌""3Uȗ9=mP0>C^GtBRzm{zm!Yzl<8rRCtnnA:rshԲ  $_Ogr<*p تK(ÉذiRj{Csd^6m+ƾ4//*P'2꥙ P7?^c ךwyTtIj|F8Be*jR95_{nva?ߟ;nte<-lZ: hv\ު g36!$\ɠD ⏁DL-l1w9_ֆ/Cx)S-/p*4* gxjX"ZXG* (.\2#}(_)nsp0O}UYI:_>^Z]ccա$woK<2"?NAh-oL]޴6PԤ}']HH ¦@p"͔;{sdU#E1s MdYEG?^."#΀V6`YՂfs/4OyO(ܜm(6~W>;Q 0!sD4 1&aBXeR4!D("LA+ (2VY,[9:zp@6QQe`p{zF&$Fr"la50ԗ_H=Z6%"ج&F,HAuZ_\Mu^F(X*J(H0B (g{胂:ګfmk ਣ6rM2J@C63MܳBm:RCep9 !0{2nA1ۙ>},O=2dp 8x#y[Ve%[ض= 57cpdi4T*E$dQ P(ܲl35Ye3x5LgU<2g05R,M "[0UZj U]0qֽPٌŒkT+c7K^7[\m82>Vn~6І>^^i~5y+6qRAˀodLXO-̄'^5>rRh3wM\}A|P z|:mF mEaah&~E^gxҹp֍מzN[We+Cχy}b2{ջ9Zj\OmI٪Q.$DdC=Oz# a9gN[ۑ)߿S\CNŕǐ\yOBs=<96`@>*dwTzu}ƺUpcDQ\bz_k"4ٰ)Ih-'غDd\b;xkY!L+1ym >yo/WH BE, Rfּv}蚠A`\3nG孈U Ix9=Ӻ5^@{z [O12%$[KlWrU !=P֤蠲m,\YDk^l)!IIuxRRjGԙ>]L[Zr/cXR cΘKV;% _CZ34c3WQ]i#Tht]\6:ۖjcSl*(s44ҵM_rQhѴ[b<^4~tKzw_3<1(@rb+Y Gnu;K&{C*/ڍwlgɇ)qOB8mp N1 nVu^O6x<`~+K/\ F+&T Apq̩Ğgr%CdtJAW3ҥP2$I nr FLdͼ"p &/f5>VBA243V@2 G% ĞŎ!vOf.u('H~\3A'+ٯFn '1K*zD(m:}3ʤ1{yiC#V2^ WEHN}Mp髺Im0QC.#kSigӻY 8F~˗_A#oՕل65B}zۼI L 'T*ñ-Ci!V(5z\F}z$hJb}z]O!-ub{Xq)jK|ͱniRFAjUΚ`%^vjL|m6LΟffM]^w C\VǡoK!@G^"ۻgi<<֧yld"ZŪ)'5Zdf.gش2oIo2Y{3AiLbdnjG ǐoS{Ӿb >M7;NG` |NjUq'{۹$IRqDeBrR@pI2Ϫ@ ̅ay&HiG-0טZrAL&I !GNP}bO?{q5w{DJ"jYKl+Iqyqkl5Kbj(QlIS$@ :8Id8_}#bwovfnv7>X/Ȯ0inUPDqq st2 ו$q'em)5D; ضj&OL*'3A|w+ZbP+]C6.%2ʝG1(Xz/j}+X[.*_p=/=+qdOd.ΉDqPs֒{=yO3wU )@Nd\UrǼ.*k݃A*>{Gw~#{'԰KS EB-E\,6^;[F#}pRsn4 WGK)+U@%P 4tK)Rؚi´mLi,˦_4>cѸtnq7;SL9r!gl{v#cpy_bmȗA۠P( U8SHu{ܤ8]N\R @4K)@= K)"Dž!-lDݒ)ưGbW.BNNiDpC7L.7\r)dU $ۘt_(wOp7/UEq] ߡ[~M~ڠP( 5B׵qBE(K|#\ӣ6q&5:ǖʍBP(xn#hk0/DʕAw)e fXy{;Ҿ8#]tt F1e̴{7GZc'*'b9Od0iY90w睷oZ۰_ S7[J4!oCqy_7re7~ BV]Xjñѐ(;nF"Qm hYW{` ;}F6N}O<ܿ̕`dxrY˜ruwB5~{PJ-dRy͜<ɔO`Sm]A ,,eNjڹg:SWsL16yl?H6Fj>cvUFصAqvϛx.dљ7Y [, BP(Xr2-R#GQ(4kE)k8+C4MY=#ѫz-hȶbWq&7SG`) 'fa&@`l!hx r깤z4Gؾu}ylaJGV,'is\m8KuyP[Vp[{xWa˪Rm6}X죥n{wlǓiBP( "9 s%h#f1I=9\NqQm#1)Ի9s/nBoIx 1C/6q]4n*3BJrIȫy82 (N'3;Tcm9 uzV*#?;X^*i>tN{ ?8s)$;n'_tG*BP(e 񶏥Hjj#;"W5aLJ㾇?.ml˺8rRbJ}='oMIyj0~;i1?4Ctpmq`XѥI(B+lY\60deBc!`]L; 7߼BP( E ha[ɵ8 O\F3A3=mȿ3+]kĔ%V0nٖAr\ʋ\viXz">'G;ƶ#5Xtӛg a?};h"Hnc"'M BP(W T2mkCg_GB-⚛l7\>C_ wiq2:N@(9-n Ɖʱѳ1i>}gD2G)Iqhf/ݝ]-$`IgWOn?Q ݛO|s`h;{|CVwBP( 5ZB`%g>>c$ 10k Hu`!h3ڕY޳g&]lmKthCu&P( B1qE>&bZD|%E4hLXɸn3a?EpH߃8 V7vF]ĕS;lkqv IDAT5 BP(IwMKA8VA)$.cf7x7YX{Zj* BP(!u1"j"J/O`w۶Gmf17xK՘S( BP\xUɉ'=ZâaRWP( BP}[E( 1]V#eoLH.@&fs` P( BP\x1M6#'UK,Ɠ {+P( B9q@~'-䥔CNduȠW BP(]ㄈ$m[,B|\+mQ *BP( BO?CWc#cm,NU6RnP( BшcZY h>H >PmBWӸu6BP( m14d 4+ ^X_/$9ш=Ί*$_ܤ9.4 BP(7ɪ HKn7BlplI!\;H|dSU3꩹!'-={)^ʙ8} .( BP@]kab\57T  *O o:kV%Hg;gNԱ{ NN[ʙxqv1]VᓓCD--k}q8X^M+}2=KGy0b\̾EeǴBP( "`1k}.7i^UZd` h<»U :L#3݇W.bt~gAmFOˁ?ϥ^ɜ3 {Ù+Q۟eS[<#\`v~e&o arxBj.`VCiٿچv.ϓ1e5dc8yy͜dJfym_#]A@O!b2Lǀv}h4dQYL'Y{%N`s)rAϘei;^˾ڀ;- ^<M\8|EL;?\>gBޔ%3 BP( "DPU;ZauU7F= '-P+Șq;ÙWXq9^YO:0DțTqmr3u0S#0i߿M'L[t'+%붱cV\2rs+)sX5< mR!Ex)kalaZ:tp/S2{|M(݋NonRk3*XubJf^~g/ccY:]|-AaD?Lغ׬7) .ҕp94P(SĐ P(ѓ4=b1Z$dEƘb}tE?pR^녕6Ba"`I4х@!BȪPę^e۝m[YOVNtC̯4mAKhixͽL$ǒŻwsɕDj%i[Bn=yM:MK|y`٠@(H(4P|?{bgKK[J' jZv+vv/ke",ipw~'$dr"Rɐ!ZD^#{ x|P4!hq: E{X!!oB  A6jƕ\|ѡnl +jaI("a&YG.K ^=B$]giR9tXг1~ux<}Al\ɝ=RCjs LӤ^8qGVo;L'.B@َw`QE.N =e[2,Q?xzh93[r/ eL8ƢN-b倦>Q(nTl/"O?G'-ot:GXX˕WD} QRhQ>$ kQ|x!@#xY˴tQ[PN)R==4;m"Cm蔬EΨ>hhfWuL͆9<<f/y-[c,bҍ>No~]BbZxRbM$S=oeܼ5 U@aĈ[q־MG9TuUzMaDLHUPh"*g!"&$=p8Xl9- a-#{TܹS}}̇uur;>k6,ӈаI*E_% a\*șJuʯ9q  dϮ)CBK'8#Aɸ)I@twN'Y>|褧h^͝zӠO`*<ϼĎ-nR%-(;tq.̜LB E=kV4W0gD:/_{޲9<5!"zD;>bt˰7՞F:-pW?|n%%p(4=ɒQȖMl*Ƚ b{'l+8d^N%a%?ufGSѓ)#ly20vI?Hc/x~?zxF=@Ed._C"m{S54< pS:pJ=<-e8Cb¶,usV^*'PK)gXa. &t'xȩ  f@OVOg?Ѝ:vtVfdM[箍mǒ 3 7U~i@܇,R*sߔicz !X~3RuXnz:ACNcmc Jof&=s?{ ;yHv,DHYQ;nyӿ/ZDF "iN73*K(+e/n]p$k˷Ok}or)yFo+|mʫh dk q}ilȧYENa!9p; >|+K:& Iӱ@ldgYNLJa_24E>-#AHaɟP@;_]9ޏN*dlS@J^IoaYҴĉvƁGqh]Gлw!R GqSX#-Z~4fX:Cwki&Agor:/Hvr aYx3`e=G/'Q=b`{ "^MwqZH%B3i=65F>u @EN>M. `{^_W6̟7O|ixs G泗ߙMv`qd戱|wf)Ct]lnycgbʼn#qN}{O&%)GQ,MEr: ;@2~ Ҹ#Qg;G{3b[ 49%._|G14pCV} &l'SX|mTB(c,ˢy˳KKhYx$ΜCY?k"V%|9Ӻy*$(3<&N&/օE?>%5q%,~|HéV?lxgC|E|QuƮ `Pst u뗠 )h=OpѶo/nSYJUJb(Kx }ʙĪS9_K a?< ,7y$őͿMpfWt೏l]lo};>F.?_hBK-5HFɿW_?¿zYy|gONG\x[k6ފ-kȪf䃷jDrvGG뿸c/*r LeV:ZY%Șk<1>ggƇjn4/\ȭ_}<5|=|1o{Z-fl჋(qGV7Ƿ<3|_){?dbxcy2c$I%}m/v\]Ý ~S+)Jsj <Αs|J&,CcMoVߑn{s.r%w" p-~JuJɣ+8v?gAydhK4x'b//פ38i;]8ِsx}7X2w_1C&2dp Al? EZliH[2-AJ(n^d3/mqQ MajI>o8=xô|0tuw+F1̇lC7q5%dWPJ@GSv=NC;^0|3x{(Խٸ q3ړ0sYw6q9#! $tHnccF>v=Kf#,u&46J:'4>F+?W&ER&T>%f-["='[3Ʒmh;xf6q<}qh&O88KF#>a@l K4zIr8 b^DÂ2pw%7e-lAE$\[U~O$b& DuFsW?7M1&ru9_Sƺ5cx}4uɚy;a7^XTImo7Sts®-*J'Fews29]̩"OkAd84v_UYNe9|ewc=kᵺi`β#k6ʟ/=Ը52o ;EdX]߽C龋UU..ԽGuf}t)NHc 2ɹ v}!/)>(Jd1g^Oi&d;%đG,)`ay6T"MZ$g/"$/IJOOy6~uH0mBDBi,j>0M* / IDATfKR t /K='#{ŌbUxRtZN~amKE~W*-MCoh<_mݓNH2D@Όm3 f}g!.kQh6=y&M Ue2euQ'<`@&nG">c|O |v^yn{R-߻ɊgPx |I"Y81uә*vt <[>5~4/s 3~?ǾA~v.4g0i ]DՃ%gbܞ妟!n8WB[Gv_'>|iAƘo_#VU]RJx7v d Bqc/H+;˃p4&uۚ!Bt@8 Bv۶?aIbcfZJtC=>SV,Yn8ǻqNN8glf6*{&gbSilHH/&s|f.ވ'3˥:L09ge688Yh5^MpiΟ;c?N0IJ,4]p`:a:^~ ۅpbr 0Jtob$oͭl N8+4ęĪ ;hf rYNi]W8&x%lMzqYϣ$9JZc΋*A\Is\Ȟ˅#'ϝx/|MuÑe,]WP\7j 33\UgaI1=޶Aٳ4i]00p aC7@@Kk ~_\)n*4tR -zX߈Ɉf[=ʛϾi5wJ]8O$`;5䤧^b:oJ f9ӑsdy;mϱl`PkT ʙ4}*ɇKuk[n44,i}2Tg* ˴ +~HIO~ %d޼[ʢ M^2~apC̳I}XrrQ܌(ח0TXgz+ "q*_h0zW*0e9%c)Wr"e). )mp`Mxqm `ʉDyy{/;^lwZg?ZFH߿f co73'!*/CWqm辈l8ƶmLbǎW|ά##~|Aw!,Q:;hH6C#n$ߛkɺ̱͹/ʑ\AZӸg[VsYY1}gEcl?R{,l#[WClm+(AS>TUxO݋JS1DKcW.[H=)Y=3G_K *Ir} -' ;$u]ukU)W6BCp(E,I 8_x$n/$ȶMcboBJ/mFok"m>};ZǴDi,LĔ Dp^x֗!fx鎚RѰuuE ?=FK7>f-a}y]– |ɴEX-9wp+onۆεL8v7{&e_t%-_PAP(+U'o K`.%aEdbsu~𲏳G*fRlXR̼ g (d_UТsL VòcƘEpXYXwKYYVR H-474 rk!t =pp9 #ޫ9 c2YeTQmqRIv^)s/"_렱?"a Ӷ0C/6qx.pϏvuTQEAY`sv&la(}̾ rHi"egO#jZ;Mk_/5 R^pQMEjN *jBP(DzJ=X<63ľ nusEm`IlS26_YZB!AnEl˄,#ccԥKb! fIg~j7O%y wn6e%X\8GJ3l!ti!-~\sOa;i1?4CG ;!l\g\Xd:)( ٲN4i]Âmm d^i#;^y %X3oTBP(TRJtLBqoH*p11R]'BDRS!{cm=EմVdl=1Q͈! [vqvz!%丂 0&IoH M$J9f~u >'GƬhm@ϭ'_QXY@X:ciQTM(s]rj wVFZ 57M۶oY PI MA\nCZ}XYHی+mY H{DjP[֖lIr$8qVq3^I/mM{KӴI4mooGN83G˖,ђ(ڒ5Aqxƹ  ys9{˯F?Sb.9C݊5oʁW6#qS16&z҇`}-lݳMl =3>Ȓf7VN}vFd|u)$nFL}# E2~iNXX+w]5G? 2͕eLZzm 4N|+> Xa'w8V@z |`5F<DGͷEDJI4SLmIIi).+MhFlIs#]|zx]|#K(nehfY@*YB){^sǗ_?1+[tr'4[Q:א؏1w0/u"%bs6'ޗrTı%h ;[~o_~Ӵle/'/-вw+^"S;2UϝsH:7k{H s8W;2 e^y0Ҽ -(sw0Zt]WQ[u]w~M²Vp{+$jqŕ<̼&R{2ɣчZ~졞-;5:O4kMB}2Bhpsk(Gi'&Dp@xv4@ :ANP$V$1Κ}Eh/k 2`Y ڞ^'`(o8 :DQ\ApdZ#z J=nx6{z(/;+CAc>zm5M:l.h>#~>ʧ[|wWƲ “[sf iI m~nBŴxxKoeodνU¹-%'O?c-Sqm?¡>7Q:/~>k n]\6&BD9W?dZ@OOx_>h6GR0Kkq.{y Ot_z8a}+ ־|Nmoʗ6_p'c@٤?F7'UAfo|Ϊ@ L-F'}$KW?fz:W|vu%qQKz*㱵&&ׂE}MM>)=2smăUz]_ wfXqpB;pKGgc֗趿gVV`e!z2I1Ηo?cֆGsp q('^H\_ W}# ۖ4Fƭ2u&gf=f, VzII4&7ƕƨcEBD-=t3eaO"H$T3?Dm|[_` u B+(0ƠvJ/ǒ؜9+g 4*3Y0{^m-r}sn[:bnWw{2$*G/5U6~C{ΖݗkW::86#%>3frZ{13\Ukdarb;zO7+ǖQf_{k<,#s ﳕLK>lpw/#:-Q2?fj 9K /en8=DM?χO),ŊIVqf-{Vf I.0{8-u~D5?m ?svġ% (_'YȲ}=인޶_VTG98Yȫ]ws|̂5Vͬ« _>F4FJM\cskp|aa)ڑUE!΅&-z&(<~NfnȻ3QmKNB2xc2iB7Y+ѹU #^7a5=[AR$TWmwFA Wڭ IDAT;ChdOAAEL25Bg8x\3(5,<_+B]Xy޵mޞKk{bep!?$bm:p4pkY:h.5yUFu׏~jK] *nIi{6VTкj:E^z~XXvUd;v}brhW7TMћ f5ϲֽq`1\G+ht8 aI:c<]>yvG껛3 9U5&wC;O2b;)*sDi9Dm; un䮇ֱm2M[N!t8"TR_a(3y09=MZ qy#S!\ϙf41S>Ѩ1ϻ*$cy`0ۍy!; MY7Ak9ںѐ,0}}=wu ЁN.b2|u:ȶQZ~oVu*]Fc^ɯu g,e۫rzAYpb]ֵ<ɿx;i^5[_G´_HEYgg \)OԘ;hƯY|z;|?O,29gE~mZ_!no`p6+gz) ]}-e_ {Lꚪ(r9||B[䮯6/= N{;w/h<ϱ!%7I+orq̘e^c/;>VO=X߈s k=u'CeNt>9Y5xϿ y3<5/w7IVn3H 4Ö~vA7#Lؖ5e%(n橭\<p\ +9eY\Mi=&2iV޲b8M1+R\qj?ƶcRL"?Γo> 6Z.B/gfc'Xx{+@ڸ}ݻ[{Qy$B6O;+sۣ{VU5\=]m|jiR9z?^>`*ub R-AO- z)z164lv3Ku;Y~z^]yW~"qUqۇw|?KWoO|~U.- ZO|kSMbrqN>)XzyyqKc jw>?瀠~.?޾,~Ҏis8^˻{ۼW?}w&z*3y`3m ,^09$sS1 _76%"sʕƲ]^?e۠¼+Fgy O.b#BJ !\Bf!dP%V,,G[XmŭyC(D"aN<~7MsPZZ$p^oGT(nn~G xJsC;oGW_7s۟) 4Mg/|"O! ^Ítik) CRp 8@&HLjtKM:DBv(.)+%Ο?K4ximk8:LP1ʋs _dߣKɣ3\ﱆcs=LVGT)%skϴ͘Hg4o!oMpfk|f)̞N̎}vn2J.NٓVvMFAMm ۶pW(gGc;ory$lF '9_ÈBqes-'.qH)yU`I4޺Y,c!>F [7V5KdF\vCaqKM_&a-kYVfīl9l)>< m*(aUQ?p SX ko7w2y^IX󨇈rE6,[ρ#/9MԔW1iB˓vH6Uk[LӾxc*U1 !*(z@bGmbGNÚ>94g,*&f1jBP(78qwGĿ c@$I+x,$$m"ZnxYQA!CV8arfϟBύOIt4C3~3^TCA?~(_a @u,Q@ɋ4c-åZ*RnDp3֞viE56}݃Ha:.]@ wBP(oM*}[d3 >cvq y!Ĩ,92?n'DϹ"@Twj/+gR 3RRGsS*}!'@>}4}ϵrԦHO[j̧ x :kfP ul"#>pgd}*t aLdA-̟Ҩer~{3/1 !zB@"ڌsJxff~-fZW 3ЩoD.^BP(ok_JH{]v\%ľpRfG_S#\ .<$C:`LKXx* $nZ7m+y͍Y&G唢Xpr^vhiuCIkr/3;֓G{?u^/1|uXw'v^}zDm ;].FVM t ӖCJW>uSʑ/ ^f{^cT5@P( !U=2r_|L ϵ9!*hBLZMӪR)pَ9-,`Qbuw\_W))c oq1Ft@"F\J$:$lU5h"^(6W!0AR[9Xn]4B7Ҷ0AQ{t{>H9-?Zxp>W=bitO!ނvKƊxi$f$~D"aN< + ?!cѓwB BP(oM&W2#.ޅVSM)ȑyLJp{sq)I8EDJ̈h|:)U'mOOAfۖj>VĴu`IaЋpK޶:QP`H;.B 2Zc} BP(7R&NL+g~5ȥ"dTqB DMyf. N _-U%r `F\ӨӇyB0&a/5R(c.PFIeT42oVgsv }J+ BPzR yEREvb7#!aWBjHݹN.34 G%Z Mf?OwRs=jf` %%H/6<ɿoI; 3x1#!5aE,O). °%X;\hsC=8هF 4M AUs)Ð%ڗ8`4_P( BFRY~ג>"`_ɗpţ8a\%:84{:b]%XD,}ÚޝXDߍ@bGm$Z^M|KbYc#GuM4tM0ԌBxKw{:NOD>oYM0:cԱpF?鼈kzH0\:l@+L?AdC .M FC6JdQ-~.#ZU[EiVAY> 5^p)) |U#v|? {{q7-L#?tH'BASbnryk wvx}}}DQ)7 n jkbV% M[|3 r}컑 u=7!?ˆ7q(y۫ХDCs`1sJxff~-fZW 3ЩoDͼ7ⶇ ̵pQ,:}JE_jc3J̜];eh^T={=- vnIݪ6JtydaIճ-c\xP8zWfS٬3P(ı#Gx"55ĻBPtx&=!v>9:&jkFVM t ӖH}/s/ێ؀Tƶ=}l= *dr]G%Jf~M;vLSJGC ,ys3|UmƅKuBP$4!&c-Hzf#\hml_Y{;^sPle=KLiRU xы\ ݉w!$&MX^4MS,BifBi&0ԃ`T>έ@vtwc.Yub>EHJDAcI 9ɴAUl@&SBP(޴8Hl&~ H~.ۈG&%A` dBq%xՖtEK RU IDATFܤ<զ2gj)A8{]X1 M9~|7UF+ MDEfL'|lR)o;A҅-A 7'I;pI; Nޣ8YBvEb7esb}tFZtF$+<&JsRFP(nLڄ72}59^yW(oAL;)9 ݇qY.M@S\E̛V0qpoely$y!>y;* MO ӯޟH5O"aK/(7-7]%lz>5mY^_0duqb GfҌJ,P 9k}FsBJE'CyBK;ƤmbH6P(7v'HW*WszF1+)-.s!lo`Q ǎl L"?ύ@/yRL.w\:v0j~ ͥNc2p|Ov@/VVͩA`3 E%)K] M ckR)PVHy$ zchkU*IתIazxV#?[Fiw+k_`ga#&E4b0;w˜}+w⸥EsѺx=+*$nc׶-}/-.,ϪxzNsdzI>4SP9y+tkNvcf 8"5~cX?YAD$Vl\FaaK;/@i,Ftwk\c /X{{͸^όRcM^T(G;iyt+- yx(nN>{D4W)qHZ!5\e4V %;s=!th}] TW߉1_l?pyٙӸ϶xb+*E4bll["#<6LŢAJA\<V >VPUYTQzWgqź@/8B-?y,Ez^YlrB&;=|97ea9zq-%}CxodJ4A6>"qWѤ"(] g~ Ș Bq=LJZpq7Mxߔab ̞NfMo9D&-H3`\O0#Im,Me!S,Oa׹<č˖JǑX.kѴμ̫E2caNd͝bJ 0LL@JԻBP,jstm$5*3ȳ[D[rfd]/9u1tuf?G_}mѴn/^!vw)1cv&X=ͅס 4VN_<ljܻF#C ]jLIK@I_elcHp)%#7WkMcQcCnG@v=,M:MG')n:C,Ȏ)p)X>™b/c.}R뛖V1qNmN%L*2b ț?c}۱j)%h+vIv BW(ø^LW']'0 OI%u6}L!ÔR7-{)SI4wgu&y|T`VrDLp]3-97uu桴bZ$ޓDyR|jfTbE½JzI?Rfr fE.!NE4=w)¡zT毝F[3ta.ibrQ %zȆ -6qv|^L.{PՐMqۊʻ|~b),]¾_@ǖkPءxsRY Xt{a C>E櫡T0]8[tKY &cV|gYs&="f-`mc9a.:z악KK0isKc4%@DLgd~u2 a;8m5+.Ԉ]{OA!Pz ]b!Nh~f{2D8lw}OGn>LZ)_K2JC_ld$w'0ͨ}fwna> ]?/hXFqg9q_\!C \ ^WfԵi  LiHO>Wb3wrh3>#v^2pE5^˜\In"#fM/ficX!Z*zܱ϶5K&s0s:fMҡts\&{SbHd2ϋ][yY3  NmgVBgBPyzs:hh#["y* Qy"rt}Cձ-ysePB:a.E _ Sg/bx:9Wڙ>zQ󖲰9>N:6'wNJwM^ۗH^z ͹ ӽe:N?bҬ;{]eJ&1OqrtQ2i+Nځv"=շ2ZQ"2);ȹt9`$Zu52ҋ؀:H,TޤkY99{<dF6Ng@:޾W:_N^;Fa9u͍`Mcr6ʧWCientJcC\<ŁHm˨hHt=`ϡ}tpUϠ%۰8#6+xZ %^=z:VfQ\oW鼍+k]{}A Kp !-,<7@w'[j/ v:(xJb>-IjIhi96xkbP('~xdރ#_qŵ͚Љz/$M,F M& 5I$ӲXGt(e3B0WA65J9b~:f4L+Q;޾]0#aVl@a~ M¡4㪾u6R ax}KcڪxycXIFi<=^ Ȕ>qvrm.jgb=<Φ,4q$BH;Jx$GIn3P(7=ꞯ=@1vAlFU|v!u8a#-'E{  lI]F c NKyj**E9շw͙0JFCˈOsp2 pPQ.112*jK02.;_h:Z@T,aɱlGDRw K<ֶL(FydaIJ/8q6̙i( 3 V fӊ2FL8v݀g ^ZLᦦbQ@4Zb9HS<֌c!6VxC N-BÃiؘD58 hVx@>w>edxȒW$ M̰)' 2Й0o\>|\u,r1 f?~)kg(P(7ϳ[hY2~ل|}L%Z{?۱-7u p\5PT /1hB+amHɾc8+]$9 1=W0CꂉabzN^~KYH/6<ɿoI-;/9қK gS[6v^}oTaQi=4FKmQ|"e2>VpwCƄ ޸޸s"Mx'/3bDEw, gL0%* OrO&ޟOgO)'U>t4w)%.xb?>F(B,NBk3ڊX;cn $ :k\$N4ȰQT?sYtza';X[*4y[SCihx0Az.C]zG?e5w/D GyE=LliTbP/: j{&Gqzfv+mR $"Il g_3\Xpkc#P#y7N陝]lyg鮮3ӧ9.;J)i;F,!f~R٪m?Nᣮ]r˘,"?}?sHH;6e 闏ޱhOu}=(Gٳ0ČDٻ T,|t|5v4LkS.hZty,>RND):7L:>uY4{cijڗ^gǕӼi5;Z5"U:q)YyrYw?^in(QmRgl8 mhIz{v)sJ$Q , Eg1dLV͞]QDHi9}:N:SF;sŀ ?Vdg ħ @jn * +KCkr.< ^UPUBPilQ='%yMl=PB*NхUqRu^3p ^`楬6@}{d Oq{yvtZLPRNa@|;7T(`}}ܖv4{>_>Rqo ɂHyôL)L"ZmugWcb_ƛkUn #/{w!QϙAQwer92;,4o])'D&ˍ9O)ƆwQP^ E˼|yT-W"ƝͰWr9^=BmN_˼QΞȘ^{m`U,nt J{rҤө3nL#^QYɮ;Q]M0@GwDg7qd͗/ϑhw4e׎w놄AόgYڳ 9eR (QJU5@o/G)UT%Ƙ< lSqcD8qg3,}`^>?)|G[X n;N,ܜ EKB&cnC?%%ij1P k=DcDg/+9 ôڎ  h_<~_2âc-D:^y@2ܞiij67uhTyA|7jcE}=Ds&Xc{'6Fpé#07'~(,>3޲e3F1! Rޭ{NA잾`|!! A_3eiK1& 4`3d١74(C`YVEp,]jk'HnIh Yݵ+YɎ>I1 բn,Y*  G6(cFg]mm   1in1y˴r8>U^AAh#&=ƻcyeC\AAE#shsʳA2  =)Ƴ,xHAAA8hZc)+LOjO.  ǙD<{r޲s-"Ÿn@)wAAA8zᮓ/UeA붚;6)aOp1N%Ҍ   x74Y߻DFU;  p"`B8/6 jL_::GL^AA>1=Sgm-eVMw2=eUg%(  G#M*Գ xKV>?m>2來 q~z)֖z?jV` |رmx nWY[OH}7#P |l4N!3_}ęA8EmlЍl\;i"Y.nn>֯nbilv0۶mOlsx1nm!|mAfX̬3DI{(C~)H75{i|9|ni"uaV]wdT{{Z0(wg9 WkXrwd@qz :g2B`DQQSK]e1~+o\a`3ief]͵5*2aam p_wcI\v-Ѳw3R~t҇h/CG;ssm #3;W6xSa/+g[y;5C))e/h gyS_Z{Q(K褛hSЄ7AD|JX_)sxo󝫆RSG4^mƤb~̹X6kqXA#VMϴ.S3U])[Q9@lA<]>§GBy4gxwbŋoɐc$^{#WRA0ۏF^|'f-aKM^LM|n`fͬ'xb[0ncwNYUWMKjSenk6*Dv?ӯdODQXݗS?{ng%'N8S)3';;qܲ~m\tکi`ykv(@FԿ >ݭ|%%^70&f? ȷPλ_U 4ʀFq~ IDATY22xl|aD1>׊i،ޢꫧ𳋻soo]}[? _F~$]1T^W>?-+~oKALgh7êmkf?OhwA8Қ˚Wds]s-=¬ng_-nMs~Cє;{fa6<=_NKj ?CQJua v'¬Vf1V>6߽8S_~Elylz^{۸xP!i]UȐb˿c \5h8}ND`r e;뉔mNԯGY #)Z g'p&RZdѲ5y[_cxk w[1=.d@%*b%r+fѬu\7$JT OO=%mWݗ:17S 6ճ?ԍ;͊/ Z]JX;םyO}sSyjt |+_}y;oƠq8ܳ9OB4,/53+(_{5sߩ 2~':ڿ1c;e7@wRuwAM]y %9x/qK~—/7ƅy<vP1,Q1A=OgPA/粞5cYQc B9e9c]W}cӦ_Z.+zi%Ng,^Zϥu5cY~' "ZU{q8~~9&@uH4 %U_$.W~Wr hǵ'"45iŤu=*X8W}ts<3 cgL䦇#,qw+ۄMAZi!:m;9.ʣSv~Z( }e r7kXyak y+6C1ն9m[PTcqޓtbl;Ιt. 'vA:9gKg/3t?wA@QR~c&s?R@a7} OrJ̒C?}oq9reZ:W\CM5i``XGRT1&$7ov qFmН_9BKvm^kK9 yi<ֵoرPһB+ή7ghEt{"̙ږ D8k=Kw5Eto}3_g}8nu;TBM"b^a{{V-gmZ!u(/:fy*xw2vu9ULC?e_>/Ɇf4g2^}<4|/YBy^6-A\sd:qTvWX;euυc* $KCbo)PϦsYI\pV/ ,.T XǨe|L{mo`2zhڻW,dcwsӶj 9 jGiܻo/d*&\tU;uU;&A!;_U{[>>?>ˏa) ea) f``"@ 2 QZ!cҀI8gB@!˔( K xw"hl}0# ظl1 ^ëd۫W0I7|kFt6z{ٯe[+SP̣f;3w&jXlf: W(2K<7;+iZ/k9Xdo( %t7/4$fA>=);#ܭNZj*2Lp A,\u_JzBA^øgYxuZCeXhG $Xܕ3Nh/AAAb0N]_נ0LZ2N*>6cYV@*njkw|^AA>ޣwW{:>GNye[̊B+ЉmF  WC ݙ>[)9\2x{  > q錮w4K]뺕6 HZ˨  BB 袴ƸFh:B A|AA>WtFOƧywA+M)E  !"m 2r+nF'E+Z̑H3  :Xَo)yTr_ ,IAA)1XȒ0e]Ԛߐʰ=@e VpAAT{G&Jq{ ƹ^   dޤ'\Zɚ:#4:~T3  jDrԎ}M"  YoH_= Fl'9.wAAAh_/{f:wL"S*?JN;RAAAd vg nML'txztl3]AA\MMڊլa դhW Lr TJD   d F'5sg^wv$r!/q%}*k1֊1XXr1BߥP3{ |E[N` KI$]cuh>y3y'xe{!U];cuѶ sWw5!}A0cajA0.ɮIwꙙV;Md' Zm'^5H-K Ű ¿ {o}oKҚ04` -%?ȕܘqm¤~njPc 6Oo&:`)U}seW1iXWwΣgFBY 7"p0k~XHb[voXzOwaPythbxg`z~_ OxfvCDvܖN<wA&ʁiP!-ھ~̔ڶ1(|T1۶AY,[3s u{c~6ļVɱFFk!R1?bٽi Lo۶ݨlo5%e`pާ&c,j2:d)#/q(P+PįsIsH\ aM$k?HkqvtTJ?: ‘>6׸Wg|+E݈ ‡=W$dX}];@쫿gNX}#nb~֛L>o ll}(9&>a?7d֟œ[u0Â*N8jn)T=~߲(4 a#9O?βa.-mm>J=t# -WGX w'RrN8S)3'd=m*ews#>wGb̿l:l̙WWu,o?;\=  L>d]=aO+-[C郼ȃݭ|%)n,zwWOg+f໼P0Z)-D{1AtTGxb5B9 }s4A7kup )諿ƔWPgA`o놞 Mk۟(vg]Cxێn(ʫ)}0Q[WBdFfzv5XyDZw{Kj 䰞f mF>Eb:$ 06.T~*dW11w4" 0>37\1$"lz^~|#'\v3G?a9(1?öם@+0j!o0|R@#Bl EEC9i0-QC)9mzUv4BQҀAavZ/Iqߥ5uu%W.sqBf?KIiX?^KkgVPпVkSυ5ƥ?"Tm@J1}]߸z0>BS:_S#w،( m\^R_ZhRߣ=ף_WcFq }*Cm`<˿R[9!*JXhXW]wz*&\wf?n_^)A󼪭uxX*DxbV1NײEӧm-کʧk6vוklkz/ʣSv~Z( }~#)hui?ny4Rۄ}Db0Dmk~5ۢ!u֩:;["| >2>uR 󫐾5\N֩EAܯ+{R9;;gk9q$1Zc6#U&ClRG&kwJUmN/ Oަ낞 __q 5ljۺyBZJ2W؃!{wЪkhruT?=}9ⲧc@l /0`K >Nh ٵ v +̚wBA[Gumb=е?UyݫI 8Wz= HCǟёb>Tv &gǦݫNzxtv@>TXlXwc/fVʆ_D!U&pUϞW_ `M:bzq)%,x0;ny1_ĉS+͚-{pǙua6q!l{_=GQвuWDi>f3k׍{1_u”my62*rֲ^pWo1 zLX}?/Gl<1*)">'qU#Z~<>~5cߒj?':бFi]O:İ!,5;ڐBuDw럼tЗ`m ԨXnjE lbogh;QSJۻ%KDbxvC'lj teEygs VrU & PfW}'>܃RN[U \6_L˿ h\ D+u>ݤeWM[NO:[|A>]>&SЭah];= ֳ?CBW: }g9/+9K7/1oC EB~kǘbH`e`*=1-g#ۉ6cQXYAކ9s Epɗ.Ӫ,.T6*U?B1m0.\:V,dn8u*/- 7;#(O3z(Y_kws+gHkf=n1&p^{!_ )~3r{LZenδ?T!'}ûʧv`z,= PVE_O.wp2暋yOxt)tNyy|d=@xv谭Ewb?fEIm{nPn+]8N>]|{-^wGD2U?_ċ`V IDATQ*)J jJ@JcLZ[6'L5yĜYB$f>DAbN(t|n5?< tz5Byy !ORci˲b@;F`hnڤm%\Hh-#% ‡a@x7+^zվ!<yflܟͮ)4SsVp)kY* m]Kj(o3  Hy|pF,Fee:uIoYV=3$X{ƖqA㎿K+JOtrSİ~ȯ}$42mEvrdXMDx .Jk,+Ga*rsAAA&ni#͑eh3oϧ]])\)%  B錆NTJlxM޿}pRxAAA$v0aI⤳şK{ź& IAAAkL[{gz掙gK۪AAAp11=dV{FAA$;j:-ŒR酳YAAᓍIv}=ӏ=WWgƀ"AA!anWw`όJOvwn'ÓqcX&   wcl0NFI'31&=f6#  昴߫$~"7;݊  V3 4帽}E  BvؽYX޽V\I6]AA7"Υʦ-(i_,  'yt$1PeX~ B  \zMTnwlVl>8f buAA7K;zDx   7m⮦n}#me~ KAA{gsGeYiJZD   pO6sl`5|6eT Ac9Ұ҇؇~B]lڙ2"2,m'y778)KSdR c. Gtcߺu'7A[Au+6pa57/.> avMe\O ބ߅$5]J96>e=7}pD8Z\׬?TLŪtI@cN# a{#y龎7쏓%9S&m4҇LWөxmpj ʘT!D}d^n@9}]S e|GC;5Ġ1I &ZbjmbyAV^YC%:Mn}{ m,JI{VrӇwdqŦ(c;ЎK+"?O0.2F)O[ZY(`v'7ƓPѵO;`Y" AaLqm۹~$ĒRi\+Ҝ?y}G݇U]cAklVc\QC;=aIBB*q Ӗ3~:"ky7hg@Fʹ;YfhuNgƦLXAS7[C6vEoifgx|XK(GnXVf!><¥=s}\ m0[q-&бF>6H,򴎃zQ>XJ x=hź;^}=(8(:/ )LpiXh}kb{KX=L&e]J/ wXN,mYMumt\9XߝƸVu܌6{/愮dt&7Jp2JY0`7(:9[9.19w<1$J\_LK|/XAїл0LL祅+ش}>2>uf/ & ,.b>VQMGևf2筕l׊z2`9|)afV=?eq=ф4XBe6؅A"6Cp4Rkt%¦ClcP1_/XH^eFrODn=٥ >1x.U 7 Hwcq-ډc\ws>2C&ュV !U̞QX) 4 sv@ZR~e$7ƍV^+w>>}h›!U؍ȆÎ9H'Gt;/t2]L}ygT}n,rIMOg;}hX F#y`'-RbZٽ}t˶13nyT ,0~xT,5~+J;<4-ЇYüt; е/c/KN$ۍlxc*S_[¶ Up§˰C,/]-,ȸK‘tªhڠiׇ77,:*0ic&|\;(mێId ڀןckKި cyWp2zWHSUUE߂T̆gfw+tS6>_E1u'ON_x]S|;0ckݼņ1\O ףCpۍ31pq_(bҵqcY:]:eoB1ּ'fS,,u\UOo'w7q^\SrB|2NC-|h/1ńܲʞH&e3eXcŏ64jw WukPa9W'm."5qٮĤHR?^KΤ'=F]A:}0ovX|kL ?n9-oO󷮽yUt+{7ld_)^yi>DI78GE3䁗2:2+ њ" yAθ66wz(SQLpdjl"UFƢp8G|_naE7pE|ߛ3O~n<+i5  G4;X6mpVu0iq/w2cRMAy~!54Gm}f?/S*ǒ 2<1qⷒcQIMc1,{q\Uw\ψ(1[9>wmvFGF'zuF0e\mCqԘ 6k;},'z^I' C:[@ 'a7#nJwh;Ys{&qၭ0FٓlM#駲jlrj韣yOKdt xehq xcU^A:uc UƂ̔}okZjeWxwٴa 4v/d|h]VBebVZcX}u!ڒnݏ޸w'\tKZn3»4ehfram'+e"95xkUrZRL78/kB2D[mKk_:o;yics5B@Gx|NljWzh.X91_LO\wb([*c;@.)W=V7a7܉܇I»i. 0<'I+ln$E+O37y1FGhO&\*cR$k:SQUj亰:Bnt$Xx=Vk4l6iy?ujbI=M"=blڭ^A{6J{_}l-Tzolj"WtFMgNMTУ؟JhlJzQhe]:`cT(+NmiCf۲xKځZƟTz6󷶤W\'0Wz?̆Q#筻sM<'im_d|r 7ưW:N˻Qy3 %flgVZA,`]*ylf mnS [N9(χC4yJRش)?)oAykK$kAva Gډ696;p6 wAAB+rQwg9u~ǮNexr['šR ž($}I,P)Ԓgw[Em r&M4i%M؍_y;~W~7~ _g~g =|뿿3>|쁡pȘ$8~~o|gR6xM?G?Oxᇞx' џ~'=O/:2>M>㳿3wa› '3_ Xm'~}i7O>Z]#~_z݃!ɼ㋟Ó?}`zOox{^T}Wbq>~c?? E7 ~_c7?~C!z1oL{_2>?/,ێ𾇇vϮk_?<*?xބ`:|/9|oᰭu}4ޙ i8\*J& nB{Dt:3?ly3G(3e6sM{O}k?g_I xy=ܤIKU=i|C:PjV?<:W3;Yp73cܹq(+\}]'>l`W\D6`+3 D>S zUⳄju8:駟ٟANjV88:[l899$L\kW׸8;E?\"qhqxh]k+܇Ox89>65`7`k:ya@7`η~%0`z+z"`sSX=.ߺR7^=7?p`.^\ [{-GGEůcso=fsŵ~hoW]× 6}h#?M=`n{ +ӡ#$-u/뎟X+ &x9I&M4infkqܢ?;c/it5_^wqq*c_{jcxLYTއٽ eqqr'5/q~eWξ|?| ga;x|ӶCrљޭıĀ=AE/N2n:[_OA uų_ۼo4k[y-\`abj905q~f4Ygt׻\☙m/t*=jҤI&MTNYiY7,߫"ަSr l}x?Ёw,8w(]|2&r*?1(i2cmķ[c4|&M4iR 0_!W, 3|C/CMD$sxt_=}q:AC Į_.=^U}K DcL+(?Z[4iҤIt@N IDAT&21^}w)^%{{{8>>Sn}x?putgk]pf;1#`@/G@ bZzPCQ'?h   K*6S;^gn3k1I&M4o޸g}7oիW[F+;޽{7}4[^<]õ+5. |HG;à4h~qM4iҤIfᙯ>gy'''Sx>|^?|Ƿ[9r:ᑿKǶօr٪l3(jMmҤI&MJo6V+<xOJ=ͦ+ЇoGg[auB\Zƙ 5lҤI&M[=FΰKM?LV!lUJ /WF4iҤI&M4iZ+4rӛj\tNM4iҤI&MtJku 4Y.8&M4iҤI&M?e(fPri |&M4iҤI&v@,T%'j&M4iҤI&MXJծVWI&M4iҤI WUM;=]&mhyޛ4iҤI&M4 =x56~&AEdhV `1w 4&I&M4iҤkL3!C}c&c4I{i @c4iҤI&MClК  <-noҤI&M4iZޡ3쁃:yR~s&ސnvH#e]Jr -KMW6WkӚgi jִ2zY24;#]mFf 'xy|y7yM|~dMMI?1߄ "OѝV k?D0doXqd*\C}`w`r=4>XТl=I >#[ٍڗfT*"}[4ssÙߗs618 (I;7svJZ'NhK*qג0&ŧcV~fy=:'Cwꪙk3Ln+ f5xfrݧiҹl4ܿ- 蘬a,+3l4aKvQӑ>H|'@/-P"J'#d7MGeMzPjOz *^G??>!51T)fR+]wSז0*=@s%H*(%c2#(A9D{=>,&r̯RjVoQg*[qMm pDY@) p5!2π @ݏpsHL" _!HO=CQ98X1:o`=۟Ȓ6Gw/{fT茦%`fZ̜GC8_#Ǐ N,?8(?.w guz8M_WAJfhE+' i!ǰwB609/!0:Cav$hT4¦3VϖӲY, ?ښ{KXI f?^ ]hTAM/}?wܛf`^=?ٌĐpzlX52K,)}Lr:79C20HIm[t҅rb5vZKk}v_7v I.RvXJYe*= O [q攑SeD @Ya=M Ƕ38RVx.oC<\` &RQ$ϳ}T~zPiO>OMAxtj"NI*sW3L6fBk `O\M Vuŵ[xb-$u@?=[Π**3]q*+1 e*I擎*i)$JL9 +X$ F Ƨ$% s0="M³k@`CA{IA+j)HηR@kNԖFT hZaK 6K0Sx6D|Mٗ # .'j!Cm@Di凉7 en n6C05 hc(ƊQK*YInfź7)9WdyUNal oC( ESnK̜3*)iJO_;20`EV` ?;2#;/p0EZW6*<]brvr;Й_ͰeFu3n h&y ֖6. Y׺ L)Ðgc?Hy#PY1[ (טo+FdkTi`]qb3+ߠ!2u]l$G~f ̻Lw/%} PRvǂQBScͨakD{]ri{H>ZagOJsSWY` Z*қfw5>]Uxɲ;z &psL}G4$f :V2Hٻ$D>&3]sUդ9X%&D YPExLN:Fo{ 2 :;t M05E8~9efKDS'G4P4wp3j@D/^)uَh 4/xG =:}*GCf6Bkm ǙTLӖ$O8@.ζAYbӶGA߭av&md!s^U<;*%2kTHj8i<%}M:KG3lgڙmR"@G%y  zV(}9X0\0e0FA+u׎_INRb`#,Z qgfFs!Ը@ˊ[¦*d"kXs-e<9w\g;~bv #fhy%=,[@Dd<̰&`t\1勸NQotA+ss4OBncrf|AEj ]qw/!֬Yzch߸ d9hu ]JdPau!|ׂxdAp(9Wζya*SeЮeıT=4%ֳxa- cAe1Dn&nFzfK[ALDÿa8p9 1En궘όf m׎?ҁ߽Ͳ*I::_=V`.j-3O40QiBu6Ӎ  ud8#S 4Ώ 3aԒ Y;hirI1dU_iYzy B b && w-gځy߶[V5 |t/>,2h&EGe9wbLɈ122ɜK6ab܍KV})5M֪EʳROEnM mkLͥۮ_S :Rۍ1pJ]utu:<)>Fցsf>ܑfHK+dmp=]C"1H1k3rE"dJ紮W &sPKʋ=I5=V:,R1f,+ \gH`~3:O`%Y6Y1t<-}եKٹG˃113) cVB+kt b]os *0.[zK\.& TX sR`ϙp{ӠU Dg#]^LҭgƚX bAmeR? 4R0E$9t؟}GWUה0^^sȁwZ K/:m*ӀR]O1mFM=olOx"vO7|tf4UFs3o,Mk>J 8n2&J\ OCnӶ]D#5boNiT&v,!EV<:wճ[$ponW&FG z@6̺(kC[zweg./+a V/ #=f^y0 21܈GaR՘^cFɯ~9 }9{+V\ `t%hV-TDoJ&]|N?̓=}ANYJ~1j!5"C$g V kr=R5aI|}߽g:5">$?FiyKk2$AD)U]ӗi>)Hc 7e/lM "9f(D LMXaRM ǵ6B *>v7Z8SWUz&#i1F)ȀqyLJ)fy*nJ*{zv_~!hv|ϙ$s XO ewayS{G3LDc}1g)B{!"2ӅoE Z>*j7Ox&!-ݘghd۷U8YqwWWJyUi]D~K>aXL, m厦su8S<NhAD4V/9fni.FS0^ʐR%^ TR@*E"N^MX]oJsg܂$ Y})v{)b% y{+5E˶3#C>ݪi톂5(37f`W,K d#P4V3g4Gܸt]BuT W[zǥLZ@aR}@g גM^VН6rm4%IrG ݏ},bV%*Zb<'U;errQEc)IKkf JZ_T(*,UO01M[`)06l!x'sf>!"|Cf>K{ԗlŠT4z8̄=J-ǔ˝V97brɥ6usc[v>|Q*݆r`TJVXMk- X,$ Un!ҬJC[QJ(RnX!Gj)Q6Ōuoe%Peik@ڬ*KLnTTg%S)."Wmt$j[┭[Z"cK1Ӹ̷5e[.9L0C \κDJM\XR۴ ϏM`S圙7>5q*Ipewuޒ_-)}~i݀%hѸ2,WHKXo-.d߅[ k !GCOU~߻ڹtDd`vMs)i> ﮛ"XGlK4/ .j5¦`F.P2-ݴjsWce1d\T"($0g 152*#eb&K0()V/ ]엔-#t9ŹXVimH[s G31旸cvwCДEk">X+n SfӁqL*;㔮{!`܆Ki?{,Usj,Tt.]2@#Jg^;*uÿ^-5s (o r}J,vul^ѹ[U뤴0jifM.ñK U9S.v ӷf3K~j" ft*/+|]i.+5~a3sklvK@fmX3wk7훰5!gZ?EWcR?,/5[42<%dQ3ִTj5kT 3߼Db`wabTYYbc_zd2>QڹFzw#"GdJw57$cyIֺ̾qo.k-N.kh ԦO<76HY >/>\(]hR[wcWKi.-ͤQ{ i5!?~[W\Rt5 ϙ)[&{vn%jX_kC{/]+giv +Xjt]]/>;׹y5V65oRau+BMͪua18K`}m=3 HM-ctS̺2J~ d{Ӽ1 ,-Y(ŞXHהdUɎ//q7*uHBs\zĻvË~ӎ%B"e]x*ZC4d)|)EcBj4E)6ell%Z?uc;&0uQt "cXʼ/i`ּ\x 35lvҸYjdzĀ6RR?]9.m0υͨpXvYӖڹjli|HEt)r15jǟJ.7TJJq#9"$IbkAjې(2$Z+1=se"Z9+g=.\V})^ / J6 '@62a%#۰*SHSjb @w2lP;'/ԥ uN9Ռl.篝[j%JΔ\r1\\/9nY,MXդ \Jr,9^zO*>TZ`2[ALf,ż@ͬ8> IDATk(d6\4)`I_u4"C*A3~_#vEmvEr;K |Ej6HT{@_;e_CKBri3n85/č}h K6`)PPJIENDB`dell-recovery/help/C/figures/usb-recovery.png0000664000000000000000000026531711751021273016450 0ustar PNG  IHDR4R{sRGBbKGD pHYs  tIME$)4htEXtCommentCreated with GIMPW IDATxy%U}￿So/þ 3*j^L*%1sDs Q@DHT0 * 0, L}眪SU0Ore޺Uuk9=; PH?'俤 P 1^pav]Ne'l>g\a}aU{&F%տGIW?Kא zaiO"{N ͙Hm|1 ݮ(wnt !BdיtE~Fr}06;x`9F+8{>e@vտ_Gs>uGv[h>o;%u׺slߵ:w{ٿ[;6mDaQuň,Ǚ#G̽`EA)89?D 6mk/W (ƚߥXB sD}n߮'kRkSyR 7#IQd'DmM[왭)w1N"NڍX$#o[h׈`sio>Aݺ4XE1en23@ Z0T6L@fɽmk$Av̦b{=2[ g8!w{lޯ" :!9ڿy?m-oEC##}&{NrS?.:Q66k̜4EZ.O)\amo)twNO:Wr~ PPaIhM.Z.0l>w<+$Asv9+ .w89̋ʻ1p<D<U7RѢD\r%}l 䖩Zg `59,n?9nA(篷Oyivf_5V-_ Ug*~?s WIG{m׉;j2׿ "*^G;67^1}D,:'޹&̩2:ٳF'iOYtDy#A/ۊjJEfT]6LfotPQu!\iKu2.Ny'Ҝ<<~+iʏ CF]yc\2VW5sUi J4<Ν*\L~ZyvTUK9DCHak&Ow#+n䁩r&\#Z@ֆgެ@P!qv8 8yUeW.&&Rꂻw7;5xMw<4 WP@о g(u` 7I%E&|,>:GYw4(j$Yl'6R݃ڐ+S2٨ NkjkA+6qTT&Us:qdhmif!>{ߵi  z=CDuiJlcFM^\*֫KZDtۜ e]I"'AG7{QL,ݬ^n:<ㆠ3q:'ATQFL|V~x%pXk"31fd`{0NxŮERΑ-ύ$g& (!\әa wCI+n*J`tmFQy48s\Hqv솟 ػ,vסJ'&dSpN&餮09NA2[(NdeęC0ļ8벲aœﵸb<7 Ǹߓf'D`Η@X3b @vr: [ALssɄ6h?e ?`'Iftqc7Iȸ:3"bDt=seJ:C u]脻\h@M2BSl]4Jh Jn b~\((qBG: p7,@ G@ i{}(:Ss’z∖g YU1wSQQHeQW{:3.B4;kT*R #Y'=^fF 챇*IHcT/gt b6iMz Mфݯd9ߙ}W@?+~}g5ws,CÈϩZ(=:P1*ir"Ϡ^ g{t\IP-'xLZMS z3u-$T904aoZp)56 焐>Әs"Ix~l$EOǃL'7?[0a }c Rهq2!p+#@L;2YNM]o8sm)SC1pe)e+|HuT\\FNdɌzRLQ~đNf3tlz>3d?;; ]/.$i"4Lӄ3D_|.s!Z`m;:!0\me@U1 zf.3R~^ fJDuYf0iu"3Kwf]lw% 3RF@OS\z`ܐG86Vy<KLpHRڕzN7Z6֘Z{&g*{ZAđҕDAeC Ǚ+˾pLٖY!Rt[NeN]ݠY pI0gP!e& r_v!b3;ITPx &. rNWNsf]EDfFd[M,AQo:+?;obLG\Lr:JJCZeɞK&~Sekmx9Y`"ufj`ij66fJCOeg]ۃW}#F^Ӆ垎3u +X6UXmx!w8Wv 8\JQUiKgE%PkN+&^L)'C:y FP&UO%7`uO]|ưד3h$rH~mPq0t?J~oTK7~٫Cmvr]a!G6sU&T=jb`PXRnΩu YedT/~Ў&&Kyd_ ՞rC)e G*fR꺠vC10:^#Qnq>Gk@U:ʤ؋MLJD7rFI,+tLe²3aC*U6nMe?W*Zb6L.ˁ2j͠(H{JndiȂ̈K:}ڴĽ*2ʤ2e ΩjěNJe=HFz[ $BdS\'fTIekE! ]rKܕXb?]65ٴA" \T2CS6@Zhoh؂YCĦc*t|ґYk&-_{FIti?:A\;a8Y? þW;Lte9̖5[ nkeY*w/41ԪcP̹&0%nfD^*ZUP#⸃dƢO0LzX.V4jU$g~*? 0S6@f5 XI?.OI,g*-x9ϯQ匧a<$seZ0hqe:*̾0JR0;N(xqyB~V.&Wuob.[NV*a߁Hs$&QVv, w~ noNNq6<ՒKMiyLY`V,u9ܑ4 :օN4a?JOUVM^y5VDie#%$*\L=vHdqݡ&7jZRe;HF9׆h+#77L𲻮J 鴝FfzG^)0;[iL.瞇ןr< UXOz)^ p+^}lo9;cX}C/~xl'av8>w𨁻?!|( TFc7+nx1;c/L'_}d5t(|o!j7tMn  !dcUO&&D*B&3/^˲py8^0Ffc4h=;Ul>A`ϓ]K:[ȃѳrxFUPň (ܾwg&0ich6n¤f4zUV躑ʣq (cxş9.: c-i)xyxU?>kWc/A'p$s880+@t_coacmcU`a!'㘾qB/Á j\)DXY 0Wj}&;0 6&_u,R؄+>I|iv `#Y{taQOˊ7/;%0|_~A{4ߏixO^q >G1 =^f`S?\q :<ȩX)'-YS-w0>yj&Р<&cwᒿ&nֈo ^7\3_ o#thH7AAZ%N03mM;ao ~qnf![xz_C_-ya("4ݏn,\!ՏaVCx~$~~.ڻqȩx@X۷3q)1N?`_(Bd^X>߸+V~4߶'\0[oX)  s(d*}NȄ$ `-Zk#fY@⌱줯 +3FV ܌7}nڻ̬xaw𮿹;u!>o֬7x  Is\5W,p'8 C8ֻqH/1&546|=~{׼|闸YԔAM!RVo*9u!ӤLԙ%"Gu`vɮ8sqnMO70&eP*|s P}Xq 3Szk7|vpc[?d?(?a!샳O`-X|7 l]-O>a!S/n،nV^w;nx4Ax뛁7ߊ (b?1V܇~8M~qѲ  KWhT3k%a~}߈K:<xz|ޓpʟ_UsX=V;å݇'fv:\DЉx?gnO>q=GױyoIݻ;]}.: _x1v:w^jg~w*R 8MMOAG@xDŽ8V_u/Ə<F⺛7@܃  IFhE$&r& /t\@e Yn|;=Zm+nOZǶv`σQ-?9a,F 7@'=xL[G6[.xlk տv]l|Q< ڂ|_c票lxT+Lon 7=#'{! )o67݊[6h)!  ۰Yr'.?)/`{gy.ag׬_hĘnrj+B`1 3,:j tVCd_BS|/nhoBgMl?UБͬ15mGHK"?&):n`Fԏ|<͏C׏ClYAAw tTAd1,)f YO1c~Z"z LSfY|u:km\jZ:jh^;~~U.C#BlH^W |LYo\0}?.} [VA9; 'pRg6^ B#!+ ¢ڂFk-l .5Ar0xm rAAX@.LE`] TdrT  ¶D( (2j'AAJ`ʭ4t@gbiL޳1$~@AAfy[ed}2b闫uSΎ  P_}|Ouy&|X"(_?LAA*7ω|:4lP q  Bшp".ˁM*IEEAAZьUZ37 Vtif@2c  ‹M̚ k6)bVAAh"fAXs"XS].5`q[mו5AAӌ pn-+۪KvEAAViY*[oU:$;Hw)0aCe  Bf e uD( 2]8k?(VVIAAZ\>Y'P)P,='l*\vLAA5Fg$U ؏̊AAY6O,@ΩW!,Ѡ{u.6N̶Tق  P)f `kHc?)vN.l]21+  !fيg .͆((M crrAA\P S!/aKZ8Jj^ mgVAAh.f)0MW /,`HVɿYS1V2-b"f4cx1:19 L64f5ca!"BOyvvjJPA^Lb֫6kNٙjת̌q1;APdtrMK@040m 5a DwNBoM D-u1116 h<1- <%ƣ#1i`jIg~9/GaH "< Q(?,dct}rݓͣx|ܜ؞v w=pȲ(5@a˥ۊp.~~O`ݑiwćOXsV YoX 6rh(l^n4n%b~P.eT~,ŷk }8jڢ6  pP 813~)5O5Sm |$~ lObd/Е8jVF*3VP3S"fAN㘘mq f:^'іDD8|ߩ8oNn~js^>tIZA1 #UJT NjN bkF oG=V+juKC+:x[pSr lؑM\V*YȝUaW< $ AXdxU[*_k)ݥSV¡g,>q,AE̦61Dw4}Wdߗ#r3㥟GDCV7P?9zE O%٬,[W@ TXd@I{A\V%,Hh\9zy,qT aaŬW6S6 \\(lW$ά  `cE.-kg'>ʁGgz fD PbP鸖U!bVa"N}pѽr WVs crAX 1k{9 !'~ĭɲ.VEjyD P<;;˅K.9_.~TalQ+TVN+'Go-6#¥g VMGn ,cTJ]rYi>9KYAOkJ?p.`o}yX7=2%Jy R-a `h [" 0gf5GQj#)S蜻.06rA37lJբuf&.@0`A|Id*>~Dl.>]QXo' `ueyAy/^8x4CmUAhFC3P7یDx1"qJ[AN!,it!5< \4,I̿/铃y瑽X1n02;+Gb+ @Ϋy*.  fKzyKzYy'ka: sO&̉ DQ'[?J\\ šaWvqTz8c.8vgdۃrA7 ePWʡcpUf`A _|2S:IX|{* hiASA*EVJ_l!*$"ԙhX5 ́5cܳq6Һ›T\7g*]?㖧f 067,ot$V ˇ~X7z:ypQ坊?, A"2˔jL8 l0R̀aaЌj_5Ex 笪+t4&k `t IDATܺ~O'~rN- &fW$¼m6l̽"2f6G+! ̕)>/*5j pcCVW=4?Q+B̸ġN«풃qܮ{If1:#Cu ]Ⱥ.l ȇh n0'D .lh`TxﬨP6M8ʺvNn\'Y AhM *#[< ͸W㸲x`c_Oۻ :JL $ /ʗ% @2-홰eun?`c7b&.woj 6]wf5iqfAh0\9f_&`Q28LMvHg&~l#!ˢRcmu -ም;е ?b7?Ɨ_=v&cwC1Wwދs%vNj'+‹W6:X_N)= "OggAZMmI{T/;1vE3Wt-%ti=9\7qkq76mٯ?t2y,:_GX]+$ kǼg6HC6lBe" ܫtvYP BkFgޱh۝W<<_1w]=R6fswT:]Uvxw/T[A%l 46/wP ZxpXĬ  ټIV4[}ۉ|\mmIe**Ah6P]ai}[Oi͸rqpg_4'cq~gqq6/Q`"bVȇl.;DԂD*UC^~-s~D?yI/sToڍ0کv(/K3l[q;(o% Uq%k4 4+RcfYu[A*D]х='e[bg= _|`د7?;nپ g6\ 4w\3i\q,Z3U+n (m/f$^V9}ۖww?1\ָW97ځ\,#df ]yմhYAZ Sיc_?l^'zr D |۱sނO6za?Y |Q|FYBH3&v־ f,z }$ˉa06(&iUPY- 5§_ُ׭'mq5#s |iѱ ̯ju+dҤAdR2 w%3Ca6VW\% ,0X_\u++O/zaw<=\3RZ(bG%f,(!К0괯}M9jnTBAH| O`݉ϟ:Ư&xZ}H 4j^j 72iX+]sA)Q('|[.weE 1=;y뢬{@ __0q8u93X,~h0ct8zyUص7k&+yݪ:p@9C8np%*1)E%AhSe1NoVW} dCpAZ"֣#pqvU+|A|* OBMw®}Z~z;:9{U"M}m#:,<]|e%UA|:ʵ[1;XWi~)qڙK3C="|~+0.8WC] *66deE"IeO*:HYAayOؕ|ddۇ,-$|뵃سOg݉z_}wx` <>2n;/bVP ezp/ 14i2,l, AXXV 3{Iݥ8r玊} UsK=;pN/YQej$ PUǠl?1{ %dQJ mrPӹuIq"e8dYNN\ZJ|뵃ʘFr "fXC3VbL,޲.--g[QAD e.f}e˻ٿ7܍;ִW_'ᒓq l3%!.\ H$[ jՌlKݪ}GD qNn-OTٿ|钶]vQ8dY _htN!\t0[|`/z)V Pw3?:S]Žg+m\ &+/`/Jj+=-;Y$_9h(BOa"P$g*oỿ;uz`"y+%hm<~N ۻ㖋3+BBw kVe+d9Ik BDcv kxnrOס;e=||Um 3ri u19AuyeL\ldwNBAhHpw@wy'Egg1'.! yW-XDl%YVc$Ӭ sԽb~lz-/t7*{vɅ-p%_̆D M9tw4ވqŚRIK[A'dCՏW͔ %Mѹ BkN]53\;%i;㦧fJSw5;!BUdRAۚ&T-ՙ$ ryX[W7-H-34![ςuAL YqdAG/p*;XvOKb % /Dcɪ(^YQ}'֙-|N(ia~ Mf18geRVLE-îr/jC^ŧJRs ̅WuCD)ۃџi yrA3ĦfAYȪezɖTpHYAKN(O:1>C0iTZCRĖ$hLr y W~ 0.:?zyxx>O Ux̋e&9T[QӒ@=;q򰻷u;|ÇhؕkIsW/A'd-"2Zk(.C5R|1b 5a~rws w~#{QSbf0WLoe]W 2ˀ`^J ,6Ӆi&feT6撻ưq"<oyܲ CʖTMU Ω-RKr4nX7#j,dՋ.If#|}Ol#/vc4\f9Rl_|.ZAubf_"6 3`ZD ßۇ]zQ|$BukF0Srh: 9a(A\:}I<Ěԩ-٪ I_'#Ǘ'ްeMyDKONݢdAXњ𫀙lW]WIl;N ,g_8k&l{lE׋& AXxRk]esTg%jY ԃ(q5#"h 3xO`Q09c.^9X , Y*蕾OI401iE0[4abT& |8cϧcƅ?O`T%{\v ]PHB^@BD!BVť3.;}G///w3/n؊V~;wڑ]5άUAw|3@*z"͂Q^;E] l`oخ^T,NA@(Ih}e6 Hyg!;sv;GĪc*4JaȚ Q׭!bahA$/Д.Ys]cġ 's7y7g$dAB6``%bwࡾ Iؔ4[t/Vٟlp/2qgx|њzyM: &;/\hm a`*.AZĮ {6?5Ιmrr[怭+u"ƻdFz 4&, +[b #(AĬgCEJy'U箻[1mțÛT^aRf+\1eC}+5ْ, ߉PViiE0 XÜ5NM`hDlH=kk|kp7*zxY {@M]`VE 4_;6Hao"š::'se*fjfviDw'AF^)kKZ~,"'lsRye;tZ8 {hN7#d]j^ E@v3HoYY7WKN5<9e[qc6+URTAAM4& 3 n‴tP5&N.©Ve~U;jYnM\;;&a7d^a[wxaB4x7A{}bfgW4YRjvWJĸ >$ZjHUVI־]]e CA(Q;MCd]\E5~wrX3cz2]8{ ϊx H?[|QLaoV * \|WVƌQw2Nɜ1M!!hcHכ^_!+?fީ\;E%N_YUUW MIm VXA((lU&.z{G3Im _3A\[j9+aW͞EH+z982?8$ǁ%f͠k WKϩbwA+k=Nl;W֬Vo,R򭵬bs"KѾYvd>D#ac#DҠCӆYc`K?WH(.Z 168(AYZSZZM fe6p ŦHr(R%U!@JP%o Fhd  LRd&5 ѵ/$Wb6XbAALkO^kiˬ  ~4 ^:2tZ T(  Q!{yZEhb}UAQ] +'AA4͸ug@QkZ Vĭ  P_|z#H ^s7]W*+Ne [AAPw,ƛ t9AVV PAAA`Xw0ݾf>|bVAA 6XFĬ  BA'mH`1+.  ߅/0JقŬ;3I   B=Ek8LOtvۦ#b   gc5 S  E^_YOY7ٺXd|iE  {TZYYiCh^+ZAA1lpX8M{ Xk`~uǣo>"387r\Jdܹ\jޱc̝]Wpꈳ8yԣ,<ԁi݀\>!Rˬ/MAo/?GŲ{9ȈZC {,GM_|w%LȀKeis!Y8vGÝ7 ;>~ޫ<92HA/d}E&<c:3B IDAT'4(j@Q(mo`֠IL>X+{|l(؏;RIN!:HGk{H\Y_r6H*74{:D׸0Yx)οoO()v#獥ggol/ѱX[E5,-sNZApޤrhyhp>$LNp8ͱ)lN=vw߹sf4n7_Hp7Vrh;F~Oer@0u>/%!2zLYہn/UEE 3d{:#֏ET173v@W)|-3<Δu_̤߲b li;;n>V-5V['9QK_ԀM|79^| !mswK [Vsp61Χk6/ElGfG\O*O}[CNYs蟫-\9MG1<|D=]Q;7ķZZ+Nm LztR<8v2goZgnuŷ|U8K `d:51,w|wm&'7' G}'31,\ FucQ~ Dt[_G^JU3cF*3#]*v,{_K1t+ңr+:n]"W.bOvЕ!D%s׺k2> /\Ak[m!Ǚ2ϑqN둧J]L==\ofy86N( eq6wN妮V'Z5w41Ïk8˛1ƸNEl0up#7N)DZu{L &[g?&r=r[d5{/FֿڮFvip\s':#@ O hmŭvǣO.ԲwXuEL87M_N)9&=䞵x6M[@rs<6Jq V)t=e8m?압sffҪ\K9$5_&;֮bc60wE?_V9Ʉ}mBUr@m|?>[{W?p=ɌΓOCf Y7)_ - MQqy87|ſǽǬgӱk`R3qGH.}WtƱm3l gY>vh=vݍ?YW8.U6v8Zf*YO1]H|gtZ ?ww%S{ky 6~<=etu%$xizO/_EYm=#l!yr‡&0 Ա +!=F"'`hrh}0]֛?RXFFoc5p!gto]%pzW^\׊Cϸ nOP}1xizs5| 8y'f#ufm_r$&كt-IkFsLAysA(CسFcF΁]}DkXfWzenfhFNenT-Y6ߗ3P Rv]}^ fMvq-r ʌnk#viA4rj\U< v1y:cCOӅBvMV,^FQ&].oIU/-<|Ee|4f.\E٨8_elԭ9cj;UӒ}Y]d+W`CmyX7=U|M]IUPvw{tg432='g;*3sy:!H)m ?H%Әd9FJWQbbTV=ic!⃏?䙗f02[Ӊ({R1ew{4mFMl{ېߴ5stlbǦXh= /fM S+ 11|9.XRَGaÌXU~5Kٕ6&h}00M0|dpF3K\YaA:M8մg?G,7wpn\;ֲA^4lZN{q<3ph۶)*V\ 0󢟯w J<2 ڽ!_Mn,V=gUVw{؍ " S2cbU\B$6 =62ual&ت܅Erك={९l|̔2=ߧp*ݳzwSwPbiҽ~5|t:8'7Os]g9vEs\zs65&[mM[X| %-cn.sVY˨f$XQjP QnHރuٍLt=kx+XM8:&B>|tn{tb=sLw$+y]h˟u<{NGµ~EXH]+w[Nz= wYS:qQI,t͇KKKvGN *9i*lyɞ[@*RdJUldmծFڛŎ5FpXo[!umg;hߌ&l#$YKڵ@pr;_cوsB)qSR8炘- U վm5~Y;KcF'#?\2H؛f[ŗ4Ց#cɓyg6lfottSOȬ\ޜ6k[^F6}P勼aC;%_D c;|TԚnf9)<2'aa MX:heC*~Mi=}7Xnj6~kOZz[=n)E瞹8Hale>[z)ըwNV |[]9P Gk`Y@)@a'Rgv3p[z1r2[).ZMΡ]CóhF+yuW$fѱ F5M@B!c^`%|F:]y?|y^}׸C d19^zv ljqodLǩSYz :Rj@YZǰ1=mGf#)=dd1[EY_5ʋOUmNş'g=8>3rUwӭl87~3=;ka3vxyhe}s`qY19𖉀"áۻ{ ^?RaVwdoXI؍x}cnY{oѧL₰ n*Vf5o/xO>CJ: l2 B pZcPZ:U: گrE qS_: d(AO0+mN >phn9P+6 C-& ^@Aj[Ɯ^ An$+ %KU(Q 76B oI!WAA|JSOs#Dh }Z+n:  $hi@-/dC0 "Va^ԋgqwPF%c/}q_n<2i]'LQ#˽yvqT^iҡuTWKkao宐P#j|@}:ؑ+^xK5(W0$$HA{c?ȰOs;3C '3ed>v]Y0XVZ (Zsd;W2se`ч7gi;ď›_.HiNAg1IVO_gZP)4?Dn:'^JWEC#N&6^2huƵ .z~rc9c Ky}O[Q:VeX+?RМS;vOzQzzӃWj={&sKLO)ۡr1kLm]oxG6꠮+0cZ*[1`5\{RR Ə>?aNrBFz>;+FMD k$= e-by)pOhFCll&xX=v#r(|ͤ71z]'9x8K+V; yRX958W2m`_/@1l8q]_/8dy\]nX]Ƥ`Q fA ?/>͏g4<"_k#K|$=Z^|i+_G+d jM*0L^3Qk{j$v}oB~˖*hIE,~ͲZwɡ=:SEbƜ$fhRf?z w>k˚nb'S7J\4k1he)qx죅i2H.e7`Yepw f\^VK]@- swVX/N62M|PX |4a[\J-h'ݓ\𭛅Y=V~AS󶚀Io 儮)qC}Y$i*W^IpdݲՔ޽ӵXJПB,<;ȿ2}6,mkF{{nl匳r"g* ?T|uy:r?~b#Fm?f-)hѐ43-]_$<g,?Jpf!X׽8S]o}BC׌Au>>qK{ק֛V|W60^oOR0IJJ<ݭk3qw^D4x'Vn2'Zv:ϭ8ǹSp5onoќgJڜ9GBaR$kVz^$ΦWny#<̄R'śfWآZJ-c-ΌYKZ9L~ Z6P-k_(߶5U!YJO?Pxagڮޟd?QL_t/w+P+eS].g҃ȣOni+BllvQqM!އ3]Kx*[q̗5Y_1r%45%7ۿy!dPk%/vLDZϬԀCò)qW=[Fz^tMsϤY)7]*߸QPU.Ώs Q9:6h z '_v[4!atgiz8[С[/=e$'}րS8<=*vֿS@17(u ˋ*Y='u"0HoG*&[ߞfcGap$}.-Lm;:Эڐ vɑaWi Jj'!7g+f*bYwK4 wVh5[hǐp`8fnzh|.+NJ@B[N8%M/b?Ȗ|d$Zm@1kol4;%)m8_|P WPF=ɔ׵."'4om'9ړd1V֢WW2mYt+H gU6؝;n"s8n㬫 D)/8!ʼUN-jP[ZT Q#d~_v[s U qyuiAZT@K`vә(e|߿Ĭ-ow?G3~? )\ld/+,y65+9)}O8A@~ ;䖖HLKLCJ"#…sN"+❤ oTlmv6$J=X?t}9߶dq5;!͙gi=\To%ڱ+#.fv:02Mz D9B7n)sVV[kz1]e|#[qcnau{5KF_ i֮HӖ?wc1&+S7GErDOt}z5&.k #x zѪn<ڽE1k*q9fvy#WnP;zl AUֶ 9;..抋`pL!m? ӝbS!ۜcTy;A{Vʕdi', "毩@:%jXQ.98G/ϣh>8yF۩dYiZM?BaFW/Ggr&ֹ% OfȀhmVש)\F崶b~X IDAT@|%8VO誵|?',1˶wuƬ+8m+iȼжl934|ɭ:xm-n[쟻.VC 2}fۏpp+K)?@\k(څ..OlYO{[weUY?UWVCimA[>GD-+XR G\GܹIhw%}װ{gr֯XCqM'ƽҏþyY3'ak{n8 u5\NťT8K`eKJr9om}c|Y~.ؒ!Ǵ˃vHú$2k^5 Ksؾ0n ?.c{ @2GGalבLְf>?V7g SST֕ ヨccS8mKZb!BJӰ4v7=]{jcՕXڎ\ ؖ8-Dɿ8㧼ESגQiQ:DwW^w}cĄ+7ɁCXX[k gxCЄg}pK8s ͎Y*wFfW֕,Z%k+Hkٓn'Ӗˠ[&p}iߴuKeo;#OK\n?/06uJn`amsii;KJȦ˱ã9(o0[)jwȃ0j7m?BO+ ۉ |m{> *\@E bzq_Sjj|nn>Mf8rRBc7|FUew_[ mƚ30&KrKN6ꑃR91k;Q, 7=B7^R)yVh0 ܒĨYKP0 NRJeP@KR@$vU.ʕM̭|y&-?HqwQ)Je\Y>~6r҄KTԉpv}bmi*Ti%@R/4WkFP2ˀ*0@sn;Bo i aP'|Y\ˁutYAb'w3 ;:6'e7P$r&w!+ZcCxW}rpQK1wޅӮC&r&0 2:O?Mh !gFuL}Zm ]+]bK*G<.HE4N\ʻ\)؀RBTA7ƿaZ#m/|nAA[M6^M[#b@AA, Q᎔`,Z& ֠ *P*XAAфw֓~+  įB=xW@i#HZљ1)t V(UAAфj\FoITu.AA1OwOg*x5BsEP!7PxAAv'QCkEڭ%tQc͊  OIӷ?PAA=Fof+pp}TF(PfFAAZ'h2A)0MhUaW S!ڣ XAA } WvwzU5AA!Ūnw\!ޗ>bk~˛c   AɆF g խvS 5`   ã#ݖV Y5J{i{ītW:hKAAh,(1 #f|Yta}fc\B  ^R {K2koA6ϒe6BAA+V0ïB.pR  ^VAA  pK!"óD=T'hYAA| X`@kJ#M7>WXe%!f^W'L %jVAA*f6MmОA4z5]axAA'+4lo¥w/gMRf 2AA}!bDףZK  տ­fe]}-h KkA&^AAA p5} +#jApaoH;  hqfC8r[i +b'H  ՝YC]!TJM(`AAAhL-Kyk Ծ  &0[&;VYQ p9  BiܡF=KjYAA OL-޿ի0.+   bhZh!PEpIAAhĻWhPil 7rVW_  8oIUa\ e Z>k  P_iu!piB}f=Ráqd#"  5S*Hgzam^o%0ہۖks(qAA!D3*0M3cCs*␄ф2]AA:`էݞ~=i$NF4昸   n颮 ?ǀau !"VAAhlAhh4 ҟJyvXehjWAAv@ ; ѤW 4KYAA!"NM'w7 6l}E  VF+P\4?<nf@ɽO} 4  P'άGqh <"֭Mm>}F`= `JY!XAA!~}Xaǎ2jNpfŵ@AAsmdAABi k2>~!Vn1M5TWSUTW㬩Z W);+@mcӹw>kg^wE?b_Z8wG] B,;FJa}t>J)h8k,g[&ʶP[S =!l򚓔ݑ6e'~ 78l\u8"7э70k$&,N 0V {,GM〛L.A@4a\\æKLܫ+ 4uPs;E+i :<ĤT+\'kWNdS묎=uGDRm9E?`Gy<48o,&N'8l22yXzy0qbԅ  ^Q/ X?q// &6xZzFZFv4vEv,?[Vsp65ns6UCZ5 N(e&M]`KuQq@6>x=ϯu0e } ^jgPhD.ݏooM3t <Δ~pg9>fT&g蘛; _igk1qX̊?x"*s; N gLcsY :3 YE'OO>;6SсHty7Rp86N( x)#Q-\9Mǒq^4wKGEkւ BCl@ |+N u Q[dZ\GM\ -_Ϳ~ÏvłgͤI#;wRWl'y$d1i{S||twl㻉ܲV\dx=V~{cu~8S3X%u=s~L8z'wRhX>=X;v<5_MyW/U6{n*S?pk+SaCL/:k{9ۧ32sLrF^h{Y /fw ˠ6 !+P.L\he_t! S4,tRYfcnކ]e0 [fq'K"ql6O`下ܭ%y+83w93vW1;fՉLvA?J62NO~9sh[[h)/8 Q`gs-o:BJ fڣ!E\5;psc[G"'`hrh}0]֛?RX>y|kCAѬh.2V#1&/Cl[O ./C!tOSCA!H;CƢK؝w%MiS1 [Ky. i\Q=H)^FQ&].o*x'rBϘ)%yLqm oѱwnWqh`>Z[ZyӘes{8fם>W24ni:={>ayvA{C. 5`]/v=;qDL g8F+#R7ζ zP}x]QO۝wt4Eoaĩ;u2r9dXIdLǩSYz :'Q/TnX]6sA!^ލk&(7]) H2\N)UZ*2<g5^\9i8q:ktc[ MsZ #ѳ^ZDv^+ I  { S'?M+4`*Ҋ2DiHkVVJE@ et0h'q&\;ƔGlęmGvG"IM(VLѪM<Fbb ZuD)ea/AA+h_'C2p\.{Nv~Ijl)̺VkgZAܓAHB 5 mڵYv(%AM]hzGozz` \w{8 WL>r$IITTTHEe~QFWmXb9iv_8bU$)¬ZЩ!AtT'cGE>&*CI6*A~`QPsWˤÞW){ҡm.#UG[8,;*lFflϣu1Քo?OwכRWyUH j\ɶ-%XԴLfભ+ VS6ӝ49.ĺ \U| :cq}d1e͚t=M2s.K~krPYFC:,~,ud$Qt^PPX)\Mg3 {cR[j/5rܰD έcIGQ}P3[\& rg#-:f{;YDtP>敷[^=&J)sң+JcN1+̈j23oxa, +PGz+Bvo9X~=,\.b*AZFf@:1'Ux,c-Du.:$Mk"[-N"Nb(.AdQGzMpFEN-S?{'YQt3=KZ` Db^ IDAT^WEQ dD *99OtsG ,#կSNO=صe̻a*=*+#Gsx!:t85ghLB4)2 kы#$VJ(q@ĊQ߃3Bd/l]ol3BCq6¢BV^R8vȄtW'ڱC&!7"1;B!")$9r|p?D[$rbr')-9a_vR"I[o,4qNke-_2m,DB?Nk)9"N(ZnW/},F'BCEoD8Wa@Ҡ Y[c-2袋Cek6^ɡCٽk'/Vy23l jcδHB*qyG qCD*$++R&+LԴ2ycm8RR&SNI0cLyh՗{NԏR|[ʘdArLBB;O`UӬv6.m0)B zXQM4С4syV5*~dxphb(S\a!k^Haa!`ٿas1 LBԨ% zFcΣLbJ4Es"ٔInr3T$;4q"P ǧ#c{H^Ȣx^1jۼ'YENTPt4>хL+Hs'xr*Ľr.88 yBg"<)…?a!RcV84.>#С$g? 1*^eL FǤ N`ʚY /kAV+eQ"޶P?AJmtbD줗0jc'F-?|iHNWEj|56߄ؓrDdE ρiLNZlLX|׸NrKKTH`s1i46V{º\!E_JuÄWJI|/СCG)(gLBO1J)PCs;DB5"DΏYٌ-q1 }4ҵft: l}c]d < }MbI=(mvȤf0 GQ'F'DZOJ~M'xʼn8Upx'hԝ,cr vqw1,9Ƥj"ŚƑUqH9ֻl`Fa"CϮW.\R۸;l$*BH4iYU@Ĝ)ZXՐa2ʚcѡC c 58oR$R5;,cu dSwԊٕ+nX,!0Lf:%ݖMMYn99Y2*^Z:q8eUg$=Ki>܉GtCBLrw_;.,8{/O֧9jZ1/o=ϱ׳k0ǰf_lߋbP^c)L+ $ц-9祅(tτ? # Kg0A ˜-Ys6 _p&$HG_@ū5+mP}=U98zH@sѱ%.aN% 41HBP][_abZưwSA Ѳ$%Jh95kjbJǓ2hљE:t8EBh$Mf0MMa7 LXJPmq2lI /U.]na6e5Llذm۶QXTJIi)/"W{ DԓAt [ւ`-GiUv;,lMw9x,to#fGG9m.[ʹ GaZ+ZFZ0B^c*|M5bfZH0J"m2 c_@ PD+,,HmӵϟU5'kmk0'%QZ-+B Q92jyVby.%~lO^ 嬜@9Ⱦ͛OdtngWYâ|fϢv6Pn 4k@T]5Ǻ R , FJHXH=P52uagGu⮉C26;ͱ17W4|.zmfxE*J wӴ- 3JrNzۺdbvjn)ŞofsB7Œot7>EyeHg~-vΦn6Fj JMCɽv Ho7}lʧ!+Y:2#I2*)oZJah2Af1vl}ȫzDtOԍ=Hm2!_:tH6A5*1M㣑) Hf*{4i{{X-6F\xᅸnӟX<-#ԑ2l)KMFV0GYd(AwsY<@o zkb 5 \N^8ʋSqWy+a9[dX "JYqI7+:{[ɦzjDw>tsD(dg;$ 8L\z!95(edQ7uQ?y(dA4ga w#Ŕ[qxf>+q;0/` ?oBGUgQ[ʾm)<OV v85f[CjouyCum7ẇc9&Ŷt:J} $ ̹/gy\eIkN[~ŀL,t"da)b1у^po:k>2gW#>-qMOJ;hDHI`wZ6?Zoυfʡ 5 Q5좥 [)e3Qe*ڋ|q5͑-_D}ZpRlswp 0 ̤b~m?\@pmx[# zjg`(D9C |n5A#'" H])3 })ȱ[:t8MPeH`S"(:Q_q mtC&?EٜZosQ&!5@l1J)|oM A#q {̵Njf^mḳā#Mrމ,6L b..&byKMog/_s t ך-bZfAvi e~z\5lJ-ts^m7I$&|Yu}Ԫ&5?Cl9}a2ZW3mʭ&]Ggbf gJf>_)AX1+~8p +wwɼ:D{s7?μpt6iI>FG0U3„؇{KL҃-j[CIZ|nU`P ~#eL? ̌m{`;{)76\Eu!9s8Ā˃{KI=ޡn]òX z*NwhS)dMyo#,0r`NGk>?}5& RA1g/qfˌ>CAVN! 5FJnաCGCSc-B7 ̓"m|̦z㩆mizήF;6oߣ \s^xL&7ndڴiXVE`0*RJ RJ^/}ly%˙ L#m0c6{i!(7 I4nvj 8 Qxɘbfc*dԆ5oGQ1߉{R{\(#^#t{$ɡrEvS\N k@#w|}􄭐Q6ۤo\`42,1hw.ŵ%kP} j:[}&wy6RGּ#8þ- [Ly)d^;Фcߔըr JYj1h HR^=b%=+iL+%boMnb^p{s"x$lo`0Se _Enاо^#kbV>D\ʬ+Oam~ʋA_4# 28z?M:,f43AeBz Ӈ۟FQ])mz0ͫ70̘Q=x+03*I |z0DyΩed7a-:t8I2!D8gX\ -Ѐ_]&=rCd@ Z% {9n7 , 33MFQ -_1wvuqGQ*YZ+g^xOcS2M491Y5LڵF Q ޸'H!lәur׭֓O1J4TW;MηYXtTME̫?Ԏo8%K/k62ɷIs4Ȱ(cI P30Z6FdDh.ڻPuP^/漳bVap@-*Gc\ݵa|RE^gxiݶaށosF1BzZ)cYƑtJ+ …,S`fvqgQ~uz~x?Ū``Z2HPŤ ЎS)aF}qj`ª#8_ZOw@zE9E94F P< |g0.(GňbFؠ dq;0[y]اUL8Y:tqGv6 q"L;,ͱccӄ&P$LhExY;w.vٌ(Q+EF_TX Jr۩w} [1eW=$0a>>-Fw͊?>l̴2CDX\ndœM` iӫhݺׂK$ d@ ?؄oC5'y(V0m5N`JdpOUއSi.F!y85}v/bng~%lPX{'%`ihR먛dFxTYiF#<@Ud,~Oc*__d<9Uٌ+ FLP˲<@ ΈoT(buQ>=  a-'a?m9;ZpRY 7fR2J =hB{kד&'.wx( 9w<кW`0(ZSxA+} H¢rh6]ly}5ɡ;V3 \;r[<03E+k1Zc/LPL-͊i/I`>"[4%mM̮(`-f`9d|Fz x]B*GHzhdSdW8Ƕk,5Qm7O1K \QA"7Gw*feCh-8ѪE(ܪ6@%U]l,WFiXO[wI^2)G[>(@Qd/I )[AQU%:jզ ˢyqkyYlo#= N\zۍf'ݨ[ɵ !묝N KkqcńСCG PC\JF"ʎOSu. 0q=F9tm; 4](_0WhX\ =Tv |ՍqX**~@ @ r122^ͦV=u|Պ e2 yHxq8LX : P 5eɢR#n|N9 ~wvSf%jBFz[Hkf.ovTl(.'61,Y<QZ6ym08K$gR6I+Ygy6cIG|'Gu*[vͧ0I;L[c;R{i~q+T},xe cXy(IJk-k)a{ wᥔ[] ӥ.:8zt{1tq Y3J0z_(jiԗؒ, g#j/`39q<8 k])Z~'/ ƫ?q=o1oU\{hk~yy^p'8Tf!`6  ..# (HlziKjɄ|yZC K'}2l )4҇zB&_ fP:-`:=11z(< aKOC #:r"mՔl>X@aU9=Cd;t|(zEJ{kY*@ IDATuT$/a!|.9jN,u=ø;qT/!##9p34D+P(*+t:lx썬(iUڹZF-LUnD~Ã({C0_ANN6&vpO(17PTSE oߛc'vfbGp53{,`̪Ih'N + κrc,f plH}<6U];:t;ܲ ̿"$5ЄTRJ/z%Mhhz M,*D&!DbJU@" Y@V8IJ!O/,U؍WQw=vz3dW ,,4y/ RJm Adv;̞`DU fOmo+ /2p!|c7g~>᭸%[ NؿͪWdVم0,@82+hR6 RF!vWK DwH=Mh:Nyۚ0 +n>2}n.C'+.ҝ%txՖP0)lPXaƨv14O~p鴾xiՒ~g&j K vA (C^Ge|.`xg3GRYN=V`O y;bj;AJ,RRq m_ \s5<쳸Ӧ0! >GE`П38*p݈t\:tHqW-<QORGJ8Y|0V]# NRUBh3H sB}~.r ,xS#fϘ k_q @j֟:S}ibաC")pX@`?̓izXB+Zh!.`d;h3H YWږfף*`6q8r4?&,aCyj{1n3G{t>n5)X:tL (1%{jI4( !O+ȭ-Vj O\ΑcM8^ڂ[! mܨ2Z ڰ6v!!wx MϚEMM-.+FX3RwEQHeyX[C-#ld;S%=# )5uБ2H1㑜D$+'kM :ՠm˾|+CCBtE>~|N|Ѻ{ԥ y:Gfk首vO㉶QwOde2k0RRZAOO{J?+:tIkHx +?Yh:t8cL9F";ƫoe+b᧯c]6g ]cW҉XPB}x^L&F1.@ o~+/;oⅳH Fr 1,5 M :B8~Y8+4[&5瑝OW"B)$]3 ik\U` CAvBX܋MCZ8DB! O^B!B+53Rh(q`nqg?Z dgNz&yvktU`8 M DV'1~L#cbd7M܊ZMfϙGq44Mc8hOn-[p.il"sg(i~ fsܺ\n, EQX{:<시s9*A_tS;R:tСCǙ$ͬv9J~6E~Brs2կ~ngxk{gEvtKhm tG#n9_"|>K-cf|>\~NduСC:& Q#W#&Ζ"DcS+]\B|>ӘS?=.i\.Pۭ>"Sud;V u#mbE(**rO[[6.@':tСCY(B %b4 TcDx+2XRaYg^n͆ yW^5qqܹQ+{;Bh.>QB;㓗p?ӕ &fm։:tСCBQ%XkT5%ʔ8Tb~HJ2wllg͟ڪ1rx), ij=^o9_t4)'> X]X/۱ ՘fc2hkkc]\qСC:tL`L]cq!@ [o$D;kut^xaCd#~a#ݍI|~?@ ;.fecG1G G p;֎lR\>ikο"/zIAㅯOw ˑx&~eNnV~{ftJߛH_}W)XKk"5i0Z-,\D/Çy͛7,/ ;L^CФ/@Hff1 i"s: {~,3 "3 T8FZ}-C[qsa.] ل!c|י0|0SlgU*}7w?WMORߓu*6 X 9erñ=[yˎ62[p 3oOoСC{bɪz|+F5!!c硩@TSeלGiIl܍,9ٙ2?Lfi׭%7嵀UgWkOC_sf`*BAPF"I|?ĭ82Օ*=HD(Y,YAG#I;*duP|?tyC5?7Qgm3ߺ,=/W\ǿ#h}7id2@ˏCGֆgE>wkTH 4FZ 44^uv8hHit?ji8u.(`Xf4MCg)]xtx[Dž?;: x'67f^m_vAdz^OiS?%{֊L{LyP3sɶd}!rϳ?bӞN~xk%ҒywPoܴ* ҫPϾ~Ѵ aptg~׶㲚eVt<}E{mS߾_G|,O]֧?б~Oe^}i ]#ҏƃـ/#ǵ:E9?x>Ss|#~c˾q7Ug7EA( `4X,VҬX,8iVVm 4~%,]6ѿHZERS^bqǒّJ N$?ٜv yrYc.d 6.z6޽TUY+? 1)LlJ Xrde'/)E{gwYOs'w+,\uj(),|Z>ExCh[ʆ~8>@u̲}028ܯ|VPR8Epɢ|D{5s1 3%g_"c['K]IXmS_$pu-V÷ 1?{Uh.kd`` |+VضXOS_L'0С##i3GMm7F&fG’M5Mf#!vACHP@jBȰ5*30qY)h2a2 JQƧ^h3#Aʙ)^6 FI2%04}f1HьXt{>Os*.z?E^ZEWpy(&ӍVztlz㮳o%wA=989wIQWH9H_R8Q1ͭ #40cf&.ܲ}UʸbtcR Z<'-+pf~9,toχ29ZгS6C)F1o&sG8FUʵʹTM+X/SG=6/TƄnm'R_8x;^穿}kI ga3  ]:<&gB۞}Eml~c:Nc&q$7B% RJ$CT g9@J"EH?+BdžQo>٘L8Oqb!#ӘfD jD'S:^`To0gy-w'/?zǜdP9~s+eQS83+:@1P)tM] OX1/Rz18G4?8{s;ȓkS+)<B3%KY0%Pgyz}G,abR?J()A}a~oO*om M|CݒyEW | .ww6Ť'k}5v4hjs}wz&4'W :tH]%1Y{W- ěqͺ_ ( fC /w^̛ld6a20?yj>iV3&Ʉa24S{*PpgUˍ2Q4>/B:2-,.T8Zؼ߉6n*}-DC9$tL+xH'Qt#Aa(ϲ'kV&+"@JT̰HΥXlK+֭=KSLE+s'Ƃ: dgs s03* i2,f}ov/ǰhmTZ?JShS 'k-û,V"jʥ,#^rwlo;0L=S鷓I_P.-oyǍXCu\ۄ4dT?+ʄ7BnBWvJJ0LXf&fٌdJ1G҅?%I^coo~}ͽ tqirM>Ksk{Tf,cB@">8 V#vt~lj>/zvv<}7sE5X,c7hI7~5`\~>#l̩dw _&N$5Y ݽ~afyd}˹"L1ϿyJ n8[w͓7Mˎ~dr^՟=K:jcw?As:. o+,+F0ڏT‰=E\_G۞{oƸ|jvZ᱗¬sjO8( l<zl'STm i  4<}'oУC8/-Q4!74JgL$J0$4LU(B^nN\c1I3xq\|јKX^k{X^j%s?Jo} ,y-ZMQW]C;b-Kj`b'|㓘r*9,T'Ɯeg޺+˷?ݛN}^Oe̿A_D/2լ/}G2sNaW2i~J*_H4;r׾'& _7ZjFE-^K}qv>g`?dr_8`Σ=˃} {岹* 3YR/>uOKtκ?0Rjm)e;p2Lߦf~8ЋiuЭ1inwUέ\t BX,!(*F R!]%$VN\ٳkџI-p1۶vvWcz|d K.Nqyjĸ(RJ dJځ&)e(hz)7Քd x|,ǰa:t@x}~q^,bxaӸ] IDAT:t9 (\9Ѝ5СC}wE_ؚO >mC)!jMp0\23Nz`R}&ӕDVqH[7m`*{z%tБ"㛚foRcFhlQ$\br:tСC:tK_Qxm+\2̞(ҡC:tСcr"&Zr2 ~!աC:tСcb.TFۛ8J$ cBСC:tqB\6I,~'1e6Y:tСC:NR;{CEl[)jfEAӴ0СC:t8UȤaE DvX6?4"д`8:tСCӊX?h!-!O]NRbRʰ䚦鮹t[>Ɔ;kȟ~/ܰ1~M?;?+R?BmϏo Mg}w %BK?QAgfwMHBR HQŮ v@@x,k{-A@DTD䵁JPTt J)[nByx̝9wΜ{ YkX:%ßdWYro|<6@&^z 6@m8s_ ŐWK4wM @?N[7sNd ;G]5ӦG_wru{;)`>ϧbDdKne^N˹|&ϚA ~ ~|w SnFwAC#kxPyl/\(׼>cZ8ɿih69/5#ǔxT1A+d;E9Җs2[zf٬ h_O=9'FR{p\U>.UQ2='2ĠviBֿuQ̡͙@Cn5 8shel[aS5kXvwD'xTYwBEr^ڣUw W<7ɡP|5̔y!V=׿đ4mӌ8I0o&-2p`U0e,V;LtlB6PX㙸x HKsسz.?Ůz|_GLPvu 3X9;FMKC wyn~J5#,1 &&.D>OxnՎϫLY< ڞ2]z׾\OY3jh "5Nl75|I|0_?y?L:ݖ 2q\P oJ @.iN;suޝַ* 7%c_Ma\8W:W+@ D8εǓOtUKjgV\u腓HuumO ձ$C=ڵ @6^u6ׇ8(ɻ]Pmb0`7K7TZL*?X!ڦEVQ\P@Cތ~m+c ]?kyk}SOnI+@6&<0u|@^ې&%6J"Uy4ʔC?ɌEzNwC#KᎷ&PS#c2z|n\N (YP+NDas:Dg%|0wyw=GYJΉ|W_^L}ϭᙇev3a wù\ Ju^ZC?ȸM2F]Fb8O:3ar_%lϬI{ ;RMv*0334.1Phw5h}l־JނԉkL٭uu`lBR(T*;Ӷ) =*{ʰ  钤ۮl?Ԟ|~k@ƫ:YŻ>/SVam̕\nm2[b+>UɩglWkxB[P@8СWO9ŹhBӎqY{q4ͶАБ`;[Xۖ.)!P&bUF( `ܱB5u@<ȴ\}d ڄÑf> DӮidjuٰ-1vz KwVr7mg<.~bKۇǙw/ޣF[N-AU!*k s@7a׵"ƨQRdklث1j\]kϲ֮]HomFA%QsOa]dHPH1sp.xmrv.˸_=yl2c 5jN=st~ٔÕ(MB(e,zNdf^HoCP[6Ͼȣ?{sYؤ[b*zjⓉd/gdӡ"NC,q`tЌ`U1J5,Єz4GX ={Gu%L?c3u+"8FU O"V.٦\P1{rz2jH2<__VzqKNoPcr\*eSxԑ%J:%(Қ&VѺIiU7jj u !嵖8:4ѳd֤}}lf.8Now'VKf<+\kժLga^҃z纻;0^Mw\7`eZu}C=0; X?%~3/:-;sT=>ikώ&|ΖqYD6:M(nFDZ}*kOT7s HlJ`ay7qoLRia$Y94{; aSe53luE~+>rx5u|㖤e9t__OnmJ?&V_ XK|Is^όq5Op[2>9`b۴Yy=?l45`Ih&6UH }cH9v|ѯ|R$wyѯp O=݋6}̽1;)USTQ4N3UQU(V~u^u(cFelm'N Ro$t 5SrK6k~r#Th[uܞXyGv^uO'/F{ooMH,@+og$mpv 0ӭ$Ekܛ3Ieݵ;RӒny%-lۼGO'x=袸f"*LmUS&4(/)Jt!!*@|M1 }ӪV"H$X8 IOӔe{qJwr{)d%IE<*O>P^@潵{jm*9{iD"?F%,%fkd 1z偻/8R"HRvEbj\ŬjeOe/56A뎰GpDRM2/!-!G#p&.M!Hb]ؽUh=u䓵{qWsبD"H$DR UTtOPs[Ê 3H$D"TCzӑo 4MsYy]}G-šOVTlEbD"H$D"hVP(g5[/|R*iH$D"HGԺ瑵E.W]Z^28uޣH$D"HDZ-/KBXcf{j5[0睑E$D"H$UA(5׼V)ū-$*nA:{cwooRJ$D"H=JWYt3GEQ= ZŖۤ1D"H$2zI0`ח:4G̬MۗtDX*=D"H$S6,8:GU@.^G|Ss!T[D"H$7PQP@>AC@_}]VJI9rOsYc GdL}A! >vky7w; :GH|Ê^Sz[lEwcckg $vsJJ9 `iAͭXF̜ϲ(@KWw."콧n?H$Ճt]s* xLV*,Zc`Rk U gN ֆy_q\٧BTƹdf'qKv'Xs<05QM>k=h>Goۼ`:w,QHg8pJ,'ٲ/CA0 '9/28L0 ^| 0(6gpD@Ewj%Drq(מ;$fm!0Y_T{{zZ))Y0o>8Q K+Gh׵!a\~7Шi{&{*"bPTBBW'ٿbw`]|&s~Riԍ=BQE f翲t!$vϳOk1fl 'o~4LXs|@l:rݢ`:1OkA[Š]0i 9?ڸ|0~ǒ'(6&q'#Wg?g6L|RlnQ׆OEyg;n'Œ/})^ZxKUw3z</Fooyݱ\fK+/`oL6qRSZ F:02j'WFB Ӳ',q4p=&2`w}0Ra}HR<{G03n=g_[^0\C_A"H$C gcin'U\j.15VуPhgSBVDK೟z~*ظ^?䓩&yl6qL6 m*YgBԚSp;J8u5fi2 VÔq >-^—*GÒ36wKx&: T6XK~;ֆ\L~թ̜W/cK_^8J2~ ÝL5C#n IDATcUxy_cCL֞uߞn,V8N٢vV!50}0bfx:+N);=d!\QQkg>vw\M˰PVgØDQO[ɷG{/2kxk H/2s|=$>G 71:e/xH$% ??sftA#8k7'@UzU\x9SdEuJm3znӜs,۸\L#Ӻn!ZJ k&`!e,׆2&NxL)>ךEX'4X# QFsì~t:{Ўwq=GWfwNvU?r[/1уGZGLXkjI!䧟HKx"d g9 ^SxH$%CQZT6\jxnfq?1daLJ`6A Btx?E<&w/ioKiy]vտeuubiԨ14&y\ YP2 ~#.۾uq+_x /OJ`ܧVjXmxq=VUy%򨟵bTR@E,"[Tƹ{8\XNq@0v2D6"_؟YH2 RS{N Bl[] e^ҋ~gο櫅x^aq@X"y<ɴ[HxhBn^58$DrI]unWbBqg݂f9_Du_y_#y}p nر;NWV~_ ]3lݻ(9  AJ|C`aݝ_ȎlNU] 0<ΛSt PQ\rR[8EJˮ'xNdcN;)7v7X(kL $%c co㩫og[ Np`:q}}:^+GJ4_~KPgӧ:Oݑ^Ç&}w ўX{nf|W>9u35r~LcO+(X`:Siٽ ^eMcƲd3w]LF8kwj>ZxƏ˜x0k<5W,>"H$4Z:9$q _SYGiШ9s'4Sosӯ\̙,_#IIŠ圞3,DQ藠txу?t1yfd(@Lx;I<YSC0>T\>mcC=:Ox o[yUjHFx|B ޯ/i} 6aoum$]> #'MeQߨLǫ">~i1iojC "$Y4*Br/0zo04ۏ&3|V.Zh 7>oN2ҝ#v?=xgWv-a8qw՗9`>vTt"H$D)VjV^Z?]@VQhEm@(@<HV% -g@TEQGa/1L[Q8=#ĶfOe7o5Sn]9hSbHn^nb,gEF/kA'OyMeY&<*X @o9ٜL$0VKJ!ᏌthWll2b`@oX.Yd<Jt(~T~P\K6tp)d%D"ha`6 DŽhT[vŖޭcNY={QuIq\N1d*k/BlN=@X!w6TJ |L<3mJK sLTYߚGކhOJv2ii9jiD"H.s֔ZGx2fuܽU { \J-yh޳a4H]ggI6 gN_ck0s߫|R{{ZD,`v CwO_D"Ђᑵyl֢YBظR{) X{!U%._lxWg@fWOpgyV9b%D"H0E:g2pQ?E5q ,,Nt/>Z!HE廳ޮrVǺ3p'uG!9Z%D"H! KZlREM3[Es(3rv|)chn[!·i4g7(c}lNL 涾Ŭ8~T\D"H$/:ғ=.[(Xo^VE3*b"Vps1y纃3^"nJJwn>vKwmФ㳡a'GD"H$ a -P{,I ՞"VQk6QT+4Xry.*%E.\wGE\yNs]T}̧2ϻyS9{"9r%D"H(wOmi_%ϬXR^4Sdr#D"H$bVx6FY((s+"l/:`0{E-m]9kI[66 4[)ocٗ~G`9r%D"H(VongWQӒ ucւ NUR±قEsA'䦻AE!ѯ}X&Mn7/SAZ7\\D"H$V( ,M45ֹZrϬ; * \`jx,O(r* c+ *ҿT̀fm1$7wt&) 䈕H$D"Cu֞Ή ?VrKP@ajd˔نq}bWE>|WS-furJ$D"xНF8tT[fk~ZTT\1\*ϬU4sKpʘvaU1vUAߪ}=,9-c]K?Ȉoc {ǽfȾ9[ҟF""']{Bbֽ{,c"PQ]CZ|.ߏ*xgÇkHQ{(Cr|8F]T<.no88;_ew\c7S,~l #*\T796g̟֣iyc(S/Mqtی2ZO/ A;wI1!l}1fQ ws9_/L߱d I\k? {l"c }ݧA #և ּ4 8A?d| ( ?Ws᧭-a<ab{I! 61lDev*^Z[mL.!OgLKYFO}HZ+im}ebiLbZ?>ɜwpBuap{PƟ:V's RlrS4NUE Ӳ~?Rh96'agÕKZV1qf'b`߁b< -5_fN|u AyT&wX>\|:3fĤMxANecXk SoPKFW|Y+a{ W+f%>obl|m|;#^1kѧ|%uAOTn1 Ux3 ~*$wFa2*Yr6xG07ĕ1$uau]zgoh_q5dk 17KQG6Ֆ]g1pR+BnK_ E|KkO0o˯K6f.2E`:vYНs9>*s+kPݼF{C29URa& *oFK:tg+sAo Iٜu -Ul#X !1)iu}jCOxÈ`dGw2g/Op~$9>e, eGqc]ށKrem&"Ẫ5R1O]si_{B@@qAhN5e&$% PM׫}}}Ǻ1>ڱᶯ>ƅ8??]=GjDڔOwge&*EkMs3oJ;Ǚ?f{qS( ˲*T<{x9EioSۢHkVxԕ[&-H&dmŮgR_ dWX(ٺ9cd=q/YOO+7=LG& Ż>56k0<ΛSt;x}T 1`ˑWs3{ٕB{ 'wPs,% ]F2{I$4Q y2(?*!)iĞO?g>R vtnXe[ܔO,Yv^ER 5BIA-%n&Ӝ82Xmb)LڐeRvjp\ASWSxtөK9jy<9dxypPɝd*z= co"]SrJ$ ==]g,5Ϭ*gzJcp5>Ʒ[n쓮7 !pSf;;dsI@AÈwe]Tu0Y8'od/8-4)j{3xv&# duF޶T(o~ߔQq3ңhau?6 >ΪFc NqY31i4VvorXD"֑~chߺʑR(׹ߒ.BƠkD>[̬lҹ䨹 6[ȫdёLL4᳝v@gӧ:Oݑ^Ç&}w~g>}ֶ[z6Y+񱞷sNuq\kJcDԤ_ɲ HX9Ϭ#ˁ0;blS4WW#^4֜'\$|8 RyBVxdsf^E\3j-(Hju/C !8>E @ d4(J<F u=e1bJү?B a9*}aZ~J?{6l'ƄKwzgoorkNL~;p2%"2Ê !BlEQEQLB/ϬZ\q#*Aר 3D]悃 1e=\7 Ņd\jSOwBV<@ƴoR>ԓRU"Tr2Q 0+ڽz.u,j _IsgM¼ui#!c&{Id s(:4@..Za~|o#qnᙑ}/^I$jY{YC[Bł .!k0%Nyx 3$h LE1*b6xa % gc9rFKjC;_!GD"H$|0En4(%_SJ0 [Q|!D 0)9;V܍kIjO`\SvwAH+0oHe6eUH@ ]::^D"H$8f`טi nY ޺RU3j9> .PZyv̻b9zq(Z^.ku#P$KLB: }6hM"H$|u=>֦5ݳ({Yw:{ʷ%|x5lj򷵚@cH$D"\1kldZLjԒZ=TST7).!Y+Y ba+2_¯>=#^< 4i^?`$8$$'?s_Pr>N>q7SYo\׼gdzq}x{36ux~!2v o$eZegk[=g9PDd6O% L%mwCV 8=? Jj'=R2+r]Yv(ӟsF46zIt* , A{oS116Tfe_]r Őe V߁ 8`s %$3 rgP%rsp:^MΏbO'Vgqj,{ƻfey[v]||#?&+,@P. ,#U } 8z0Og7ezO~/crz?yW>x"2^ )7)Z?qd)wAվ <`f]'] no0gF:B9螫D.=##=x-jL݃2&9Yswiel{2e^ ̎Kٽ 3ő`iH$-rlb 'ϻLd<{(SV'I]Ƌ `P 3`܍A1hM`dճ6p\ɞTf&WdeϦ66]bf/_­'#)왙!DQ69*D3MӤ&2Lsή 󉽋¢R)1}gή;5 +6dؤR 4n eeH*yٲ$4-2d{sYe&cHb 7r2^T>4#eRF>PԮTA1e$ͧ0h NK*MB a:#`4[xKw6e06}'.<6_X:e|).XV}Fnqkq`tZwWeOby'C 3fT8NI([2,Wst-h߂ݫw][Ö駞Yвsxr61<>;rkHuY#.g8 fI IYZ̤8왍<)Aԯ;k捆02{Ϝx`cۋ1qְI5C&gӕ\U[R"W^mgvYq\x2E&w2ͅCe\h`d^B%MDfXgAM恍%q?mq^ f' qgabt6@;=e([Gmbx:+h|Ol7Apphm,aG]ĝq_Io~/anP>*VR(!ئf};ob"Jܸ}O2~+'03z g_xg0wsD`g9PیaO_ |F5?3MM_g ;?uwѩ_GWn“wB`$ph)#[ذ{QؖZ@/2яp_*epg 5tXXDm5ծ[rҏǮ́\ʒ(Y Xz6VʪMԇ &:fi}qkk86v[gqjo| ͷ c/~;WЊQ9 &ngX} pg MpG懦PU{wb[." ͜Gpwg|x`yp[6;>|؇=退КʬkvT3XқW4-Oµ|qՒdk._;?/y}?}/%W#aU ` Ͽ1k1[4۹eӇ>I,r?Z܀,l~`cml58x`w6Anۋ .@r;z2 >Vђ LaS8:- sR`zg G}3Ñ 8S7LCŢ)'op걶ވщ%d;W/a&bD:gbr0x ?֦aqwMa݃8E Fg5&]% ..~&Mo=Qrm]fG_#;X],k9vT,ȧݍ2mQ=c4Dj@'7ـjl-/1Dj;|A&U̿ ,xr[ߟ1}qp_ ;oϾ}wn. /iȥS/:Nᐛs\:s57obٿѫ;/_OV"b 3#X^cP붰! Al@@a2PdDx^]~iIBv3kأxn:^}o9)*FG;'J,+ȯ~} ^u7=Ro "ܗ&]I=_?auMtۈ[X@%$cfQkµ׿G8`pm} G-޺uyu,;ظ*nM䋿sc,~|#e)I'͠jfqDp66~no m,u\`?6I]z8(ۗڟL@~ hZZ};4g.`r2<\=%r_8r#ϱ}P&D htk翄S3m4[9$]Fq`|fo,=t &:{/n%v6%]_yK8mǀ@gO`qwZ|plZ)poc=;e0ɶڛkL HdS.4o@CNArB @.:q9F,w!$U3Bwr6}b?VTQo}͸<1`*]ЁS7VD9~ Wb1tnbq1㧀"vz&Vnlé-2׾[ag}){j8;7A\ KuL7?У8H,ёA4bV#bfqtk<$dc[aZRw6@s ֮|W1`kK1q @nWt,J+1?VYa w{rV#G>Nnc[X&޻v'<;ؑ[o# >:; hhn=7NDgsjlUlm=\™>C16}&Ƈ>0%ܛn,]`)c.{hRR1,]P8Nu8Qg{qtT9.[dSym3+,O_$2E nw٩bȣ5iFt Cb]>3}gm͏#CJdıG~*RF# 7hc3lĀ@QL84=ںz AD4Fme Lbl+ 01{(Gq}|1LO W (PF#jb{[)Ԗ>F}} w}YܫvL11ڊr3Zfhٲˁe:~WbV1ȥhEg$f'.bD)0~d?}qgB=Of[f,82ݳqEm+V͔w1:l>Gt8|].bnqQrk4y0\!79}mA0?Nk@,)yiL\Ml/DGN'88A\Z ٍDU 9Ga{TLh7V ccu `rrH%I'4 @gu] 1n_,'qzz3SSRF3*6іXa2#DH|f f*i7;N#Xky Ġۼ~n^f;+X: a0А@k&&:.0t7pce;mяȚ\}?Vs7[8rD[\GфDl74ts%n},hmK=z'g#qoWD7[whnŝ+oaag3GQHFpo#`?"Kwǣx3ql]r o^ݻx7Oc?/řX|]Ǐ_LZZ׭aߘU,m6=<g6FhЭv귱|krO "mame  JRYҏm;hVo&00q@?ݖ܅f#L]+SK_;3S &:;+X~ 385+ii`F:GM Np SVJ@y=f03^EX_6/ӽZʫ$DRMx}QnB-b븵H,f*;7ELmY኱o֊Ay$?=v @eJ*yoԦ/pw?++p4 CxW/R{\2C͜gx]ރA!e,=b'Ğw;wpM4%ap4NŐMl!LF*,02s @6Xncїp$8qn~,RϾ&T.Ӥ9~COu4ßO$+Xum`їp:- N;>Ml| {TSʕjw} eegƉTrNR<3 UfI7wed"&pӓv 8}ˑѿj_{Њ:Xxԟ3ɎQNe*]@2#vb)LHB%,<ɆVe!WJHP.z:hD+􇀀nd `6q`] j'!8h`ch,ey3ջJmW5XerH k-U[N QBPG,.YᭅژCC`f? DuKDv_!KUNLQe7䕌H_Y "” #qgV _6 !$$0{ZqHQCs`] 8!z!FF&n6104ʯv|C~B95߭|1gbBr.DQ?"W7lv!cd `)!cf <EWTÁCGVs6_MsN(_@c{ @$tfZB@@@COfk5~%ƫysRV‡ ?p07w "*Sx*YB= AljAP{Mj},K$,pTZ)͘AHT xQ85?od Ȉ( kxe*7} ;$;2V&]LwLjsİmR[ű [#DZ(]Fm#CA2}Hɵn-_ٚuZ4c E 4A̴Is,8 ^hXQ>'̋XYTXV oDC7 l߄&lʹ$SJaҜgt,̰]W8-IB2HlFpEz󀀀slp[ u6Z$,δ"ʢ$rn~9;^~y9+]f‰Bƕev PBDɋ9NҔ~Jęzçڀ,yYnA$ BLھq ՑJ ^:άA_ZTf8,Y*?} Ľֹ!Ip/d|q@@@@@@@@@@%H#N$$t&8 J@+ Y:[Ǫ:D3Wbm:΀TaIL8Kg0T#,0^Ĝ$~|O*_ eArp3|SWƚپ:5"A$W _" 3?IKs&2!=N81 mr[%yNbI !a6|D)%He#(VP)i`;(\ƌRL ܓR"C@: B7mPk*"VSXdMɩ@" y$UhS+;`ҍb]6 *KS"`KU_ "MLJĉ˂ׇH/' 1ieV&7acX@@@@@@@@@TYsfYG7P^/@ڡcI)g6 E/%( MNِfMW&C+`Yũ͑Y*p/d<[տ n H jE/$T[";|B}YH? jKe! h8җ(C$}`L0 `Yk"$~\9ƅ' 5,H]h&uk̼>oh1sW5#YE 7# Gl̐9\aVQKNٸh?{PKG&nT=:1OJ{3yLvYPddH}72ȯ;;r sIQ @ 0`:~, о!s&{8+Ih^-9VD_u+Ua15|͈3Y-F |=I-!]b?'qzN2­-_]::}u'@(xGVE.f$0bA'"X{X qJ=>>[t̅HW&A|OaI8u鴧wS'- Ӈ{W?`do>d6 _1[G+H_(QQ}^6D33Lj`k=E囝<9Ki3LꓸX;/Oς}3#Yɾn>f;HxeoQ,r׶zOQ߈5oH<S+i5|+3D"7ffTlv-sgBD8㒑e1x!hW6dLDZBpX=pJ|?};e\8Q~?}d Su"˔0dɰ9bl2[D\fEЧ:t*z3z.l(e^ZWο5,]^O]&.iˮY<pf;zq/k@st̲9%EI|ü"#F&!w/SV^*Ν q<3(ŝdk]o]W?t93ruS؞(C}|`rN n'ެR1}ΈbNH*S9)¶oX^WUwd˾~Q'éo.+fFEgIXsYC2Wr03lQ~wdc[2s΋m2sW,&~ϕRJlJ4di'!??ga<mt+ëݫR1γ [D$Y2TX$OY]N(33  "BfcM S 0}YRJM5׆ʡ aw2'QJU{_@jDYb HRjY$-2n6x ( Xf VJ `)P]GX|Sruy="rMXig֠+9Unux;F;7 IdF/hV&L}ZϔqHɕY>VȶIL42#(Jt!Y/F&ԇL<0,Y&qe.rYt{\ـsvʮ<>@_*B#Bi &qw.[CwW}Ɣ]^/Tq A[[Ta.bSV͌>29'쫗 F:*¿HF 'c43.lrj|LeMrVB]_8#%OV{1'7%Q|ɚ,.z\夯9=.9uĜT@RrcEt";gXӍ5!_„c9'4Ђd^ꡜfܢn땩荒zjmQ<-[S(jєSί,Wl͈"#IٺtRRz|?mPyrPaLR=K'Z#35i,f9UGԊT}2 kB^$nXF(?dY|orppQ}.VM%D~ DY]-jƮr,\L"I-~g`ϸ]_e֡|"A?.Oso{4yR[4_q "#\tn eu|NP@ 0[#$D8NGbV-✌b"9[$@fh1.mM0oQ!u0d֧ƚ+"Bk*v,rAFZ;5)!2$Ij*xjC^ͱ+(TђLI"DT +q5F#gv"e[,>"U)qEb%(d,Vt,wsAqkMaq&y%gp2ۣ103K"djX` mmR**T%&DhBYАB0Jԣ18u[q7IL!AВWrX7p' 6vjB γ:cʴmq_(Ugd+(Bقi6y7:DdhԜ4R*)Jdz%oM:^x3߭ e ʇ A`i)1ϢR(is o*q_I4b#HPAn.2}Z)AL˽"_|2!ekv-1#R {.KJ!,3+ϒn g`_ՍW q+n, $rI3۪lՇE|͚rL^W|EfI~%K"ٔZ)5Wbelzivs }Ee qnDUޢh|Fgs+ d4|0<͆=Jo|¾st#a {WSD\b`ݩ΢@309 R HVS8NJn3s:3@cd٬fj֪6:uHK}VE&jjhuDVU,L:|lMk-#襑WYV+i+g@~I{k]΢h>4DNAH ֎#?(MCh F_G >2|<ڪowpv@f=p/jUSf/˒o,B.tOp9(CZBT) r_4_q߳]R'ɶ9]6zrMHqUzKbTɮײqF>9U MYrjӠ/ʎI}dۗZ*cM Re |VNJvQ5dy:[3eceSaao;)a&-UsۊJovr`r]#Ab8&Ldq#D4(@5fsSޙO&cJōXk^*Q!鮚DTb=^Xlj7[Y =7۵`+Iʮ?\Q\pL͖ [yF&KAgս?9y9Bg w9tDV֎_Wa̸zQdâg!Ώ)R53Qرg=cpH~KbYqE{D)h"unr>XDv^E yDG!E)?}qRF푋oXMfb aa0gT_\:dɷ>c^M_T ,bϹUĥaٰF7~ki2RN3IL6Qn+W ۖ#Z, ,lݯ(ItRW-uoQ%29@]܎h[ݼ `'j&?? *0r}UI[>+*<+>܇Fy* tcX`t7BE M_ӳJSOf V*oUZ8I/@IYئ" .)G e"ݝ<(&nWy7)_V\%3*BS!]H\$\%lL,C IDAT vTh6x1[,* ׵9(uX%,365Ylⱨt|fIZE yz?*Dm) ߹_XTf|pskl9 dbmΉ8f("$/ B-MDfmܥēL0iiD05""$\ fFi>v:;MM]&p@1Fj/uRS lTR 0EYVaQ8I!#Jhǥ/YL,meTkgqo}"Ĺ sU|l0]U>n(}*/n@d=vfV>iF2=۬|̼~%ܬXd^} جEWFJ@GJlN$LR%O2__ZIVV]wf?\,rrk9y%-X$9EbCovfz'e2-aV\_#-9Ij1܆6H00) o-閙c" bWmLKI"buhv**+TPtLK}GQ-Z V0Ilw NҜ٤ΞpR^Ӣ^9Y&6ejF՝- .U<w?Iv>~!*^&/qr,%_Ve~U#6IΧL0)BإW,D(.y6rYX% 5WPmA^W/ 5&*42Jw,3_E\Rf;ӢdtULտZ*9qMTiX+xQ l Yb&W/TQ9f8i Mru{} ?QzC@<^6e:m.`JϖEd,(oڂ)HV% ›5G <Kn]w՗Nja<.S,'Ud:~[ƲL"!D$vT|ٙ(MGh+تNpk0d3Ħ Q#C :)&OJsYN< Jȡtk{]d'W,]v:Û`+QꎕZ/TtKH]xٌCņ%n#,_{ckHR"L&u6JHMG$+l(q1c-$1T Zl4h4e.鿵~~Gs' ~A@x={̭:*u9LPV\$, N^c1f9rȎ VipWҎ'm*UD_;0WURxd IdXTYM]\5$o֫J^eɦium0YF6ZѮwGQRYQ^*dZUU,%E⃒rf+S ϪMǼ*ɍ琨M+>wGzʙ `l׋|Z{]G6i2cJ>٪p'tI/N󲜛v7#=Ssu]49O'. LBKYfޯشl䘇}8d.}f0m7"*d(~^؏ٞ/r@o@YZtH4[}R0V#n u=ZMI#W-*԰+9&A{+ l*HHe}ˊWe龒:U_^d1s!N*_Qg 2[ O3gUpqQxlɼ)m2%b̜E&{Q̝4ZM'g?2[49N+QJG vz)ebv9Ñ3";{ *gs㬺kdF|B>gxen8`Hw{=[%@:n^̽3Tl#G H}o{UY.Y)r@!Ѥ7EVݢEڣ(JInJ43MEn+, SZϛOs';*Š"0B;Rӻ/[ܮ{] >,D^5B[e*x3ۣ,w ^dMZf7R n:yj6 e\* |ݏ[5J*qDp'AwȮJ&OF@s7<1.TmEmUt*edsR""K}]zm1?5},߲R_(:ܫ|$nY[|dK2vbV Gױ;pA$9NxmOEa*YEe {ͻϯ<`[^6qIENDB`dell-recovery/help/C/figures/media_type.png0000664000000000000000000023636211751021273016141 0ustar PNG  IHDR]]sRGBbKGD pHYs  tIME טtEXtCommentCreated with GIMPW IDATxw]y]kSnjR$ћ@bcLw=8&.L2qlDZMb\&c;cq2ɸ$188#IwS^]ή{ svY}=.ѓ@ ޿JRJ%]:Kk73J֋DB<7ov{?L>oȹώEv߃rӒJ_ iQ^Z"PJ>?>Mf~&^miɫsRJ)j}/"J_Ev`K#:˼σtJStڥ2H%}F%Akktg{z>֠3gʹXYUߵ'ZkD$;ݢc OKAfNeuo3t%oH7GߺƄmڙR cL昔[]KtX{%:]iF i{AR9)m]Pwq}V ۢ=۴Mr x0v3u1Puhwm:B ۏ>ڧg:>{J}"k*?zݡy YLɌM/Br`pJ Ϝ4,>YmA]u HY߬5MgTH;ןGVh[Mijk7hE(' #[Wym6u-N3:>/ܑwnoG; <䓁nzTƈu dLqziӓ l?1zm"6JR dRgIKbA7VrhDH'IuXE22.f$VT#XHE 1*5?G-=ylIj2`dk~<;c<-"~?Q*&&,׌瓨vFy];nr*ZuKR!Ea!\O,,#)rJtZqV|$ts2/OQ#ƨ֤(:* ѡɻ@Gc56lP{$ KYm5lj,`)oeUi5U@qv|'BIl"nJٌ=5D] hBM<$^;cMѾ(JV3+gG}ID[jFMOmSNNURD}~kKHN]Z W͝]IeQwάMye3tmYiQmrUReq54b|"TbtG~LƏoK)eRVdӃΜ?n"ڴ+ŤztEȜם H6^K.#H Cd4oT rm"V**F2wfвϩ/y$ߖnGgSb)_o%& d @le(풘5SM5: RHP )zTHA^2taFIWͺ@?E m0CCMGÚfUtgȒ<:HoQ9+ix2q\|!>VzZl_~#F"T%1dDio$+zJp< ưh"%]^Se WF旾GuXnIB%3S̓"޿#9+,*7f.E{JIIeT杴u#2g]:;DW:X'ۻ­2ڮיO#Ca^_/]nnE/U#Iwq#߅/LV$VJ2PQJ)["|iBS%*WSU@n#^`$+ݐӖvPͧwD 6^tCgqӶ}vZt_;0O蔾d?JfX;0e+O%I{+Wڭe}2tLSN2 9BTW2jV)EҙJZVv(2U\鼡=<"&&516;f ݔ:y!ݦ%^S$SIn R@x?*PPX*v84'Yd,-|5 U~tp:Jb-I5DF[iu&꓄ei5ѹD% Ht=<3>p%B2Jp$=GV:S8$ AJ[r0viT$UoD0 m\7JY|N:*;љuYh0IY^ ٜ1 eI7'ϴHi@O϶rgk*#DxɾOTkI>ٿ߲#]cAD]$ fnSf%7:rCdE%{%H씚ȸ$"v%)J }aLߖOuM%c2ҙX9mIQm]\DmT:ie=L@@ veܨ5YUJ *AʞL N!jNbei!xH*\sWE7U'dHOڪTLr8OQOnJK.V RwˈSY7E]in&yF@JئD7f)y=OA>s(L&)tD$s3i* T.!@:*W/N"M#STu(5}ʕjOF)?>c;r JpD@fjgevl*Bm.Vrb2N=O7O7ccN=2#" `Fhy.0Q<|60E[1A(wzhY+oP঒  ƘLCC}./Om)#tdSUhTn?>b _Q,:̢U$rDWڀىz* OS89k U2|2J)YSW;t^a]7AnB j˝iu-pj}463 }b׈&plzc]xfqK{t]5$ۛ!['CZu".97ҤJ$pAN VFϼcW*VB}%Լ(2 &}EK|E agdU @ּڮ[G1\Y5&sKmZ]jg+YHOYΛd/nYyKcƀ (&QQ w."CJ\`O{RGĔ̥ e[9Kn]twT3VC$CS -,!F\eSdvsrhn"DI+DG7:M$wPaX:?|yU OEFצHx}B*\ V鬊.H_}"S] pwN0D2V즭:qVmc'#H$0i*HjTv Uji#t^%-Fڐ)wZf ef)ye2ۘJ9|Edq E:?&q' wF`DWq3cè 4DdWЫ-M<חIWQ틹e<ז>`W(f(ﳊ{GMтF1+]Kϒ >:"Y"a 5/%?CGPyb9>M[w!JD~󢈈T{߷}(#JFl鄵NPbnx: i щ(R2kB¨.xQW%dhIhY tZ{x͞A$W-dCqVPVG$!$b٧/Cpt黫-${7$E.òlLJ) 'd >Y$+Nt<7Ju(X Ej0f!1& )?Ϥ{19dǷJ֏(k+bA`՗#t$HQ( e|Sq],]LSIr'-6Q!(Q1Q(N^HǒV`,u$? 7lBibw2&'*nV?iZ>"v`1Jk&O?X U{jDؐK\ H!pYh%{{X&űSfIGJ7M2me2OW Qq]Id<ƛޤEou<w[@)2to[)U)fd߷5GCǑ8ɘdWYmJp^p"d=:ΌI18#AYI/dB+⯕Kߚ#Kbb\ĆeWjNn2%Q1rC%gЫS f0IdhŸƠ%:j띎sYeSQHKlЋ⺮ n)Fܒ$B1 ' -AG&1i Ȁ1Ud&C7qZV_AU@Y~"Ij2F ?3IF*Kh7Ї5Q$<-S]{ʝHV{kB"JLb5WOFcgIW Z] mJٿUψ*wg#%U{Q$zO nMVKЇu QĘ*1*&Ii뎑dBkæI(fڒξ&p6gFotK p\3!i1% X^!tJo{Jb D sC7QC3*cjG)UEnQWhEOL)鉊Jud_)5("<,p6 x\^}&N|K,PU":Gj'$$dGɊ2ԪȿdA$*7SSI66) Z$!a"-;`xE˫D"Q#^d~ݖBeE W,InMyxV$$8m))ݎ2CkA;qTd;8<9͏D,&soENeF*&hVbp}2ahĎOI"JOI']=ҧm벒I`FrT3$Z"IZL"SƆmzJK[rމCRu(vXJoGҳ> .ڒni$m7jQu"ᱍ7EVTE]7fJ$W$RRʫ[$j>'K5E7ștFFJNt`5\\aTY{Iy VBOSpoD|e,$@_G&51(&c".Q~X%T|^JZȀP-7i$*A[ًW]ȴ\d` 7Ny~1R3/SY~N|bBelQ(T;iұNU b1u8pMbUO{p@P]GetjTxAq/QSZ~V'UJM&#\b+PIJ8Fnt&"FdarPթ4 Z6*MUzfȦò9}P1-%4=)N4.TEptڠ}BWqֈ\R%$==?\34nnfHwGDLJYi%M/.$73ە$II2*ѼJMU;Sϛ'~YL'] v| DS4iIw.t\CN -,LlE!YǹAÿ$I5S_iBXyj Eo 7j|QϣXbJXȏu(.!E?q;{or2Ք^jP/ſP7 V1(hJb,0nVEo>soQ>QYVHXƈȬpN&FD{3g =ŹS~p~BW]RPݾfz)Q,;TW8"ʽCMqtQ:%jyWz2FXA郻7&*]dOI[T]S}nELi>fAL}dZ'4NrUȔPݴr [O_/w1r9 15Jw ϭOȵ5a4DTU+BrE eDϡzQY (P@~w^|b]x,~@s#1~lM#]-^@ (Pˁ皫l4h.kpcdoPz>l%TNQx0\kHzG O (P@/OL6!^,>Dܳs$'F}Hғ7$;N[Ew]CVÈ#n c M$tB/yDs,ˢR`[O,P@ (𛇾>y˨61htbQDP'i:#)aC֢Ӈ,=⯱{&'&lj (P@/?4j (_MWd<`<;=Lco1P xQXpG 3wl80[󓧷E\'HupvW#g̚53ٷo?{a˖lذя?-3 tg`1gױiÄ"!Bq]P>+bu J)#xni:ڦdKκ~SǴ!.͆`p x1f[[X.hDK S zÕJV>A00C)51 },Ǹj{UR%A7!A_W+gע_Hc~KX_fa.8|mH$"BOo/>shmQ( qᇲp"nJIJSsO-]fpp#8}vR*IlYlgq y N3GI',i #M˔^D1w_0^kP9f%Vה F"l.a.yB&NZ?ǜچ4l  l69﨓PRKkQ^t+&Q~F {GjR8R1y'p[:F n0G IDAT*|ܣIsHsUcOa.|fll#a(ypE_у E .8JXTs _211A^ZN* &mPETR%52ٜkYUu}vk*hטp')eS*T+6/g^/IJh3e*LKu罙ɹa3Gֿ0oZ|oji:04Mj&OUvDD47nF\^(֙}79j34&^((UJTl4NDP+'14M&Np".QTv~݋6:(2kĎ[24&jL4ڕewDs>o .ƨT]bM?Cm|J->ßl՗\)PeF]ؑ.)BtwqR=TNYsghV+/YAc4o8l}oEJTXN|z*yd(QE9AQ(M\rtx+N昅ɽx;ngyi0'^NFS;+/L;Mr_ <0:_O9_nRcߖ٦,tvč!~Ay'h* n5Ct9KYp I Q :F۹$yRܩ3{s iMF5 z8D&h &'7=-qk#% {ndERVȍH`'*v6==,\͛6wr㤬 .8f{9"6BNÎÎ܋Un-EsrZڢRsFlf:zx/^KSѪMT@p5k gY*e?fd\>:hT%`s@KS:PQk88kriJ,Lm2C3z"U0aMc ޱ.eT \y )a覜 I&@un|rWWRhN1Vsq+WmTfwɘ,\k>rIUfxom9-cmOi2 a&cv3ǫy(1Om7][JO xJN=[nGm0]l U{Q-nLuΙS܏8ީ;z`;8i'}u]igb?u[&B}yj5\9bKOZ-iOزyK8HΟ?z{Np矛*[nf ٲyKWyN@z8po|5}FƔMVfɅyi,acF6ʿC,X73| y!~15`ڦQ,x;u8a^J&ؼ{|3Q8eמѳV|aWiW~?>j}&}~('% `[E+@c3Yʲy 8b5V^HŇR'Yh Ktʊ!ÅuYrQrR͹=W0`(\KXUu}']JK9BdGNjN8Kj|4,-9x0/?uVpta[YizA sU#?Jp0@vڮ:k%fL .]_z??fq?xsW΂\˚9T8Do!){Y 5JqwݾNyGsmǪZ>y{?ȅ'ʂ*knm==ɪ3)/7بvL z_gQ jo?c?Fr>?X\̋?ޱ+?i姲ƨVx9G16!5#X ݦLO,k6y((ۻ_V@R'G\l傔A4") &tt䓐WE2Q"0;*phdrW93uoK7GI~dlwqYѨiLdL\(:FB.z-?d?˧1 umރ/IUB_{Ǘzs.::F~J>(q;BBNˇ89>St1Ir q%3oc{GX4aoK&\7`:u24xSp8W篙`.w>>Y5>m0'CX\z'&,x.,yGY`9T5{qw.t,.=ē2'< blhZh=_c ܷʏpy o9rGqlzݫhTWh^V|^5j%y,ضE,qˎ[gBY-H?, iA$PU;g8Smi_ϗmku{YV+X0Xʢr쐰iEA xq*`L+ bWE^a۝dgM޿:QcZ^Mzh6jLM޼8uc\xݸwEE4y+BWߗhg D.wif\(!΁SRҳ&+1f,`gZӸ(>\$}'.w,K*IIOcw˅P?=~pq옆'*K_3>ͨ鵰J͞UsQɓ ~+=+~ f.Yy.98:#WP?Tʢ}_bW( #{CKnz8_{. t`KG?ܲTP{uTʛ&1 6i~Uap;$O~k.wkx*ǵ_cX7 Ͱ0]L}@%$/51 ,2~HHqZ㤊|cTTṰ+o:뺈ykOU'p݃k9*' YOflS''jᒀRsyE#)ީ}-ju?ڋjӡÐRzц*bu^117 JZR$nH49*U[UF= Ml oף[yfG]dނXGpO^ã@HSLc ڗBZeA&2F#(3z~uc+orxݜ2Ձ2݊ٔ{4ڗwiq,+_޷eU?~jDN.5.xG%0.֜V]=$]:hqH4(5۫kٟ (!'2C?Uƥv ]W!FIAU:' z$w(S X؋N9nѪº1O"@*`?"5hbgͤRXFx'AAڅ%&8nHFd%⻣4K_~);yfH<|ӝls7O>~ CN=៮e+(mOCCefg4@BsQ-aɍ 8~CPnam]S:2˷#+5MO!YedmoMsƻiC?MB.a!Ԛ^@\@"<4E+܄it*zkdzR;N ziO08DulΒ|(z^*H7ٳ^\E))-n6v y𜾾O=5w&"`6;wE\N8-Ehڛ{Kyb<'o6s~4T0hygt=5XÊFo俟{yN;:!;ֲ,GWC׭gUT*l{Mz)=5oep96P@c7zd^5|o_ [n@SEY; c^8glshFX}:V U_m f=ѕ(DC0ٙ Vqw.'$[Y}$wk~,w4hBU)v?66"-BȨ3,=7kZǎI蝵cM_nxH.yšggP`~pt)PEE IgvT톤T%.8ܲg6,[Y:Pib&hG-nA{J)YVʞJk$O5.b{pm(Á-V/39l AYu?ڲveq#UC,KkU/rM[;~q,Ӳo>ǕBb`2}. V9Qi!<]?,}:$Uoױ@)]Cz؄;b>$tPޫذ~#Fc Nӡh?w`Dכa\s9ٸ9 c ccp###xatYL m{.k(۞y_~j>@[<ϟs߹'wL -=8j_orS{AN}fT.zl۾uz\l&yS ?7O65vNkVu"j;~Uի91ka ί;f.O§4~&6?g.]mlr˽خ MoK$ &uJ}%,9}ښo~jt&dݚ%<ԟ/\s'OQKcdz侌-dJv?\ذ /꺆ھ-=_G~6\ZgRUwc,sw<eŐBL}yJ*%qؽo.WIb$FQ72櫟 W>>eW߿+'<dɛ&~o8Y[{q_;nW?+KTo-S쬹Hvn!0V-[twB3~ucI϶Õa_p$Z){8\gW?؀&jKeC;L2|qqH4-VAc鼙C?̦L6<ùRНf@S@~k{?V]x݆eY N3ΛN#텫쮼`>V4'0jA(wQ& qxNeQƁ緟w3L>fe1uwaU6ZKZQ<0T|CD8XgMs _JJ݈xD]iAD366X|΁#?dt9^C1nB[ïo6_툭(D>8/]7sB#,`a:?}=K݆_s}t zN,$.P@ (P?Fr w SlSgC:T (P@'I^]|W'@ (P@(SFEعBZ=IEP1\B0N~ (P@ x`+,+WQ/a b*kH7 (P@PPRz=['o1zz.Q-w]mGqBsY8e3뿀3¦'[9@(7kK=qg>k6 J?˪G1Î&Ɔ t X/P@ xyBGz7y zg~pIt'FqqK3M&Gw5q/a+&#Yo$>GN&ˡ'CXfk;Φq)j&^6,s^Mcd'[ P*Uݲ=QgYM(P@ ( tˊ|%=u눸L+J?}Zs7kd-0ܸf# e'qiKQRþukXL˜^'V`kX9ՠ4d١};z.;)o~+g`G,9#﹖<|7/z=+)`cWqQ%C}> .ܸ5o<|85l9J2Ç+8%E9`Xzv:8O9CQ@ (P{.]HoSƍ bAH<ȥlpg|}=ء3μp=ڮ_smr^{zIng=ecfbMg!롛2'zΛ%xv6*>"N39*fC1| ֳ̚c8uʔ xF=$V,7݋rQGx^%p'߅۾?mϸbY'<9ًmRZx$~1Q> ?;>ϜUU*{ 71 p&$nH $$ cqd+iw+d6;;;wRQ SO)[=Vu&Fk-uy%No0ÈpS{( BP(LGPn<yHxҟxkDZq͂M9LQ>xifӘ7TKZ:6'C.{ٶi3fGtO))ٗ2`M-lf H&)y} o[i:N-ͦf`8JG3--Ebc} zo͕MQ}@"+? BP(ӗqqaI8Y4z+.J Ԝ.x[9ݧ4"%7ؾqY8ufhdQdlf;5\\V3~d /m}w(b3=45kV #c2Klz 4'J>B%OאĨf沁vP- +L} qUfPo{= BP(}&/7Qޓ-E w k iت=t;)YEL8"c -&"u$ f{Xn+dd]hݻ8 eZS䐘$c.qagV\CɮDz IL3 ~mشg'k L\0EV|0LYM~NRf1.<ق@ zA4-5I4-EB1׵^3Va,#=էP( BP$,Υ@!3u<Оvq9sRV!HB!D)P.eYhfii8 )>ж'^@Pr㴅&m3BE6N ib[im%$ҏU# 3࡭#fiXIحVt= nt`Aܙ όjv ;hɋ=5{V?z)6MAlqxinjǔ=쨫ӅfA`Ɯv)s!>ǿ^Ç0r'zBP(</֙"a'ew`Xj5-5#M@ paࠔPoj&)%aߘxhIoǚڈ/vƶ'iœ2ނdou5 X7"6"hm1v^LˎhYyM}lBP( EbmWWO䞢Pt.Rg 2@[CW7b!9鋧Pjc BP(>u1/DKK"=^`Xҏ=n=p|q&ގ/GP( d14u0Nzv#"BGOG(| $Dsj BP(ZDgp5ü[ P( BF EB즣`hKz4C BP(N IiX\)RSBP( G cZM 0tvQɣ BP( "8zKRL4ע)?:}}P( BP!B @ک8"ءPY2J+ BP(qus}#TZ ӢiE+OBP( "PDյ^5HK)D¸T(@Kuaÿ2oBP( '-:RJRP9kGKgeMB8%S8yV&d`ܺʕ/3fO!+C(qbi1a4S{;TqhӲ)4 3kCk \aqmy+ BP(>a/.]u)eCq7Z]:C~@(.SArH6;V/-KϮ>ڷuoeY3հe;l?|$]>4̾ s,85[*)8R݀=%^cH3 NqoL4{`ͺְZy+ BP(>e"[21{Y,zo[vM@'^J4۾#'Fd7yF,2>ȉY]aQT:<2->Nm$бiP}Rw6_-(͕GnP{)4,Uװh]$zk BP(H`IK'rTߨG}Cߍ/'N s g"&giFTFY ;A!f'cOq*PqL W2l tLtPRtDz(L+oeG0ڴ<ʋ?*]1lȻЅBP( !;uk/l%cXz$:fz o4_#;B>vHt='{ H!`(f"˴+ o: +Ȁ=[Wj,|ΙǤc98vbIJU`i%k,J ɘp Ym 31MadW$h=X{(o P( B)"4=!s"fЏx{AŝTV!HRR Q.eRR(L H0M h~>kܩ8EMgFaudi^O5 6ՂR41Ѱ8pmhH#ӊױTÞ=Bs?LIk=NLvbӃ'ZP] xhkiǐpF1إdpTMP(DU68݈áp }WUv&r8I;p86iZM]<5IiGA)!)Q!D $#fGU}ܺ^%\/M 4/i}oc=M.*&/qo+V(?p3l3AS( "QhBs>˂ -!cyKk~(^ P(NDHHV]P(}C 5 Q6yd7}uSu-CQݫDH !5@4 hHW(-%4e>MݏZ!9 DrBP('Lhit]PD˂_R"_ ՃBP#X^v)I-"sd f-nɦ l Ȧ8koNfc4M$s_BP|4nZ,SS#Nz?`#EwQ(}'7dž w2n^v% /q#A^FNnxVTrpo;Svx1?Gx'F+ EIZ,=gDF_. ~5̈UrwQ(qs%10Nbs0= 3ikƌyFq Z9RzX~NymL. 1ҴArX^FEaξ{a1Xc$̡b@rMZ3^7~62pBzHG_Yχ-7qť8B9oz/ز*-} )ABeΔiӘ_!+\貅/?k>H2;xJ?|<0~9ك[T\ FvO#G0ο\1:B8EzOZX#< Rv[̻"*DCw/e%]+~k]C4^۲v\4 _ l߶E_$KBӴbruY%R#XQm͠04TnfN/rď" ,VK˳FJd>w \mGسOsf)w/,@Xo\msbZjmYW[df[طϤ E.] pQVnMU\nP24l)v&cݼ-5YU[Ml+e6fܐV<;2* cis)bkQ{$FHOJiY=!"]J IPH)'eH1J쪪&zjJLk!O4QKǹp0ddfϘwo+cF%<"Ka/_|\,͡} qӊC\E "K>fNM00=,Ho\8 jh"%pf a4E=|C,~G-a `Fy7xKiX`P'VneA~^|BPm"=B k! !IU=fшUeWn&בA樝 "lr&;Fr4I8 D:?f {zÏ41/b}Jīɘܶ_~:ٓ/L"㪘{>߹a<麉[s5[I^ wi1.~j-WױX8qL?>`c1Ә7{&+2yb%eSo Ob5g7F¬ lE\2OlfC}*bLN=Lg5-^ Bq‰\";k!EpS=Xt!.e}!7 !2@K 2m]7ROcb:‰q[cNn5Q$NmPX~z!#[HCc3I+F#aŹm-`Ԅ3! r߃GBr5tlaraMcy 0K;y I!Ã=‚O: \[@Y,S#>QUeCKM]5lk =v|̚ςo{;}xqqdjbaF{;j^QDN၅3xh-j'3b&j3'2 ja5p]#2qG 3k!Q-<:byn͢^`BO_am:WqYa j` [\EVJr-M!}3N> r,u.2rJx$yD3Һ Ff`xos<^4qR#ÌX2kLb[aţ[D}W_a/sH h pdjU(7ŚQNe6uP]P|Dtn4ӺYmz&Z:tn(/w̤yq5,wZ: o w9VF/u8;p<z|?2 WʘMC~m[c2e ruTɸt i|t62l|Φ*|t'Y%#| F>ձt0=ػMXs8rcӂdG֯fseMʦbdƗ(YKvvNdְ9H-|GwZ?}AFFuu4 GZ&_1\= >mvlZ #5 ViAB;Nyq9o>82_؅]Ile +HJZ.T$V\YY8])] .`ܘ{1y<=͸q۫/qHНO*hd<^)H7^Ÿda Gд8]LuZ͟~:XlJ+pӷg3<%,$SXix\? izA8rܞ"exNfy 6lHW(-qSzfш. %2cߟDahL&!4f`@X8z-hB,oDIv @HK3A  54Ù2o#tu=z }tzobrQ[[KyYYBeld6=y?ݸf_-Su_M2Nf t:_u:_\sb<\>tH5_;[]N:vEEq9\_sqDcq=S6SMN#^3+c|5? g]kHǴnZ3HTG,YحWǓDhcDl)?Ҽf7LLihoȎ5 )K )J 9#RQ.`G_Ɯ1C[ ؕlE9K˩0<եBYep8 z=pS8ti&p5v:aT'wPepA[Dƈs8ӳ* B 2]@["=3D F01;'']q1:k6Ê,,=TEࡸk8⠨$9F eļ8'B 6X !2b u%ZC}F~|ҡF?wH,34(ֶ6Τao"=y8HOvkvQZL ]4t]ji0Mj B'7:i}͵r ֶ`TfN|n5 # %0J K~ j+2SpmVdN@{+ٸV¬YEZ8 h 8$``#MĎ8 Dzk+b'QWwב֧(<9k!-P(~t \}ա{ җפh'"EGj:Rt®Z-ܚLDGv tiqp=82Iw :6 ?1mq13G0'9z[`;I$'9HhVh#2Zjh$cMasIMJd5,[lj%CqhFgz>R.+3 SXcN{[^[[0yx;4-! BP$iBC5vDɈ>zt=tP($x!EgXQݟ-];V]7SG,i]Y3G%õz}nPmGMrE&@$ieۡ-lFCGy^7!?đJAz| ]6*>`alB*kdb1ŸXSIؾq',zv(ꡎzbm!L W2l tLt0Rt5?Ka;rm9-!E=9_ ?7 KP(^opR&@~Y?-}ۉ]{R#X?EO(Ԉ i]`ݰ?`M)`SHi'lF,[V 9#`6K ĕW_ӯGbtbh=mxa5;d'6=xJmĖ=Ls?x 5$zV[j*@K1i6v +h=ƒCN)Zin #m.N+zҕ&V? {jdcNőnC@|",8SRii7-7z:ΪSwCn^>II7aFP#*\IN,WK* 3=BVdg.$͎fvnׄфhja)APIHBcFaI6;FݧˀfoωL/M^ڣUc។6Zޯx{>-i>V;BV|uz nekNI<<Ѳuje>vO{;dt.N:gf-}u|nNv{>KS"(:3+wjd ih )bظrn~ơw_ao*W/36ϴ~Q;bм̍Obwo l|q>p_ qi.nϐe]hMf](fWv J*B>CҐgF3־ko\_4lMֈ(=Ybm'"!/t¥i`~L@yc;ӷon# YtU8-MÔ06KiaA1&~5ML1:?ot]e/}[;Oq*oo%SeΤ~.rr&6n&hF'O}wcֱhkߍ2yM5ck')ͰtFpNӛgH״߉C, ?A?tz8KE%|HË k8hljp&lABH4D^4 Icc'nT~Nj;C^o;fM3܁T7yI$Y[7տ .O?*wMKx<[qߪ㴛Nphf_z%KQwt 7|qyvtw1vs'h?6ӟI]^lS~QOGx߰u?qjk<[;܈)\7^΄,kjl~^yo3Ob"H.g\{9d[9]ż)gյWuD3G=QbNDq3gus,XGd-d4o[ Q_d$K@o]LLӈ=X;u"agi! ^Nu ^_u3 2|. 1 ֭,6 C03`}k$2zN9l,.a}| |1,">V ^^Bۇ{4-)R>*?_ms/v1tBn\IFd_$?ôsWy|ns٫q%Dn 5qZ> Ikk#dQeIUD%r8US TqBtn4coyۿ^OCu\}n^W6p=WocNeWs[* ۮ(~4yj^*EwrUelc<&*[%̽M4yu?4 yI~]]!m/okQ妹X} PA~&NP62r,~`}'ʄoCѱČ;_< "`(F%<¥v?x77_rN=K(-W{xgW*('FBj/ro~rT} g۶o_%n./·ng_]`Wc;ơ85/{yp|/|}|WO];z6> O;ĉ&*y\eS ph@i.Ssו%Fv$OC\r-WN+&I4l=߷'u~_}?e[GF6<_'H$I̟]HlWG:)|9_q.I:"9ޅW,#ںach3h_u7_Y q=fC=[mO<ȋSq԰sY߶sSq&Ʊ]X__'Gw1j|,8Ǟx +J^!f{gc^9DɃSGA."E6=|IcC; "ddJ>Ŏ*$t)%ڊ-SJ+AtGI)fhFRR def(#pj%a>ąYͶ:ZEeF1,(gpL{(&w:}/*zl5+60}g^?J;4F._x],{d_cГ]͓ƈ2'P냬RŅDڸ)ڀ=5h eOlĢLlJXF7_H~FD]XR)*H`މV/:ĩ-g83n$i?~m_N?_ULml׎rEpa 5Ãxsܞʄ/~wFΥ?dqIna962cy3oE.Ƴv ܺKmI[6m/lkw Z~Ϻ-5\R\wzI?xSJ]$۔OM`Tr FF; 7 S 71+<+gv %@3b>mGu!D_giBqS__OjjzBE-{Z'1^:+232x+dSۊAwn/]%6oKY9Ӈe'v&|]B{^O* 1G_%6%P_/_WX-m$ae6yD9~2Rny˗sSo/ C_wc i{?!yw[}:zW9f8<"wpf5[9uaYֲ.I3J kA`S3DԺpQ#\^譯` GXwРsHEycliXǤC'Okvsbl1hn/GRfRf)cIlXO? N $#UMxLxIC#3oԅdag]2#&s!}T+w?/Ӱ VpI˦ڹ'avVy3?ǧ1?KIͱxߘ"CDc}h ŧf OD-m$K=UsKiXC1c5cwb䑟+oᮛ&`ɗ8#պ+g7ɀw <5^W}__JM?1F‚Ȓx[|k'aKc9x|.Z[xe(n;N~QQЗ-~\TBL^7>ϊA?ƕ@n7+t?yiVY)s`q:NWJ+*H{8N\6qK(.4-N0MqQ]F(ZDA$0b0OaǠhS0b<ܬqYp܈iDA0m;DjLI9ʲekxF?"{М{GȚ4QCݥi->Y8-mj럾(؊Ok,Mz5oiȪJӽ<\5'Fl8C(rOn$Wpws6>wvۙ+{{"4;*HymlZu J6J=/ /x`r "rob4d󉡫ˉ=";:n?cg:CSa lc8otY;@zqY{s}~b֛UtzG3/=Q6?ٸFhBIIpgpb~kG29^ccܼIG ~}heֱ79YsNkpR]I +{]T.ǔu/;k3qU6rg~ S0^zhWA"'qvR$HcԱ鵥LpK‏ |2GPD]m=II؛@%,p;+{4b+oU0E߸n=p2]<>A =lkï?_H\ȴDZ( /7/Iv0%F.' ^yZkOs ?$1`rM|X:]o]_x{ t>f)~~'_{"pf1jp:z狍 ({QMa}z& d 4HqIP H͸ dJ}[y[誶}>DJ ύ1\w~^/N饷qQxMlYC8YXï?ʻމz`O+y%_2&|~n*Ftx?f:`QkKǹkt?njzX>!Ӡ2n0󪫈K.0 3fR5׎uYz#.S坬VhI s埰72u/e';ɵ];zވ +jxO oE.)^<=u 0!/]@x rD*hoAd]`tQ>ۋ&000@]]\A۷f[y=Wb)yPaӴr a24zmgvma }AZUe⺻_-aӴJx^!Wrayu|:yfN ftA*EEH$c>ГU>w;KG(`Zqygy\fBbMyo|o2wFgȄiԸ2@uigxOU-T6TVX5h68w9'3(W@2'_m51gCy9؉鮃J0t"G^E0 SUJ*B42@ q(_ h@\:1.Ku<􁇙n:LTe 4LU56PɹṽR^j(kaZO>uw0eeecB'~9lB^xQVV yۣ;5_kk{Z|NyG+2dn PۤR)tɠ̝jsSNy.DB,GN o 5|h}Ofb_-lf: x\n48^l/->RDgd7I]_ l/Mٺ`l Ib-dsɷ>mgϡ)x=a̙c]?7f(&)+Lpٿ%#ˉ a>x/0иE~)Bg"L"Y~.jo*lmQ?oޟgP8dgxxJn[aaNٸ~6^@;!tpGyea܎լ_3J+-?`JwPFz&m4œA s?- Ӊ &;[=<`0_qvgj{NȐݻپ}^'o?ai#-aV,pvuٿ>8<ۯd2j6Y5.k_ǰu v,g.bѾ>Ӂ}'Cq.zvQ/*L*8[w3igr[F]{(&j};y wp#LM47^ u<6AڠၧYc%q`A.=Hz,{!5Մ;LC}=D`0G?Q~J#ʒugh|#{l#300@*mLKAb?LxS_o/8M>چ^BDkX$?s_N{\A ; 2ќy 0RT(tQT;6WWzWSI~2xBNuq$DUVⳇr%^7|U0CX ~3Xq1]TD  d7/f:p9N|HL--,&{- n}%<  2k7E2!z+wCQ۶/oy5Moԩ-oOBL~TOlBjy,l58ٗ|؇Yg6?˗_Gt 2t8(2ð||?=ɗgyDQݥXEyyOFضE L )++3ZNM9kZ} 獼𝗮1w6Q0g϶^/xKXAuI'/%W&3zʌ"O/ bѓN/oYc;>3|X»@O 'Ja6*,%u8=)|6XabO{qNA*xhE:zlԴLHd咗H;Ez6n n$!O˪gKڍ%I"#ix8{>i~in `. M&4A=ۓS#!#RG ɹ~EvmA[E&ةΟMQf&M  bPERf`:.[$ZLHcF)tA yǻ׃Ī IDATg Ep=SF k~-c#»[e&z]?w+_&)k3q!/.Fkp5ɐYZ}ӵXX6f7*ԈL wV3/ɾ`U_cS1/ʼ yF$ZL)%ܕRGGd|lMF!  Dwq9ZZyR c2AAAI^ddZcٕ@nc  orJ.Irasr>1" _MәfT{ݭ*AA&% Rxi*V0WkUjPIn^/CC{yᆋZUa2e;]!=zz2ud@ Vn[N&^6tΦ\^{e"Ol`Ak7TwZhAAA\CpP*3Gg*9+KuKq9vKbE^`pΤ%Lu'zc2n3&j-^i߉s '4VYK K{sq# dºѻ  8 =F#Sy| J^FMr))9xV6ӵve_B@Grt{vyxFcL(W)223Z-x(Nˢ8bC$+Ӯ*yXAao6ί lZ\1mOLo-4{:HDm0|Cx43ޞطc;ǘ_i`6V@T4 cL_bwE TtdU%b_f4}d5T۝`nCͼx0ʔE*EvkCC–^Hgܶ ߓq>oa'OϩR  w}21m^+v iv!ɹgJ]5u,^A4;\>ŀʢΧy|FZۘH*kP9 3f_ +>| 2%phEhmcF:7 SYOs]5 ,YFc lu];`E`F{O\miiZ8g3;{x0H &qGߘF<9eQrj(/cisb''T5RQV7>Aᮤ^Y+׃F%1 :޺)<ñ^G* Z` .FZ(ϱkT*V`Q2hC52 #O }g6#򝏴8%-NLvԴVkSP)27@.rc/}cȅQF{=8KǦ&I9'r>KX1ND}/no7Mb-dYvOٴ5S  w8ᅊZҶ~YWsk2{*?&:BB7{sϯ.9'cPw܉ HON9hIuyuYXH+(]JTГ^7idu3U:L3] 5AˊEJ+e.qݢ #Dy+j BQؑka咙4Ť2h@|D5' E"&C\ c7Q ƹv*zc, h# G+=;r?1~]J_Mza bVǬKatK#lҸCbx;XQzMeVȐ萂  J<5-H؉2DFK .$*YQGȟ+hxN^_@}CF_<fTat4ΦT`O!W/|_3 :kf*ƫ\lj41 Ex6}1wt cipͣ'j4Tp!|Mܷvk1 Gd2c\*rr8S$g7lS)za*[Աi4=sCv^efS\N7V܁{8C&S:J\DCeu9^7F(HȣD V 7 3sQZh4(ʉ슥z]\'Q9S}DCe׏hF똵iNx7[7xFji̖Q!XoP+2YP|`qL?1e=xTZE{ԵҮ4G5߲ïoEv#Lo.(_4lcr*ܵϰ|;d/@93nQcoʨm̌)vv֣az')fkלk?zn/>7mA贶klCC}Ͳ5vv` 5)kG}F'\NH2=  d{>F֨5 on[*#3A[EAdFb(&ޢs+\`AAmǘ@>X8}q" .  Jyy&3O1+C,  PB #K ׌bFs.ˆPAA .s<]mgrfAAaDE ^'6|= -%O>d^AAn[JbdExB<_ .(:|y!;$7NDmϋ  {U?@o=#B^l靴Qvm3|"n$o2Ms\أ/y~:}t|soiVv|ͤ~0.%  BiU%wg֢^,z6‹QJ F?}5{s/~/?!>w۶BN;ڮᣪ2̷C6ҩa\=]yo~嫼x6~B]a{IAtdD]𘼁:/cz/)H30M@[11)ҺQ*&ES}s7TF9s;a!11{ϥ_.Lw9u֤6.`Net5֐/ NO ֓Fȭ*)@T$\Y{vB񴫉c ΨXS]sfy~a k+ob=N`sEuYx&S?9ܗ9\ɇW7QtȍUX^WMvEz2P4Oϣa^%J?!?Vx4,3 `q^y!|uiމs '4VYK,AAHOBOGEg ǹZF\`2ǍH/Gsq]c|k!\ T?*>ζg-95Ɉ̢#8ob)ah {x`R#lߺ l_9B)1Ǵ c,3cYvO%~Zh2tz;_a6H{$`h*ad_}}?h֚?~$W6<#y{w]iۦ2F:k5Wc6|6  {_ Ya>6k$1>w8ʋR੬چ,~dj ijm'H)/UMT|յ0֗?1ЬfZ~7CI+Y#y(_XHǪ=Nvu9X7+h<笠M!]dj ,h,e>bFJcM=-e~MN\+7:|6O?{"EAAl^ F8ȒYڵC*B+U~O[{Yz/~Sg2c6mM!<}.R yg6# 1%ljo{inaSPZNA Rē0Xro99zk3f{h bZO®)&D 7ލm_&AA=8{0'|b Ms8mWsk?Pۃx"L6.2M  PDB3֋"3N5lMw*KRFnQӭPm79H#dV׸Uke_ߊKG1uuA^=uP^bK8PKik&8_owz/<||oC;LjC1zm5i(bz0Hr5>3ٹ O:czs0q55˞}'q.rAAx0|2{>Ѡt/fd~TP1Ckݮnӊu]ǩO9'C37[^E@ELb૬g3I "PQ 3s  2U)TF>e8a"Q"`}'!iGy~L{H _ݘ`<X ؤIgDswPe9F|xƒ>Q?eL_tuNxlkljpޥ.DgN`dWAa mH${}<^ā9&dEŬw%9G2y"O"o)a >DqLL+xI3gŒ*Djwxp KɄsq"}trpfbc81~;>p\>  7#'J>;`hSn.  trn9uH`LoU6PAAdUFP9E]AAF9sЙ;xWŘh   hx]ʮ'-Ѻhd md  PB /fQL:HAAa✛D-Α3UեT•   pc=,XAAvuyv(Ńq)1U̻nď^AAxkĦJg>b-:qG5=kWW3JHwAAi $c[ cO&{;8[t<ڽ3}HoRBN z3{ lK=f/  Ŭ셼c}oc8n%k~||N3p?~/t'p?ȟxo kd=b)O 8YA!^ o}*~?ɜAAGqhhёF;aw(S~uT'M6Cɴeh кƘ2p k5W~9M<ٌW嗇t0^a8龸NF+ @Ѧ]\Wa٠iQ0 ڮ37*  hi}["N͈wkBYߙti!CWG=iuK;ǫ_ ?x})fI蝹_op[zFcQٺΏ|'WZT9Yk9__mghǿ_W1K0a`_|78.ru0m,^$ٰ:_f1bp|7Ƌ8ӟ(;VAA*uQ-V13'*%/cUDҝ*`hRv8ڪ@Q('7ws&Ĉ\b)bZϞҶ7wV"2+XuA+ S&&twp #.ɡ>}ĝOgp@ӾjJ){9h 5e7ȩg:Oobϲğ>l :=ֿƮX늌UAAxR_:'h{Vi IDATjY ^82;E8ZX !W@ 5/u/+osDl1ID1.j?$?]HĮOq{|D)cGח{8(ҙ \s <2H ]htpk{6AA?Ţ/bW*G/%x|t?'!Ac% AADxy|=xJ^x1q@G󺧘᝜AQI5}p ɕ,ް遜yH(7E,nw@3|+|ljfYTǶ:o R0V]=.st?][OCҵLJ탛rLOVctAAD" ]\ȏ>Fbg-s=axN7` Kc_^vZߌGxEÄ=Tz[I!մ ]=Ə^9ͼ'w$lZ) T=YU /[hRaE5Z50ч?8XwAAKP#~irE|9Ji걯뱖bt 1a>bJLpjࣝכ{9ݿ׾k1Rbʇ?oz9?K_ǧ$L1PAq?.WjP\{xF^tƆZ8Io~x š5L+=ֿ|KUL  :Eu)1`AR@aAQRazY(QgO\~e𙘦I2^_𙏯enS`];͘ǜ_s~c01SؘyBitxg}OZ4I]KD4/e^wܸzZѸ5 '`=P7bL_Z3={>/v2XAA pǸdỵńO~QZ@ֺUNzu*l'ÿHqWcŭ&.0&ފ M 2X~wDkKd+: bx&5<@4/H.cDH+QJʼQeI9`Б|>r~d'[v=/K*0MƉb#7,&3VNH9{ .  [^zynl>G {,X2̔RF4AZUJ=@z)ޙEF$ V'vꨫ(Ô=  w@|O1t|N]k1*Odwܸ2ANJo|u]\Y部dX-=x6N/󧻸h5h$q)\?wuP؆R/勎T E3ʙ tx=v~2u  y68-7I*랮J }bzkt(cSbUc;hSgbNh7Ε{:rq t{vBq3TOǢ,Q%@̏ҙt|x敯O L\z5{ᩜƼ Ν0Irڽ^1Zo:W-z Ҩ6hs '4VYKʫ.zEy*vZVOO><_N]x@s_pu'^݄'Sm=)Ǯs܈9h3HY-v/AAx'c6j܅"}2wb;=ٺ6hrX2UuoᧇLo-+ _$6p[uveYkz^ " &Ze^ $7mx|t.FSm#Wms\~3Oe=u6Le#h4۬ix}=^Ĩ &Zj+miêƙx`*utjұM}$ 'l7̧^~k9s=-L!Wn`y[ euYm~N_^DpW8xlEyvjjhjm50z 1 c¹omcFNC&=NR^j(kazO>ɂ  'Qʠ<-0ZkPx?ߪ%=?:%}H/vI, }qRnug?y?gqa^{3V@e 8U-@47^&(\/3o켍cz.J@Sso˲x;\:ik tAAރdEw1z<׋%׭b睘vA( o8w2EVJ(Mh<.iûJG<)Z6jn!9!)M#=Yc:qR)jBz-ͬR(LZ.6A"`)lX,}Mk'9ų7Do/V8<.n5e2c+ +hv8m̙gY}y}͘MVO-+FmS!Triq] OiLl&ڌ8j;HED߲ ;œ5Wjp ͨ7)}tcă͌i)gxC%tTqV3 NOykg&*B:F(*8B^Ah Cꝕ|pnDw?jj4y$ <A΍s(6Hؼ"}~\k8ǞwͯUKxa @|0jٜ|^䩥laɧ2wT'j*Q(W!Y_[%W JYXE" ՋVؔ7qG3Q8Cx<T BDGf퓋ymYmǏ~嵡v9|(-^M2zx%-ǜġO<˲aꉌnl,|%ZjT0S9bmolzk9x{µsq[۶ĞOpX=q5(ꪼ/݃sM+~vNg'e'ͣ̏h!b]A@;燻uw1/{^NRP FT+0g1]vT0: W~Tx{]"e5IFRh,r!/uH'N-55^zR<@ޘ) R^SMOBo6]Neu TPHȢ0WvSQI9@H8my94'5唗G^>^иb. SVYFȶ^bPu S^&9)>BO$[f?^#z{']P9g6!PYIb1n*эe!A*P*}o.ED:\]WTAv{!>Pp``P dBvPۖ,+n)m65Z}1[)7ƤAg yU!!Yzx/=ҟ'v8ĺv I=7n]ѼӷbMM fx/%ӤuEBhMTz(/}mIll) h݅q5ըpRq4z-feRӼ0AA8Q~B=JW*f=@1a:&=D T1`$W-' XxRs& vˎ~Gl"5A{o (ztT& ?:c˷fA%>LŤ\tE'LE]t"S"I>m46wJ~}}bxA6ȕ^lhz*\&^`0R=vH&oĊ'5eDF[(mP*K7pю-,["P]58۶va^m?6?xA,/VV?+.hEw#3"]–kٵs/_*`aA'g{=Fq,'ø.Ν$s8)k۶18\u.{lo$F]A8Hy/=]()4tx*:2F&At-Otkؠ@ X'A/&]-E/"A8P"й'/Iy,3}Wټ3J*l_O롓\(xhȃ>G\tc2a/ZTVJicH&oXGq46 @ eYXE a3MI$?4>މ &Ǎh.Z2e5m6?/X?©_$*t^m yǡu&?@itލccc7/b:C<go3 x bFp딇C8==^rONyxf٦Atz6>FF,/[(SyRwAshF"E8.LDzm#/I.;::oP(Tz;0TPH"##)v/4|p%[oև^f]&8ι7HB՛Wֳ;P:y'y}eqSƈ#>=qWY.%y>Ci|Ӝwx#!&r+~EvQf*.?&[w}wo qXMWk4 ?ysT۟[b?۟#v>=.{?l% l 6n_YÖ P>HH,N̔vy\v)psܷqY3l|OέV{[HK:2ŋJ6X.0}6R=b8m%\jNOh2zmdےiv:mS&e毯rAz1{B tQU5nh/bk7F#z@֯{V,jZ }|"o~q#[({~aٟ#t~?G||ѥl^g{n^Ό]g7)c8c~X.*j-9?>gH?'{$%kgS5VZD=ş~9l? zHgz|5זL.t Vdm3!0']5>>_KŏY#TO<~_;RkRqV ` p׋i ן97.cƇ.ş~$\ O3/k3]epc!J,9wJ;0AO<};\Lyɩؐ0qVt{V挀V1ؒ"TD9jʨ nR;V9j>{V]lv˘tpBC> r<+6wPBK ]ٱ1Nw ;nW>ssgUzpMO,M;補HjIkL{qٓXυ!AGI;T['L:bL0>yX.YtEFB;.5(1JAKgj 2?˿KQƏ7: ?~|(_b, QFY蔋;Ѿ>+_m,%5D!dr'/gwQyE)tʳSO}ON)kӮhl׫X؃?1q%Sh u7e,ծw ~1؛g1q'dMhO g0VfmD -Hg0]Pp2E&ǡ5  $SAt9UF3Φ!t-ebVw䇆Oc>ɢWf;w;Y1j箫>%?zsi $/-^ʒW]8fc8iOkn{/g٢ytlOBMF)\úukԓ?& _7XB\26/.ZgM)-jgrt>+ ,Y~B}0[ xtxGDh7spS1z4 YƠ,EO,䐯|~6Ɯ!ni L\wP6F g^Cdx3 n["  |ԘctCcOcMyE%`@k8Dzپu3cM $PUvʙr+?ga||#| _lĉW,BY6v^mGߨ2&_]; =4Lē 3oo'"R7뱕3ʧwqyO ZQK;PPʘo[}\? grH㛵rcwpݣcp4}^ōkUO}SsW99!67ئ)8\ۘ#jd'呛>E6;f M]-(LdaJIVK);D@W+AcոژFWՎv#)ScpGԉ'*ND"κ0mλцΝ~+/zU⤻nb-Zҕ$曌<W[l愛Ce[+(E_FR&]TZCm)CG?O}<+r`]]lٴjk d<]tww2S/>/_W.>[.{t5lkR^w[ Py ,,,,& C&`ڶ씥T61kƘM@ ā-HW?Ҁ.Y IϦ;!qZSP[TATYsRZ^EJv4VFx WcXR LO*;dMv]MuM-'O%eFV,˗il;IS>elT![_|G+Vbw=-AJ?ω?x;O7ji}ouAxRw!r 22ԑd xǨ5rgvYc3DwQTAb{' È3 ~2ޠ+&HR6' )%ч7<5(0꺮QȔk4*`1sͫ4 Z/rU0in)eFy 0+aWJӫ:TFXER۸ƢM's,wXhX4=yS,'SsѬQĵEX$E"Ԋm .W[Li}). tmcZ)<˞^*^`A.T ߼qTG=m,R#\?йz->})_t IL P R A>ɹ)Bd& sIgHzuAv^?JˉGⱴ?<- L< sl+cPa\:|ןx@M55s!4pc=m!a=K&IeFsTm"l;4v<Ï.ٶ-uAA.V#Ƚ} ޲ "3ā X֙)-aڗ?ElYa L,ͤ~RCE "HPe.hlcBetSs.AWJރL/ p \ͬ2Yvj ]mJ)ӀGĺ c> |Əa FHY!r/\ YMJ+Hhr MCJSm ӓKw0`MCphfK(xAWxʋpb cՍ1.)^*Oc.UὁqԏcŤ3n0O4VvExB$rD|2|c#DMNc|,"AbŚVq4@Y1nyS&;0_D eesK,eaBAf~SϚ_BTZA~OɋhSr>5FQ 3w$V LheYX  t F&j@cQ,U^(sm-XOH/M*\pb)G1CX c,:HHW ,RZWPIZO'oU!\(3&{*U-(xZgŹmg A3tk( z:ߣًނ .Y֖/ݼ/׵9 \mަc m;ST)TS;YS>{2æEY6<sO˓6A`"])ͅq&P4tOoH)σ[аclAx/\rct^"2k #fN. yK{ cνyVpϹ p0b|CJ+Q+*#7\8_#7ĤX:Dg.%Ћ u/\2(TA bD˗C@7c/:Eb guQJ{1 {tBv"+KA 䅎+<](sݥ}ZlHh  kУ !5W! gSt1n'  "ɫ+'0w~ tW>0 +F   Rct2RفFUƗ覠i  tEFi/ʫiclTK HKfAAAGa.Rs&C6LwAAA89[{ @ab[JţK   d$h@ԋܕ  BQM~a\yPĻ[\2.  "y@Ϋ]Zs Z.X   ^7 y~!e~B=7\  0^ w:bGn6E 7.  0w@T~X~%R*b҈7]AA|9y#GWF@2E_̫m\Ĺ   d Fg4P}lJRR#QE  Boz ö~+[^WAq.  :gn&^Lv2]B]AAlxpq52bpzƓnYVjO  ПQAAY|燸H/]Hm P%-*>W| uAA:\^BTZr  BFpcI֠BHR   {x]PHk7G]AAnX1^ri_X {#\A ډb̚5J)^V\ 3Zl.0h:4F8:D_Y@s2v9,8~(kNwkc  ¶ۙ={6HKFqH'3zpm[:G]QٱTbތt9$cƨpyanǼ ]AtN#0ˍ7@nKתSG.Q[%#siP2@wy&|6}heEBZنy1kO*~UE-)6oߍ/ڕFY6F)pAYiO٧߸;95cr ާ; ` ;C5 0Pß|^6:oM<G =.&.& RE |C۬mj܂aCOk_kOj*>X`cgrؙ 1}n-T9UTfTZgMH0,0ޢu6g?kv+tt U~#/xAaqW&0w_d˞xG_\_A IDAT146vٜ{hʭPOgCRtPBў>xjJ̆ΛO񗖱nG DG1qɜ4^|diwO! ]wnCm/=yktVkcCŠph[3l|WO,Fy;jQYI sGS `Qfb_oћqyuXa3qSޭQFfy.[ϼɖ(&qYsdimЪqy&&}`YM,h+&],9rnZM~1=y+wʯӱ~ gW)&V;ab=ϼ{g9c"h;A(>p _FrS]ͧ#/"&q7xwmbɂWa}#Bz9slPY;O9|qj=gJٕN6O<fC?ǢM)nݞ<ѽ^`7z8dl.k ѹf9NF ޛf6 `%osD5oKwp c;\ z6t5 }{e/eAt% F)Wy.L0eڙx*h_ѷʙ`ٗrx@~4ٜKsQslvMΩ %[93=$*r]چ^gN8lK℣)Qɤ`($ӎqs(}eX5m? 0!L;7.aIl~}PfXwaMdzzmikiN-#N,+;FSk/<g#8Y2lOqJe.j-Oz^Lȋ8JlLz)愻cps+J  +, _Y8Z"'xEݾ8eRw5:݊IH&4U(Vwpݱͩ&א{S;׳1[%#Oz:ܥPseK)ͥ\7ct%;KKц-l-[b;4fVN?=_ƾOi%xq| \DE2ΩX'آ?qe~%YtÆlLۉyHUn=yU*٢A3,etK%jSm5AGq{ 5;:Nf55'vm~m\oͷwn>Py+/Ƴe*Mv,Wآ"][(,g<Hmȍ}`AA(rӅi ~(ʇ3,Xv+q=ˍ<;<>uX_q/$0 ڔmaPLQ`&i"|sS )=m6TM4aٚ-D:J'pQ(9-t]xꀅkyhBō.4zo~}f~9yv..}$^浛oc?ʜ`fՆ^(!;DBT[~ 6Hxab1t'<&d(0(sWqs:#o]`rkӿ-/|y8H~q9h@e !l;`DlE"zm+QK0n8>,}D6lm_Clk#{@G6{XIHK  BAUxV%SٴBZ{ul9(nJӱ 1{~YRe'iqĈAO 2 qp~lNz5a/N DL/;vrԡ!j*կlc=sFVR,,T817cldYpoc1G1}0WUx8ky1*fJ0TyU(!e/&qA20&5?\E9!k1y2 bftv__>A{m-ftfrWyjV`FU2 =gbޡn5]صwXL=f+Ϗk?]k<)gҥ^"-p]SSOq 'НaЮ僜>_- A87^3z!_+ҿe~TU  *O]̛VLV|W1n<ʣ\ Pژ:w*4\ǝEƀ]VU^PUxgl\uw? w9Mwe@i_+ỸrS@ħ9kzTP)ʆ5^e?G֜k9s}m1>e߸ s7džV \=sz+~:NNNۍSO=G?q ~= 7 t@`?3# F|Cb_5wpp'# G8vsȝS"zsGs^p ϊi>4i.]tҥ ! UĿ8~Sxn]{ /W٭WpvK+|v/PP#b=3@kC> ި1+8iyۯ\mqwQ[^ixmC`2&38{n $}CWxʣwp~~'?Eɋ^Im\+>vo'qc_Dp9q;؇/TbE*2VX]tҥKnK7r I#-A|'}x)}. PL10bVKG~t<'?ogqrtmzr $}G7G䩘~K3جZAm<]tҥK X.YY jתH%\z#}x9}G)"('`q{xIHG}_{i ŋbਣMDzHǿ=Gi͵X^jwҥK.F~J \@f@KsY >> k^^@nS 0@'8IOtԧ>[x_Ŀ >01h/7K˘ܕdBJ5g gIҥK.] 0ׯ_իWq~~.kAkM,e˿?j}xxW 7n1N{܀ȘSb_K8wgco _xp;!p28ܸuSb@5vҥK.=<{{;^y|_-rn<'o{@i2 y|[g?Y|sWo^ hb{v9>ZgxW׷H"Nֿ ^̦T| :RҥK.].w> }} i]u̷Ƽ/>,O׮{ ?8/~|_=ϟtވw/cm={[ HkѥK.]6eqa?yw={]> Kx[ܥ]:V='9K.]tb{\}ӟ4~anO#<җ|+Crѕ"FpVFf]'NZL.]tҥK.??9w?wk_>.fRjvډM|%]tҥK.]'apʕG׿;;c{^\zUse*pWA-C.]tҥK.wBsxސUa<{GGGw}K!pw創]tҥK.]Rj}5ތ{.]tҥK.]f|h _Ӫ%i7=Oz.]tҥK.3^{ 0"y~FA<Q/@gֻtҥK.]t5ӚD)^+L Lx+t.]tҥK.?B~Pet)4>H<32L K.]tҥˏ:H1OGkg>2X2< ltOݼgOYږRLj#k?mSK᲼u#:\Fލ_/K =@s11S#Ԑu4O]lZ]ܥKtty5'rrԐ7cUS@Vq0͑+ =.{9pFkfV7%M}h)#4m-۳*;)cț5޴}m&%Q/³~VR I5FT;Qe7fe?ys9NpM>D4t}ry_KH q{mٰo9M9a?`iŤ=7,3p顑Ml=!js9f 9 sNn.8q'"R'um#'W9<a@# &}q|+kCHj?}8H 5-PZ$T7n'# z7(=UCk>S^яϏiH@oq&{ X{Jם4%OR ʇv|Qi\|"xҁe?}Nr4jFΛo&efLڢ@%޲R2/1 3a31/~ky& 6S0^^?ju2)H 'c.d\ذr^d|w&i]A" u8v8x5fA/kyH)&p@pSsޔz"4b2# 5T)R\8aLHkƜ(4A{qd531Ap!E#VmbQ& @fvV\-YOw/X)S/ p.ӁѪ(&Ejί}Mg Ю_lNbn;5sʥ>\~33\M}ΐ6 RlNPAkɪYӗpڲt9IDATvIa9Ϊd!12tғKsYtX6 /넅5dr6N86Z)#ZM"c2_.L3@<7*Jj~^tkk]d"F2pA:yŻ@heI  P( -rE}d^qwI|]e.kUKԬ!8x%fCXPE^x| ML(/ݍ0uGѣdts0`c15QRH&P!@p43IAK&sF*w>ϫ1n)x߻}qNAf 8=6=M _h@v'!ZYw:Z,7} [.CӭP*r8~JmWZ[-][;cU\3*+3?Z[ +,[XNxP|05tp-e:1`mm'Ȥ(X/sPTΞǎab282x2)M4դL#8 d5g>. *jB\0;hMis ޴[7CpΝ{[d]s{rŵ, YEF+vdN4wI91W:8&ƈ9c9π~.@uv|> G{X HF2YQLb0M}w:+@[@`Ui2}üi9LnqJ>X[0& +68f-gŹ]J/I)e1[a0oCt'ִUbJW'/gafi!d2~1)4w;pErN!4(soclp*]lt+u7O:)͗23yrrS:`YӹĎo&.#~4\ӢJ9%%-[$m^*}_7[)97RrV ./$0˜'0c,b*\IZJL5dOъ2'Ks9(;V-bd5d>'Jn57ř+B6ee+ ס 4]j*) cXy3Q1+Ne\(PX+U,UlkR73]Jѭ3<52i16kȬCr?}FnXrM5>c߉H+WD/ u6HbېQ Q3>gf'hzL8T.9Ιx۞#"b0&wsݾ47fAd e*Zܕ Ocas-QR9s72 [k̋~"]l9t ;9jAqd^9s)*t8sԠXq )ma%X۲_ lHB1eŖ43FiedW5ϗsAR:2fXe:Q}fL ŪO1a~g@ J q]Iؖevr_?,>\x5+f>$71r~du'2HhAe=9? L|ayZ&J&Jss40Zc!v9Ɵg{0̕%930~nܦih 6T-_K~CY[EŲJpaF)UfyLˠ˘DP-u5= ]͎#\3.Z{1-ݡyft}q18[Hp[WK e23Ua4Gؼd|n京Ͼp3[xgY*ܤlN)Z)iFR3 R֧+XE:i8$ɍ(uf$W'5\T]P%yZdik)AI"^2H8Vl0(*+UWFէΈq=@Lzg ":poK @ "]sbti&Zj1\gZ^|7]$3h˲-]^n \lekJ*dt>kuW) V-ح*,ũhֆV)m,#Qye-+n[uUȶѲX}%:5eIw[SU+/e"IWh)xjYL֌سTTg%Q+nV}u$,}-y*֦r>0V<.m-Dξ kVRdb֓6q66m,Vuy %fM)13{"3 h3m8 %冣 K@0J-fIڳŠg9޷`&Avsys4|s"46XG놰8Y+Sj 3O1kʬ(O(["ж<{@&|VZؔ ʭ jsiц0 o|֍պJmfmZ XN3lrbE嚗3^Z[1ܟ2"Zר2g{m6x rYŤˊnM|i$ڲhp9gjƵMJ7/p ʭg5+.)37e": :32FT-TY<֎.~edE\Z*&uVvZ4F혵@rպScbZt H%am͟_fll݉}.CbjA拔=5gcUmZ)xʜg [x0Yņ9[ǨUװr֟j>k21Li֣hn|]eߤm5˃u>jWmIXXe926-e}akZ2ղ,7<~I PJ+YL`0.z?ZƆ[k;e|&c[kD|D$JH})}$cyIqrۆ4,{o'~Z.mm2f@ğ3|ʶ8 aOY!M-":fai' Ljf\ ZL6{W+ծs,-u_得ZڹG0a43(ts,N1ߟV C3o]XX4^ `jJTtYvčznV^kޗ`Lj"ZʱSʾ}qidY$`Q*-~ ډﲭ,9^![ֵVӕk^myVFlS=&eG'7fsǖOSYmYu oit-ɉ(gYjĝl,fU' ReesOV5Jr]^20@z \.'p < mˬ 7mS>iq7im oUd8Wق +k^c)ǯ2-c`A1rmUc[@RE H-ݘkp$5,k˚f~[RMewin]ϜWo”|2?M\e楸o5T{}5 -zSMiqԋDq^7-9s7 ثf Dwyԣ;T(43F=e,&2c~,>N+:{nDk{b=r[\'m~ F#> OzNe֒IY!l^-Ʒ^+[O Y͹Cc-{xjq,]%}}F,Jܸ/B?S>0~Xq'yde2? pfUqJт8jZso[cog2*ð5sXse)V YZn,-^k -H i-5~`; V267 ۱O+/jTe:_1[ܴR,S^A\QԖQ--nBZ\uܪ|r2.ǽ7cї8m)2 J%лZd 2V+5Xf6?s;i)~l7)f_|%Z$ w+XN5F^T`2?e/r 斫-W%tO00 J\n#yuՙRKXSjt{a7E%探mi CnuYHbح!g(ϭw +`e*(O7掕u+1JkbN`[+O}vnIH=JV^yYv?EqNlNEX2f-x5Y\Ybzcifo?C++ZK{(0M}x' K,Y|%VZ:^`n@beraMpzWk^zm,̈́V6UQxZФ6˳טW;-rE`kc8IleH-Y@ZqDXd>@͚@ָp be[c{M akYY :^vK^TfҙQ kAXnk[ >-?~/yU`jcy&7X}dب7žjVlhVB8[iC"Ee-$kaYtIw^IENDB`dell-recovery/help/C/figures/welcome.png0000664000000000000000000017524311751021273015454 0ustar PNG  IHDRQWasRGBbKGD pHYs  tIME:tEXtCommentCreated with GIMPW IDATxwE3{m ztHQkAQ7 /?ދ@ !Nٙ[Sn :+Ι3By-Ϥ^{K)ZW\M7)mz;7+Al^4՟@kLY﵌SRJ?Jܫz ?D.~CƦ>疚BuzQ+ύ̛׏DU]y{θZЄa{ϫ$ µ^nZP9`UExu~~N:f g~5ڕ7^ۑMԵ,?7XnNN0Ѷ>;|{DĊ|>x ˯؄Nk~[QoP$ZW:6/ts!J6ֱ?@JPJ54Wƶ#Cc?TÊÈH%P*9He2vo鄸%giD`rm˃:vr}N㮍st嵞|4D$jѲG[n#m-XIdKDĶ%Vҗ+Md 3k JS7eUXn]-{P"1q1$h+_oQ?3~:<IBN$@qq$:PN?4D[2}܅ E$|)3 Z":DdU#LD5XU :)UVUkfp'{X%QncFh 7K#lڄQʹWmw zT/O>|՛z'zʨ/')NV.IEg]m"@[JFV{(@Քä4*RmqD Xx(Q]Dju]|=J(zU4I)[|9 W ~e!sX_,pm-+Bz(uĎwzPB/NJ1dnkM̼T5ږYF/j1SZktuʽ+f"QZ Ґ5) +4M $Raj2$u՗rQʍCW(NI&U ɗať`vH,t"Ҥjy#|M 7"+N/]1VT^$+R 7HES/!eǔO .j >U\=JLbΉ^HIe6ڐ!Yc*TH) NT(!DOh/!Qi"x'ԾqTLh\^WAj-tdܪ &Ց7-"]A5%Ak>g͔>VF}-A!3ժ2K)󙣈*r"#e瞹W&^qnoQ<}.׼'i"yh:iBRZ%-&RRqQ钦"dNk!*8k(9bM誵W:I+ ;BmQz0(nFTsU{%SHHX2Uvi_1#6UO “4i]N2abn6-QBRJx5CT<6fu\T+N'u]I\iH?*t=q3L]+zYBy+ $j>;2f%mKR,$"c (2J)7Ug/`yZcVj>nRD>etjyCtNvǞoi,5Ŏ|f<@Zn^gRtU~VS({A'7$poTZ~qשUB"kXFvXRY*0u=s-QMI*cp\plBqȎZ啬,TMtESf**wEUFn-B۲Jid**]oq#Šid)o#PAG$l9 abE&-j]o1y]jS׶T-J\zyPnRk ÞH $fYk]U9]JYv\ |Ur'٣Bt|?&l)J! YH`%R9 ULNZqq+*TZV,"`8.vxAE#BCg ;)%% -`: UTqp&mպҞk.W2r:Uթ%S5Md`71țVE|Twi=;dc T)/erybg MlʝDz5ZHZMBPtJiߜ')%N`H !RZk!e| j B#TN5un?UR~8I;$R`Vj>rWNPl%oF$6>O;J[2RLVzAS4gBդUs=`EFU͓<4VgۅXoGnƕQS/E;Ȫ(Ii N}jx'f:g/(}ߔ7jVP<]t Fh=bC gғBH)т&hZ  !!Dw{o]Ҷj6'DWu'%$Z}p%NV٬*"&Ovw$i϶DPP.8ka3^ @[jl)W“[u\N[DL W*W"$S?^~Sb4C6]#X:Ug+*|q) ;Ҙ)5.¹Syu8Ȥ^y Rr|)7ʎD$XP>A"Dh"u9"o}]a.r+|dD1QIN*owؒ1V-a!E˦vZfΤ?W9|?)*59YkU("d:UubN: D`ʏw-BbvHYHr۬ք*bPV)cQ939Jd\XoLE_ש<ي  m̟24)-bs >MqfP쮨o Օ*E*QSJf08'+#)ṯBe_|⴫׹'90q}u8,A;H\ בV:vKqNȋv-\A20na8*kbPeIG6'ACKq"ެnvă`*#RHI+!ZM?GRimD$Ӡ^ahpH՞v{ *Jv)FZ^ ew@p.n-,^+*+w$DG8Tl D9P Pĕ]aKW*E$L?n\m3¸=Bc;XnKsr9IR>|7 PPC=)K'U"B?DCmwa`WlVv+qʓ"9GSBTUxY%K?WXP> J+}|l`"*WC/Kʣ+{o|clu#[A 4 `ŭ)} ].S52Y,-]ls{`#Frgb//0wwGZabs457Л/l``````iW}2,i$t՝WqAAR}K\o%o)ee```````n3~-z JMVJc+uwĥ#|-ćbw煘eY݁ܭ EQډA!ɲ,V-pg>F<.H)mV+~PEi+gT)[@Ka6%e:@ཁ>r'Ui gǾKRED݈$b;~p9O qBe+?FgUAN9wӾQJf!R1(SRJRB NiF[l"MWʍ!gUJi+R(q"j>Z=,+6rko'wR?Q <aF֯_NJ+Yd)b UijnNX(R52%J "b %ShP#H>Ӧ"S<u-eqζjB)Ek,?*ehª3,%6ra|х,ۜ15p3x@l[aۊdYF͸qc6m<(]v F:cx|@g):HT)T*R2fQWШGR%<ᝳVLi7꬧D٪1s^!GiŸ,<7v$^?,eO .䭮B ZZZ;0RiIggcn#!-Mo\~rSIW1|bLYd2rz-mSΑ8r%zYv?1n:*p`@Z)ҙlf,n$"%ec+EIXXXVNE+QulswvA{=|6 Ms|o|e̙'`ӝ=#LAT$0gl|I+O4i뗿 ZdiJmK3"ߕc#d@Kn־<u,)e````_BH)SVigcR>WXs^@yXt8y>pvh^P|r]X(QM 7`uW5Ef iEzhXe{;2#ۛcEPGq(磥g%y !(K455>˖7Xu~;D+J%2ˀ9p :y#R4M&(boDAw ;?,DeSHQ%~jJ<="%ԷLgim( )9hjrX~FߒrN1/,Z7(K;"%E[)^68ϕ -VXc >BuJ`M>&xy`X;Sp5жZ,vFtɉjWo󥝇2sH7h* R&+R1r"C+9r+h(ZNЅ^'=@HQN1}#GfcW޾B.@VSP6cRH>}S"/*;ћIc(JF*>z/fhBn~H)N?z6SgН+y[-/e/Lah;}k0tӜB3"kamzT&j# .f= J^ XEpg&#_!Rb'0 IDAT$JcvYLQRk휅ݠ$%L˵)Rgy660_yDv`LtOs<0s@9f~qc;;v?GˎFt:lj]ٴ78DB!_.Hȃh!]v#$*JqD:KK6Ϫ]r㓰>w`ҩ##t4͞'܏9FN3P6KJ\UD˂bLeb_ Q(;O^LWQS*SG@PE<SG?v<uԌfb9d1gtOgeknLIP% մoOHzLL?|Y{!z -ec\$ĶtԫqK U'"ى',Ϗ^%#M e&8~\K fȂ J%$_O%n]{~9<&NRl\20Q d 3>!s?4Q.>80&{^+SR"d7M+MYlrM>5 ;3mGś7_ď:ES.QlڛE侕41~ 9z>׾O)Loξ28E^^z z4Rl~B7:%~x" /.;]J1( ,[%HG$sӔk@yuӫ=ymڲܲ.d&f |(7${{܀  ===nTt>(GP H2YҐ1q9;rt ]Q-2&`*`|&IO_pM4*yF)jLfVX#g:iϷ!gGxc_ -} mle}F>,/nR/ +!-5 k˜wgV@ï"B(u]A ֕P-ٝE^B"֑gǴBێ)nfբ;xwfz>lO.wgMI1c"ɰaFkEkn,w^Nl,͛Bl\mb0!@%r+e3=O.fi>鰖 myٿd쮓p뫼mk -,?]x; uRh!ʡLa kEt{y /e<̿Sf1pA'1P@׳jk````_DI|$$UQ֤%HI !xlbpж3{67 JJobbΞ5r}M(5k׮%G )%+HmIT*b[. Ùq|H).x'\$Z%e!Ku<~x;V΃j!+L&sy%ؐi͠{~L&q~<{۴v {vΝ8hޜ'}K( PuJ1TT4t o׶ef~9W|+Q ^ѵnl[ {%R__.ymd8)zxVRݼs_5J"U/kW;ޥU`5`ѺV؝+y+eb{bLX~R(a]<FؚePL9*}wv߸,1Q DL(zU(qՉu=!Zb(.LBLpBZ4mdI)QR6yD.6|"֚6Qױ{ʻґrl8Be=!tTő/*L#G <^ww7o ۶]LR %-9OJb2"my"ł`eRddg5`Y4AR sLȤpS*) cLZ `(NeNjE>\cSdFBSuBYC;O~qW.4Bs([i5Ӓk9#ʐMgHYDk+(ZVK77+5@uE#hl9z D)zT̖ !جS\a8yҝlQlWh (OIY A:N˗ֶrBHVҹu&K5F R?L )Y$YE>|)dypI52%kdse!Odr ,\ PlB3m bwcD8"N,w3WFV~E*||/.e4!/nERC/$<lo=I2c LU(Q"*,S:l.j$rw^ !#%hy[n7D]DZ2uF97*3@.ʢ0PjїpԈ&e! .(P 7!N``F 2000000> t D(u$߱5(NeTvK;}ʉN0<j722<`{ L |'M h8f```````F4x=gRaX53\ ;.bG>Nk>ZN2gTx'$#b`$ZI0`{%PObQJU&X 1gVS@o՜ʓl!T=UVyw^SQ knm} / 2Jq.7000000x' ysBgK'f GU@ah<~Y~-!P/\%}^@yTjKX]3ë *-XNBkOD$J>`aܤ/{X⽗u8T҅KLԗ14z2XhEJ%vCC ^$U*`hrGjLM>ibKy8Ouz&4{TL.?`@xSզZGŤ(30000000~My)XSK \R; J8;/$QA+Q9C7cybTM]wrE p$shy AE^5.'5Z)֋y1﷓A֬ ݼ_~}&]WcmVwVPx/Z=% Q ll;OJ,x#py~ m_6Ƽy'텛ElbZ*׍R F)dN|F;eEkɫ/veW6Ű;x;y |Y5D&Oڽ*hI=6pL9@KTBjo|5W]YE6RR,~~gkw^z C.߆%uxd>Vu1d]88fQd@u/;7\{/xn Vp&ra͉*˿:|j΄Ys8c=*eǿGe||OC"mK92XܖbzW )PZ-ʮ[(K g(m秾.جAءI"d99KlթH!ˊuzs}C"(=kQ[)ǘ/eyQ6:ekojYH:9"{ʱωRTmZEd׫ P2ĚG~EgU9O~cgv^:?ti}tͿ嶷r7LJ 7zLx-a/ɉ;fj2S0,-`.>#=U;IPRj# ~77dNN}loOwvSe|8s,uw6ǭwv$͆~/CRn\Rhk?[LP:&O}2t~O˼5-h6q9?m)hɑv_%͎miL{];OӟW]_Z;y4<~hdhϢrWŒd8fug9,y}O[4yöf^'E A'*X%h 5t7ΌJwro.cиqL{b/8#>7n'ݹuCWfDR/ %4eP_БZ̆42o,`mjUe%\ďGƗf Al^ԏ^Ǜϼ~GO`Cap27]Ms_棣5ogW]]iO6iN̡ ltwJ.6`?! ,>j4!NFY\5@'=3%s{SDz8 oM>͍l)WXcNKUXzEo+s+]#ֈ ~dRO kJL { ^;;3n 3adROċkKLzY[G1_@iBѽ壻>wƒ?N{nz~gqq.W ՗\BEQ%\w?OqڤV>m7^m)GUuU+^pl6Rª'T7+_Y;gNMm\ ?葩xB)}FfY\ÅK_77[?'͡џ!2 MЧ*MI n``!׾;1&)1/-QC*:^Ohf2)1)ce 3:8z`z?rG2rP7? 1LJX=tMw-gS'gJ;3{4LEwW3CqACI J1cܑtt_y~ޤew,gEf1~B<U+wbVp;M4 9gӚ7x궿'<7U+~S 3t mAwLۚ>=Oa3-=ƶ*,:޴gQ3eGgϴoN_3pY MI6tCP&q2?n|89塎8 6Mq&z54'ɫ[!?~S|qOlĂ\m)+ڮv\ f?0KPWn;;y5Aҗ :8bĠXYÝy2mkw>IJ?̄SN48n+5*)D# xϵ֠Ç#36(d`}B`T+,\ׅM%ʎ? ^uz=)2~3g,\7 :oaټ;=;d[{fI{k^Bɻ!['+[ʢb5_kߵֽ\{㼺r4-( o>k0]pFm |~gr'gD6ߺ}:WBg}&(-^=r2mLmUw+& 2\=o8BQmL>G1tB^^٣ MݚTk 8a}],g. }>3藅鵡z}vSfO4OU";n۟h-5W~6iߗO_dT+,Xۅ͠ڪhcNżݫޭ̫ڈ]sQ~SR>Q1$-I is~.<}w/";s6Lk;NoO7-OJo;UviDU*"'̏}36ae;9OdCϹQԓtsjkgTN5BYr;*=fҞsc?#3rwٰ#99 oxPL`PצO4ȕKhBq,<ӫdb9?:_W֔P0LGxjaS,MꡣòҌ{UFs—wقLKyjZS" wKo Fjqmԧk'UO|3&gwiDk/uļ]z!T%풍3E?4v &ðp.Sǰ;xn$S } /qlq O̔_y{1ېtv켻k IDAT }_FzF{xe*CH~ 3`HFj!o3pNǘq? ӑ&|GOjz$޷ J/n9؝,F/`wY8q`Tm1hf͊x5 713aޜӘ>.3l(yMI.ڳdob+aTF7Iw<ύ{N]6TV:6>"[BnءYQy:z!Ӝƒ9pN8/@v< K#dлI Q&C3&yom j!+S-Zfl>zRdLq՜:^F̠='xFmdːCtD&DK xi+Jk犌3Ww 㘐L+oysءI2 f.oO-^& <3KF3g\.~B?_m;r_KqASa#gԄimG;t?2.YhQx{M]S&o[fɳT^U3eLbjutߥz1ij8vх~wY6}̙:qp }|pwt0z$ n,|oA5tˌ:xss>GA1\3g#G.7'skHv>0xŦI?*=5"@vs7nח2v$h'yH5y%e1"16Q2o&oW,݃amcmsy"NKm^?܇Oa[r[ vuNfmv!:K; u:B0y6?osكS?W\՟eEk 45%|BZ0~Jse`r'1{R.ͣڑ?Qv oG_.LY DݵJ6Yxw[vg/y )߷'}s[{һ䣿žS%&mv .2v8x6CG>+o)T!+]8_~ (ZkMG,^-S9;?a7s#{{d} Co~~0Q; N}z57xN, 2ت$ʲ\/rI/ֵ VyF3W-!QȌ㔟^)$ 5!MIH"P|q U屗@ !=&Bely@~,-XLy!A<EADu)QA,a wdt|W^Y͛,kj-N3qG\ؼz:.PYL@ºOv=]_=zmICS+=;cn<|;,5ξ[\~<:n7i`n()"āǮ\Tؘ(; [ي|4553,+6V_ݳxb «^mSZ׭d͂oճ ayo̕B`!Ng]CF{q9~A2eVd&6v9|nw,z)2O޷xO'ɧbt_~N(X<E7)*Dej'Jkͺu6mömV\T*E:&JJ2N`J)RJ%6o4׬YC&!N3l0Ǝ۶Yv-cƌ65߹ #K?胴NHgLx/"KYaخoCK/~E۰L}QjmYG[+mcHh ks>ڇt ,W\9o~vC,eI'Fdw^CM!&y,M:>p²,4l ;f*IR:l3NBįT*1t{ |޿/ɰv:Fmz6HCN"7~:]7_әG\ˍ>$<vE˺4a8ԏ=xƇ^杼eD~Z{w9./cI,:)d:;Csޠ:x+WY1ds7)Ȗ6CI*Z#o} 7L|KϚGOϪV?&s: 4KgH=u\qml[} -ڗ &7I /!CR!BDŽ$3oͯ < %@r(Q֭W ;I)}۶}T,k=\h,i:::8p6X)TU-@yzR;oWz̑{"ӹu!8G{|ڗX;U\s%^=Uk/iNJ'׫>Wj'-ɈOZY{{_Gs"+0ŇrrAZ=n`w$J8"72^m6Fh[9۸*W |s ܲrdTϖ7)u|[F 95q9@UuMHrP喓20iq gsf?)\wNYflNO~aC9i'&@^=t*U1"?%-I3fx1܎>P[味ny &묿q^A\](7WPxw av#6[ƮaSX%zanqUNSS Fw^$зg1 S0.Xm[ϻ9~n8kbS0<~ZXB}ˮ94}5oM"xBSFWpvAf~6ݠbL:H@h"OToJP@ydHT}}(\.0L(ۍn"MRJv;)%6 bv vr$PvkB>P.RCDMzǺֿXQkmduȭp"c㷳sੜ6n,#{ea3\?ǥQL}#zWѽO{Gv: ({W>(^ݍ-R*ץQ9 iZ Oܾ km^%n3[aK , N*9&AIe*hROرk9(D.vS٨ywm3Z=ijHxp.*a]S˚7:Qer8oi}tK黶U 0sF85N1k%Qu]fZ=U]UI;/Z6gji6`xׯ&yG'$?YBɝ؈hFRR)))-;q1= m6娪|u{25"!( am.>lbWKX٣D~OSu167<Ɵwwca7:}&/H=iX,# < ( "988Tuq8t$***իW:hhhf#H{f]]))G, edee_TOKO68*-)dwgqrQ x!dQ>DU5T4WEUUQh4{>_?PZфLZ 9e 8Ѹ_w?( t}*SLnQyn3/N駤~Lj4n:ϵ%ho3 &oL /wfw]鑎a3U~gX5,E,~aBY 1yl6>&38D}fBvr1L,O/|#ѽm Rîh壕ﲠ$z4}pR>/xgl1ʁu B( lB;hPWLQv65v{m>}r/#9jVZHЇߜǘ>9؜I(fDrAaеGk.cj߃|>Q]H3;Y[B<8+ޭҙ험63n$ACe)k,ཧw6N5!HM"ED<{ٌnN.. tZKB5‡<'{R5zWvoYΖUYƣl'n<$@o`3o1q g^q>]R 4T@:Z\El{ =X> $ sA"/t2pZs W!PBN&&_歏_a&-ۛQW-ZJ HP̙ aǔ{#e6o.}K])=,})s/wk푎!y pՌyv6$ E"nd؀ 'ɝ%_b)Sg0B1`cvysDj[d.?q_#6Rũ- s4Qt=ܙ4%n0mRCE'G髂b-یŶ%oʉ܉ruUП7FO+t3覷ܱO *r)}^Ô:ItU5'WxNliMFɹsat|䌚LO.y4wK8f}`=z [vi;(vOr:w婯L给ٌyQ FwnXq塧GZdn+fGRIRϹOm}hԬ}i3wb5gr', c$0etg93Fy ¯~ҥ,# *+_QC*Lk6_,D*]8^{/ﺃ:剝< s80X9A:Q@5D ٌdb4a2Qy<]RJ;P ZR)/v!)e.@S4*M0`u/ILL[nJFF?x4 )HKK#++ۓMvv6iiiX'1ٌj lWT!}aOHp8p_.YM '[@j0A}w4xvs_ 0xk$<{7> oUxtDP}V--\SϹdppil{.}T%ي-~Ŷ 45ٱۛhhtVCT!d.ÞS UКvl#.a\Gp*x IDATO):F L|O_yO9Pl }ZAī#7F@!(Ιy|qVOdXq>b=KPoL$jC Ԑ9@fQf%|$#ՕQndvDcLaSE9u"iC4=|`9aS&aYCד3ic;:ψa̒(A$ٲq:k6!c7czwzU}4d2!RۺB"vc|4$?_A13 5Gд0>a­HTyOC#L| |vIaa*-EMYYiiiAۊ>UTWWSVVFQQQLyO@Ν;Z4/9$~7NL;Pi\7$Sh0jA<;(Wmt풀;d=^sjZˣ̪S -;}ˊg>!u\}`_4;uMCԍ_pv~7&ؗhZn kݒ9sۛIR?B4MRVM6,n Ѝ[4h:t0v9H0wG_KF3_QvR72A#Ș$|B4?m3WŇ!111;v@Ajjjؔ5~[IuuuX+Th= cXPU}/1|K)$"-쎅wkbdE>#8B1zTrɱ oG L!ƽlk$yjޥT.0k^W^\30ts !%'AOg **9kj.ܘ,ǡy$Fz^~;t9lnE+o,Cr!W]֓,Kg!z#nX zl=6dX7ZcE^^CZBp(Aa@Vk`,{( }˂C%$$v[K.o߾{|qݔS[[.}Ⱦeˍclаu{it/y5(JYyv&dg]4c8菗de4͋|{Nw@\%w=?TYhwΦjjBZ\d1 5jg7~I^% 5 ҉\mUͿjYcN9;,'yf%f-ߍCF!^+]#%;7P;~(SՃ{s:} <U~9?[Oݍ[6oȘٕ,e/[as-UvDֲyG|AH9K{ٵT'VOtܭ|zQGpOp2'PZZ=  ZU IymPuOY A[u|B"%\Mv)<,D")))h-\4xB rssLII?aۍP(uW~K,&0w . (=W7aW3 fR;`PkElPR{lşץEdR3oRZ@Jk_RkpDyLj[LutQ y8@ *jg 9}AFF D׷,R95G,F?x{ޣmlq_mNN7e k^bɒzя .//5H4U8$k~&%~ (C^e P% *l C@Z!򌷝POlݎo7̜>u< #Cg3$JiAZ-F2*Z؃UVVX/fbb"v ~ نZa𥤤Pvߢ'< ~$bfluUP!R%nV8&j78u8iGcwipi,][]$Φ:M1,l.{=5HD3~ QΎ3xe|Ps*En : j:уS/xXXp'H"Y;c:sWmgPH-s.e Zukb3d$b\| $pvg廯(ssЮB"SbS3P4V<Ͽ1>=?fc:8_~* trbs/zùe9wO mZ\rC3dGx5kTY=u\tR' sbpq!V4?N󷱙 ;?8}m µw {x:w~F]s},GXT0~<Vv6N^Awo޶ Osv1iɢ<'8[_-vDž#=rsDjIE k^{7ց$|Uޔxu/$J #\h( 2U~byks1WPi RY'p`g̛:>YPkb?Q~&_ӓdym+٧='e`agۏF_v ˃`SOY̧λ˻&Ѹc% ֊~f3Iy0ma,iI 1cƫ<ՍivoC5ZÍ[X;A ak#,vJf`{5Jy!*;I7,t[(r=όVPkF'yf7sԍK ,mb]WZ藁2(1r7;'nő>@ = #,c4G=rJź(^3GbȞP~6OEXD1 S8' &bhl,VD +*F1$vUUFbb"8N\.. dœd2a6:9pFdEQPU*+ix6) 6T::*@Yr"ȫR8se֓wkੜ6n,#{em=8sMT2 gHxp.*a]Sbk:TnaKrL|iry=ثާ̴cǟȞXW:X}Eɞ4եvqSV/oq;W:V<@`+:kO[K&kيQe˰Z8N8@ii)'pByR__O}}=`6X,XV`h4ON'G HvZ:vHRR'^Ծ}o}x[NK?c/嵀8 =ʋwF{0'|01' >Y-fxC (B@Tx “@y޿+{45$fc^x~bG'!#.+{eeK>WoD@$->;b-*ށ|hG̘ ?W'z~8'?oSy]2(O:WLd/X[y W|KeIo>),!S P5#}Kz"MJ-@n>Z>hѓ6Z1I <~4)Q.$|Qʽ.7b%UojRSS,3ګ*MMM455z#AQQQf#99ep'$bmb\)+hӰ KuU\1bdB[DHdͥOErENK;r'd-[6A:X>1ggZŽNB!mIy %Ki<~Q/ s ɣބNUQ+3}m 9=Z2{R`^wc]MJqHf}4Kg$c(:9O>3՝k:g2>ӶPp3["X/lϭCl{ΰGXv}}'2- +x$d("ߴ]qQnkBxG7.=i#RQJr !b:N*ȱb"XmAjkk>H U3wFez755җsd3y8Hp܍ Ln_y 4 zNd\y5c͢>B}dDo{xSo0bP8NdG/%2~ yo/ǯ0ۋ̈́}9ab1s 1E$(ԝ1Y3NH B!7c3Yf.̠|1)~'qUռ6-\FEi ʆv>7"бH,N=iq"ǽr;rRf0:Gmo$Z} G] RbY>kx}$"!D'(Bt:y@"jRT) vPtT&=|t*TKKKoDfIT82#OL&o_(q ޗ&11rC%$,V,lf+ф)RRz;\BbRR_@n|pb:z uRV+xbO *Z{Bc)ZL-?]$.73zu )5W:t ]PߚG)F?5$Sa'4Mn VÇc0'7nEQ?DBqt*줟q#^ѡCG9za0pK]OT0xͧ<.?ZnCD1{Mj~&3-Q &Cb4Pee%444؈sg0PkUxn;h;OUU232tqt؁}:yϑcOE)ߌ_xQ CiHExw*M09\v墢27M(- ė'-YYhԵVRjHB?Сh&U%Au\T@`D*|0i_!16#F#) .n E( Vuxa (~լ"K-p˅E/DV-:" kǔIokPL7rSlVl6+. [<Ϸ IDATvu)M&L&NtG랃-?\DdRSPZH U (=%}A@,ҷ=[fNq*K.C8CEdK&!9v Sx}2c798?w) "K"%o%#WPdSHM/\Ľ46 ?͜ū^bɨs/碓 H0jvxJ@Qޔ&814!Yf~k&c װzfj V^ p7'P ;^&D[ƏΣ|׬R]:릎KեGf.Z˖0UlrF;3?qPOwWwuVP' !~O" 艝3ifG,?>P:t{iP|;QW5d Nu#]i•~-0[]kzIyM$wKZBcg̘*Ogucڹ1{kNGoR&!,l )w7ԓ$?gZp HilOv|! Vd7v=Ct馩U҅ D5Y?>0AqIz~NVi&6Vj+DL(% W\mEV*-`΋QQY2eW$묋 V-eŃHIƸz26VNW!KWڢ(C{_ϙ{oHp9+f͚ų9=yB,£K^?vtI8>1_EIsk,L%tζe02zMQN|>ObqUFAF)@Z( ,<-W:tC]r"l˓ KN1򧞐xwi9<ƥda-w/V0!/knvϪ8+/k?~vnP1Y@Yo{H/7un$y1l ] e/->ٰl5A-v*9KcwUQسKqӠv˒cukZbŀ^ؔ^j(5LW~7lNd=4,.~wz|QO F,ne"3'tkXF bmcdHf(4dDRA {A2CǑGv: (绲r {]3`ߒQ5 k~[I# XjgbW/`f+P;% dFLc&{UJ\ZZf+7I`7Fz;3ŮA̘-Z蒫b3-H*][PKwuw/ᄀP͍sa,V|6ߓ;O'R:tw("cʞG!1E7y4:RЩi͘QT_r!g:Z&SPؽUI-tW÷!Q6ЮrP)SdkF"vqdFWcoCur FakQtKhEGZCɚՃV ֲ꣦i9S8qb Ү>/_Ec }z|-3GpXvDA ]2BĶ-$4);gI4M rqCC!Q$Ma_ -RpQ"=uцoP}9o\}O' 5 Ōsd3y%gW 2OR] {Z#eI2%;]6m4 ;.cs8d32ji7 #ݨ[ j>tg*l M`yw:~:te{3i6s?˳K`Hۤ<$/lr/wͥo3} U5{"E?o m`Kph*&ϊÀ+f̳Y'Y()w#d(,d)0Ū D<g;;2wb>zmMl{pʕIH!վO~BHZbκ&y<ނi_؋3;Gt06ẫ70sMwnǸu.?úќ-!#B;2KL9eL f~B߶v)(>'>t5/iaciҹ 4kNH ִeTfk*wa[|ʼ9<F_{]\g}AJ~9qܑAFbO8֟MH 4@C xXN o\MIoBEaB*)eyBB,IiҐ[UKsTUnݮϸ g'tСƹy>й KG1\eJ9\<#ӏE:~=,]! dN$b#bj`60LOų'MJ@#$/R]jb {׌-ؗu 4frnjҡC؋;iP.}Ea4&W?Nߦpelв萑^ƦOdJF7./Ͽ|yEû!"9oʋ(>QjtСCG|4$K1O6](Tşo]f2 ?_&}uGdt.BA'47@D}d)A=!p+ :tOܑ } 8rI^L -I-%A*!\&x~p r9)uСCG &z@T\\'|!<" [Z^СC:t w.8fs@M܁ 52ʠ ,Q:tСCGI<G+7qTr0t/M]C:tAN<EJNZ\Ӧi_t(:tСCo ﹼTYNE-/@kVHc6s&_$bT Eg\*n gu}tСCGU"Gm_X[tBxR(`T:tСCD 3h"P=1# HAz= J|:tСCǯ MjQ˽pw;xx( PE qz'q :tСB|a BIRk}.P"EԭJ:t'G_44|[A8^_dTs=oIt+= f-ߍCFy4#^BQ<.2_I.lY;>2IHI$"UbAmWW][ E"`CP+J&i3Lf& @}ާUAQBh7[GILK##%m{=UXL6 OgŠsjx=I!+$įSn4*HTrm6< Or_H7k(\j$f"p2@caW/_r%t5IIGjdEq\@CW׉w<$$󥪠xMܞc|)`HԘ!AUdTzPQd$ )ܖq+R㤥4n>*n˝!ih$A:O?Ak0<n F]VV@Hv?ݚ\Ek #|m)\M~C 0 BrחMZyڐAn_rcu }B @$Z՝Oգuy2f@D4jh !8S8zQv7 .'DDAIN{{&Ēս(: uëJKgtp*.Yq//7+S%>義Ə6\KIB8naos_{3ܒW?\62s*;'xdz6W%>~yKs^ŐRKejdB⩺Gysڴ<~RŶ%sx {e1J ߟ BNjyΊֵA*;g_]EIT*y;^ٻ8J;W~U}E^c5vTTLedJ,ŦH8oKYt8.Pe<6ˮcJ;:nx=Jfa<ߐk~r XEʝ]Em]E=«XqKT`pɖ(EU9vk`Sq5[sʆթPos'1JOFA9qN#*PT2粳ԵC{"p~\4tu\6C\o69:-Wp=:+ }])$t~% tʝlpgѣfs hvSEPge\a8Ru($A4쐊^83#/U~?z~&1O=8ՃYqv+hA'腝}>͓TStu!Hc5, ]c&p=IV:6oKu.I`3HPz7oó\xq/tu-zΏpE׎?G OYrѭ¦RyzFPS'U/ nc׻32k,6pxNJ.֛ qb7Rn([oKݘqIVfvΟ uܝkt1Jy'kdڇ/6v͙Tp닮ObJ(i]G0ch{U^H2|4O|TMyWrWDDm%JX2( y4Gg|6Э̦RrE[[_}<} V%)S> Ĭjܩ(jS>=iD)J=et`{z}Ǥ +n%ᒩwr+ǻȔX:5{tHiB0KE*g-}֯$b㝯j{ -IMNqPA0ݭX"fr,:,UD{R,tpt=k'YW|r BYͻy\1ҽP_RFu+N)^D^vp\qX220z筺!?Ss1 =s)Y/h)b@uYS_ŶuXYY?̦;_m5LHKBSY;^ ϘakɚLʴue;M0rЌv5y.INAe`[=޴;ā.$=mS<<+Jt̚ch&ڇ/MAqq?BXcN!#=QNiɓK*o)za:돼qrt>^p404ЄG׾Ě\aAld/bD)I<[yqn[DGs֧@K(/4h U U1bH~ ^/Qkuau\u@# tZ.qL(l9PWfW$%Vܕ8:'qF0  EE)*h^^Ls%ʐ5{9g$ðɘ,Rldœ?Q7<5"zn\f]?. ; ~}bIhK;aC11=J2djM=i@xO}aw HG-ǯtOޭ 8w87÷1 Y4ӗfPlG6+PWi;ϺmhN탃vιCdt%+6p-{gGc9%+LM7UU R^p*f:6hpdX]Kb(3dC~JKgpgٱ-ZDLFĒxF?iD))gK$/YX8|} S e6_A?eÒFg20?QHj0w`;-SK~9~͹]r?Ҋ8֫hwյzqvSϽAe2?`|4G@L KމdMf3o+<.1oxxsdPaLK@'<!qm%3u{kM d Ci#/z>KK]D  `p$ 8^Qr𫘗 mujE*:,^r@(B& K#,QQNVIVT\8\.첋emrG8r(uPoCz FA+GITe 6zmВo`_i}w &^ZE !'׬O>fvs$*i1 XV֯_π"JpNVi8<IA D!|UPAf &z&ƀ^C+i'`@*nUUBir.WOWuI-ǤYTջ35ĚtZ:\zF">ZOZ|]:EdScuas6f؜PkqlfVki9[%G,K"-kZ1l#pAK}&s贠A#둃EAs|`6D)IhՂ,ێZ##FD'ެGQUVl9BUs 8gQĚ5Z]vo7Cɘz*~WUZۛ^KȟuYJxKN+8OJTjz+F Tr=ȁTE4x&*ƕ9װ'Õ6没9cΗ[3m@GwK!JOAz YXVgdA*I1&ʪTs--i8ʓw4o;AI}&<D(+LL@ 0:{S57?z5 ňyv\[}ޙ dBzkm|79ڶo*Jpx,}23ďRQTqʔ( vCJǫhoʗց _qB{7&?ߟw~͠iռ{|MdjAwxacG b_r Eiʨנ( _o?cOt[3K14#6as)؜2ѬVWY~* +R*~qCN"ԚS_n[].`vIM X7LyjZU*tVG΄֖?m[%\`6,TVS ?#!BT_zkĚu]%RV0gH%ڤH xٯ ߧ]C4D),˸NN'..Yn,{܏bdf6ť ,#>' M'(<> [jr ۖ/ይUAݻ}̻Fn}a-U ^ǎX W[LαY69~NM^ZGM{!E>|JV@"¸UT_R F5~_&fI}:*㨫QtYīVjKjǼ^?[xoCOoSDmb/dم,߀Fl]UmcFfpUSȉP_e0K!R6 B)<{|p%$VpEKx;)"*(ޔ6$?SŽCɗߺNaJfHk4sM4;9]OFsܓeెz, ]N=BCѴm<߮;q$!5ɢ[)0xƙ)hEA-T5hţUWȀ$.|&֖k5/8q9ۉt#*Y^hVi|:**^ Jkq_vH^t6 Ktr6&p%{dǑ;75uëJKgtp:̂gaƽLTY[5@"*/Ƀ:aP*[. 6}&`!ї^z rPeOܟӦ;R,zZĒ=bnr$EGy{t}od⿿m)4 6-Ps3eLZ]>Hn/ĠTy{~ոo7\ÎO2wjvW8-) ; eht62s*;'xdz6We:j-Kװ҅02?rdJۖa5쭖'wcĤ+64YwCxk6?Ȅǟ`JgAu{)vx{&䅝CyoWkT~w,s2*I!x':C_P԰1o.MvxϾ64I>,VkRpC3M3UpN\p9Pub/o vI}+b㝌`oØk{`'K hT1yݹi@kFZ9%f-k𼫘DE7y{v@"ZC?nh\{u {T2Z09')I=;W|AXn=rn2tlzXal#^aldO'Lz-f;s]p1]t;=7Rr 8鉈+O?rCiPEr?.ҋN:v.Y!Q.H7C?$|n1jf=ewMDۚ2wgeF]qX`7Lg<iN~|k/&MU,xoq?V0тN  ]G0cho/$wICgcW ޺c s ݉Qرl+1J~_n;#G!!h?Y'i:v4K 6Q;Id{:,*>x?WrWDDm%JXM|07*lvN9dEA<~q["e(}3 'LT}Nb6-_>]vK-#cL JڴKٹyk1(dt&-1)94dCmt,pUO}]5i{9#SRйJرN\\cLvNgR$%&Z&&jtM5ym>jMC9J"6&<޳ ꅙneŢ9 A/w=2]lUVma%)֧oo;={W}7SҴ\&Ӿy\~v2:]ӯbRdW$_nQLJ6.KFF{sGnW-X/hTSk3Y /9'L?ח2biS4= )=Mۂ,wg qgϝӺ`a?}\{|hj7Bzjвqxq1I]0f[Ňp6%[QWA:NLޛ:DMlUj(S+2憫ö?%.yruFW4 Fdbf}IYЧKF%Lq\ 84ҥ[.ݓ$\R[r"9jT؝FgES~?NEirWTp <no_SnJ ڭHbO쨌[$Qmǫ"[ʂWfE+"CPMxU纾,'pBBT 9%zdZLX{m>s}8FaO&qQUJh;^-(hР 6^z y>[ŋx,r8 C'xUH<駉JT6i+x1xa!!WpUHװh( wv~V]2 z}3HhD;̧mGOSZ@&_`պ/ct_t8~Oy=]K8v =W.])6`zU:xp:^Y<+HHz=yL%բM 8jlk*L'{rj$ljXMl_{Ң>ϩ5e%6>n\xTV~km%#v&M'sxw`d>F:Pe 5 s-4.dEQ ZO#).t~<{L-GQ;t!U籈fo$ yLUoNzjkIF"Vɶ U4⥳>ăeǫ%Z|'JPģI1~өvMsHEUjع${+ɿMeXt.߱iiiOj]R76GtSbwr,u&3+YZ0^c sIӺ8IBjId$FCՁXS#],?hAl՛][Ou XtVvm8-BK']gcؼqj; IXLALs}+g*2 'RaP1-~Eblnjv`aQ$s,(t-%u#Coc׆f^z 7p@UJ,UԀ%!:"3)ێpŐ4L;k+k@V1bZ:4&sbуjk> 2+Ko_i4&cT(vxJvׂ>X"bȴ|ç|yzvѝxfl10SG/YCCCHx VUIaH ,xE^KA(8~y IDATkO0V 9NAD ֱlND)S0{)ح[ާUؼy[r^e67"&N%/~2c ӈR9RϘ2uB,ߥ)m!u5 ڈ.L#KV‚(tgHJ)G|$!^o`Iq%ad,,lzox"&I%w]^&wp~tۨPh;<4,}1^fv~zCp-&8Eh+gidǦ\TL*ͅ )(⒉/>UNT@BatX@t1v|5ܱ;㮛F( E5mʕ{|lLxxo|fЕ̸ۗs_4N^u5Kڮ#ҝq7Lft▸(X b1{I ũ鶆$I J>{xyr~/Zʶr; 0w*[w! A07W2^*H1x}\565l9]f-sǑ;j:b1o{2)OhOC﫯cKsX,QdAV0[Jc'k`:qMz'wY wrkݫk<1 ħuWG=lZ3Ms|eV b3<."TP< Zі ,XKOQo1yXN0 qa638>,' s&e[p};ܞk}ChI1^Q(='rǵe18l-D }ѳcCHz^:4C\h-Q1]|iBrGF!D, XYٞXUU*U,\!(jmF!RLߑh# d&E1['`'t¾1Ή=𜰨eV՘:Okv H Q׎@ `Yκ^ReS~wZ')M JÏwg_B+LO_̦z?^D9(_ De ?^EOAƃ?sM;Fh)O`'Ѣt/Cv72 '=ǪLh{X=zfrpay Gg +Lr;ԳJFMT78Pe:$T2Vw4dqZ1|? 5qRЧs/0M#Pe; uueq<H@*ZDIY(m'.|5.<2hGy)oN䒧^㒓5f"p*PnEVb~ @.:KT[742BX31F- N3k韓@yƎSVi$L::u01NJ]A.!THiеIWX:c 8S~ي4)P×'+k=ǩƫ)t@xօϧZkTڪ IܩznK28vBy.*k5kk&'9VUNJk\T7!I$p)@d8U*frQ:f3N3h.8Lki.@QWW`h$>d8Dj`ߊ|̴q&i0:v}\rNdw*WH*fPN`}5L<AۨYv:`hnm%ZmHT;w@XQNYq+Bp*fc펛JvE.] ʇPi#־Zd㺂ztR[[ݻn#oα?rHKwcKcE,s30)ٽC.샷\öK"'SFY8adw}{q3nC|j_~-`| |.e5)<p T`|ƻa$ɒNFJ/'l"*ƺQGi!o8\Hi- J4 IOɼ 1Y X(`y ѨDJ PjpһsCv8e%˅Fe 402~[ dEFvNB]'݄[~TUq`RS]gKc>~5ekފ|[mO)L:n2 +;YzZO'|}$q=6k5J 僶Ęf4$ԩQTEvxw]9+w!=1($Iꐱ9e.YFBuF@ױ91\2:;$]i 8-Wp=:+ }])$|?LC|Gɏjuܝkt1Jy'Sػnű$HV豳}QWk-w~~&34'?~W]|Wva*;KXrCwb*v,ÇC\C=OEOEFCj39Y8(^{ vth;O4ћ3%GB#YUj^wuZɣXx}\J9Tz{dYr<2B#Z΂;X @(z$8SdթPRYъj636*D3ZA]V<:4ʔ;[N">4TP/dw+$/+!7`iRdd`ZZ6C${ۦb]r7/x ٽ1Zy\~v2:]ӯbRdW$_nn enmi}_RzЧ;FA;˪5L$ k5Z2.6*p~zfSX[,,-sK`LNnۼ%+זbfཊ⥳7Z}XyWDwFnk6rQk=A#$"3SaR=5(_K7PC[BYk}3-ױ9^L}*J9~"B4\\d.roke@E8kHaZV/'sQ:ޚy/䜱c=SVmp흁;^vPܠv*ϾfSRl7eyi]Չh^^LqURQ=q׽߱ZfPiSfdr0cp(َ6ұέq=6Q>!#Y[O1(^5m%bJZQ"p&*S^`fFP)wԤ IzN:k$ VJ)\NdYFQgbBCফa+]2]JǶWU czbkKS' eD3 "3Ey" ́JB?ַANqP1S}(M1:}DYT$=2rѣ7o/9::XAKF~)6c둋Ij; Icʋ.1n)ډ?;(M@j!M7Kپf ݻ3H_~m¥Gѧx-~$m)ߒB\`Ŋ) Ix޷L#oRt)3@U˱W3%y+H܄`߉ሒ_:ֱlND)S0K$/YX8|} S yZʥn +lƍcTTqck|G!>ZA9qѢ/,\[^H5 CL];"/QM>7 Ji(b4*ǖi4 -%Ou|9'nDB$T~ zTr+gyךk~ԬYS5['~{q,}.  SOҿÿTg~SW{o~SH~'9 ?xڜx7cCx߻V>F_W?OM_į|=o:?g?oo߽}ЯO|Ġ(} ~ (<%I.~wx{Og (ooէW_G^㣧xu{W'0p $"H9OK!"e E]w0ҋj@ ^XIDe;hi\Oͭ2{K6@KQԩ'cM@ eڄ$y5maV0$@ ՐZN`$(v o)*WZ1$@p)g+Ӏ殤ix ̗R@ |8d'@(yKMi/GDI;"* Q >&߉B-Cu,RZ3 @ @(N-dńwS@Ր慫6ȡ@ "(JiT>(yn*g$39!@ |xޔ­Lh]%>Jw8[ϛO- Rn/4c5f# ӬP4{Dr&Lz~yyp@ xX0$+I6jŪ;d,?yym@X@ 9fޔ0r [LG,$)Ka)*hDg֮~'L>!b@ XdѭWÔt\N;^1Q/WY] @ 𡑅cM4g <"F]mbEH"8hU"U, @ Hy4_r2λ.@R~!!;g<;ݟ|ϟ"H5Z~Y2BrۄJ6S6@p]ӱC-_z=*IDAT(2Ւ!a銡|~5ždƐ*=Y VYwUƛb֏ʥSR$\ۜwSS1Mbd#R1]>so]̸qxG,XyNgi&? !$`0 aHqt {Q3݌"4ʾm%2kH\l5@E-ፖM$rCl,yyWk.O|.",+D5Hgke`QN&Ϲض"ިΤeFdtk>vgs,:Q9Cܙ==a7RCR2\r l>ɖTIDDH*|YDQ6'"JI$H*,wry)3 d;A]}Z;}S~7z[l$ 017(>Z_]ǠgȜ&yߗ_ g8g"~]oMfϥ6N,XT%nFŠjy3bsJ,8pbx΋_2F,"o*)=ttv5U["B|$Yb3ݑ R^bJ^FgdR6uUZ:um5];\OYr@jcYeTr|żXWG߾S:$'#l8'g'T}wx?t֦46j:p`GA4ܒg*`&=bNvpz@^;)/# V8x8N'Re6*XAZU{?j<(]D\);JvшDm3=gM&9shW,?D+Ud*]3k~2&X߇R )ƀ$ !z&^xo믶Ǟ2 OMuY<88 0I7NyU+c~o$ :.7<*!SP*1鏹=Wm̟ESxLܘ0G#QڊU_gӥͶ̤Jt{_?*.]B)nDd>.uU8nh^X"Ym2t03",I2s;$9@yj2[n?ک2TÞfU*8bd1  :=H k!Q7M0Fj?(Ig< n$S5(BJnYbx<Tfxz[5&MXf2'<R'ƾ2DPNwt~~]D []yA\CX +\>N)}Ho*U^;OI$lm"|FZriް1'|@!Lfwh<yVp(Jnl?J$t~Z;ЮOyS)AB#pAxJ=$Jq>tF(73ݶ8j5mzEŶu՘&lLKP6i}n=C)=c YI7i&嘔͑t]!^V=UۻiK"[_%(^ؽ(4,5D'cNɸ>}H9xǼZToi)OMZ &.ȱpa2 sMG )$'di_y7wQCւ)ŁQTOEo|Bȍ2KyY)F\HNug0%QU+񮊏~URCIFώ-AL$FJ &Aݘ[T;k&pu]#0܁ɑ4v3zɵ{ȏ$%Lӄ^;Jr*tFTGi'*%A+7]RSfip=HePꨁ2!0"5'rF'+[3"H73)%;oT/2:xG!:>9C{:s{]_qcNy{a%g_MG0jDku14/RKqMN<T/@6 ?m\׼Ul3`$v~0}gJ==nEG*ywO^ $Ie5_kI) IND7>O| §"LK P^ё==hTpN1H}[z./HWL4~^lq#ԌHko9 y ^ VQd߻GUxL سO2*G}\y!­Lx&/ b|0%4k{j0&=$fV~}1ŦNK RJաE+y0Djp ;sysƭd!/k};EOoacΩ6@-hAJD{$mg.o6#Le=M5ƽk@{C%=r蹸"<"C!ce9 d3` -˸jL;% H]5m}y=F}VNZCdn^"|8iLuSې%{u;ޫU.ځ5"ssOSOzp@g,FbfXlQFL_]rĺ62Sf~:ۋ;2dtKw+ӯGZJL;#,2 9XJMGXĢf+Z!sB; b)W [H̠\%Bd}Ss!$Q%9܆=l$ 4b$ v|`ruʸW^f$i辮+"dk2/}.(7.-ǓŁjLԐ'Yz@χ#q*]vY{TF#rNY|y F[~mo&#ȡu>N435L$ne<1>Vurܕ6U~h&gu> UExײ?>G.UNU[ݝu}^Sy\tfg77_y⒮*l%*c[RWݹ:pe\mOiީ3c;;#=;bH G]quЯk90l/6AVW۩ㄜf.j BPVN)gjd͎T|$|}DJ ^VzF@c벴'}q {kV*8Kg;,Ө="y@ydfv;tniGie7s@LpԻ$AkՉMdTx)=k | ,װY<_tjrˀ̓HA._]{ &uCa%7tpQ;>F&#rXkEX{J]ZS/f6EoI\$IV(,ɲߧ'_kw@p~hsI$ \{67RS;u25rqF寎<ϔ>jp-Y*WD2ީ´ Գԑ1'g6tbʼ3+.~)eD9ߨ}oSdZr}wwh{+)w"}4򏰿R/|g'a'[[Ʈfy]Lt_z}S{}~| e^ܶD2P:jKyy  Y2~J: mŏY'׾s5pM8c?$s}\wRʧo그xPkcTyʃ~}ӶRߦ RyO*"E__ OUS~#◈9"R_5lP eP eP eP eP eP e\WZ4o;h)P2e@(P2e@(P^N+%Ͼbo''O\z~3#S˺m9ؖ[E+oz>Yȩ?gy]S[*}-Y%U7fmG[Dm=$xc1Ǿ;h)gR[:տ˟[Z eVڒe>u]nHKw Jk9vL}a?SYi^OY~uKZx+0SJ|ʼ)h0fOiiPmm`RP>VS?~>>ӟI+$)?GOyǑw^`me+R)O-1]ǕwM_}lt9kx~D^֯쿵BaSZ9[}NGӏ9}K?˩z}1K=>҅W)?}/J*9϶Ҙ-9T(SbIߑǣ?P<"՟9CdE>kH evK?DA[ڡ?u+>O7⯝sn ]?˙Sϔr{kﻡ{??#ܷKo2CꋳџrƝ?e):ҟrGxXߒƐߧԿ}#RТӟr~τ6?[/2 Ǻ)pPJ{Y>CNsmŎEС}6H؟>ǎO≾m|zvWv캥<$S2r0?%N-߮P> 嶯\KίT[MBkr~^Ookvk~?[vZylߵa*i7|CNSLJByak^?5./v3:kEsY=':vٟvs:εs <&ǖiY|rǫ gHPPV\R |>>k߃ġ?_yS>K|YbVW6 S) {֡?e[OrMsC{Jl0?孖\)Ya{HH` w~9/JU7?e)?z|UkoORP@('ҟmccJ=z|n XvRn:zS^|ޟvY縥npP֟rx)o|x orno[+I 47NSվ:rO P֟r-!ӯ}sL]s,k+--S֟哻?\\7vrϹso)J>YKy ǐE\.p#eD"[DU1ez{% =D5">ExDψ{DbWBB)kX5ˊ:)ܚku]b]HCswwٞ{ا&8GӫBo qc5cQMR]wODŽf] ahO9~~u|\*NԐJ9*e05O;![8Ʈ{[?sߩ{!Cy+չOOЭǞl )'BycR'h/yѺ zz do 澓[gPɶ۫GrQ>_J-n^H\08aO--^1[9w[M:Q[km`ٶv|ȐnLW)O]9HJӸ)x 3?^amKԭ؆@KY[B2 @(B2 @(B2 @(B2 nc77oGZ"".|zV۞@Fė\ Y OBϕK-;C_jA2D1^(P\O`bmi%1"Gۈx/׽,.mkmO +fk%??_|[oE8׃I(C!|)CDq-;􋸚HA 00||Rp.S!2rВ! )~om)7~-eSTjIENDB`dell-recovery/help/C/legal.xml0000664000000000000000000000713011751021273013442 0ustar Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL at this link or in the file COPYING-DOCS distributed with this manual. This manual is part of a collection of GNOME manuals distributed under the GFDL. If you want to distribute this manual separately from the collection, you can do so by adding a copy of the license to the manual, as described in section 6 of the license. Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and the members of the GNOME Documentation Project are made aware of those trademarks, then the names are in capital letters or initial capital letters. DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: DOCUMENT IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. dell-recovery/dell-recovery.spec.in0000664000000000000000000000175111751021273014562 0ustar %{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} %{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} Summary: Dell Recovery Media Creation Package Name: dell-recovery Version: __VERSION__ Release: 1%{?dist} URL: http://launchpad.net/dell-recovery License: GPL3 Group: Applications/System BuildArch: noarch BuildRequires: python-devel, python-setuptools, gettext Requires: python-glade2, uuid-runtime %description This package is used to produce a Dell recovery media image. It then uses known open source tools to write the image to a USB flash drive or DVD writer. %build %{__python} setup.py build cd $(CURDIR)/po; make update-po %install rm -rf %{buildroot} %{__python} setup.py install -O1 --skip-build --root %{buildroot} %changelog * Apr 3 2009 Mario Limonciello - Initial release dell-recovery/tests/0000775000000000000000000000000012312225642011663 5ustar dell-recovery/tests/pyflakes.exclude0000664000000000000000000000254011756540323015064 0ustar # Exclude the following from pyflakes failures. #touching a file Dell/recovery_basic_gtk.py:*: local variable 'wfd' is assigned to but never used #ignoring first few lines read Dell/recovery_backend.py:*: local variable 'timestamp' is assigned to but never used Dell/recovery_backend.py:*: local variable 'distributor_string' is assigned to but never used Dell/recovery_backend.py:*: local variable 'zip_obj' is assigned to but never used Dell/recovery_common.py:*: local variable 'type' is assigned to but never used #no code yet for rhel Dell/recovery_advanced_gtk.py:*: local variable 'bto_version' is assigned to but never used Dell/recovery_advanced_gtk.py:*: local variable 'output_text' is assigned to but never used Dell/recovery_advanced_gtk.py:*: local variable 'distributor' is assigned to but never used Dell/recovery_advanced_gtk.py:*: local variable 'release' is assigned to but never used Dell/recovery_advanced_gtk.py:*: local variable 'arch' is assigned to but never used #touching a file ubiquity/dell-bootstrap.py:*: local variable 'wfd' is assigned to but never used #allows for running on own ubiquity/dell-default-ui.py:*: redefinition of unused 'InstallPlugin' from line * ubiquity/dell-default-ui.py:*: redefinition of unused 'install_misc' from line * #ignore error ubiquity/dell-default-ui.py:*: local variable 'e' is assigned to but never used dell-recovery/tests/match-system-devices.py0000775000000000000000000000171511756447400016313 0ustar #!/usr/bin/python3 from Dell.recovery_common import match_system_device import subprocess pci_call = subprocess.Popen(['lspci', '-n'], stdout=subprocess.PIPE, universal_newlines=True) pci_output = pci_call.communicate()[0] for line in pci_output.split('\n'): if line: vendor = line.split(':')[2].strip() product = line.split(':')[3].split()[0] print("Trying to match PCI %s:%s (using python): %i." % (vendor,product,match_system_device('pci','0x' + vendor, '0x' + product))) usb_call = subprocess.Popen(['lsusb'], stdout = subprocess.PIPE, universal_newlines=True) usb_output = usb_call.communicate()[0] for line in pci_output.split('\n'): if line: vendor = line.split(':')[2].strip() product = line.split(':')[3].split()[0] print("Trying to match USB %s:%s (using python): %i." % (vendor,product,match_system_device('pci','0x' + vendor, '0x' + product))) dell-recovery/tests/test_btoxml.py0000664000000000000000000000723711756541003014615 0ustar #!/usr/bin/env python3 # -*- encoding:utf-8 -*- # # @copyright 2011 Canonical Ltd. # Author 2011 Hsin-Yi Chen # # This is a 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 software 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 software; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA import os import unittest import tempfile from Dell import recovery_xml ilegal_utf8string = bytes(bytearray(range(129, 255))) class NewStr(object): def __init__(self, _str): self._str = _str def __repr__(self): return self._str def __iter__(self): return iter(self._str.encode()) class BTOxmlTestCase(unittest.TestCase): def setUp(self): self.xmlpath = tempfile.mktemp() self._load() def tearDown(self): self.xmlobj = None os.remove(self.xmlpath) def _write(self, lines): lines = [b''] + lines + [b''] with open(self.xmlpath, 'wb') as f: f.write(b'\n'.join(lines)) def _load(self): self.xmlobj = recovery_xml.BTOxml() if os.path.exists(self.xmlpath): self.xmlobj.load_bto_xml(self.xmlpath) def set_node(self, datas): for e in datas: (tag, val) = e self.xmlobj.replace_node_contents(tag, val) def _read_node(self, tag): """load a btoxml and read a node""" self.newxmlobj = recovery_xml.BTOxml() self.newxmlobj.load_bto_xml(self.xmlpath) return self.newxmlobj.fetch_node_contents(tag) def _save(self): self.xmlobj.write_xml(self.xmlpath) class ReadWriteNewBTOxmlTestCase(BTOxmlTestCase): def test_enhance_str(self): self.set_node([('syslog', NewStr('ooo'))]) self._save() self.assertEqual('ooo', self._read_node('syslog')) def test_set_emptystring(self): self.set_node([('syslog', '')]) self._save() self.assertEqual('', self._read_node('syslog')) def test_set_node_ascii(self): self.set_node([('date', '123')]) self._save() self.assertEqual('123', self._read_node('date')) def test_set_node_nonascii(self): self.set_node([('syslog', ilegal_utf8string)]) self._save() self.assertEqual('', self._read_node('syslog')) def test_set_node_mix(self): self.set_node([('date', '2011-11-22'), ('syslog', ilegal_utf8string)]) self._save() self.assertEqual('2011-11-22', self._read_node('date')) class ReadWriteExistedBTOxmlTestCase(ReadWriteNewBTOxmlTestCase): def setUp(self): lines = [ b'2011-11-22', b'' + '中文測試'.encode('utf-8') + ilegal_utf8string + b'' ] self.xmlpath = tempfile.mktemp() self._write(lines) self._load() def test_read_utf8str(self): self.assertEqual('中文測試', self._read_node('syslog')) def suite(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(ReadWriteNewBTOxmlTestCase, 'test')) suite.addTest(unittest.makeSuite(ReadWriteExistedBTOxmlTestCase, 'test')) return suite if __name__ == '__main__': unittest.main(defaultTest='suite') dell-recovery/tests/grub-binaries0000775000000000000000000000023311751021273014340 0ustar #!/bin/sh -e export TARGET=$(mktemp -d) export SOURCE_GRUBDIR=`pwd`/grub/ grub/build-binaries.sh rm -rf $TARGET echo "No problems building grub binaries." dell-recovery/tests/run-pyflakes0000775000000000000000000000320411756447407014250 0ustar #!/usr/bin/env python3 # # Utility script to run pyflakes with the modules we care about and # exclude errors we know to be fine. # Taken from Review Board, MIT license import os import re import subprocess import sys module_exclusions = [ 'build', 'debian', ] def scan_for_modules(): return [entry for entry in os.listdir(os.getcwd()) if ((os.path.isdir(entry) or entry.endswith(".py")) and entry not in module_exclusions)] def main(): cur_dir = os.path.dirname(__file__) os.chdir(os.path.join(cur_dir, "..")) modules = sys.argv[1:] if not modules: # The user didn't specify anything specific. Scan for modules. modules = scan_for_modules() p = subprocess.Popen(['pyflakes'] + modules, stderr=subprocess.PIPE, stdout=subprocess.PIPE, close_fds=True, universal_newlines=True) contents = p.stdout.readlines() # Read in the exclusions file exclusions = {} fp = open(os.path.join(cur_dir, "pyflakes.exclude"), "r") for line in fp.readlines(): if not line.startswith("#"): exclusions[line.rstrip()] = 1 fp.close() # Now filter thin error = False for line in contents: if line.startswith('#'): continue line = line.rstrip() test_line = re.sub(r':[0-9]+:', r':*:', line, 1) test_line = re.sub(r'line [0-9]+', r'line *', test_line) if test_line not in exclusions: print(line) error = True if error: sys.exit(1) if __name__ == "__main__": main() dell-recovery/grub/0000775000000000000000000000000012311717746011472 5ustar dell-recovery/grub/98_dell_bios0000664000000000000000000000030512311717746013667 0ustar #!/bin/bash -e source /usr/lib/grub/grub-mkconfig_lib cat << EOF menuentry "#RECOVERY_TEXT#" { search --no-floppy --hint '(hd0,#PARTITION#)' --set --fs-uuid #UUID# chainloader +1 } EOF dell-recovery/grub/embedded.cfg0000664000000000000000000000013511751021273013671 0ustar search.file /factory/grub.cfg root set prefix=(${root})/factory configfile $prefix/grub.cfg dell-recovery/grub/recovery_partition.cfg0000664000000000000000000000630612311717746016107 0ustar ######################################################### # # # Dell Grub2 configuration file for recovery partitions # # By: Mario Limonciello # # # ######################################################### # # Try to load the grub environment. We may have set a failure bit here. # If the failure bit is set, then we don't default to automatic install # if [ -s /factory/grubenv ]; then set have_grubenv=true load_env -f /factory/grubenv fi if [ "${recordfail}" = 1 ]; then set timeout=-1 set default=0 else set timeout=0 set default=4 fi # # Load other misc defaults # #First check our current directory for additional options if [ -s /factory/common.cfg ]; then source /factory/common.cfg fi #Post RTS deliverables if [ -s /factory/post-rts-gfx.cfg ]; then source /factory/post-rts-gfx.cfg fi if [ -s /factory/post-rts-wlan.cfg ]; then source /factory/post-rts-wlan.cfg fi #Now set the root partition that has our OS installer search --no-floppy --hint '(hd0,#PARTITION#)' --set --fs-uuid #UUID# #If we still don't have options, they are on the the RP too, look there #If missing, load a nice basic default set if [ -z "${options}" ]; then if [ -s /factory/common.cfg ]; then source /factory/common.cfg else set options="boot=casper automatic-ubiquity noprompt quiet splash --" fi #Post RTS deliverables if [ -s /factory/post-rts-gfx.cfg ]; then source /factory/post-rts-gfx.cfg fi if [ -s /factory/post-rts-wlan.cfg ]; then source /factory/post-rts-wlan.cfg fi fi set uuid_options="uuid=#UUID#" #Support starting from a loopback mount (Only support ubuntu.iso for filename) if [ -f /ubuntu.iso ]; then loopback loop /ubuntu.iso set root=(loop) set loop_options="iso-scan/filename=/ubuntu.iso" fi set menu_color_normal=white/red set menu_color_highlight=red/white # # Show the menu if we press shift # if [ "x${timeout}" != "x-1" ]; then if keystatus; then if keystatus --shift; then set timeout=-1 else set timeout=0 fi else if sleep --interruptible 3 ; then set timeout=0 fi fi fi #Set up for EFI if need be if loadfont /boot/grub/font.pf2 ; then set gfxmode=auto insmod efi_gop insmod efi_uga insmod gfxterm terminal_output gfxterm fi #We currently assume all machines can do this #There is a blacklist system in ubuntu though #that can be implemented if need be. set gfxpayload=keep # # Debugging information and options # menuentry "If you are seeing this menu, your installation has failed." { chainloader +1 } menuentry "Choose from the following options for debugging purposes:" { chainloader +1 } menuentry "" { chainloader +1 } menuentry "Single User Mode" { linux /casper/vmlinuz.efi boot=casper noprompt single $uuid_options $loop_options -- initrd /casper/initrd.lz } # # Default option # menuentry "Automated Installation of #OS# (Default)" { set recordfail=1 if [ -n "${have_grubenv}" ]; then save_env -f /factory/grubenv recordfail; fi linux /casper/vmlinuz.efi $uuid_options $options $loop_options initrd /casper/initrd.lz } dell-recovery/grub/build-binaries.sh0000775000000000000000000001227212311717746014726 0ustar #!/bin/sh -e #Dell factory GRUB2 binary builder #Creates binaries for use within Dell factory process #This script can be easily ran on a development system by modifying some #environment variables for source and target directories. # # TARGET specifies where the binaries will end up # PATCHES specifies where the patches # GRUB_SRC specifies where to find a grub source tree containing a debian/ # directory (including a collection of distro patches) # LEGACY_GRUBDIR specifies where legacy GRUB2 (i386-pc) files are stored # UEFI_GRUBDIR specifies where uEFI GRUB2 (x86_64-efi) files are stored # ISO_LOADER specifies the directory where the i386-pc ISO loader files # will be stored # SOURCE_GRUBDIR is where the conf files used are stored # TARGET_GRUBCFG is where the main grubcfg will be placed after modification [ -n "$TARGET" ] || TARGET=/var/lib/dell-recovery [ -n "$LEGACY_GRUBDIR" ] || LEGACY_GRUBDIR=/usr/lib/grub/i386-pc [ -n "$UEFI_GRUBDIR" ] || UEFI_GRUBDIR=/usr/lib/grub/x86_64-efi [ -n "$SOURCE_GRUBDIR" ] || SOURCE_GRUBDIR=/usr/share/dell/grub [ -n "$ISO_LOADER" ] || ISO_LOADER=$TARGET/iso/i386-pc [ -n "$TARGET_GRUBCFG" ] || TARGET_GRUBCFG=$TARGET/grub.cfg if [ -z "$PATCHES" ]; then RELEASE=$(lsb_release -sc) [ ! -d $SOURCE_GRUBDIR/patches/$RELEASE ] && RELEASE=trunk PATCHES=$SOURCE_GRUBDIR/patches/$RELEASE fi mkdir -p $TARGET common_modules="loadenv part_gpt fat ntfs ext2 ntfscomp search linux boot \ minicmd cat cpuid chain halt help ls reboot echo test \ configfile sleep keystatus normal true font" build_grub_setup() { MINGW=$1 BITS=$2 echo "Building bootloader installer for Windows $BITS ($RELEASE)" BUILD_DIR=$(mktemp -d) cd $BUILD_DIR if [ -n "$GRUB_SRC" ]; then cp -R $GRUB_SRC . else apt-get source -qq grub2 fi cd grub2* for item in $(ls $PATCHES); do echo $item >> debian/patches/series cp -f $PATCHES/$item debian/patches done QUILT_PATCHES=debian/patches quilt push -a -q ./autogen.sh >/dev/null 2>&1 CC=${MINGW}-gcc ./configure --host=${MINGW} --disable-efiemu --disable-werror>/dev/null cd grub-core/gnulib && make > /dev/null && cd ../.. make grub_script.tab.h grub_script.yy.h grub-bios-setup.exe >/dev/null cp grub-bios-setup.exe $TARGET/grub-setup-$BITS.exe rm -rf $BUILD_DIR } #x86_64-efi factory bootloader, EFI target. requires grub-efi-amd64-bin if [ -d $UEFI_GRUBDIR ] && [ ! -f $TARGET/grubx64.efi ]; then echo "Building bootloader images for x86_64-efi" efi_modules="efi_uga efi_gop gfxterm part_gpt" grub-mkimage -c $SOURCE_GRUBDIR/embedded.cfg \ --prefix=/factory \ -o $TARGET/grubx64.efi -O x86_64-efi \ $common_modules $efi_modules fi #i386-pc factory bootloader, legacy target. reguires grub-pc-bin if [ -d $LEGACY_GRUBDIR ] && [ ! -f $TARGET/core.img ]; then echo "Building bootloader images for i386-pc" x86_modules="biosdisk part_msdos vbe vga vga_text" #build core image grub-mkimage -c $SOURCE_GRUBDIR/embedded.cfg \ --prefix=/factory \ -o $TARGET/core.img -O i386-pc \ $common_modules $x86_modules #copy boot.img cat /usr/lib/grub/i386-pc/boot.img > $TARGET/boot.img fi #generate grub.cfg used for factory bootloaders if [ ! -c $TARGET_GRUBCFG ]; then echo "Creating factory grub.cfg" OS=$(lsb_release -s -d) sed "s,#OS#,$OS,; /#UUID#/d" \ $SOURCE_GRUBDIR/recovery_partition.cfg \ > $TARGET_GRUBCFG fi #i386 ISO/USB legacy bootloader. requires grub-pc-bin if [ -d $LEGACY_GRUBDIR ] && [ ! -c $ISO_LOADER ] && [ ! -d $ISO_LOADER ]; then echo "Building bootloader images for i386-pc DVD/USB boot" mkdir -p $ISO_LOADER #common cp $LEGACY_GRUBDIR/*.mod $ISO_LOADER cp $LEGACY_GRUBDIR/*.lst $ISO_LOADER cp $LEGACY_GRUBDIR/efiemu??.o $ISO_LOADER #eltorito cp $LEGACY_GRUBDIR/cdboot.img $ISO_LOADER #usb creator cp $LEGACY_GRUBDIR/boot.img $ISO_LOADER workdir="$(mktemp -d workdir-image.XXXXXX)" mkdir -p "$workdir" cat >"$workdir/grub.cfg" < $ISO_LOADER/../eltorito.img #cleanup rm -rf $workdir fi #grub-setup.exe if [ -d $PATCHES ] && [ -x /usr/bin/quilt ] && [ -x /usr/bin/autogen ] && [ -x /usr/bin/autoreconf ] && [ -x /usr/bin/libtoolize ] && [ -x /usr/bin/bison ] && [ -x /usr/bin/flex ] && [ -x /usr/bin/dpkg-source ]; then if [ -d /usr/lib/gcc/i686-w64-mingw32 ] && [ ! -f $TARGET/grub-setup-32.exe ]; then build_grub_setup i686-w64-mingw32 32 fi if [ -d /usr/lib/gcc/x86_64-w64-mingw32 ] && [ ! -f $TARGET/grub-setup-64.exe ]; then build_grub_setup x86_64-w64-mingw32 64 fi fi dell-recovery/grub/theme/0000775000000000000000000000000012002044415012553 5ustar dell-recovery/grub/theme/i386-pc/0000775000000000000000000000000011751021273013653 5ustar dell-recovery/grub/theme/i386-pc/grub.cfg0000664000000000000000000000017211751021273015273 0ustar insmod part_gpt insmod part_msdos insmod vbe insmod vga insmod video_bochs insmod video_cirrus source /boot/grub/grub.cfg dell-recovery/grub/theme/grub.cfg0000664000000000000000000000350612002044415014177 0ustar ######################################################### # # # Dell Grub2 configuration file for ISO Images # # By: Mario Limonciello # # # ######################################################### # First check for additional options on ISO image if [ -s /factory/common.cfg ]; then source /factory/common.cfg fi #Post RTS deliverables if [ -s /factory/post-rts-gfx.cfg ]; then source /factory/post-rts-gfx.cfg fi if [ -s /factory/post-rts-wlan.cfg ]; then source /factory/post-rts-wlan.cfg fi # If missing, load a nice basic default set if [ -z "${options}" ]; then set options="boot=casper automatic-ubiquity noprompt quiet splash --" fi # Setup theme set timeout=5 set gfxmode=auto insmod gfxterm terminal_output gfxterm loadfont /boot/grub/dejavu-sans-12.pf2 loadfont /boot/grub/dejavu-sans-bold-14.pf2 insmod gfxmenu insmod png set theme=/boot/grub/dell/theme.txt # Search for the RP (which contains grubenv in /factory) search --file --set=new_root /factory/grubenv if [ -s ($new_root)/factory/grubenv ]; then set have_grubenv=true load_env -f ($new_root)/factory/grubenv if [ -n "${install_finished}" ]; then set timeout=-1 menuentry "Install Complete, remove media and reboot." { chainloader +1 } fi if [ "x${install_in_progress}" = "x1" ]; then set root=$new_root configfile ($new_root)/factory/grub.cfg fi fi #Default behavior menuentry "Dell Recovery" { set gfxpayload=keep linux /casper/vmlinuz $options initrd /casper/initrd.lz } menuentry "Dell Recovery (safe graphics mode)" { set gfxpayload=keep linux /casper/vmlinuz $options ubiquity/force_failsafe_graphics=true initrd /casper/initrd.lz } dell-recovery/grub/theme/x86_64-efi/0000775000000000000000000000000011751021273014261 5ustar dell-recovery/grub/theme/x86_64-efi/grub.cfg0000664000000000000000000000013311751021273015676 0ustar insmod part_gpt insmod part_msdos insmod efi_gop insmod efi_uga source /boot/grub/grub.cfg dell-recovery/grub/theme/dell/0000775000000000000000000000000011751021273013502 5ustar dell-recovery/grub/theme/dell/slider_s.png0000664000000000000000000000041511751021273016014 0ustar PNG  IHDR U~sRGBbKGD pHYs  tIME  jtEXtCommentCreated with GIMPWhIDAT(ϭ 0C_\HPCg?ÖV8H xnw8K<"rfX| V\bQ-7IDa;U$k("ԟf[tdnùTm IENDB`dell-recovery/grub/theme/dell/boot_menu_se.png0000664000000000000000000000030611751021273016665 0ustar PNG  IHDR;0sBIT|d}IDATH 0 0AߋBBJ=>J+$w䤝X$ԝ j6Yp.iՙ~m\|3en3`lzQ aw5h@ .M ePfIENDB`dell-recovery/grub/theme/dell/boot_menu_ne.png0000664000000000000000000000030111751021273016653 0ustar PNG  IHDR;0sBIT|dxIDATH Mſ˰]/I tv."!'8K+lI,MhĽe@M4Nn].Sϩԡ29o/]=xG7'7u1S|IENDB`dell-recovery/grub/theme/dell/theme.txt0000664000000000000000000000436111751021273015351 0ustar # Default theme for GRUB2 # # Copyright (C) 2011 Daniel Tschudi # Copyright (C) 2012 Dell Inc. # # 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. #general settings message-font: "DejaVu Sans Regular 12" message-color: "#000" message-bg-color: "#fff" desktop-image: "dell.png" #help bar at the bottom + label { top = 100%-25 left = 0 width = 100% height = 20 text = "Press enter to boot the selected operating system." align = "center" font = "DejaVu Sans Regular 12" color = "#FFF" } #boot menu + boot_menu { # left = 10% left = 17% # width = 80% width = 66% top = 25% height = 50% item_font = "DejaVu Sans Regular 12" item_color = "#FFF" selected_item_font = "DejaVu Sans Bold 14" selected_item_color= "#FFF" selected_item_pixmap_style = "blob_*.png" icon_height = 25 icon_width = 25 item_height = 26 item_padding = 0 item_icon_space = 0 item_spacing = 1 scrollbar = true scrollbar_width = 20 scrollbar_thumb = "slider_*.png" menu_pixmap_style = "boot_menu_*.png" } #progress bar + progress_bar { id = "__timeout__" # left = 15% left = 17% top = 80% height = 20 # width = 70% width = 66% font = "DejaVu Sans Regular 12" text_color = "#000" fg_color = "#fff" bg_color = "#6ac" border_color = "#fff" text = "@TIMEOUT_NOTIFICATION_LONG@" } dell-recovery/grub/theme/dell/boot_menu_e.png0000664000000000000000000000030111751021273016475 0ustar PNG  IHDRɰsRGBbKGD pHYs  tIME 1ytEXtCommentCreated with GIMPWIDATc1uFFFFbaqIENDB`dell-recovery/grub/theme/dell/dell.png0000664000000000000000000004723111751021273015137 0ustar PNG  IHDR8gVsRGBbKGD pHYs  tIME:4=tEXtCommentCreated with GIMPW IDATx?l\/wj@.#x `.sKHA]Bbm ]VT,+na…̽ 3! T1pES.n14w9<-P9zϙb %`TQoFDԦVWz3*gDiDq'@PFތ՘z1NWzԦEA(<7JF @ z3j# 5;8贴KPthތQQ3ܠ3}/;yKb@0jSјy87f&财 ڇJ@03qn&^s3%q~^|tW? `l BƫڜO}{hƇM?ƫ:StF`|4^)q7{qL @^*՘cz^1Fh/^{@d!rqg@9@A܅7c|`GO4@9c:@Hc&fcz>*U(~/`'ڇ@l#.DmJ1  8Y4jp'T@0J5f_!@LXXy^|t}X6瓩MEc&^s3{3t5p0~9tFO"5M P^^ߋ gxև~n&^bEPjh*̍n Ss&͘}Z%(T,(s Dc{ݰo@¥8qLߋΣ4Hg_;{Ã( 4@YԛOcz^ў4.cf1:~o)A P |܍[q#T܅q͡7;qCϧ31uWZO Pds+tuGsgCkjSqa2$cx]qd G P@XN2'͘0.s9^@J cnew^ܹ/jSqRLϏ/>Ӄ 8# G؞;k>(Ɠ`\ͭՑ]}gJm*ע13}-<1$?j,ZJZc&ע65 bƍ`Tqyc4CI3[iU4X@z3.o&@J*#ljtZoJ0.Gs`Kߊ?H^E8s6Kz.~8~0av18\{lC n}/_=ȠvC94X^Ky_h/nEO~n<_}?NG<@T?irxi39oٍx\[ͨգ}h 9`t*ոf=ڋu3ybz>׋vZq} 0*:F$g 矍xpk0hQ7\磽X6F{o* Q>Q~ rWo卨s\[ʸB?ƹZϜ,D  gh| J5uZV}O;hęy\s2h rs7k~/+y\N ;4@^LThݍc  _h\>??|n}/,vr!ȋ c^VRr u72!ȅ KϝVh*9u7^3g  {h>͵xUrJI|~|^H 14@6rKbmC)?1Z %4@rKホMinLg{4@fUz^ߋ_$ZVoJ 2~]_&HK T7*#;-f">X3gdi /H:r28ȠᄃY^^;[)68s69zSo$,b8؉u\V67eR]K^b>t5^x%Kԛ lz>l/w6Uiݍݘs}Xԛzz.KlJWtdAZF8143TfT^B % s񃅸'&8J5.oD%x9d/ʠNF pR?iZKidA9g=84̭z#ΠJ K 0L[/}aeAZîJ E 0T\j}3L|f7=xzh!ezE1wSf'ZJeA9 .¥?؉;j tjJ&כ 4Oތ+;ƐLnQofhݍ' DhPƛY~>ڋwRcH^Vp7>LO cGi51d}/gΦ_uWO $󱴚ʝV\_~O!fAJt?VfK%xJ52YߋϐL?hkQ1cx3Y?NK!sOu7W>\+qE V2 "b{=ZV`Ix؍+4~[5VhPoƛ뙬T`UA _/|;ÿerp^l0Qof2T|,\,_ӊkg uZ-9>T`K%z3_LloG02} _zSF47d4|ݷ4H>?|W 4We4|c+o.Ɂq|6N+n_S]#e),_ߋJ c睵LAg2O.?bekx؍T-aa|c+KQ.@"02ki%^R%w"_QP73=@D,]Mfw 7C7h/PZ(΃7{O晳4~[&h`eq`J ~EN40i}t LwM@az>qsI==$@D0Aq3@`v1jS)sCQaצbvQQ@ m8**Ln߭ `, k̤lW[ W[%[6EM ŔJ?ݠƏ( ڟMi0~@Hm4Pjh*՘Og` m|T (S:ڟMЕj̾@Y 򚻐l)Kp3huRG{VK{\*8@% 2fU(%4PFi<؉㮢_q܍d.:(%4PFiOJxP&i7Ge$(atZ* |N+ڇq 4P:iL{|6AצTQd@$<+W|RΈ (J'Iph\fRMگTx-U@rTx~/嬞5A"JRMvӟ_54P" nUx*ÔG (S*L)@MEc&j O&AMD@Y$L? ߋd(_Z?t 0ҭ,@)TӶ1#'LB B¯Kq@LJA B¯RN`)@)R8ntZ PFJ _a?PN`,FG _dKr㲍$FD ?JK8#0:hjSQJXm& 7@CY6s+q%¡ (84Ppf{>TTcy-FW6F:k4PpfҬsQ1+xc=.) IFD Yc&*4K@|\ٌz~b셁|J[^f@E7#7JaRʦ![2@ "K5}l`+2q~k9 #  (FпTb/'LX@& +a(6fFԦ[s+qyHh2pcA% +$~/:-,v1?e$4Y鴒uJ J55ӨXJ5.o8]_o#(Sw6cXJ Sm*YXNTԦhߋ{c̭?Bpv1/͵1j{T6 hRMЕjL魸r#V>o>}7ʦH鸛ޛ (ipk|DPT\ވ /1+p'dRm26=| bJuY57Xqe3C_mJ26|^~̀)U>8Q7X3>ͱp)z'T_$ (a'k1^1' >OtN9n}~g@*}.ys+~͸_|WϤ6\hj4%|J5卨TGsԵ.w IDATZlGɓ^&#4P@WӬyO*L.]嵜~/~~)Ÿrz3l`46e 0t@Es:7ЏK-O"ytm*X/Vk;kÍXZ؃qw6c6Fp#jut@X zz>בO _c{}DɔjIhYG,f)xX ~/n >7f[R7Ŝnӊq7_Y18y-ɩI6@ BqXyD˃sɃ:?Y89xm@j\:xsIгqy#.׆q8>2D4&ն E JֿjFc&Vw`Wck2ǟknQ%m(Ӊˏ2OhTʍ!giſ^طk$4m;u@E" e480J5^_}ԛ6/ +ո>_^˯ݛBHrqJ "9mX̷wϭw4_7`g2QL<Zw#$vt@( _J5Kq}uyv1ȶIތ+јlI E g ? Yh|%fM xp|y-{\ Rm>IAPxyvb\?uؽ1צfR4J Gt}8yrZz3^Lޝ7cz>_^lp7[^}F4@w( Egw7uZp3 r>qpJG DqgR*vG{ј9M-}>؉C6<= gz%NW( ő*B=NVڇKqgGz f8q7n >Kn7 &ع5aaFcy""""b+n_'"֛*E 0^T~/hoRo c7LnDtZpCVb &oaљ~1fa/v@őjdAc*Ŭ+g3}y׉K6lcs=s4`wFL,~: !DS Mz{c\N_jrN\]þgRm>w6mĥUÎVT(T_~Q-b߲g*=.`#IUDΕoXqlOrtPehP1h2Ǭ뱹^:?O9)L6\B@r`Z]!6Ynoų6Yc7jI (OzSٹrL׉g؍K%Il_)[NRm;> E  |܅K ujWb粇m;> E J?#ϩn(-}3 3N@9~mD!|i6j:i${G(4P4wzi}T#"u!6MB@j4P4i@h^sa?.v0J6<LfIcJ'Nﮍws=:RxLp(+syWloGVա&8(#8IZb:]x&pgr@E3$ 6&d(djr.U/`\@%Z~~\<[rum]k{%xF)ǥ03H׉ y|qn[Xk*Vӽ@:Ys%w}N\ZYFCv=kI(ޭ48p8ػVqu-O򹌟Nl̬RJ6Z# (a88=߶r盻kۈ^'^_Z=۱u9o> H Sw?VU zވ'|m= Ebڟ+QP hz43\D#>؏;8XY4 LLl((PH3 zuKYTsKvEF'AFv1W w(T̀zIM{;.=Vsh3i+ (~0ՄV&׉gqzzl+!J T(MM5IfyHl^>0(*4PXYХu!6/h8^Rmwc' hVp cptW4PTh&23 YN\Zݯ EbLΗװ(1|(h~ik4PdN&<9sQ>ҪՓu@ (P`Af?}[*Z*wǝ݊׸z0VϟiںU((@:NK88G{[M4& DQC$jKh@p`+Pq  (M+'$0 hqO /+'$0!hRu6RNXhLks4P| gryF O n i262rE'J4G5@p3])& (_TYPN`@)RH8,VAbf!j4K%m0Qh,~]}vI9Inoe!"Tm@E@YH8#"^UQ`2@IS Lf0(4P" ;S1=CT2I@%x oo"fQSo"ʥy* o@I8c`@ٻlƔI-<~0htz8'[M g8G@2JE8=ӳ* |f+(#4PFߤ\M4Ow4PFAv+Pigķc8PT|@I% #╳* d-ݲrC Tw?Q1l~t(%4P^iOz鴊o ?r P^hڿI9Su&h "VOypA@y qlZ]4`@ R~9jɷ)@h/M@ǥ(+)W U9?h$[V3 x&GPNʯhk)W?)EiL|!OԣՅZ>3/'^s8{3~hi >~ѿ}G3 ~_T \F__YƔB4be-Y(,4lpxZ=^[WZȝӏ~bsFp|p?le bsDj.}hݏx~q[ 7:U͟ej4[ ler`v[@:dz4W~%Q`/ uv.G~T23"B;Ut@|qb1{<񲍦 a2ʼn_v8`qK<2$?7wk L,DF1C?y'w`7N( Y|m2l3y:VB@Alfsl`GƐZ=VꍶÁ<hoчD=+?QO{;:(!zq>Lۈkj `hC,ēO_ɧg;j xv6{/ {51O?fUcHie-N,fpX5|ap0<ْACJ+k1z;n1@GĿPD ptw1s<2epTY[; pThGrh4j}4uz;* phcøӏ /h4bCDZ,ގJ ޭh4͖ ""Vbn)K8>4@"7wǑA7[#ѨZ=~vo"  1O>%~&?ȠZ=8f{^'~b"H꽝xdOʼnFF >Voي7.d{^'.t !4@Rw?GD=N,탸Wroz6~N<(} !4@jw?cx 1wѻR)"Ūo$'p?ĉSx?(9|.x^Z>To|< ?gg`ZJV'~FsY@dfltXBJet`@dilXFBSxsKOog~`HA eЏ=n$47%c"2bf!:@)Tq>f^ǵ"qfO>sƟ>>Txaf!~ǵc$qfЏ='8!}743q>jO5[w4v# 1gO>'_jO̟6!} 4 >?l<8.h3yzxԘ>^'~j*: &a8vcʠ#g䏜L,{j D&ΠG'jfRFϋgÁL`r~u4c D9"7}0AhI; z ltuT/>hoL nƝ~,f̽wwg}~E&N [ѿϟkc'cf!>0Rcni܍Axoȃ(@4[z4&pvl7jX^ \WעqrB 3zq~g s%6X<r IDAT.ĥU V&@\LdÑ9%ȫӱ|nbW x(V,ى :I cc&2`/ǡ xĺ#b8w4 &8عb._~2ICrO P& w-~!#jxt̟do~Dmw 1+ky88uCO PV5q!D Ph8QX?f(4@a}hoGwm)٘[Kl@1 Vcz6//Fsw׌|("4@͟3yi~o]TAϳKјKbJm9%(L%rKmA@xL^a?E7sVWcTZ~%v.EE'(|Brdf!fbf!M3@el̟T/`hIژYwM3@J1+k1=Wx؏:&VcrGmݏ8]e"(X^i}${tL,yϝ#b8vG P^z,R^h:Gw?vXxܛ>ӳ%:gc\N'ZNqk@4[R%64ψ9&3M _CD|4ߠG]3_%bԽzػA@ C31=DDtcJtU@S٘Y08؍㰯< 4GTܫ1x 9޵hƠgD [R2koG{۴ ]JZHA @"V̟2!FSEⅅYP"9؍V @Z=f$y7ʝv h2&!3c!`\'Κ=A|/w`LBL/)a?n67`W134՘^E4jvވþz0)hrٺ==ӹQ @ @.MF3[tukL -ݏ^^l&hh>H[fkP,h Vf+x/ј*r؏;ވODÁ; @q (Qg(z.+͟ ^|g#bFSGy=fN=J޸N|2G7Xv:IENDB`dell-recovery/grub/theme/dell/slider_n.png0000664000000000000000000000041111751021273016003 0ustar PNG  IHDRsRGBbKGD pHYs  tIME  4(tEXtCommentCreated with GIMPWdIDAT(ϭ 0 /U|XX1R*Erd+M"GG3kimܰZJjs`~jӇBW`q3ʫmIENDB`dell-recovery/grub/theme/dell/boot_menu_n.png0000664000000000000000000000014711751021273016516 0ustar PNG  IHDRtsBIT|dIDATc` ? EMWE*IENDB`dell-recovery/grub/theme/dell/boot_menu_s.png0000664000000000000000000000014611751021273016522 0ustar PNG  IHDRtsBIT|dIDATc1 HˈQ-ˌIENDB`dell-recovery/grub/theme/dell/boot_menu_w.png0000664000000000000000000000014011751021273016520 0ustar PNG  IHDRɰsBIT|dIDATcd ?iB|G2 YIENDB`dell-recovery/grub/theme/dell/boot_menu_nw.png0000664000000000000000000000027011751021273016702 0ustar PNG  IHDR;0sBIT|doIDATHc?@uQG-P >J,%btKMa1$[&.XJTTZqc}KT(@?#>e5o"ԣZL3 4IENDB`dell-recovery/grub/theme/dell/slider_c.png0000664000000000000000000000030511751021273015772 0ustar PNG  IHDRޒ%sRGBbKGD pHYs  tIME  .ktEXtCommentCreated with GIMPW IDATc?2p]/3(@xIENDB`dell-recovery/grub/theme/dell/blob_w.png0000664000000000000000000000150411751021273015454 0ustar PNG  IHDRcsRGBbKGD pHYs  tIME  ;(%tEXtCommentCreated with GIMPWIDATHKTQǿskl~(S *"hE[ F qNP7ԅ.YadЙgtt޻?S.|{_ZY4;;꺯Dĵ[*~l 99!"k펪~jvhXĽd2"qW"r=f0+" I(Htzczz288LDEBE$ny^m}}}P(6B!^<+"oC"`f03c(˫\|> tvvdpDfq)U [k9S2sJDqSg UƘb~_ !"bfϒT f}|cLSD"q̜GGG~\auv.\{D} WZ,VVVv4ZTT_jR9\XXPmߌEoA૪&A`+J}bbk6dˏq||ӳL&(Qkoj#W&''FGGgr5i}ݝdisk->name, dir); } - +*/ grub_util_info ("setting the root device to `%s'", root); if (grub_env_set ("root", root) != GRUB_ERR_NONE) grub_util_error ("%s", grub_errmsg); @@ -524,6 +530,13 @@ assert (nsec <= maxsec); + /* Ignore failures in the embedding test */ + if (grub_errno != GRUB_ERR_NONE) + { + grub_errno = GRUB_ERR_NONE; + grub_util_warn("The embedding test declared a failure. This is normally non-fatal during WinPE, so it will be ignored."); + } + /* Clean out the blocklists. */ bl.block = bl.first_block; while (bl.block->len) dell-recovery/grub/patches/trunk/0000775000000000000000000000000012311717746014264 5ustar dell-recovery/grub/patches/trunk/mingw_compilation.path0000664000000000000000000000130112311717746020654 0ustar Includes both patches from upstream to fix mingw complilation: 94cee4a4c201bb506377b2c26e072eee8cb19d6f 5ef569df5b359048ee55c5000e2679855cb87e06 Index: grub2-2.02~beta2/include/grub/osdep/hostfile_windows.h =================================================================== --- grub2-2.02~beta2.orig/include/grub/osdep/hostfile_windows.h 2014-03-11 19:42:08.840731935 +0000 +++ grub2-2.02~beta2/include/grub/osdep/hostfile_windows.h 2014-03-11 19:43:12.360731732 +0000 @@ -70,8 +70,11 @@ #if defined (__MINGW32__) && !defined (__MINGW64__) +/* 32 bit on Mingw-w64 already redefines them if _FILE_OFFSET_BITS=64 */ +#ifndef _W64 #define fseeko fseeko64 #define ftello ftello64 +#endif #endif dell-recovery/grub/patches/trunk/dell-support.patch0000664000000000000000000000745012311717746017745 0ustar This patch sets up the default directories to install to the target the MBR of the first hard disk from C:\factory. It's analogous to calling grub-setup.exe like this: # grub-setup -d C:\factory -r "(//./PHYSICALDRIVE0/)" "//./PHYSICALDRIVE0/" After this patch, it's possible to just install like this: # grub-setup.exe Index: grub2-2.02~beta2/util/grub-setup.c =================================================================== --- grub2-2.02~beta2.orig/util/grub-setup.c 2014-03-11 19:24:15.892737227 +0000 +++ grub2-2.02~beta2/util/grub-setup.c 2014-03-11 19:24:15.884737226 +0000 @@ -207,9 +207,11 @@ break; case ARGP_KEY_NO_ARGS: - fprintf (stderr, "%s", _("No device is specified.\n")); - argp_usage (state); + fprintf(stderr, "Installing GRUB2 to `%s'\n", DELL_TARGET); + /* + argp_usage (state); exit (1); + */ break; default: @@ -286,7 +288,10 @@ grub_mdraid1x_init (); grub_lvm_init (); - dest_dev = get_device_name (arguments.device); + if (arguments.device) + dest_dev = get_device_name (arguments.device); + else + dest_dev = grub_util_get_grub_dev (DELL_TARGET); if (! dest_dev) { /* Possibly, the user specified an OS device file. */ @@ -329,5 +334,6 @@ free (root_dev); free (dest_dev); + fprintf (stderr, "%s", _("Completed successfully.\n")); return 0; } Index: grub2-2.02~beta2/include/grub/osdep/hostfile_windows.h =================================================================== --- grub2-2.02~beta2.orig/include/grub/osdep/hostfile_windows.h 2014-03-11 19:24:15.892737227 +0000 +++ grub2-2.02~beta2/include/grub/osdep/hostfile_windows.h 2014-03-11 19:29:25.852735843 +0000 @@ -28,7 +28,8 @@ #define GRUB_UTIL_FD_IS_VALID(x) ((x) != GRUB_UTIL_FD_INVALID) #define GRUB_UTIL_FD_STAT_IS_FUNCTIONAL 0 -#define DEFAULT_DIRECTORY "C:\\"GRUB_BOOT_DIR_NAME"\\"GRUB_DIR_NAME +#define DELL_TARGET "//./PHYSICALDRIVE0/" +#define DEFAULT_DIRECTORY "C:/factory" #define DEFAULT_DEVICE_MAP DEFAULT_DIRECTORY "/device.map" struct grub_util_fd_dirent Index: grub2-2.02~beta2/util/setup.c =================================================================== --- grub2-2.02~beta2.orig/util/setup.c 2014-03-11 19:24:15.892737227 +0000 +++ grub2-2.02~beta2/util/setup.c 2014-03-11 19:29:19.696736115 +0000 @@ -255,7 +255,7 @@ { char *core_path; char *boot_img, *core_img, *boot_path; - char *root = 0; + char *root = grub_util_get_grub_dev (DELL_TARGET); size_t boot_size, core_size; #ifdef GRUB_SETUP_BIOS grub_uint16_t core_sectors; @@ -302,13 +302,19 @@ - sizeof (*bl.block)); grub_util_info ("root is `%s', dest is `%s'", root, dest); + /* Open the root device and the destination device. */ + grub_util_info ("Opening root"); + root_dev = grub_device_open (root); + if (! root_dev) + grub_util_error ("%s", grub_errmsg); + grub_util_info ("Opening dest"); dest_dev = grub_device_open (dest); if (! dest_dev) grub_util_error ("%s", grub_errmsg); core_dev = dest_dev; - +/* { char **root_devices = grub_guess_root_devices (dir); char **cur; @@ -353,7 +359,7 @@ grub_util_info ("guessed root_dev `%s' from " "dir `%s'", root_dev->disk->name, dir); } - +*/ grub_util_info ("setting the root device to `%s'", root); if (grub_env_set ("root", root) != GRUB_ERR_NONE) grub_util_error ("%s", grub_errmsg); @@ -524,6 +530,13 @@ assert (nsec <= maxsec); + /* Ignore failures in the embedding test */ + if (grub_errno != GRUB_ERR_NONE) + { + grub_errno = GRUB_ERR_NONE; + grub_util_warn("The embedding test declared a failure. This is normally non-fatal during WinPE, so it will be ignored."); + } + /* Clean out the blocklists. */ bl.block = bl.first_block; while (bl.block->len) dell-recovery/grub/common.cfg0000664000000000000000000000011612111201306013413 0ustar set options="boot=casper automatic-ubiquity noprompt quiet splash -- #EXTRA#" dell-recovery/setup.py0000775000000000000000000000730612043102601012232 0ustar #!/usr/bin/python3 # # Dell Recovery Media install script # Copyright (C) 2008-2009, Dell Inc. # Author: Mario Limonciello # # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA from distutils.core import setup from DistUtilsExtra.command import (build_extra, build_i18n, build_help, build_icons, clean_i18n) import glob, os.path, os def files_only(directory): for root, dirs, files in os.walk(directory): if root == directory: array = [] for file in files: array.append(os.path.join(directory, file)) return array I18NFILES = [] for filepath in glob.glob("po/mo/*/LC_MESSAGES/*.mo"): lang = filepath[len("po/mo/"):] targetpath = os.path.dirname(os.path.join("share/locale",lang)) I18NFILES.append((targetpath, [filepath])) setup( name="dell-recovery", author="Mario Limonciello", author_email="Mario_Limoncielo@Dell.com", maintainer="Mario Limonciello", maintainer_email="Mario_Limonciello@Dell.com", url="http://linux.dell.com/", license="gpl", description="Creates a piece of recovery media for a Dell Factory image", packages=["Dell"], data_files=[("share/dell", glob.glob("gtk/*.ui")), ('share/dell/bin', ['bto-autobuilder/dell-bto-autobuilder']), ('share/pixmaps', glob.glob("gtk/*.svg")), ('share/dell/bin', ['backend/recovery-media-backend']), ('share/dell/casper/scripts', glob.glob('casper/scripts/*')), ('share/dell/casper/hooks', glob.glob('casper/hooks/*')), ('share/dell/casper/seeds', glob.glob('casper/seeds/*')), ('share/dell/scripts', glob.glob('late/scripts/*')), ('share/dell/scripts/non-negotiable', glob.glob('late/chroot_scripts/*')), ('/etc/dbus-1/system.d/', glob.glob('backend/*.conf')), ('share/dell/grub', files_only('grub')), ('share/dell/grub/theme', files_only('grub/theme')), ('share/dell/grub/theme/dell', files_only('grub/theme/dell')), ('share/dell/grub/theme/i386-pc', files_only('grub/theme/i386-pc')), ('share/dell/grub/theme/x86_64-efi', files_only('grub/theme/x86_64-efi')), ('share/dbus-1/system-services', glob.glob('backend/*.service')), ('/lib/udev/rules.d', glob.glob('udev/*')), ('lib/ubiquity/plugins', glob.glob('ubiquity/*.py')), ('share/ubiquity/gtk', glob.glob('ubiquity/*.ui')), ('share/ubiquity', ['ubiquity/dell-bootstrap'])]+I18NFILES, scripts=["dell-recovery", "dell-driver-installer"], cmdclass = { 'build': build_extra.build_extra, 'build_i18n': build_i18n.build_i18n, "build_help" : build_help.build_help, 'build_icons': build_icons.build_icons, 'clean': clean_i18n.clean_i18n, } ) dell-recovery/ubiquity/0000775000000000000000000000000012312225642012374 5ustar dell-recovery/ubiquity/dell-bootstrap.py0000664000000000000000000023213512311717746015721 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «dell-bootstrap» - Ubiquity plugin for Dell Factory Process # # Copyright (C) 2010-2014, Dell Inc. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################ from ubiquity.plugin import InstallPlugin, Plugin, PluginUI from ubiquity import misc from threading import Thread import time from Dell.recovery_threading import ProgressBySize import debconf import Dell.recovery_common as magic from Dell.recovery_xml import BTOxml import subprocess import os import re import shutil import dbus from dbus.mainloop.glib import DBusGMainLoop DBusGMainLoop(set_as_default=True) import syslog import glob import zipfile import tarfile import hashlib from apt.cache import Cache from gi.repository import GLib, UDisks NAME = 'dell-bootstrap' BEFORE = 'language' WEIGHT = 12 OEM = False #Partition Definitions STANDARD_UP_PARTITION = '1' STANDARD_RP_PARTITION = '2' STANDARD_OS_PARTITION = '3' STANDARD_SWAP_PARTITION = '4' DUAL_OS_PARTITION = '4' EFI_ESP_PARTITION = '1' EFI_UP_PARTITION = '2' EFI_RP_PARTITION = '3' EFI_OS_PARTITION = '4' EFI_SWAP_PARTITION = '5' TYPE_NTFS = '07' TYPE_NTFS_RE = '27' TYPE_VFAT = '0b' TYPE_VFAT_LBA = '0c' #Continually Reused ubiquity templates RECOVERY_TYPE_QUESTION = 'dell-recovery/recovery_type' DUAL_BOOT_QUESTION = 'dell-recovery/dual_boot' DUAL_BOOT_LAYOUT_QUESTION = 'dell-recovery/dual_boot_layout' ACTIVE_PARTITION_QUESTION = 'dell-recovery/active_partition' FAIL_PARTITION_QUESTION = 'dell-recovery/fail_partition' DISK_LAYOUT_QUESTION = 'dell-recovery/disk_layout' SWAP_QUESTION = 'dell-recovery/swap' RP_FILESYSTEM_QUESTION = 'dell-recovery/recovery_partition_filesystem' DRIVER_INSTALL_QUESTION = 'dell-recovery/disable-driver-install' no_options = GLib.Variant('a{sv}', {}) ####################### # Noninteractive Page # ####################### class PageNoninteractive(PluginUI): """Non-Interactive frontend for the dell-bootstrap ubiquity plugin""" def __init__(self, controller, *args, **kwargs): self.controller = controller PluginUI.__init__(self, controller, *args, **kwargs) def get_type(self): '''For the noninteractive frontend, get_type always returns an empty str This is because the noninteractive frontend always runs in "factory" mode, which expects such a str""''' return "" def set_type(self, value, stage): """Empty skeleton function for the non-interactive UI""" pass def show_dialog(self, which, data = None): """Empty skeleton function for the non-interactive UI""" pass def get_selected_device(self): """Empty skeleton function for the non-interactive UI""" pass def populate_devices(self, devices): """Empty skeleton function for the non-interactive UI""" pass def set_advanced(self, item, value): """Empty skeleton function for the non-interactive UI""" pass def get_advanced(self, item): """Empty skeleton function for the non-interactive UI""" return '' ############ # GTK Page # ############ class PageGtk(PluginUI): """GTK frontend for the dell-bootstrap ubiquity plugin""" #OK, so we're not "really" a language page #We are just cheating a little bit to make sure our widgets are translated plugin_is_language = True def __init__(self, controller, *args, **kwargs): self.plugin_widgets = None oem = 'UBIQUITY_OEM_USER_CONFIG' in os.environ self.efi = False self.genuine = magic.check_vendor() if not oem: from gi.repository import Gtk builder = Gtk.Builder() builder.add_from_file('/usr/share/ubiquity/gtk/stepDellBootstrap.ui') builder.connect_signals(self) self.controller = controller self.controller.add_builder(builder) self.plugin_widgets = builder.get_object('stepDellBootstrap') self.automated_recovery = builder.get_object('automated_recovery') self.automated_recovery_box = builder.get_object('automated_recovery_box') self.automated_combobox = builder.get_object('hard_drive_combobox') self.interactive_recovery = builder.get_object('interactive_recovery') self.interactive_recovery_box = builder.get_object('interactive_recovery_box') self.hdd_recovery = builder.get_object('hdd_recovery') self.hdd_recovery_box = builder.get_object('hdd_recovery_box') self.hidden_radio = builder.get_object('hidden_radio') self.info_box = builder.get_object('info_box') self.info_spinner = Gtk.Spinner() builder.get_object('info_spinner_box').add(self.info_spinner) self.restart_box = builder.get_object('restart_box') self.err_dialog = builder.get_object('err_dialog') #advanced page widgets icon = builder.get_object('dell_image') icon.set_tooltip_markup("Dell Recovery Advanced Options") self.advanced_page = builder.get_object('advanced_window') self.advanced_table = builder.get_object('advanced_table') self.version_detail = builder.get_object('version_detail') self.mount_detail = builder.get_object('mountpoint_detail') self.memory_detail = builder.get_object('memory_detail') self.proprietary_combobox = builder.get_object('disable_proprietary_driver_combobox') self.dual_combobox = builder.get_object('dual_combobox') self.dual_layout_combobox = builder.get_object('dual_layout_combobox') self.active_partition_combobox = builder.get_object('active_partition_combobox') self.rp_filesystem_combobox = builder.get_object('recovery_partition_filesystem_checkbox') self.disk_layout_combobox = builder.get_object('disk_layout_combobox') self.swap_combobox = builder.get_object('swap_behavior_combobox') self.ui_combobox = builder.get_object('default_ui_combobox') if not (self.genuine and 'UBIQUITY_AUTOMATIC' in os.environ): builder.get_object('error_box').show() PluginUI.__init__(self, controller, *args, **kwargs) def plugin_get_current_page(self): """Called when ubiquity tries to realize this page. * Disable the progress bar * Check whether we are on genuine hardware """ #are we real? if not (self.genuine and 'UBIQUITY_AUTOMATIC' in os.environ): self.advanced_table.set_sensitive(False) self.interactive_recovery_box.hide() self.automated_recovery_box.hide() self.automated_recovery.set_sensitive(False) self.interactive_recovery.set_sensitive(False) self.controller.allow_go_forward(False) self.toggle_progress() return self.plugin_widgets def toggle_progress(self): """Toggles the progress bar for RP build""" if 'UBIQUITY_AUTOMATIC' in os.environ and \ hasattr(self.controller, 'toggle_progress_section'): self.controller.toggle_progress_section() def get_type(self): """Returns the type of recovery to do from GUI""" if self.automated_recovery.get_active(): return "automatic" elif self.interactive_recovery.get_active(): return "interactive" else: return "" def get_selected_device(self): """Returns the selected device from the GUI""" device = size = '' model = self.automated_combobox.get_model() iterator = self.automated_combobox.get_active_iter() if iterator is not None: device = model.get_value(iterator, 0) size = model.get_value(iterator, 1) return (device, size) def set_type(self, value, stage): """Sets the type of recovery to do in GUI""" if not self.genuine: return self.hidden_radio.set_active(True) if value == "automatic": self.automated_recovery.set_active(True) elif value == "interactive": self.interactive_recovery.set_active(True) elif value == "factory": if stage == 2: self.plugin_widgets.hide() else: self.controller.allow_go_forward(False) if value == "hdd": self.advanced_table.set_sensitive(False) self.hdd_recovery_box.show() self.interactive_recovery_box.hide() self.automated_recovery_box.hide() self.interactive_recovery.set_sensitive(False) self.automated_recovery.set_sensitive(False) def toggle_type(self, widget): """Allows the user to go forward after they've made a selection'""" self.controller.allow_go_forward(True) self.automated_combobox.set_sensitive(self.automated_recovery.get_active()) def show_dialog(self, which, data = None): """Shows a dialog""" if which == "info": self.controller._wizard.quit.set_label( self.controller.get_string('ubiquity/imported/cancel')) self.controller.allow_go_forward(False) self.automated_recovery_box.hide() self.interactive_recovery_box.hide() self.info_box.show_all() self.info_spinner.start() self.toggle_progress() elif which == "forward": self.automated_recovery_box.hide() self.interactive_recovery_box.hide() else: self.info_spinner.stop() if which == "exception": self.err_dialog.format_secondary_text(str(data)) self.err_dialog.run() self.err_dialog.hide() return def populate_devices(self, devices): """Feeds a selection of devices into the GUI devices should be an array of 3 column arrays """ #populate the devices liststore = self.automated_combobox.get_model() for device in devices: liststore.append(device) #default to the first item active (it should be sorted anyway) self.automated_combobox.set_active(0) ## ## ## Advanced GUI options ## ## ## def toggle_advanced(self, widget, data = None): """Shows the advanced page""" self.plugin_widgets.set_sensitive(False) self.advanced_page.run() self.advanced_page.hide() self.plugin_widgets.set_sensitive(True) def _map_combobox(self, item): """Maps a combobox to a question""" combobox = None if item == DRIVER_INSTALL_QUESTION: combobox = self.proprietary_combobox elif item == ACTIVE_PARTITION_QUESTION: combobox = self.active_partition_combobox elif item == RP_FILESYSTEM_QUESTION: combobox = self.rp_filesystem_combobox elif item == DISK_LAYOUT_QUESTION: combobox = self.disk_layout_combobox elif item == SWAP_QUESTION: combobox = self.swap_combobox elif item == DUAL_BOOT_QUESTION: combobox = self.dual_combobox elif item == DUAL_BOOT_LAYOUT_QUESTION: combobox = self.dual_layout_combobox return combobox def set_advanced(self, item, value): """Populates the options that should be on the advanced page""" if item == 'efi' and value: self.efi = True self.disk_layout_combobox.set_sensitive(False) self.active_partition_combobox.set_sensitive(False) self.dual_combobox.set_sensitive(False) elif item == "mem" and value: self.memory_detail.set_markup("Total Memory: %f GB" % value) elif item == "version": self.version_detail.set_markup("Version: %s" % value) elif item == "mount": self.mount_detail.set_markup("Mounted From: %s" % value) else: if type(value) is bool: if value: value = 'true' else: value = 'false' combobox = self._map_combobox(item) if combobox: iterator = find_item_iterator(combobox, value) if iterator is not None: combobox.set_active_iter(iterator) else: syslog.syslog("DEBUG: setting %s to %s failed" % \ (item, value)) combobox.set_active(0) #dual boot mode. ui changes for this if item == DUAL_BOOT_QUESTION and self.genuine: value = misc.create_bool(value) self.dual_layout_combobox.set_sensitive(value) if value: self.interactive_recovery_box.hide() else: self.interactive_recovery_box.show() self.interactive_recovery.set_sensitive(not value) def get_advanced(self, item): """Returns the value in an advanced key""" combobox = self._map_combobox(item) if combobox: model = combobox.get_model() iterator = combobox.get_active_iter() return model.get_value(iterator, 0) else: return "" def advanced_callback(self, widget, data = None): """Callback when an advanced widget is toggled""" if widget == self.proprietary_combobox: #nothing changes if we change proprietary drivers currently pass elif widget == self.active_partition_combobox: #nothing changes if we change active partition currently pass elif widget == self.rp_filesystem_combobox: #nothing changes if we change RP filesystem currently pass elif widget == self.swap_combobox: #nothing change if we change swap currently pass else: model = widget.get_model() iterator = widget.get_active_iter() if iterator is not None: answer = model.get_value(iterator, 0) if widget == self.disk_layout_combobox: if answer == "gpt": find_n_set_iterator(self.active_partition_combobox, \ EFI_ESP_PARTITION) self.active_partition_combobox.set_sensitive(False) else: self.active_partition_combobox.set_sensitive(True) elif widget == self.dual_combobox: answer = misc.create_bool(answer) if not self.efi: #set the type back to msdos find_n_set_iterator(self.disk_layout_combobox, "msdos") self.disk_layout_combobox.set_sensitive(not answer) #hide in the UI - this is a little special because it hides #some basic settings too self.set_advanced(DUAL_BOOT_QUESTION, answer) ################ # Debconf Page # ################ class Page(Plugin): """Debconf driven page for the dell-bootstrap ubiquity plugin""" def __init__(self, frontend, db=None, ui=None): self.device = None self.device_size = 0 self.efi = False self.preseed_config = '' self.rp_builder = None self.os_part = None self.disk_size = None self.rp_filesystem = None self.fail_partition = None self.disk_layout = None self.swap_part = None self.swap = None self.dual = None self.rp_part = None self.up_part = None self.stage = 1 Plugin.__init__(self, frontend, db, ui) def log(self, error): """Outputs a debugging string to /var/log/installer/debug""" self.debug("%s: %s" % (NAME, error)) def disable_swap(self): """Disables any swap partitions in use""" udisks = UDisks.Client.new_sync(None) manager = udisks.get_object_manager() for item in manager.get_objects(): swap = item.get_swapspace() if not swap: continue swap.call_stop_sync(no_options) def sleep_network(self): """Requests the network be disabled for the duration of install to prevent conflicts""" bus = dbus.SystemBus() backend_iface = dbus.Interface(bus.get_object(magic.DBUS_BUS_NAME, '/RecoveryMedia'), magic.DBUS_INTERFACE_NAME) backend_iface.force_network(False) backend_iface.request_exit() def test_swap(self): """Tests what to do with swap""" if not self.swap or (self.swap == "dynamic" and \ (self.mem >= 32 or self.disk_size <= 64)): return True else: return False def clean_recipe(self): """Cleans up the recipe to remove swap if we have a small drive""" #don't mess with dual boot recipes if self.dual: return #If we are in dynamic (dell-recovery/swap=dynamic) and small drive # or we explicitly disabled (dell-recovery/swap=false) if self.test_swap(): self.log("Performing swap recipe fixup (%s, hdd: %i, mem: %f)" % \ (self.swap, self.disk_size, self.mem)) try: recipe = self.db.get('partman-auto/expert_recipe') self.db.set('partman-auto/expert_recipe', ' . '.join(recipe.split('.')[0:-2])+' .') except debconf.DebconfError as err: self.log(str(err)) def remove_extra_partitions(self): """Removes partitions we are installing on for the process to start""" if self.disk_layout == 'msdos': #First set the new partition active active = misc.execute_root('sfdisk', '-A%s' % self.fail_partition, \ self.device) if active is False: self.log("Failed to set partition %s active on %s" % \ (self.fail_partition, self.device)) #check for small disks. #on small disks or big mem, don't look for extended or delete swap. if self.test_swap(): self.swap_part = '' total_partitions = 0 else: #check for extended partitions with misc.raised_privileges(): total_partitions = len(magic.fetch_output(['partx', self.device]).split('\n'))-1 #remove extras for number in (self.os_part, self.swap_part): if number.isdigit(): remove = misc.execute_root('parted', '-s', self.device, 'rm', number) if remove is False: self.log("Error removing partition number: %s on %s (this may be normal)'" % (number, self.device)) refresh = misc.execute_root('partx', '-d', '--nr', number, self.device) if refresh is False: self.log("Error updating partition %s for kernel device %s (this may be normal)'" % (number, self.device)) #if there were extended, cleanup if total_partitions > 4 and self.disk_layout == 'msdos': refresh = misc.execute_root('partx', '-d', '--nr', '5-' + str(total_partitions), self.device) if refresh is False: self.log("Error removing extended partitions 5-%s for kernel device %s (this may be normal)'" % (total_partitions, self.device)) def explode_sdr(self): '''Explodes all content explicitly defined in an SDR If no SDR was found, don't change drive at all ''' sdr_file = glob.glob(magic.CDROM_MOUNT + "/*SDR") if not sdr_file: sdr_file = glob.glob(magic.ISO_MOUNT + "/*SDR") if not sdr_file: return #RP Needs to be writable no matter what if not os.path.exists(magic.ISO_MOUNT): cd_mount = misc.execute_root('mount', '-o', 'remount,rw', magic.CDROM_MOUNT) if cd_mount is False: raise RuntimeError("Error remounting RP to explode SDR.") #Parse SDR srv_list = [] dest = '' with open(sdr_file[0], 'r') as rfd: sdr_lines = rfd.readlines() for line in sdr_lines: if line.startswith('SI'): columns = line.split() if len(columns) > 2: #always assume lower case (in case case sensitive FS) srv_list.append(columns[2].lower()) if line.startswith('HW'): columns = line.split() if len(columns) > 2 and columns[1] == 'destination': dest = columns[2] #Explode SRVs that match SDR for srv in srv_list: fname = os.path.join(os.path.join(magic.CDROM_MOUNT, 'srv', '%s' % srv)) if os.path.exists('%s.tgz' % fname): archive = tarfile.open('%s.tgz' % fname) elif os.path.exists('%s.zip' % fname): archive = zipfile.ZipFile('%s.zip' % fname) else: self.log("Skipping SRV %s. No file on filesystem." % srv) continue with misc.raised_privileges(): self.log("Extracting SRV %s onto filesystem" % srv) archive.extractall(path=magic.CDROM_MOUNT) archive.close() #if the destination is somewhere special, change the language if dest: self.preseed('dell-recovery/destination', dest) if dest == 'CN': self.preseed('debian-installer/locale', 'zh_CN.UTF-8') self.ui.controller.translate('zh_CN.UTF-8') def explode_utility_partition(self): '''Explodes all content onto the utility partition ''' #Check if we have FIST on the system. FIST indicates this is running #through factory process (of some sort) and the UP will be written #out outside of our control cache = Cache() for key in cache.keys(): if key == 'fist' and cache[key].is_installed: self.log("FIST was found, not building a UP.") return del cache #For now on GPT we don't include an UP since we can't boot # 16 bit code as necessary for the UP to be working if self.disk_layout == 'gpt': self.log("A GPT layout was found, not building a UP.") return mount = False path = '' if os.path.exists('/usr/share/dell/up/drmk.zip'): path = '/usr/share/dell/up/drmk.zip' elif os.path.exists(os.path.join(magic.CDROM_MOUNT, 'misc', 'drmk.zip')): path = os.path.join(magic.CDROM_MOUNT, 'misc', 'drmk.zip') #If we have DRMK available, explode that first if path: self.log("Extracting DRMK onto utility partition %s" % self.device + self.up_part) mount = misc.execute_root('mount', self.device + self.up_part, '/boot') if mount is False: raise RuntimeError("Error mounting utility partition pre-explosion.") archive = zipfile.ZipFile(path) with misc.raised_privileges(): try: archive.extractall(path='/boot') except IOError as msg: #Partition is corrupted, abort doing anything else here but don't #fail the install #TODO ML (1/10/11) - instead rebuild the UP if possible. self.log("Ignoring corrupted utility partition(%s)." % msg) return archive.close() #Now check for additional UP content to explode for fname in magic.UP_FILENAMES: if os.path.exists(os.path.join(magic.CDROM_MOUNT, fname)): #Restore full UP backup (dd) if '.bin' in fname or '.gz' in fname: self.log("Exploding utility partition from %s" % fname) with misc.raised_privileges(): with open(self.device + self.up_part, 'wb') as partition: p1 = subprocess.Popen(['gzip', '-dc', os.path.join(magic.CDROM_MOUNT, fname)], stdout=subprocess.PIPE) partition.write(p1.communicate()[0]) #Restore UP (zip/tgz) elif '.zip' in fname or '.tgz' in fname: self.log("Extracting utility partition from %s" % fname) if not mount: mount = misc.execute_root('mount', self.device + self.up_part, '/boot') if mount is False: raise RuntimeError("Error mounting utility partition pre-explosion.") if '.zip' in fname: archive = zipfile.ZipFile(os.path.join(magic.CDROM_MOUNT, fname)) elif '.tgz' in file: archive = tarfile.open(os.path.join(magic.CDROM_MOUNT, fname)) with misc.raised_privileges(): archive.extractall(path='/boot') archive.close() #If we didn't include an autoexec.bat (as is the case from normal DellDiags releases) #Then make the files we need to be automatically bootable if not os.path.exists('/boot/autoexec.bat') and os.path.exists('/boot/autoexec.up'): with misc.raised_privileges(): shutil.copy('/boot/autoexec.up', '/boot/autoexec.bat') if not os.path.exists('/boot/config.sys') and os.path.exists('/boot/config.up'): with misc.raised_privileges(): shutil.copy('/boot/config.up', '/boot/config.sys') if mount: umount = misc.execute_root('umount', '/boot') if umount is False: raise RuntimeError("Error unmounting utility partition post-explosion.") def usb_boot_preseeds(self, more_keys=None): """Sets/unsets preseeds that are common to a USB boot scenario. This can either happen if booted from USB stick while in stage 2 or if booted from USB stick in stage 1 and choosing to only restore the linux partition """ keys = ['ubiquity/poweroff', 'ubiquity/reboot'] if more_keys: keys += more_keys for key in keys: self.db.fset(key, 'seen', 'false') self.db.set(key, '') self.db.set('ubiquity/partman-skip-unmount', 'false') self.db.set('partman/filter_mounted', 'true') def unset_drive_preseeds(self): """Unsets any preseeds that are related to setting a drive""" keys = [ 'partman-auto/init_automatically_partition', 'partman-auto/disk', 'partman-auto/expert_recipe', 'partman-basicfilesystems/no_swap', 'grub-installer/only_debian', 'grub-installer/with_other_os', 'grub-installer/bootdev', 'grub-installer/make_active', 'oem-config/early_command', 'oem-config/late_command', 'dell-recovery/active_partition', 'dell-recovery/fail_partition'] self.usb_boot_preseeds(keys) def fixup_recovery_devices(self): """Discovers the first hard disk to install to""" disks = [] udisks = UDisks.Client.new_sync(None) manager = udisks.get_object_manager() drive = None for item in manager.get_objects(): loop = item.get_loop() block = item.get_block() partition = item.get_partition() if loop or \ partition or \ not block or \ not block.get_cached_property("HintPartitionable").get_boolean(): continue drive_obj = block.get_cached_property("Drive").get_string() if drive_obj == '/': continue drive = udisks.get_object(drive_obj).get_drive() if not drive or \ drive.get_cached_property("ConnectionBus").get_string() is 'usb' or \ drive.get_cached_property("Removable").get_boolean() is True: continue devicefile = block.get_cached_property("Device").get_bytestring().decode('utf-8') devicemodel = drive.get_cached_property("Model").get_string() devicevendor = drive.get_cached_property("Vendor").get_string() devicesize = drive.get_cached_property("Size").unpack() devicesize_gb = "%i" % (devicesize / 1000000000) disks.append([devicefile, devicesize, "%s GB %s %s (%s)" % (devicesize_gb, devicevendor, devicemodel, devicefile)]) #If multiple candidates were found, record in the logs if len(disks) == 0: raise RuntimeError("Unable to find and candidate hard disks to install to.") if len(disks) > 1: disks.sort() self.log("Multiple disk candidates were found: %s" % disks) #Always choose the first candidate to start self.device = disks[0][0] self.log("Initially selected candidate disk: %s" % self.device) #populate UI self.ui.populate_devices(disks) def fixup_factory_devices(self, rec_part): """Find the factory recovery partition, and re-adjust preseeds to use that data""" #Ignore any EDD settings - we want to just plop on the same drive with #the right FS label (which will be valid right now) #Don't you dare put a USB stick in the system with that label right now! self.device = rec_part["slave"] if os.path.exists(magic.ISO_MOUNT): location = magic.ISO_MOUNT else: location = magic.CDROM_MOUNT early = '/usr/share/dell/scripts/oem_config.sh early %s' % location self.db.set('oem-config/early_command', early) self.db.set('partman-auto/disk', self.device) if self.disk_layout == 'msdos': self.db.set('grub-installer/bootdev', self.device + self.os_part) elif self.disk_layout == 'gpt': self.db.set('grub-installer/bootdev', self.device) if rec_part["fs"] == "ntfs": self.rp_filesystem = TYPE_NTFS_RE elif rec_part["fs"] == "vfat": self.rp_filesystem = TYPE_VFAT_LBA else: raise RuntimeError("Unknown filesystem on recovery partition: %s" % rec_part["fs"]) if self.dual_layout == 'logical': expert_question = 'partman-auto/expert_recipe' self.db.set(expert_question, self.db.get(expert_question).replace('primary', 'logical')) self.db.set('ubiquity/install_bootloader', 'false') self.disk_size = rec_part["size_gb"] self.log("Detected device we are operating on is %s" % self.device) self.log("Detected a %s filesystem on the %s recovery partition" % (rec_part["fs"], rec_part["label"])) def prepare(self, unfiltered=False): """Prepare the Debconf portion of the plugin and gather all data""" #version with misc.raised_privileges(): version = magic.check_version() self.log("version %s" % version) #mountpoint mount = '' mount = find_boot_device() self.log("mounted from %s" % mount) #recovery type rec_type = None try: rec_type = self.db.get(RECOVERY_TYPE_QUESTION) except debconf.DebconfError as err: self.log(str(err)) rec_type = 'dynamic' self.db.register('debian-installer/dummy', RECOVERY_TYPE_QUESTION) self.db.set(RECOVERY_TYPE_QUESTION, rec_type) #If we were preseeded to dynamic, look for an RP rec_part = magic.find_factory_partition_stats('rp') if "slave" in rec_part: self.stage = 2 if rec_type == 'dynamic': # we rebooted with no USB stick or DVD in drive and have the RP # mounted at /cdrom if self.stage == 2 and rec_part["slave"] in mount: self.log("Detected RP at %s, setting to factory boot" % mount) rec_type = 'factory' else: self.log("No (matching) RP found. Assuming media based boot") rec_type = 'dvd' #Media boots should be interrupted at first screen in --automatic mode if rec_type == 'factory': self.db.fset(RECOVERY_TYPE_QUESTION, 'seen', 'true') else: self.db.set(RECOVERY_TYPE_QUESTION, '') self.db.fset(RECOVERY_TYPE_QUESTION, 'seen', 'false') #In case we preseeded the partitions we need installed to try: self.up_part = self.db.get('dell-recovery/up_partition') except debconf.DebconfError as err: self.log(str(err)) self.up_part = '1' try: self.rp_part = self.db.get('dell-recovery/rp_partition') except debconf.DebconfError as err: self.log(str(err)) self.rp_part = '2' try: self.os_part = self.db.get('dell-recovery/os_partition') except debconf.DebconfError as err: self.log(str(err)) self.os_part = '3' try: self.swap_part = self.db.get('dell-recovery/swap_partition') except debconf.DebconfError as err: self.log(str(err)) self.swap_part = '4' #Support cases where the recovery partition isn't a linux partition try: self.rp_filesystem = self.db.get(RP_FILESYSTEM_QUESTION) except debconf.DebconfError as err: self.log(str(err)) self.rp_filesystem = TYPE_VFAT_LBA #Check if we are set in dual-boot mode try: self.dual = misc.create_bool(self.db.get(DUAL_BOOT_QUESTION)) except debconf.DebconfError as err: self.log(str(err)) self.dual = False try: self.dual_layout = self.db.get(DUAL_BOOT_LAYOUT_QUESTION) except debconf.DebconfError as err: self.log(str(err)) self.dual_layout = 'primary' #If we are successful for an MBR install, this is where we boot to try: pass_partition = self.db.get(ACTIVE_PARTITION_QUESTION) except debconf.DebconfError as err: self.log(str(err)) pass_partition = self.os_part self.preseed(ACTIVE_PARTITION_QUESTION, pass_partition) #In case an MBR install fails, this is where we boot to try: self.fail_partition = self.db.get(FAIL_PARTITION_QUESTION) except debconf.DebconfError as err: self.log(str(err)) self.fail_partition = STANDARD_RP_PARTITION self.preseed(FAIL_PARTITION_QUESTION, self.fail_partition) #The requested disk layout type #This is generally for debug purposes, but will be overridden if we #determine that we are actually going to be doing an EFI install try: self.disk_layout = self.db.get(DISK_LAYOUT_QUESTION) except debconf.DebconfError as err: self.log(str(err)) self.disk_layout = 'msdos' self.preseed(DISK_LAYOUT_QUESTION, self.disk_layout) #Behavior of the swap partition try: self.swap = self.db.get(SWAP_QUESTION) if self.swap != "dynamic": self.swap = misc.create_bool(self.swap) except debconf.DebconfError as err: self.log(str(err)) self.swap = 'dynamic' #Proprietary driver installation preventions try: proprietary = self.db.get(DRIVER_INSTALL_QUESTION) except debconf.DebconfError as err: self.log(str(err)) proprietary = '' #If we detect that we are booted into uEFI mode, then we only want #to do a GPT install. Actually a MBR install would work in most #cases, but we can't make assumptions about 16-bit anymore (and #preparing a UP because of it) if os.path.isdir('/proc/efi') or os.path.isdir('/sys/firmware/efi'): self.efi = True self.disk_layout = 'gpt' self.preseed(DISK_LAYOUT_QUESTION, self.disk_layout) #dynamic partition map. #EFI layout: esp, up, rp, os, swap #MBR layout: up, rp, os, swap #dual (pri) layout: up, rp, win, ubx #dual (log) layout: up, rp, win, ubx if self.up_part == 'dynamic': if self.efi: self.up_part = EFI_UP_PARTITION else: self.up_part = STANDARD_UP_PARTITION if self.rp_part == 'dynamic': if self.efi: self.rp_part = EFI_RP_PARTITION else: self.rp_part = STANDARD_RP_PARTITION if self.os_part == 'dynamic': if self.efi or self.disk_layout == 'gpt': self.os_part = EFI_OS_PARTITION elif self.dual: self.os_part = DUAL_OS_PARTITION else: self.os_part = STANDARD_OS_PARTITION if self.swap_part == 'dynamic': if self.efi: self.swap_part = EFI_SWAP_PARTITION else: self.swap_part = STANDARD_SWAP_PARTITION if self.fail_partition == 'dynamic': self.fail_partition = self.rp_part self.preseed(FAIL_PARTITION_QUESTION, self.fail_partition) if pass_partition == 'dynamic': #Force EFI partition or bios_grub partition active if self.disk_layout == 'gpt': pass_partition = EFI_ESP_PARTITION #Force (new) OS partition to be active else: pass_partition = self.os_part self.preseed(ACTIVE_PARTITION_QUESTION, pass_partition) #Amount of memory in the system self.mem = 0 if os.path.exists('/sys/firmware/memmap'): for root, dirs, files in os.walk('/sys/firmware/memmap', topdown=False): if os.path.exists(os.path.join(root, 'type')): with open(os.path.join(root, 'type')) as rfd: type = rfd.readline().strip('\n') if type != "System RAM": continue with open(os.path.join(root, 'start')) as rfd: start = int(rfd.readline().strip('\n'),0) with open(os.path.join(root, 'end')) as rfd: end = int(rfd.readline().strip('\n'),0) self.mem += (end - start + 1) self.mem = float(self.mem/1024) if self.mem == 0: with open('/proc/meminfo','r') as rfd: for line in rfd.readlines(): if line.startswith('MemTotal'): self.mem = float(line.split()[1].strip()) break self.mem = round(self.mem/1048575) #in GB #Fill in UI data twiddle = {"mount": mount, "version": version, DUAL_BOOT_LAYOUT_QUESTION: self.dual_layout, DUAL_BOOT_QUESTION: self.dual, ACTIVE_PARTITION_QUESTION: pass_partition, DISK_LAYOUT_QUESTION: self.disk_layout, SWAP_QUESTION: self.swap, DRIVER_INSTALL_QUESTION: proprietary, RP_FILESYSTEM_QUESTION: self.rp_filesystem, "mem": self.mem, "efi": self.efi} for twaddle in twiddle: self.ui.set_advanced(twaddle, twiddle[twaddle]) self.ui.set_type(rec_type, self.stage) #Make sure some locale was set so we can guarantee automatic mode try: language = self.db.get('debian-installer/locale') except debconf.DebconfError: language = '' if not language: language = 'en_US.UTF-8' self.preseed('debian-installer/locale', language) self.ui.controller.translate(language) #Clarify which device we're operating on initially in the UI try: self.fixup_recovery_devices() if (rec_type == 'factory' and self.stage == 2) or rec_type == 'hdd': self.fixup_factory_devices(rec_part) except Exception as err: self.handle_exception(err) self.cancel_handler() return (['/usr/share/ubiquity/dell-bootstrap'], [RECOVERY_TYPE_QUESTION]) def ok_handler(self): """Copy answers from debconf questions""" #basic questions rec_type = self.ui.get_type() self.log("recovery type set to %s" % rec_type) self.preseed(RECOVERY_TYPE_QUESTION, rec_type) (device, size) = self.ui.get_selected_device() if device: self.device = device if size: self.device_size = size #advanced questions for question in [DUAL_BOOT_QUESTION, DUAL_BOOT_LAYOUT_QUESTION, ACTIVE_PARTITION_QUESTION, DISK_LAYOUT_QUESTION, SWAP_QUESTION, DRIVER_INSTALL_QUESTION, RP_FILESYSTEM_QUESTION]: answer = self.ui.get_advanced(question) if answer: self.log("advanced option %s set to %s" % (question, answer)) self.preseed_config += question + "=" + answer + " " if question == RP_FILESYSTEM_QUESTION: self.rp_filesystem = answer elif question == DISK_LAYOUT_QUESTION: self.disk_layout = answer elif question == DUAL_BOOT_QUESTION: answer = misc.create_bool(answer) self.dual = answer elif question == DUAL_BOOT_LAYOUT_QUESTION: self.dual_layout = answer if type(answer) is bool: self.preseed_bool(question, answer) else: self.preseed(question, answer) return Plugin.ok_handler(self) def report_progress(self, info, percent): """Reports to the frontend an update about th progress""" self.frontend.debconf_progress_info(info) self.frontend.debconf_progress_set(percent) def cleanup(self): """Do all the real processing for this plugin. * This has to be done here because ok_handler won't run in a fully automated load, and we need to run all steps in all scenarios * Run is the wrong time too because it runs before the user can answer potential questions """ rec_type = self.db.get('dell-recovery/recovery_type') try: # User recovery - need to copy RP if rec_type == "automatic" or \ (rec_type == "factory" and self.stage == 1): if not (rec_type == "factory" and self.stage == 1): self.ui.show_dialog("info") self.disable_swap() #init progress bar and size thread self.frontend.debconf_progress_start(0, 100, "") size_thread = ProgressBySize("Copying Files", "/mnt", "0") size_thread.progress = self.report_progress #init builder self.rp_builder = RPbuilder(self.device, self.device_size, self.rp_filesystem, self.mem, self.dual, self.dual_layout, self.disk_layout, self.efi, self.preseed_config, size_thread) self.rp_builder.exit = self.exit_ui_loops self.rp_builder.status = self.report_progress self.rp_builder.start() self.enter_ui_loop() self.rp_builder.join() if self.rp_builder.exception: self.handle_exception(self.rp_builder.exception) reboot_machine(None) # User recovery - resizing drives elif rec_type == "interactive": self.ui.show_dialog("forward") self.unset_drive_preseeds() # Factory install, and booting from RP else: self.sleep_network() self.disable_swap() self.clean_recipe() self.remove_extra_partitions() self.explode_utility_partition() self.explode_sdr() except Exception as err: #For interactive types of installs show an error then reboot #Otherwise, just reboot the system if rec_type == "automatic" or rec_type == "interactive" or \ ('UBIQUITY_DEBUG' in os.environ and 'UBIQUITY_ONLY' in os.environ): self.handle_exception(err) self.cancel_handler() #translate languages self.ui.controller.translate(just_me=False, not_me=True, reget=True) Plugin.cleanup(self) def cancel_handler(self): """Called when we don't want to perform recovery'""" misc.execute_root('reboot') def handle_exception(self, err): """Handle all exceptions thrown by any part of the application""" self.log(str(err)) self.ui.show_dialog("exception", err) ############################ # RP Builder Worker Thread # ############################ class RPbuilder(Thread): """The recovery partition builder worker thread""" def __init__(self, device, size, rp_type, mem, dual, dual_layout, disk_layout, efi, preseed_config, sizing_thread): self.device = device self.device_size = size self.rp_type = rp_type self.mem = mem self.dual = dual self.dual_layout = dual_layout self.disk_layout = disk_layout self.efi = efi self.preseed_config = preseed_config self.exception = None self.file_size_thread = sizing_thread self.xml_obj = BTOxml() Thread.__init__(self) def build_rp(self, cushion=300): """Copies content to the recovery partition using a parted wrapper. This might be better implemented in python-parted or parted_server/partman, but those would require extra dependencies, and are generally more complex than necessary for what needs to be accomplished here.""" black_pattern = re.compile('casper-rw|casper-uuid') #Things we know ahead of time will cause us to error out if self.disk_layout == 'gpt': if self.dual: raise RuntimeError("Dual boot is not yet supported when configuring the disk as GPT.") elif self.disk_layout == 'msdos': pass else: raise RuntimeError("Unsupported disk layout: %s" % self.disk_layout) #Check if we are booted from same device as target mounted_device = find_boot_device() if self.device in mounted_device: raise RuntimeError("Attempting to install to the same device as booted from.\n\ You will need to clear the contents of the recovery partition\n\ manually to proceed.") #Adjust recovery partition type to something parted will recognize if self.rp_type == TYPE_NTFS or \ self.rp_type == TYPE_NTFS_RE: self.rp_type = 'ntfs' elif self.rp_type == TYPE_VFAT or \ self.rp_type == TYPE_VFAT_LBA: self.rp_type = 'fat32' else: raise RuntimeError("Unsupported recovery partition filesystem: %s" % self.rp_type) #Default partition numbers up_part = '' rp_part = '' grub_part = STANDARD_RP_PARTITION #Calculate RP size rp_size = magic.black_tree("size", black_pattern, magic.CDROM_MOUNT) #in mbytes rp_size_mb = (rp_size / 1000000) + cushion # Build new partition table command = ('parted', '-s', self.device, 'mklabel', self.disk_layout) result = misc.execute_root(*command) if result is False: raise RuntimeError("Error creating new partition table %s on %s" % (self.disk_layout, self.device)) #Utility partition files (tgz/zip)# up_size = 33 #Utility partition image (dd)# for fname in magic.UP_FILENAMES: if 'img' in fname and os.path.exists(os.path.join(magic.CDROM_MOUNT, fname)): #in a string up_size = magic.fetch_output(['gzip', '-lq', os.path.join(magic.CDROM_MOUNT, fname)]) #in bytes up_size = float(up_size.split()[1]) #in mbytes up_size = 1 + (up_size / 1000000) self.status("Creating Partitions", 1) if self.disk_layout == 'msdos': up_part = STANDARD_UP_PARTITION rp_part = STANDARD_RP_PARTITION #Create an MBR path = '/usr/share/dell/up/mbr.bin' if os.path.exists(path): pass elif os.path.exists('/usr/lib/syslinux/mbr.bin'): path = '/usr/lib/syslinux/mbr.bin' else: raise RuntimeError("Missing both DRMK and syslinux MBR") with open(path, 'rb') as mbr: with misc.raised_privileges(): with open(self.device, 'wb') as out: out.write(mbr.read(440)) #Build UP command = ('parted', '-a', 'optimal', '-s', self.device, 'mkpartfs', 'primary', 'fat16', '1', str(up_size)) result = misc.execute_root(*command) if result is False: raise RuntimeError("Error creating new %s mb utility partition on %s" % (up_size, self.device)) with misc.raised_privileges(): #parted marks it as w95 fat16 (LBA). It *needs* to be type 'de' data = 't\nde\n\nw\n' magic.fetch_output(['fdisk', self.device], data) #build the bootsector of the partition magic.write_up_bootsector(self.device, up_part) #Build RP command = ('parted', '-a', 'optimal', '-s', self.device, 'mkpart', 'primary', self.rp_type, str(up_size), str(up_size + rp_size_mb)) result = misc.execute_root(*command) if result is False: raise RuntimeError("Error creating new %s mb recovery partition on %s" % (rp_size_mb, self.device)) #Set RP active (bootable) command = ('parted', '-s', self.device, 'set', rp_part, 'boot', 'on') result = misc.execute_root(*command) if result is False: raise RuntimeError("Error setting recovery partition active %s" % (self.device)) #Dual boot creates more partitions if self.dual: my_os_part = 5120 #mb other_os_part_end = (int(self.device_size) / 1000000) - my_os_part commands = [('parted', '-a', 'minimal', '-s', self.device, 'mkpart', 'primary', 'ntfs', str(up_size + rp_size_mb), str(other_os_part_end)), ('mkfs.ntfs' , '-f', '-L', 'OS', self.device + '3')] if self.dual_layout == 'primary': commands.append(('parted', '-a', 'minimal', '-s', self.device, 'mkpart', 'primary', 'fat32', str(other_os_part_end), str(other_os_part_end + my_os_part))) commands.append(('mkfs.msdos', '-n', 'ubuntu' , self.device + '4')) #Grub needs to be on the 4th partition to kick off the ubuntu install grub_part = '4' else: grub_part = '1' for command in commands: result = misc.execute_root(*command) if result is False: raise RuntimeError("Error building dual boot partitions") #GPT Layout elif self.disk_layout == 'gpt': #default partition numbers up_part = EFI_UP_PARTITION rp_part = EFI_RP_PARTITION #In GPT we have a UP, but also a BIOS grub partition if self.efi: grub_size = 50 commands = [('parted', '-a', 'minimal', '-s', self.device, 'mkpartfs', 'primary', 'fat16', '0', str(grub_size)), ('parted', '-s', self.device, 'name', '1', "'EFI System Partition'"), ('parted', '-s', self.device, 'set', '1', 'boot', 'on')] else: grub_size = 1.5 commands = [('parted', '-a', 'minimal', '-s', self.device, 'mkpart', 'biosboot', '0', str(grub_size)), ('parted', '-s', self.device, 'set', '1', 'bios_grub', 'on')] for command in commands: result = misc.execute_root(*command) if result is False: if self.efi: raise RuntimeError("Error creating new %s mb EFI boot partition on %s" % (grub_size, self.device)) else: raise RuntimeError("Error creating new %s mb grub partition on %s" % (grub_size, self.device)) up_part = '2' commands = [('parted', '-a', 'optimal', '-s', self.device, 'mkpartfs', 'primary', 'fat16', str(grub_size), str(grub_size+up_size)), ('parted', '-s', self.device, 'set', up_part, 'diag', 'on'), ('parted', '-s', self.device, 'name', up_part, 'DellUtility')] for command in commands: result = misc.execute_root(*command) if result is False: raise RuntimeError("Error creating new %s mb utility partition on %s" % (up_size, self.device)) with misc.raised_privileges(): #build the bootsector of the partition magic.write_up_bootsector(self.device, up_part) #GPT Doesn't support active partitions, so we must install directly to the disk rather than #partition grub_part = '' #Build RP command = ('parted', '-a', 'minimal', '-s', self.device, 'mkpart', self.rp_type, self.rp_type, str(up_size + grub_size), str(up_size + rp_size_mb + grub_size)) result = misc.execute_root(*command) if result is False: raise RuntimeError("Error creating new %s mb recovery partition on %s" % (rp_size_mb, self.device)) #Build RP filesystem self.status("Formatting Partitions", 2) if self.rp_type == 'fat32': command = ('mkfs.msdos', '-n', 'OS', self.device + rp_part) elif self.rp_type == 'ntfs': command = ('mkfs.ntfs', '-f', '-L', 'RECOVERY', self.device + rp_part) result = misc.execute_root(*command) if result is False: raise RuntimeError("Error creating %s filesystem on %s%s" % (self.rp_type, self.device, rp_part)) #Mount RP mount = misc.execute_root('mount', self.device + rp_part, '/mnt') if mount is False: raise RuntimeError("Error mounting %s%s" % (self.device, rp_part)) #Update status and start the file size thread self.file_size_thread.reset_write(rp_size) self.file_size_thread.set_scale_factor(85) self.file_size_thread.set_starting_value(2) self.file_size_thread.start() #Copy RP Files with misc.raised_privileges(): magic.black_tree("copy", black_pattern, magic.CDROM_MOUNT, '/mnt') self.file_size_thread.join() #If dual boot, mount the proper /boot partition first if self.dual: mount = misc.execute_root('mount', self.device + grub_part, '/mnt') if mount is False: raise RuntimeError("Error mounting %s%s" % (self.device, grub_part)) #find uuid of drive with misc.raised_privileges(): blkid = magic.fetch_output(['blkid', self.device + rp_part, "-p", "-o", "udev"]).split('\n') for item in blkid: if item.startswith('ID_FS_UUID'): uuid = item.split('=')[1] break #read in any old seed seed = os.path.join('/mnt', 'preseed', 'dell-recovery.seed') keys = magic.parse_seed(seed) #process the new options for item in self.preseed_config.split(): if '=' in item: key, value = item.split('=') keys[key] = value #write out a dell-recovery.seed configuration file with misc.raised_privileges(): if not os.path.isdir(os.path.join('/mnt', 'preseed')): os.makedirs(os.path.join('/mnt', 'preseed')) magic.write_seed(seed, keys) #Check for a grub.cfg - replace as necessary files = {'recovery_partition.cfg': 'grub.cfg', 'common.cfg' : 'common.cfg'} for item in files: full_path = os.path.join('/mnt', 'factory', files[item]) if os.path.exists(full_path): with misc.raised_privileges(): shutil.move(full_path, full_path + '.old') with misc.raised_privileges(): magic.process_conf_file('/usr/share/dell/grub/' + item, \ full_path, uuid, rp_part) #Allow these to be invoked from a recovery solution launched by the BCD. if self.dual: shutil.copy(full_path, os.path.join('/tmp', files[item])) #If we don't have grub binaries, build them if self.efi: grub_files = [ '/mnt/factory/grubx64.efi'] else: grub_files = [ '/mnt/factory/core.img', '/mnt/factory/boot.img'] for item in grub_files: if not os.path.exists(item): os.environ['TARGET_GRUBCFG'] = '/dev/null' os.environ['ISO_LOADER'] = '/dev/null' build = misc.execute_root('/usr/share/dell/grub/build-binaries.sh') if build is False: raise RuntimeError("Error building grub binaries.") with misc.raised_privileges(): magic.white_tree("copy", re.compile('.'), '/var/lib/dell-recovery', '/mnt/factory') break #set install_in_progress flag with misc.raised_privileges(): magic.fetch_output(['grub-editenv', '/mnt/factory/grubenv', 'set', 'install_in_progress=1']) #Install grub self.status("Installing GRUB", 88) if self.efi: #Secure boot? secure_boot = False if os.path.exists('/sys/firmware/efi/vars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c/data'): with misc.raised_privileges(): with open('/sys/firmware/efi/vars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c/data', 'r') as rfd: output = rfd.read() if output: secure_boot = bool(ord(output)) #secure boot on then we need to use that bootloader if secure_boot: grub_files = ['/cdrom/efi/boot/bootx64.efi', '/cdrom/efi/boot/grubx64.efi'] #Mount ESP if not os.path.exists('/mnt/efi'): with misc.raised_privileges(): os.makedirs('/mnt/efi') mount = misc.execute_root('mount', self.device + EFI_ESP_PARTITION, '/mnt/efi') if mount is False: raise RuntimeError("Error mounting %s%s" % (self.device, EFI_ESP_PARTITION)) #find old entries and prep directory direct_path = '/mnt/efi' + '/efi/ubuntu' with misc.raised_privileges(): os.makedirs(direct_path) #copy boot loader for item in grub_files: if not os.path.exists(item): raise RuntimeError("Error, %s doesn't exist." % item) shutil.copy(item, direct_path) #find old entries bootmgr_output = magic.fetch_output(['efibootmgr']).split('\n') #delete old entries for line in bootmgr_output: if line.startswith('Boot') and 'ubuntu' in line: bootnum = line.split('Boot')[1].replace('*', '').split()[0] bootmgr = misc.execute_root('efibootmgr', '-q', '-b', bootnum, '-B') if bootmgr is False: raise RuntimeError("Error removing old EFI boot manager entries") #rename to shimx64.efi so that it gets overwritten later if secure_boot: target = 'shimx64.efi' with misc.raised_privileges(): os.rename(os.path.join(direct_path,'bootx64.efi'), '/mnt/efi/efi/ubuntu/%s' % target) else: target = 'grubx64.efi' #create new boot entry bootmgr = misc.execute_root('efibootmgr', '-q', '-c', '-d', self.device, '-p', EFI_ESP_PARTITION, '-w', '-L', 'ubuntu', '-l', r'\\EFI\ubuntu\\%s' % target) if bootmgr is False: raise RuntimeError("Error creating EFI boot manager entry.") #clean up ESP mount misc.execute_root('umount', '/mnt/efi') else: grub = misc.execute_root('grub-bios-setup', '-d', '/mnt/factory', self.device) if grub is False: raise RuntimeError("Error installing grub to %s" % (self.device)) #dual boot needs primary #4 unmounted if self.dual: misc.execute_root('umount', '/mnt') self.status("Building G2LDR", 90) #build g2ldr magic.create_g2ldr('/', '/mnt', '') if not os.path.isdir(os.path.join('/mnt', 'factory')): os.makedirs(os.path.join('/mnt', 'factory')) for item in files: shutil.copy(os.path.join('/tmp', files[item]), \ os.path.join('/mnt', 'factory', files[item])) #update bto.xml path = os.path.join(magic.CDROM_MOUNT, 'bto.xml') if os.path.exists(path): self.xml_obj.load_bto_xml(path) bto_version = self.xml_obj.fetch_node_contents('iso') bto_date = self.xml_obj.fetch_node_contents('date') with misc.raised_privileges(): dr_version = magic.check_version('dell-recovery') ubi_version = magic.check_version('ubiquity') self.xml_obj.replace_node_contents('bootstrap', dr_version) self.xml_obj.replace_node_contents('ubiquity' , ubi_version) if os.path.exists('/var/log/syslog'): with open('/var/log/syslog', 'rb') as rfd: self.xml_obj.replace_node_contents('syslog', rfd.read()) if os.path.exists('/var/log/installer/debug'): with open('/var/log/installer/debug', 'rb') as rfd: self.xml_obj.replace_node_contents('debug', rfd.read()) if not bto_version: self.xml_obj.replace_node_contents('iso', '[native]') if not bto_date: with open(os.path.join(magic.CDROM_MOUNT, '.disk', 'info')) as rfd: line = rfd.readline().strip() date = line.split()[len(line.split())-1] self.xml_obj.replace_node_contents('date', date) self.xml_obj.write_xml('/mnt/bto.xml') misc.execute_root('umount', '/mnt') for count in range(100,0,-10): self.status("Restarting in %d seconds." % int(count/10), count) time.sleep(1) def exit(self): """Function to request the builder thread to close""" pass def status(self, info, percent): """Stub function for passing data back up""" pass def run(self): """Start the RP builder thread""" try: self.build_rp() except Exception as err: self.exception = err self.exit() #################### # Helper Functions # #################### def find_boot_device(): """Finds the device we're booted from'""" with open('/proc/mounts', 'r') as mounts: for line in mounts.readlines(): if magic.ISO_MOUNT in line: mounted_device = line.split()[0] break if magic.CDROM_MOUNT in line: found = line.split()[0] if not 'loop' in found: mounted_device = line.split()[0] break return mounted_device def reboot_machine(objpath): """Reboots the machine""" reboot_cmd = '/sbin/reboot' reboot = misc.execute_root(reboot_cmd) if reboot is False: raise RuntimeError("Reboot failed from %s" % str(objpath)) def find_item_iterator(combobox, value, column = 0): """Searches a combobox for a value and returns the iterator that matches""" model = combobox.get_model() iterator = model.get_iter_first() while iterator is not None: if value == model.get_value(iterator, column): break iterator = model.iter_next(iterator) return iterator def find_n_set_iterator(combobox, value, column = 0): """Searches a combobox for a value, and sets the iterator to that value if it's found""" iterator = find_item_iterator(combobox, value, column) if iterator is not None: combobox.set_active_iter(iterator) ########################################### # Commands Processed During Install class # ########################################### class Install(InstallPlugin): """The install time dell-bootstrap ubiquity plugin""" def __init__(self, frontend, db=None, ui=None): self.progress = None self.target = None InstallPlugin.__init__(self, frontend, db, ui) def remove_ricoh_mmc(self): '''Removes the ricoh_mmc kernel module which is known to cause problems with MDIAGS''' lsmod = magic.fetch_output('lsmod').split('\n') for line in lsmod: if line.startswith('ricoh_mmc'): misc.execute('rmmod', line.split()[0]) def enable_oem_config(self): '''Enables OEM config on the target''' oem_dir = os.path.join(self.target, 'var/lib/oem-config') if not os.path.exists(oem_dir): os.makedirs(oem_dir) with open(os.path.join(oem_dir, 'run'), 'w'): pass def propagate_kernel_parameters(self): '''Copies in kernel command line parameters that were needed during installation''' extra = magic.find_extra_kernel_options() new = '' for item in extra.split(): if not 'debian-installer/' in item and \ not 'console-setup/' in item and \ not 'locale=' in item and \ not 'BOOT_IMAGE=' in item and \ not 'iso-scan/' in item and \ not 'ubiquity' in item: new += '%s ' % item extra = new.strip() grubf = os.path.join(self.target, 'etc/default/grub') if extra and os.path.exists(grubf): #read/write new grub with open(grubf, 'r') as rfd: default_grub = rfd.readlines() with open(grubf, 'w') as wfd: for line in default_grub: if 'GRUB_CMDLINE_LINUX_DEFAULT' in line: line = line.replace('GRUB_CMDLINE_LINUX_DEFAULT="', \ 'GRUB_CMDLINE_LINUX_DEFAULT="%s ' % extra) wfd.write(line) from ubiquity import install_misc install_misc.chrex(self.target, 'update-grub') def remove_unwanted_drivers(self): '''Removes drivers that were preseeded to not used for postinstall''' drivers = '' try: drivers = self.progress.get(DRIVER_INSTALL_QUESTION).split(',') except debconf.DebconfError: pass if len(drivers) > 0: for driver in drivers: if driver: with open (os.path.join(self.target, 'usr/share/jockey/modaliases/', driver), 'w') as wfd: wfd.write('reset %s\n' % driver) def g2ldr(self): '''Builds a grub2 based loader to allow booting a logical partition''' #Mount the disk if os.path.exists(magic.ISO_MOUNT): mount = magic.ISO_MOUNT else: mount = magic.CDROM_MOUNT misc.execute_root('mount', '-o', 'remount,rw', magic.CDROM_MOUNT) magic.create_g2ldr(self.target, mount, self.target) #Don't re-run installation if os.path.exists(os.path.join(mount, 'grub', 'grub.cfg')): os.unlink(os.path.join(mount, 'grub', 'grub.cfg')) def wake_network(self): """Wakes the network back up""" bus = dbus.SystemBus() dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) try: backend_iface = dbus.Interface(bus.get_object(magic.DBUS_BUS_NAME, '/RecoveryMedia'), magic.DBUS_INTERFACE_NAME) backend_iface.force_network(True) backend_iface.request_exit() except Exception: pass def install(self, target, progress, *args, **kwargs): '''This is highly dependent upon being called AFTER configure_apt in install. If that is ever converted into a plugin, we'll have some major problems!''' genuine = magic.check_vendor() if not genuine: raise RuntimeError("This recovery media requires Dell Hardware.") self.target = target self.progress = progress utility_part, rec_part = magic.find_partitions() from ubiquity import install_misc to_install = [] to_remove = [] #Determine if we are doing OOBE try: if progress.get('oem-config/enable') == 'true': self.enable_oem_config() except debconf.DebconfError: pass #The last thing to do is set an active partition #This happens at the end of success command active = '' try: active = progress.get(ACTIVE_PARTITION_QUESTION) except debconf.DebconfError: pass try: layout = progress.get(DISK_LAYOUT_QUESTION) except debconf.DebconfError: layout = 'msdos' if active.isdigit(): disk = progress.get('partman-auto/disk') with open('/tmp/set_bootable', 'w') as wfd: #If we have an MBR, if layout == 'msdos': #we use the active partition bit in it wfd.write('sfdisk -A%s %s\n' % (active, disk)) #in factory process if we backed up an MBR, that would have already #been restored. if not os.path.exists(os.path.join(magic.CDROM_MOUNT, 'factory', 'mbr.bin')): #test the md5 of the MBR to match DRMK or syslinux #if they don't match, rewrite MBR with misc.raised_privileges(): with open(disk, 'rb') as rfd: disk_mbr = rfd.read(440) path = '/usr/share/dell/up/mbr.bin' if not os.path.exists(path): path = '/usr/lib/syslinux/mbr.bin' with open(path, 'rb') as rfd: file_mbr = rfd.read(440) if hashlib.md5(file_mbr).hexdigest() != hashlib.md5(disk_mbr).hexdigest(): if not os.path.exists(path): raise RuntimeError("Missing DRMK and syslinux MBR") wfd.write('dd if=%s of=%s bs=440 count=1\n' % (path, disk)) #If we have GPT, we need to go down other paths elif layout == 'gpt': #If we're booted in EFI mode, then the OS has already set #the correct Bootnum active if os.path.isdir('/proc/efi') or os.path.isdir('/sys/firmware/efi'): pass #If we're not booted to EFI mode, but using GPT, else: #See https://bugs.launchpad.net/ubuntu/+source/partman-partitioning/+bug/592813 #for why we need to have this workaround in the first place result = misc.execute_root('parted', '-s', disk, 'set', active, 'bios_grub', 'on') if result is False: raise RuntimeError("Error working around bug 592813.") wfd.write('grub-install --no-floppy %s\n' % disk) os.chmod('/tmp/set_bootable', 0o755) #if we are loop mounted, make sure the chroot knows it too if os.path.isdir(magic.ISO_MOUNT): os.makedirs(os.path.join(self.target, magic.ISO_MOUNT.lstrip('/'))) misc.execute_root('mount', '--bind', magic.ISO_MOUNT, os.path.join(self.target, magic.ISO_MOUNT.lstrip('/'))) #Fixup pool to only accept stuff on /cdrom or /isodevice # - This is reverted during SUCCESS_SCRIPT # - Might be in livefs already, but we always copy in in case there was an udpate pool_cmd = '/usr/share/dell/scripts/pool.sh' shutil.copy(pool_cmd, os.path.join(self.target, 'tmp', os.path.basename(pool_cmd))) install_misc.chrex(self.target, os.path.join('/tmp', os.path.basename(pool_cmd))) #Stuff that is installed on all configs without fish scripts to_install += magic.mark_unconditional_debs() #Query Dual boot or not try: dual = misc.create_bool(progress.get(DUAL_BOOT_QUESTION)) except debconf.DebconfError: dual = False if dual: #we don't want EULA or dell-recovery in dual mode for package in ['dell-eula', 'dell-recovery']: try: to_install.remove(package) to_remove.append(package) except ValueError: continue #build grub2 loader for logical partitions when necessary try: layout = progress.get(DUAL_BOOT_LAYOUT_QUESTION) if layout == 'logical': self.g2ldr() except debconf.DebconfError: raise RuntimeError("Error determining dual boot layout.") #install dell-recovery in non dual mode only if there is an RP elif rec_part: to_install.append('dell-recovery') to_install.append('dell-eula') #block os-prober in grub-installer os.rename('/usr/bin/os-prober', '/usr/bin/os-prober.real') #don't allow OS prober to probe other drives in single OS install with open(os.path.join(self.target, 'etc/default/grub'), 'r') as rfd: default_grub = rfd.readlines() with open(os.path.join(self.target, 'etc/default/grub'), 'w') as wfd: found = False for line in default_grub: if line.startswith("GRUB_DISABLE_OS_PROBER="): line = "GRUB_DISABLE_OS_PROBER=true\n" found = True wfd.write(line) if not found: wfd.write("GRUB_DISABLE_OS_PROBER=true\n") #for tos try: destination = progress.get('dell-recovery/destination') except debconf.DebconfError: destination = '' fname = os.path.join(self.target, 'etc', 'default', 'dell-eula') if destination and not os.path.exists(fname): with open(fname, 'w') as wfd: wfd.write('WARRANTY=%s\n' % destination) to_install += magic.mark_upgrades() self.remove_unwanted_drivers() self.remove_ricoh_mmc() self.propagate_kernel_parameters() self.wake_network() install_misc.record_installed(to_install) install_misc.record_removed(to_remove) return InstallPlugin.install(self, target, progress, *args, **kwargs) dell-recovery/ubiquity/stepDellBootstrap.ui0000664000000000000000000013563312111201306016404 0ustar 1 2 3 4 False 5 Advanced Options False True center dialog False True False 2 True False end gtk-close False True True True False True False False 1 False True end 0 True False 0 <b>Runtime Details</b> True False False 1 True False 0 version True True 2 True False 0 mount True True 3 True False 0 memory True True 4 True False 0 <b>Advanced Options</b> True False False 5 True False 7 2 10 10 True False proprietary_liststore 0 1 2 1 2 GTK_FILL True False Disable Proprietary Drivers 1 2 True False Configure for Dualboot 2 3 True False rp_filesystem_liststore 1 1 2 4 5 GTK_FILL True False Recovery Partition Filesystem 4 5 True False Swap Partition Behavior 5 6 True False swap_liststore 0 1 2 5 6 GTK_FILL True False Disk Layout True False disk_layout_liststore 0 1 2 GTK_FILL True False dual_liststore 1 1 2 2 3 GTK_FILL True False Dual Boot Layout 3 4 True False False dual_layout_liststore 0 1 2 3 4 GTK_FILL True False Active Partition After Install 6 7 True False active_part_liststore 0 1 2 6 7 GTK_FILL True True 6 button1 msdos gpt primary Primary Partition logical Logical Partition true Enabled false Disabled False 5 center-always dialog True False error ok Exception Encountered True False 2 True False end False True end 0 True False 0 0 gnome-session-reboot True False 0 0 gnome-session-reboot fglrx_updates nvidia_current_updates fglrx_updates,nvidia_current_updates 0c vfat 07 ntfs True False 6 50 True False True False GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK True False GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK 128 dell-dvd True True 0 True False True False 0 0 This Dell Recovery Media can be used to restore the original factory software. True True False False 0 True False 0 0 <b>It is recommended you back up all important data before running this tool.</b> True True False False 1 True True 11 1 False False 0 600 True False 20 False True False 48 object-rotate-right False False 0 True False 5 Restore Linux OS partitions. False True True False False True automated_recovery False False 0 True False 25 600 True False 0 0 This will rebuild all OS and swap partitions to factory defaults. True True False False 1 True False 25 600 True False 0 0 <b>WARNING: </b>All personal files and changes will be lost. True True False False 2 True True 1 True False 0 True False True False 48 applications-utilities False False 0 True False 5 Restore entire hard drive. False True True False False True True False False 0 True False 0 0 25 True False False hard_drive_liststore 2 False False 1 True False 25 600 True False 0 0 This will rebuild all utility, recovery, and OS partitions. True True False False 2 True False 25 600 True False 0 0 <b>WARNING: </b>All personal files and changes will be lost. True True False False 3 True True 1 True False 1 True False True False 48 distributor-logo False False 0 True False 5 Restore only Linux OS partition. False True True False False 0.49000000953674316 True automated_recovery False False 0 True False 25 600 True False 0 0 This option allows you to resize any existing partitions. True True False False 1 True True 1 True False 2 Internal Radio Button False True False False True automated_recovery True False 3 False True False 48 emblem-important False True 0 True False 0.05000000074505806 <b>ERROR:</b> This recovery media only functions on Dell or Alienware systems. True True True True 1 True False 4 False 5 True False 0 0 <b>Building Recovery Partition</b> True True False False 0 True False 0 0 <b>NOTE:</b> Please be patient, this may take a while. True True False False 1 True False 0 0 Your system will restart automatically several times. True True True True 2 True False True True 3 True False 5 True True 1 dynamic true false dell-recovery/ubiquity/dell-bootstrap0000775000000000000000000000014211751021273015252 0ustar #!/bin/sh -e . /usr/share/debconf/confmodule db_input high dell-recovery/recovery_type || true dell-recovery/ubiquity/dell-recovery.py0000664000000000000000000002704212311717746015541 0ustar #!/usr/bin/python3 # -*- coding: utf-8 -*- # # «dell-recovery» - OEM Config plugin for Dell-Recovery Media # # Copyright (C) 2010-2014, Dell Inc. # # Author: # - Mario Limonciello # # This 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 application; if not, write to the Free Software Foundation, Inc., 51 # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ################################################################################## from ubiquity.plugin import PluginUI, InstallPlugin, Plugin import pwd import subprocess import os import Dell.recovery_common as magic import dbus import syslog NAME = 'dell-recovery' AFTER = 'usersetup' BEFORE = None WEIGHT = 12 ROTATIONAL_CHAR = ['\\', '|', '/', '-'] #Gtk widgets class PageGtk(PluginUI): """GTK frontend for the dell-recovery oem-config plugin""" plugin_title = 'ubiquity/text/recovery_heading_label' def __init__(self, controller, *args, **kwargs): self.controller = controller upart, rpart = magic.find_partitions() dvd, usb = magic.find_burners() oem = 'UBIQUITY_OEM_USER_CONFIG' in os.environ self.genuine = magic.check_vendor() if oem and (dvd or usb) and (rpart or not self.genuine): try: from gi.repository import Gtk builder = Gtk.Builder() builder.add_from_file('/usr/share/ubiquity/gtk/stepRecoveryMedia.ui') builder.connect_signals(self) self.controller.add_builder(builder) self.plugin_widgets = builder.get_object('stepRecoveryMedia') self.usb_media = builder.get_object('save_to_usb') self.dvd_media = builder.get_object('save_to_dvd') self.none_media = builder.get_object('save_to_none') self.grub_menu_98 = builder.get_object('98_grub_menu') self.grub_menu_99 = builder.get_object('99_grub_menu') if not dvd: builder.get_object('dvd_box').hide() if not usb: builder.get_object('usb_box').hide() if not self.genuine: builder.get_object('usb_box').hide() builder.get_object('dvd_box').hide() builder.get_object('none_box').hide() builder.get_object('genuine_box').show() except Exception as err: syslog.syslog('Could not create Dell Recovery page: %s', err) self.plugin_widgets = None else: if not oem: pass elif not rpart: syslog.syslog('%s: partition problems with up[%s] and rp[%s]' % (NAME, upart, rpart)) self.plugin_widgets = None PluginUI.__init__(self, controller, *args, **kwargs) def plugin_get_current_page(self): """Called when ubiquity tries to realize this page.""" if not self.genuine: self.controller.allow_go_forward(False) return self.plugin_widgets def get_grub_line(self, grub_line): if grub_line == '98_grub_menu': obj = self.grub_menu_98 else: obj = self.grub_menu_99 return obj.get_text() def get_type(self): """Returns the type of recovery to do from GUI""" if self.usb_media.get_active(): return "usb" elif self.dvd_media.get_active(): return "dvd" else: return "none" def set_type(self, value): """Sets the type of recovery to do in GUI""" if value == "usb": self.usb_media.set_active(True) elif value == "dvd": self.dvd_media.set_active(True) else: self.none_media.set_active(True) class Page(Plugin): """Debconf driven page for the dell-recovery oem-config plugin""" def prepare(self, unfiltered=False): """Prepares the debconf plugin""" destination = self.db.get('dell-recovery/destination') self.ui.set_type(destination) return Plugin.prepare(self, unfiltered=unfiltered) def ok_handler(self): """Handler ran when OK is pressed""" destination = self.ui.get_type() self.preseed('dell-recovery/destination', destination) for item in ['98', '99']: self.preseed('ubiquity/text/%s_grub_menu' % item, self.ui.get_grub_line('%s_grub_menu' % item)) Plugin.ok_handler(self) class Install(InstallPlugin): """The dell-recovery media creator install time ubiquity plugin""" def __init__(self, frontend, db=None, ui=None): self.index = 0 self.progress = None InstallPlugin.__init__(self, frontend, db, ui) def log(self, error): """Outputs a debugging string to /var/log/installer/debug""" self.debug("%s: %s" % (NAME, error)) def _update_progress_gui(self, progress_text, progress_percent): """Function called by the backend to update the progress in frontend""" self.progress.substitute('dell-recovery/build_progress', 'MESSAGE', \ progress_text) if float(progress_percent) < 0: if self.index >= len(ROTATIONAL_CHAR): self.index = 0 progress_percent = ROTATIONAL_CHAR[self.index] self.index += 1 else: progress_percent += "%" self.progress.substitute('dell-recovery/build_progress', 'PERCENT', \ progress_percent) self.progress.info('dell-recovery/build_progress') def install(self, target, progress, *args, **kwargs): """Perform actual install time activities for oem-config""" if not 'UBIQUITY_OEM_USER_CONFIG' in os.environ: return delayed_burn = False env = os.environ lang = progress.get('debian-installer/locale') env['LANG'] = lang #can also expect that this was mounted at /cdrom during OOBE rpart = magic.find_factory_partition_stats('rp') if rpart and os.path.exists('/cdrom/.disk/info'): rec_text = progress.get('ubiquity/text/99_grub_menu') magic.process_conf_file(original = '/usr/share/dell/grub/99_dell_recovery', \ new = '/etc/grub.d/99_dell_recovery', \ uuid = str(rpart["uuid"]), \ number = str(rpart["number"]), \ recovery_text = rec_text) os.chmod('/etc/grub.d/99_dell_recovery', 0o755) #if we have a UP and not in EFI mode, we can do BIOS flashing via DOS rec_text = progress.get('ubiquity/text/98_grub_menu') magic.create_up_boot_entry(rec_text) subprocess.call(['update-grub'],env=env) dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) self.progress = progress rec_type = progress.get('dell-recovery/destination') if rec_type != "none": dvd, usb = magic.find_burners() upart, rpart = magic.find_partitions() self.index = 0 #build all the user's home directories a little earlier than normal user = progress.get('passwd/username') subprocess.call(['su', user, '-c', 'xdg-user-dirs-update']) directory = magic.fetch_output(['su', user, '-c', '/usr/bin/xdg-user-dir DOWNLOAD']).strip() fname = os.path.join(directory, 'factory_image.iso') try: bus = dbus.SystemBus() dbus_iface = dbus.Interface(bus.get_object(magic.DBUS_BUS_NAME, '/RecoveryMedia'), magic.DBUS_INTERFACE_NAME) except Exception as err: self.log('install function exception while creating dbus backend: %s' % str(err)) return progress.info('dell-recovery/build_start') #Determine internal version number of image (version, date) = dbus_iface.query_bto_version(rpart) version = magic.increment_bto_version(version) self.log("Generating recovery media from %s : %s" % (version, date)) #Build image try: magic.dbus_sync_call_signal_wrapper(dbus_iface, 'create_ubuntu', {'report_progress':self._update_progress_gui}, upart, rpart, version, fname) uid = pwd.getpwnam(user).pw_uid gid = pwd.getpwnam(user).pw_gid os.chown(fname, uid, gid) except dbus.DBusException as err: self.log('install function exception while calling backend: %s' % str(err)) return #Close backend try: dbus_iface.request_exit() except dbus.DBusException as err: if hasattr(err, '_dbus_error_name') and err._dbus_error_name == \ 'org.freedesktop.DBus.Error.ServiceUnknown': pass else: self.log("Received %s when closing recovery-media-backend" \ % str(err)) return if rec_type: #Mark burning tool to launch on first login if delayed_burn: directory = '/home/%s/.config/autostart' % user if not os.path.exists(directory): os.makedirs(directory) os.chown('/home/%s/.config' % user, uid, gid) os.chown(directory, uid, gid) fname = os.path.join(directory, 'dell-recovery.desktop') with open('/usr/share/applications/dell-recovery-media.desktop') as rfd: with open(fname, 'w') as wfd: for line in rfd.readlines(): if line.startswith('Exec='): line = line.strip() + " --burn --media %s\n" % rec_type wfd.write(line) os.chown(fname, uid, gid) #Launch burning tool else: if rec_type == "dvd": cmd = ['dbus-launch'] + dvd + [fname] else: cmd = ['dbus-launch'] + usb + [fname] if 'DBUS_SESSION_BUS_ADDRESS' in os.environ: os.environ.pop('DBUS_SESSION_BUS_ADDRESS') progress.info('dell-recovery/burning') subprocess.call(cmd) return InstallPlugin.install(self, target, progress, *args, **kwargs) dell-recovery/ubiquity/stepRecoveryMedia.ui0000664000000000000000000004352312311717746016406 0ustar True False 6 True False True False 96 dell-dvd True True 0 True False True False 0 0 Dell Recovery Media can be used to restore your system to the same state as when it was first shipped to you. True True False False 0 True False 0 0 <b>It is highly recommended that you generate media and store it in a safe place.</b> True True False False 1 False False 11 1 True True 0 False 0 0 Restore #OS# to factory state True True True True 1 False 0 0 Flash BIOS image from DOS True True True True 2 600 True False 15 True False True False 48 gnome-dev-removable-usb False True 0 True False 3 Save recovery media to an external USB flash drive False True True False False 0 True True True True 0 True False 0 25 True False 0 0 <b>Note:</b> This requires a USB flash drive with approximately 2GB free. True True True True 1 True True 1 True True 0 True False True False 48 gnome-dev-disc-dvdr False True 0 True False 3 Save recovery media to DVD False True True False False 0 True save_to_usb True True 0 True False 0 25 True False 0 0 <b>Note:</b> This requires writable DVD media. True True True True 1 True True 1 True True 1 True False True False 48 gtk-delete False True 0 True False 3 Don't generate recovery media at this time False True True False False 0 True save_to_usb True True 0 True False 0 25 True False 0 0 Recovery Media can be generated later by choosing the tool from the System menu. True True True True 1 True True 1 True True 2 False True False 48 emblem-important False True 0 True False 0 0 <b>ERROR:</b> This media is only valid on Dell systems. True True True True 1 True True 3 False False 3