added format drive option
authorOliver Maurhart <oliver.maurhart@ait.ac.at>
Wed, 25 Jun 2014 21:49:09 +0200
changeset 205b16c57614eee
parent 202 009ae01fd575
child 206 be839e4a1370
added format drive option
OpenSecurity/bin/ui/FormatDriveDialog.ui
OpenSecurity/bin/ui/Makefile
OpenSecurity/bin/ui/format_drive_dialog.py
OpenSecurity/bin/ui/gfx/emblem-important.png
OpenSecurity/bin/ui/opensecurity.qrc
OpenSecurity/bin/ui/opensecurity_rc.py
OpenSecurity/bin/ui/ui_FormatDriveDialog.py
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/OpenSecurity/bin/ui/FormatDriveDialog.ui	Wed Jun 25 21:49:09 2014 +0200
     1.3 @@ -0,0 +1,177 @@
     1.4 +<?xml version="1.0" encoding="UTF-8"?>
     1.5 +<ui version="4.0">
     1.6 + <class>FormatDriveDialog</class>
     1.7 + <widget class="QDialog" name="FormatDriveDialog">
     1.8 +  <property name="geometry">
     1.9 +   <rect>
    1.10 +    <x>0</x>
    1.11 +    <y>0</y>
    1.12 +    <width>420</width>
    1.13 +    <height>120</height>
    1.14 +   </rect>
    1.15 +  </property>
    1.16 +  <property name="sizePolicy">
    1.17 +   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
    1.18 +    <horstretch>0</horstretch>
    1.19 +    <verstretch>0</verstretch>
    1.20 +   </sizepolicy>
    1.21 +  </property>
    1.22 +  <property name="windowTitle">
    1.23 +   <string>OpenSecuirty Format Drive</string>
    1.24 +  </property>
    1.25 +  <property name="windowIcon">
    1.26 +   <iconset resource="opensecurity.qrc">
    1.27 +    <normaloff>:/opensecurity/gfx/opensecurity_icon_64.png</normaloff>:/opensecurity/gfx/opensecurity_icon_64.png</iconset>
    1.28 +  </property>
    1.29 +  <layout class="QVBoxLayout" name="lyMain">
    1.30 +   <item>
    1.31 +    <layout class="QHBoxLayout" name="lyContent">
    1.32 +     <property name="spacing">
    1.33 +      <number>16</number>
    1.34 +     </property>
    1.35 +     <item>
    1.36 +      <widget class="QLabel" name="lblIcon">
    1.37 +       <property name="text">
    1.38 +        <string/>
    1.39 +       </property>
    1.40 +       <property name="pixmap">
    1.41 +        <pixmap resource="opensecurity.qrc">:/opensecurity/gfx/emblem-important.png</pixmap>
    1.42 +       </property>
    1.43 +       <property name="alignment">
    1.44 +        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
    1.45 +       </property>
    1.46 +      </widget>
    1.47 +     </item>
    1.48 +     <item>
    1.49 +      <layout class="QGridLayout" name="lyCredentials" rowstretch="0,0,0,0" columnstretch="0,0,0">
    1.50 +       <property name="spacing">
    1.51 +        <number>4</number>
    1.52 +       </property>
    1.53 +       <item row="0" column="0" colspan="2">
    1.54 +        <widget class="QLabel" name="lblText">
    1.55 +         <property name="text">
    1.56 +          <string>&lt;b&gt;Attention!&lt;/b&gt;TextLabel</string>
    1.57 +         </property>
    1.58 +         <property name="textFormat">
    1.59 +          <enum>Qt::RichText</enum>
    1.60 +         </property>
    1.61 +        </widget>
    1.62 +       </item>
    1.63 +       <item row="3" column="0" colspan="2">
    1.64 +        <widget class="QWidget" name="wdCredentialsSpacer" native="true"/>
    1.65 +       </item>
    1.66 +       <item row="1" column="0">
    1.67 +        <widget class="QLabel" name="lblPassword">
    1.68 +         <property name="text">
    1.69 +          <string>&amp;Password:</string>
    1.70 +         </property>
    1.71 +         <property name="buddy">
    1.72 +          <cstring>edtPassword</cstring>
    1.73 +         </property>
    1.74 +        </widget>
    1.75 +       </item>
    1.76 +       <item row="2" column="0">
    1.77 +        <widget class="QLabel" name="lblKeyfile">
    1.78 +         <property name="text">
    1.79 +          <string>&amp;Keyfile:</string>
    1.80 +         </property>
    1.81 +         <property name="buddy">
    1.82 +          <cstring>edtKeyfile</cstring>
    1.83 +         </property>
    1.84 +        </widget>
    1.85 +       </item>
    1.86 +       <item row="2" column="1">
    1.87 +        <widget class="QLineEdit" name="edtKeyfile"/>
    1.88 +       </item>
    1.89 +       <item row="2" column="2">
    1.90 +        <widget class="QToolButton" name="btnBrowse">
    1.91 +         <property name="text">
    1.92 +          <string>...</string>
    1.93 +         </property>
    1.94 +        </widget>
    1.95 +       </item>
    1.96 +       <item row="1" column="1" colspan="2">
    1.97 +        <widget class="QLineEdit" name="edtPassword">
    1.98 +         <property name="echoMode">
    1.99 +          <enum>QLineEdit::Password</enum>
   1.100 +         </property>
   1.101 +        </widget>
   1.102 +       </item>
   1.103 +      </layout>
   1.104 +     </item>
   1.105 +    </layout>
   1.106 +   </item>
   1.107 +   <item>
   1.108 +    <layout class="QHBoxLayout" name="lyButtons">
   1.109 +     <item>
   1.110 +      <spacer name="spButtons">
   1.111 +       <property name="orientation">
   1.112 +        <enum>Qt::Horizontal</enum>
   1.113 +       </property>
   1.114 +       <property name="sizeHint" stdset="0">
   1.115 +        <size>
   1.116 +         <width>40</width>
   1.117 +         <height>20</height>
   1.118 +        </size>
   1.119 +       </property>
   1.120 +      </spacer>
   1.121 +     </item>
   1.122 +     <item>
   1.123 +      <widget class="QPushButton" name="btnAbout">
   1.124 +       <property name="minimumSize">
   1.125 +        <size>
   1.126 +         <width>100</width>
   1.127 +         <height>0</height>
   1.128 +        </size>
   1.129 +       </property>
   1.130 +       <property name="text">
   1.131 +        <string>&amp;About</string>
   1.132 +       </property>
   1.133 +      </widget>
   1.134 +     </item>
   1.135 +     <item>
   1.136 +      <widget class="QPushButton" name="btnCancel">
   1.137 +       <property name="minimumSize">
   1.138 +        <size>
   1.139 +         <width>100</width>
   1.140 +         <height>0</height>
   1.141 +        </size>
   1.142 +       </property>
   1.143 +       <property name="text">
   1.144 +        <string>&amp;Cancel</string>
   1.145 +       </property>
   1.146 +      </widget>
   1.147 +     </item>
   1.148 +     <item>
   1.149 +      <widget class="QPushButton" name="btnOk">
   1.150 +       <property name="minimumSize">
   1.151 +        <size>
   1.152 +         <width>100</width>
   1.153 +         <height>0</height>
   1.154 +        </size>
   1.155 +       </property>
   1.156 +       <property name="text">
   1.157 +        <string>&amp;Ok</string>
   1.158 +       </property>
   1.159 +       <property name="default">
   1.160 +        <bool>true</bool>
   1.161 +       </property>
   1.162 +      </widget>
   1.163 +     </item>
   1.164 +    </layout>
   1.165 +   </item>
   1.166 +  </layout>
   1.167 + </widget>
   1.168 + <tabstops>
   1.169 +  <tabstop>edtPassword</tabstop>
   1.170 +  <tabstop>edtKeyfile</tabstop>
   1.171 +  <tabstop>btnBrowse</tabstop>
   1.172 +  <tabstop>btnAbout</tabstop>
   1.173 +  <tabstop>btnCancel</tabstop>
   1.174 +  <tabstop>btnOk</tabstop>
   1.175 + </tabstops>
   1.176 + <resources>
   1.177 +  <include location="opensecurity.qrc"/>
   1.178 + </resources>
   1.179 + <connections/>
   1.180 +</ui>
     2.1 --- a/OpenSecurity/bin/ui/Makefile	Wed Jun 25 20:42:12 2014 +0200
     2.2 +++ b/OpenSecurity/bin/ui/Makefile	Wed Jun 25 21:49:09 2014 +0200
     2.3 @@ -4,6 +4,7 @@
     2.4  	ui_AboutDialog.py \
     2.5  	ui_ConfigureDialog.py \
     2.6  	ui_CredentialsDialog.py \
     2.7 +	ui_FormatDriveDialog.py \
     2.8  	ui_LaunchDialog.py \
     2.9  	ui_KeyfileDialog.py \
    2.10  	ui_NotificationDialog.py \
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/OpenSecurity/bin/ui/format_drive_dialog.py	Wed Jun 25 21:49:09 2014 +0200
     3.3 @@ -0,0 +1,132 @@
     3.4 +#!/bin/env python
     3.5 +# -*- coding: utf-8 -*-
     3.6 +
     3.7 +# ------------------------------------------------------------
     3.8 +# keyfile_dialog.pyw
     3.9 +# 
    3.10 +# the user should give us a keyfile
    3.11 +#
    3.12 +# Autor: Oliver Maurhart, <oliver.maurhart@ait.ac.at>
    3.13 +#
    3.14 +# Copyright (C) 2014 AIT Austrian Institute of Technology
    3.15 +# AIT Austrian Institute of Technology GmbH
    3.16 +# Donau-City-Strasse 1 | 1220 Vienna | Austria
    3.17 +# http://www.ait.ac.at
    3.18 +#
    3.19 +# This program is free software; you can redistribute it and/or
    3.20 +# modify it under the terms of the GNU General Public License
    3.21 +# as published by the Free Software Foundation version 2.
    3.22 +# 
    3.23 +# This program is distributed in the hope that it will be useful,
    3.24 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
    3.25 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    3.26 +# GNU General Public License for more details.
    3.27 +# 
    3.28 +# You should have received a copy of the GNU General Public License
    3.29 +# along with this program; if not, write to the Free Software
    3.30 +# Foundation, Inc., 51 Franklin Street, Fifth Floor, 
    3.31 +# Boston, MA  02110-1301, USA.
    3.32 +# ------------------------------------------------------------
    3.33 +
    3.34 +
    3.35 +# ------------------------------------------------------------
    3.36 +# imports
    3.37 +
    3.38 +import base64
    3.39 +import sys
    3.40 +
    3.41 +from PyQt4 import QtCore
    3.42 +from PyQt4 import QtGui
    3.43 +
    3.44 +from ui_KeyfileDialog import Ui_KeyfileDialog 
    3.45 +from about_dialog import AboutDialog
    3.46 +
    3.47 +
    3.48 +# ------------------------------------------------------------
    3.49 +# code
    3.50 +
    3.51 +
    3.52 +class KeyfileDialog(QtGui.QDialog):
    3.53 +
    3.54 +    """A dialog for letting the user pass on a password/keyfile combo"""
    3.55 +
    3.56 +    def __init__(self, user_text = 'Please provide an approbitate password and keyfile to proceed:'):
    3.57 +
    3.58 +        QtGui.QDialog.__init__(self)
    3.59 +
    3.60 +        # setup the user interface
    3.61 +        self.ui = Ui_KeyfileDialog()
    3.62 +        self.ui.setupUi(self)
    3.63 +    
    3.64 +        # local members
    3.65 +        self._about_dialog = AboutDialog()
    3.66 +        self._open_file_dialog = QtGui.QFileDialog(self, 'Open Keyfile', QtCore.QDir.homePath(), 'All Files (*.*);;')
    3.67 +        self._open_file_dialog.setAcceptMode(QtGui.QFileDialog.AcceptOpen)
    3.68 +        self._open_file_dialog.setFileMode(QtGui.QFileDialog.ExistingFile)
    3.69 +
    3.70 +        # connectors
    3.71 +        self.ui.lblText.setText(user_text)
    3.72 +        self.ui.btnAbout.clicked.connect(self.clicked_about)
    3.73 +        self.ui.btnCancel.clicked.connect(self.reject)
    3.74 +        self.ui.btnOk.clicked.connect(self.clicked_ok)
    3.75 +        self.ui.btnBrowse.clicked.connect(self.clicked_browse)
    3.76 +
    3.77 +        # positionate ourself central
    3.78 +        screen = QtGui.QDesktopWidget().screenGeometry()
    3.79 +        size = self.geometry()
    3.80 +        self.move((screen.width() - size.width()) / 2, (screen.height() - size.height()) / 2)
    3.81 + 
    3.82 +
    3.83 +    def clicked_about(self):
    3.84 +
    3.85 +        """About button has been clicked."""
    3.86 +        self._about_dialog.show()
    3.87 +
    3.88 +
    3.89 +    def clicked_browse(self):
    3.90 +
    3.91 +        """Browse button has been clicked."""
    3.92 +        if self._open_file_dialog.exec_() == QtGui.QDialog.Accepted:
    3.93 +            self.ui.edtKeyfile.setText(self._open_file_dialog.selectedFiles()[0])
    3.94 +
    3.95 +
    3.96 +    def clicked_ok(self):
    3.97 +        
    3.98 +        """Ok button has been clicked."""
    3.99 +
   3.100 +        # read the content of the keyfile
   3.101 +        keyfile_content = ''
   3.102 +        try:
   3.103 +            keyfile = open(self.ui.edtKeyfile.text(), 'r')
   3.104 +            keyfile_content = keyfile.read()
   3.105 +        except Exception as e:
   3.106 +            sys.stderr.write('failed to read keyfile content:\n' + str(e) + '\n')
   3.107 +            QtGui.QMessageBox.critical(self, 'Failed to read keyfile', str(e))
   3.108 +            return
   3.109 +
   3.110 +        # turn into Base64
   3.111 +        keyfile_content_base64 = base64.b64encode(keyfile_content)
   3.112 +
   3.113 +        sys.stdout.write('{ ')
   3.114 +        sys.stdout.write('"password": "')
   3.115 +        sys.stdout.write(self.ui.edtPassword.text())
   3.116 +        sys.stdout.write('", ')
   3.117 +        sys.stdout.write('"keyfile": "')
   3.118 +        sys.stdout.write(keyfile_content_base64)
   3.119 +        sys.stdout.write('" ')
   3.120 +        sys.stdout.write('}\n')
   3.121 +        self.accept()
   3.122 +
   3.123 +
   3.124 +    def set_user_text(user_text):
   3.125 +
   3.126 +        """Set a text to explain which password we need."""
   3.127 +        self.ui.lblText.setText(user_text)
   3.128 +
   3.129 +
   3.130 +if __name__ == "__main__":
   3.131 +    a = QtGui.QApplication(sys.argv)
   3.132 +    d = KeyfileDialog()
   3.133 +    d.show()
   3.134 +    sys.exit(a.exec_())     
   3.135 +
     4.1 Binary file OpenSecurity/bin/ui/gfx/emblem-important.png has changed
     5.1 --- a/OpenSecurity/bin/ui/opensecurity.qrc	Wed Jun 25 20:42:12 2014 +0200
     5.2 +++ b/OpenSecurity/bin/ui/opensecurity.qrc	Wed Jun 25 21:49:09 2014 +0200
     5.3 @@ -1,5 +1,6 @@
     5.4  <RCC>
     5.5    <qresource prefix="opensecurity">
     5.6 +    <file>gfx/emblem-important.png</file>
     5.7      <file>gfx/network-workgroup.png</file>
     5.8      <file>gfx/cpu.png</file>
     5.9      <file>gfx/drive-harddisk.png</file>
     6.1 --- a/OpenSecurity/bin/ui/opensecurity_rc.py	Wed Jun 25 20:42:12 2014 +0200
     6.2 +++ b/OpenSecurity/bin/ui/opensecurity_rc.py	Wed Jun 25 21:49:09 2014 +0200
     6.3 @@ -2,7 +2,7 @@
     6.4  
     6.5  # Resource object code
     6.6  #
     6.7 -# Created: Wed Jun 25 20:39:32 2014
     6.8 +# Created: Wed Jun 25 21:46:29 2014
     6.9  #      by: The Resource Compiler for PyQt (Qt v4.8.5)
    6.10  #
    6.11  # WARNING! All changes made in this file will be lost!
    6.12 @@ -6643,6 +6643,341 @@
    6.13  \x46\x72\x12\x00\x41\x8d\x9a\x87\x35\x6a\x6e\x27\x8d\xda\xf3\x34\
    6.14  \x00\xfc\x1f\x01\x0f\xf7\xd0\x25\x2d\x11\x4b\x00\x00\x00\x00\x49\
    6.15  \x45\x4e\x44\xae\x42\x60\x82\
    6.16 +\x00\x00\x14\xc7\
    6.17 +\x89\
    6.18 +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
    6.19 +\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\
    6.20 +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x6e\xb9\x00\x00\x6e\xb9\
    6.21 +\x01\x7b\x67\x90\x7a\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\
    6.22 +\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x14\x39\x49\x44\x41\x54\x78\
    6.23 +\xda\xb5\x5b\x6b\x90\x5c\xc5\x75\x3e\xa7\xef\x9d\x99\x9d\xdd\xd5\
    6.24 +\x63\x77\xd1\x03\x09\x24\xde\x42\x41\x31\x4f\x61\x20\xb6\x2b\x06\
    6.25 +\x4c\xb9\x62\x27\xe6\x47\x20\x0e\x09\x90\x50\x86\x38\x2e\x82\x5d\
    6.26 +\xe5\x98\x54\x05\xf2\x70\x9e\x55\xb1\x49\x80\xb8\x9c\x14\xa4\x9c\
    6.27 +\x04\x42\x9c\x8a\xf3\x03\x92\xca\xab\xca\x06\x07\xdb\x31\x85\x62\
    6.28 +\x5e\x11\x60\x03\x02\x69\x11\x92\x11\x5a\x69\xb5\xda\xd7\xcc\x7d\
    6.29 +\x74\xbe\xd3\xa7\x9b\x9e\xeb\xbb\xab\xd9\x95\x2a\x57\x3a\xdb\x7d\
    6.30 +\xfb\xf6\x74\xf7\xf7\xf5\x39\xa7\x4f\xf7\x9d\x61\x3a\xce\xeb\xf1\
    6.31 +\xc4\xfc\x68\x11\x43\xa4\xb0\xb0\xf8\x93\x40\xac\xde\x9f\x81\x74\
    6.32 +\x3b\xd2\x8b\x21\xe7\x91\xb5\x9b\x51\xf1\x24\xe4\x87\x21\x2d\xd2\
    6.33 +\xab\x0b\x99\x46\xf9\x41\x62\xde\x83\xfc\x4e\xc8\xf7\x20\xff\x03\
    6.34 +\xd9\x65\x89\xca\x41\x64\x3a\x10\xd6\xa6\x4b\x6d\x3e\x5e\xef\x2f\
    6.35 +\xca\xe3\xc2\xb1\x6c\x02\xbe\x01\xe0\x01\xba\xd5\x84\x59\xdb\x09\
    6.36 +\x23\x48\x09\x80\xf1\xec\x63\x00\x7b\x35\xf2\x5b\x21\x83\xac\xd5\
    6.37 +\x19\xb5\x8f\xdd\xb1\xb5\x14\xea\x42\x66\x21\x2f\x13\xf3\xd7\x71\
    6.38 +\xf3\x28\xfa\xdd\x81\xd4\x41\x65\x25\xd7\xaa\xc4\x01\xbd\xaf\x2c\
    6.39 +\xff\xff\x08\x78\xa2\x36\xeb\x3a\x08\x0b\x21\x9d\xd5\x1b\x21\xb7\
    6.40 +\xa0\x64\x9b\x80\x50\x6a\xdc\x15\x67\xac\x2c\x19\xcf\xd9\x96\xb6\
    6.41 +\xd2\x39\x1b\x57\xd7\xb2\x31\x01\x90\xd4\x33\x10\x0b\x09\x54\xef\
    6.42 +\x44\xad\xaf\xb0\xb5\x0f\x5b\xe6\x09\x96\x1e\x58\x44\xc9\x0f\xd5\
    6.43 +\x7e\x62\x19\xda\xc0\x4b\x05\xce\x55\x9d\x63\x11\x8c\x4d\x7a\x1a\
    6.44 +\x23\xe6\x4f\xe3\xe6\x57\x3d\x09\x0a\x02\xa0\x05\x6c\x59\x94\x82\
    6.45 +\x28\x7c\x9c\x85\xb1\xa4\xd9\x20\x33\x30\x80\x1b\x4f\x68\x89\xaa\
    6.46 +\xf3\xf3\x54\x74\x33\xed\x23\xd6\xb5\x26\x31\x25\xa1\x3d\x21\x43\
    6.47 +\xda\x53\x2d\xa2\x77\xf0\xe7\xcb\x78\x7c\x3f\x0a\x0e\x39\xfa\x38\
    6.48 +\x4c\x44\x1c\xe0\x15\x79\x79\xe2\x04\x7c\x13\xe0\x6d\xf5\x03\xa6\
    6.49 +\x8b\x21\xb7\x30\x20\x34\x7f\x2b\x80\x7e\x1e\x5d\xaf\xf3\xb3\x57\
    6.50 +\x22\x4f\x65\x5e\xc8\x33\x4e\x88\xec\xc0\xfa\x75\x3c\xb4\x65\x0b\
    6.51 +\x0d\x6d\x3d\x97\xda\xa7\x9f\x4e\xad\xf5\x27\x53\xba\x7a\x15\x25\
    6.52 +\x83\x83\xa8\x20\x35\x80\x0d\x04\x14\xb3\xb3\x94\x1f\x3e\x4c\xdd\
    6.53 +\x03\x07\x68\xf6\xd5\xd7\x20\xaf\xd0\xec\xcb\xdf\xa7\xce\xdb\x07\
    6.54 +\x6c\x19\xc8\x48\x93\x92\x98\x85\x30\xd1\x0c\x64\xf8\x87\xb8\xfd\
    6.55 +\xad\x24\xb1\x5f\xe9\x76\xb9\x4c\x53\x12\x4a\xcb\xde\xf1\x5e\xde\
    6.56 +\x87\x04\xee\x07\xde\x5f\x61\x0a\x13\xcc\x7a\x81\xec\x16\x62\x7e\
    6.57 +\x00\x83\xf8\x80\x0c\x87\x30\x02\x99\x9d\x02\xb3\x2d\xaa\x3f\xb4\
    6.58 +\x79\x13\x8f\x5e\x75\x25\xad\xbe\xfc\x72\x1a\x3a\xf7\x5c\x6a\xac\
    6.59 +\x5e\x4d\x32\x34\x9b\xe7\x64\xbb\x5d\x2a\xb3\x4c\xf2\x02\x24\x7a\
    6.60 +\x11\x90\x61\x1a\x0d\x62\x88\x69\x36\x9d\xe6\xe7\x93\x93\x20\xe2\
    6.61 +\x55\x9a\x7c\xf2\x5b\x34\xf9\xc4\x13\x34\xbb\x67\xdc\x92\x10\x1b\
    6.62 +\xb4\xa2\x2c\xd4\xf1\x32\x7f\x93\xad\xbd\x0d\x0f\x5f\x35\xcc\x89\
    6.63 +\xf8\x89\xa5\x92\xc0\x7d\xc1\x57\xed\x5d\x66\xf8\x26\x62\xfe\x12\
    6.64 +\xd2\x15\x6c\x4c\x2e\xe5\x05\x66\x1c\xaa\x6a\x47\xae\xb8\x9c\xd7\
    6.65 +\x5d\x77\x3d\xad\xda\x7e\x09\xa5\x2b\x56\x50\x31\x37\x47\xc5\xd1\
    6.66 +\xa3\x2e\xb5\x99\x00\x2e\x1c\x30\xea\x11\x5b\xcf\xab\x61\xa7\x0d\
    6.67 +\x4a\x86\x06\x29\x5d\x05\x6d\x41\x5b\x25\xda\x98\x7a\xfa\x69\x3a\
    6.68 +\xf0\xb5\xaf\xd1\x91\xef\x3e\x65\xa1\x65\x9c\x34\x12\x41\x26\xa6\
    6.69 +\x96\x12\xf3\x14\xf2\x9f\x02\xa0\x47\xbc\x83\xac\xa0\xbe\x2c\x2f\
    6.70 +\x97\x4e\xc0\x7f\x55\xc1\x33\x05\x83\x67\xfe\x22\x06\xf8\x59\xdc\
    6.71 +\xa2\xf7\x44\x54\x3d\x91\x51\x8f\x5e\x71\x39\x6d\xbc\xf5\x13\xbc\
    6.72 +\xf2\xc2\x0b\x65\x76\x45\x95\x9d\x4a\xdb\xa2\xec\xd1\x1e\x01\x17\
    6.73 +\x3c\x55\x04\x5b\x23\xa3\x94\x7c\x29\x66\x81\xbc\xa6\xd2\x57\x32\
    6.74 +\x3c\x0c\xf3\x59\xef\xd2\xa3\xcf\x3d\x4f\xfb\xff\xea\x41\x3b\xf9\
    6.75 +\x9d\xef\x12\xe3\x32\x8d\xa4\xa0\xe2\x5d\x6d\xf8\xc2\xd1\xb2\xbc\
    6.76 +\x73\xb5\x31\x1c\xfd\x89\x5e\xef\x5d\x80\x04\xee\x07\x5e\xac\x34\
    6.77 +\xb7\xb6\xc1\xcc\x0f\x61\x84\x1f\x27\xe6\x9c\x31\xdf\x79\x96\x73\
    6.78 +\xfb\xe4\xf5\xf6\xb4\xcf\x7c\x9a\xc7\xae\xb9\xc6\x01\xee\x1e\x3c\
    6.79 +\x88\x99\xce\xb4\x59\xa6\x3a\xb8\xfa\xfd\xe2\x65\x44\xa1\x4c\x89\
    6.80 +\x28\x0a\x22\x88\x38\xcf\xd6\xa9\xa7\x52\x3a\x36\x46\x93\x8f\x3f\
    6.81 +\x4e\x6f\xdd\x7b\x9f\x9d\xdf\xb7\x1f\xda\x90\xa2\xb2\x53\x31\xd1\
    6.82 +\x86\xaf\x22\xbd\x39\x65\x9b\x15\x42\x51\x0f\x09\x97\xe6\x76\x71\
    6.83 +\x02\x9e\xac\x82\x57\x0c\x00\x6f\x99\xff\x11\x99\x6b\x99\x39\x23\
    6.84 +\xe6\x14\x2a\xcf\x6b\xae\xf9\x90\x3d\xed\x37\xee\xe4\x74\x68\x88\
    6.85 +\x3a\xfb\xf6\x63\xe6\xbb\xc1\xab\x2f\x1d\xf0\x32\xef\x71\x09\x11\
    6.86 +\xe2\x3f\x1c\x11\x83\x67\x9f\xed\xfc\xc7\xde\x7b\xee\xb1\x13\xff\
    6.87 +\xfe\x9f\x0c\x27\x69\x19\x4f\x09\x63\x46\xf9\xa3\xc6\xd2\xf5\x96\
    6.88 +\xcb\x4c\x91\x44\xb0\xdb\x7b\x48\xe0\x5e\xf0\x5d\xa4\x69\x0c\xe9\
    6.89 +\xf8\x7d\xc3\xc3\xf6\xc9\xe9\xe9\x47\xd8\xda\x1b\xc8\x00\x7c\x49\
    6.90 +\x0d\xf9\xe8\xe6\x3b\x6e\xb7\xeb\x6f\xb8\x81\xc5\x63\x17\x53\x53\
    6.91 +\xe2\xc0\xc2\x72\xd6\x1f\x6c\xbd\x4e\xf5\x5e\xaf\x6a\x79\x5d\x94\
    6.92 +\x08\x68\x5b\x63\xed\x5a\x6a\x63\x95\x39\xf4\xd8\x63\x76\xef\x9f\
    6.93 +\xdd\xe7\x42\x02\xc6\x58\x6d\x29\x5a\x4b\x5f\x05\xd8\x1b\x76\x24\
    6.94 +\x8c\x4b\x5a\x62\x05\x2c\xa1\x69\x61\x23\x01\xdf\x02\x78\xae\x46\
    6.95 +\x77\xc6\xaa\x13\xf9\x13\x74\xf6\x39\x99\x79\xd1\x04\x38\x26\x7b\
    6.96 +\xe6\xef\xfe\x36\x8f\x7e\xf0\x83\x34\xb7\x7b\xb7\xda\xa7\x31\x92\
    6.97 +\x2e\x6d\xb6\x89\xc4\xcb\x2f\xfc\xdc\x13\x68\x3b\x1d\xa4\xfd\xdb\
    6.98 +\x0b\x57\xd9\xed\x3a\x1f\x31\x0c\xff\x33\xf3\xc2\x0b\x34\xfe\xf9\
    6.99 +\xdf\xb3\xe5\xfc\x1c\x9b\x24\x90\xc0\xf7\xa0\xfa\xaf\x33\x93\x61\
   6.100 +\x54\x57\x7b\x50\xd9\x9e\x59\xc5\xfd\xed\xc4\x2c\x04\xfe\x46\x90\
   6.101 +\xf6\x10\x31\x17\x2e\x08\x49\x53\x3e\xfb\x8f\xff\x88\x56\x5c\x74\
   6.102 +\x11\xcd\xef\xd9\x43\xfc\xee\xac\xf7\xce\xde\xe2\xaa\x5c\x60\xb6\
   6.103 +\xb8\xd9\xa2\x91\x9f\xbd\x8e\x4c\xbb\xad\xa4\xc5\xe9\x76\x44\x96\
   6.104 +\xb3\x73\x34\xf1\xc8\xc3\x64\xe1\xf1\x13\x8d\x11\x96\x42\x84\x9a\
   6.105 +\x7e\xa7\x4b\x83\xe7\xbf\x87\xb2\xb7\xf6\xd1\xee\xbb\xee\xc6\xfd\
   6.106 +\xbc\x65\xc3\xea\x13\x88\x7f\x19\xd5\xfe\x86\x59\x57\x07\xe3\x49\
   6.107 +\xb8\x18\x04\x98\x6f\xa3\xe3\x22\x8e\x9f\xa5\x39\x00\xdf\x0a\xb9\
   6.108 +\x1f\xe0\xa5\xc0\x88\xee\x9c\x71\xd7\x6f\xda\xe1\x6d\x3f\x4e\x73\
   6.109 +\xbb\x76\x91\x94\xdb\xdc\xa9\x20\xd2\x1e\xc9\x54\x48\x53\x15\xd8\
   6.110 +\x6b\x89\x34\x43\xa4\x97\x75\xe6\x89\x5a\x2d\xe2\x81\x01\x15\x10\
   6.111 +\x01\x41\x5e\x85\x50\x96\x75\x3a\x52\x37\xc4\x0a\x15\x21\x49\xab\
   6.112 +\xa2\xfd\xe5\x85\x9b\x90\x99\x1d\x3b\x28\x41\x90\xb5\xe9\xee\xbb\
   6.113 +\xac\xa8\x00\x5b\x4a\x34\x56\xb6\xf7\xb2\xb1\xe7\x11\xdb\x92\x70\
   6.114 +\x5b\x5a\xdd\x51\x3d\xd3\x10\xb5\x00\xc2\xe1\x54\x19\x31\xc0\x55\
   6.115 +\x68\x80\x2d\x21\x26\x56\x12\x53\x20\xb8\xe1\x53\x6e\xfd\x84\x5d\
   6.116 +\x79\xe9\x7b\x79\x6e\xf7\x1b\x78\x66\x7a\x80\xe7\x7d\x25\x10\x91\
   6.117 +\x63\x56\xbb\x10\xb1\xdd\x52\xbd\x7a\x55\x5c\x59\xee\xc0\xe7\x4a\
   6.118 +\x80\x00\xae\x91\x4c\x9a\xd6\x25\xeb\xba\xd8\x61\xf6\xf9\xe7\xc5\
   6.119 +\x2f\xf0\xfa\x4f\xfe\x0a\x14\xc3\xb2\x68\x01\xb0\xac\x02\xee\xfb\
   6.120 +\xdb\xaa\xf1\x56\x30\x8f\x04\x5f\x27\x7f\xe7\x0a\x64\x74\xa6\x29\
   6.121 +\x2d\xcd\x6d\xb2\x8b\xe3\x04\xe0\xb3\x3c\x19\xfb\xc0\xfb\xed\x49\
   6.122 +\x1f\xf9\x29\x9e\x77\xe0\x79\xc9\xc0\xc9\xa7\x51\x03\x74\x66\x6d\
   6.123 +\xb4\x79\x97\xb7\x95\x3c\x51\xd7\x69\x4a\xa7\x4a\x72\x56\x15\x52\
   6.124 +\xa9\xf5\xa9\x24\xa4\x34\xf3\xdc\xb3\x34\x74\xe1\x05\x3c\xfa\xe1\
   6.125 +\x0f\xd9\xb2\x5b\x26\xd0\x8e\x9c\xad\xbd\xb2\xc3\xfc\x49\x56\xe0\
   6.126 +\x66\x22\x6c\x5d\x6d\xa9\x25\x90\x12\xf0\x64\x33\x73\xb7\x53\xf1\
   6.127 +\xac\xe0\xd6\xd8\x28\x9d\x7c\xf3\x4d\xdc\x7d\xfb\x6d\x75\x50\xd6\
   6.128 +\xc6\x54\x9d\x56\x48\xeb\xf6\xe9\x41\x31\xa4\xcc\x73\x51\xff\x1a\
   6.129 +\x60\x66\x0e\xf5\x34\x2d\x4b\x47\x12\x43\x4a\x84\xc3\xd0\x40\x29\
   6.130 +\x84\xd0\x22\xf6\xbf\x90\x7f\xd0\x76\x67\x11\x2c\x8d\x7c\xf4\xa3\
   6.131 +\x3c\xb7\xf3\x45\xea\xee\xdd\x67\x4c\x93\xd1\x94\xbd\x0b\x2d\xfe\
   6.132 +\x93\x65\x7e\x87\x7c\xa8\x68\x98\x95\x11\xbf\x52\xde\x8e\x3f\xa7\
   6.133 +\x32\x73\x6e\x51\xb6\xee\xe3\x3f\x67\xc1\xa8\x46\x75\x02\x32\xda\
   6.134 +\xa5\xcf\xc7\x94\x16\xb2\xcd\x50\xc7\x6b\x40\x57\x48\x88\x64\x49\
   6.135 +\x5a\xc9\x97\x10\x99\xfd\x1c\xa2\xea\xae\x6d\x69\x3e\x4a\x54\xfb\
   6.136 +\x28\xd4\x2b\x62\x66\xb3\x33\x94\x61\xe2\x46\xaf\xbf\xce\xfa\x55\
   6.137 +\x3d\x07\xc6\x8d\xc4\xfc\x6b\x41\x0b\x0c\x29\x70\x86\xc8\xec\xaf\
   6.138 +\x85\xdc\xc6\xc6\xc8\xec\x27\xc3\x5b\xce\x11\x8f\xcf\xd9\xc4\x84\
   6.139 +\xcc\x62\x05\x3c\x79\xe9\xef\xa4\xa2\x09\xe4\x00\x2f\x24\x94\x15\
   6.140 +\xf0\x75\x12\x40\x80\x93\xf2\x18\x7e\x86\xa2\x2c\xea\x77\x44\x0b\
   6.141 +\xba\xe3\xe3\xd4\xdc\xb0\x81\x87\x2f\xba\x80\xac\x98\x82\x31\x82\
   6.142 +\xe5\x56\xc8\x5a\xc5\x4c\x9c\x12\xeb\x31\x16\xe4\x06\xb6\x74\xb2\
   6.143 +\x3f\xd2\x4a\x46\xaf\xbe\x4a\xf6\xe8\xda\x21\xf3\x62\x01\x49\x9f\
   6.144 +\xf2\x92\x58\x92\x2c\x73\xa0\x8a\x5e\xbb\xaf\x07\x3d\x6a\x02\x58\
   6.145 +\xd7\x13\x88\x23\xdc\x97\x31\xd5\x4c\x60\x29\x63\xd1\x7e\xdf\x7a\
   6.146 +\x8b\x56\x20\x6e\x99\x7d\xf6\x39\x06\xf0\x1c\x58\xd6\xe3\xd9\x2f\
   6.147 +\x12\xd1\x9f\x42\x4c\x6a\x00\x98\x75\x6f\x7f\x93\x5b\x8b\x61\xfb\
   6.148 +\xed\x4d\xa7\x52\xfb\xac\xb3\x34\xca\x8b\x9d\x2f\x9d\x04\x0a\x80\
   6.149 +\x1c\x48\xd5\x00\x80\x02\x95\xd1\x07\x04\xe0\xf1\x0a\x1a\x80\xd9\
   6.150 +\xea\x88\xdf\x88\xfe\xa5\x7f\xbf\xf5\xbe\x7d\x3e\xdb\xbf\x1f\xf1\
   6.151 +\xc1\xf9\xd4\xde\xba\x85\xe6\x5f\xfa\x01\x7c\x81\x91\x67\x37\x32\
   6.152 +\xd9\x7b\x2d\x71\x91\xba\x6a\xcc\x97\x81\x84\x0b\xfd\xb8\x78\xf8\
   6.153 +\x82\xf3\x03\x83\xb8\xe3\x7a\xa7\xcb\x18\x90\xfb\x97\x67\x62\xd7\
   6.154 +\x4a\x80\x02\x72\x52\xb9\xb4\xcc\x11\x65\x3b\x5e\x03\xfa\xf4\xb7\
   6.155 +\xa4\x20\x49\x34\x0f\xe7\x0a\x43\x97\x5c\x22\x04\xe8\x32\x48\x04\
   6.156 +\x9b\xa0\xcb\x90\xfe\x77\xca\xda\xf9\x4f\xfb\x93\x96\x22\x69\xa6\
   6.157 +\x69\x1b\x9b\x0c\xdd\xce\x16\xe4\xdd\xf3\x12\x55\x3f\x02\x09\x9f\
   6.158 +\x61\xa7\x01\xb9\x53\xed\x3c\x9a\x52\x6d\x15\x60\x2d\x43\x3d\x71\
   6.159 +\x6a\x4a\x40\xec\x9b\x16\xeb\xbf\xbf\x88\x59\xed\xdb\x47\xad\x33\
   6.160 +\xce\xc0\x19\x45\x9b\x11\x6d\xe6\x6c\x58\x22\x9f\x9f\x21\x21\x60\
   6.161 +\x15\x3a\x98\x22\xbe\x4a\xa3\xbb\xd2\x34\x37\xac\x73\x87\x19\x16\
   6.162 +\xf6\xbf\x60\x67\xb4\xe4\x81\xc4\xe5\x2d\x57\x13\xc8\x98\x17\xf2\
   6.163 +\x01\x95\xb2\x0c\xe0\xa9\xeb\x9d\x1f\xb3\xfa\x80\x1e\x95\xa6\x65\
   6.164 +\x69\x84\x9a\x50\x71\xe8\x10\x99\xf3\xce\xa3\xe6\x69\xa7\xd3\xfc\
   6.165 +\xff\xbe\x04\xf8\x6e\x49\xbc\x72\x30\xb3\x94\x4e\x31\x6f\x41\xc5\
   6.166 +\x1f\x63\x6d\x9e\x5b\x1b\x37\xe2\x2f\xc9\xd1\xd5\xd2\xd5\x9f\xfa\
   6.167 +\x10\x21\x3e\x40\x84\x8d\x02\x55\xd4\x9a\xc6\x3c\x92\xd2\xd5\x63\
   6.168 +\x90\x50\x82\x34\xe2\xb8\xd7\x58\xf6\xcc\x53\xd5\x0c\x4a\x68\x34\
   6.169 +\xb4\x40\x08\x60\xbf\x0b\xdc\x3a\xd7\xe4\x73\xc4\x04\x2e\x92\x63\
   6.170 +\x3c\xe1\x04\x79\xd3\x18\x1b\x8b\x6b\x3b\x73\x5f\xf5\xaf\x0b\x45\
   6.171 +\x52\x34\x50\x72\x0e\x2d\xef\x66\xa2\x01\x7d\x56\x01\xab\x04\x74\
   6.172 +\x33\x8d\xfa\x08\xf5\xa3\x09\x2c\x49\x2c\x55\xef\xdd\xc4\x0a\xa1\
   6.173 +\x47\x8e\x50\x73\xf3\x26\x0a\xcb\x3e\x8a\x87\xf1\xfc\x62\x51\x86\
   6.174 +\x8b\xfd\x4c\x5b\xc3\xa4\xea\x0f\x27\x44\x8e\x00\xaa\x01\x5e\xee\
   6.175 +\x52\xa8\x03\xc8\xa8\x10\x33\x30\xc6\x03\x8a\x5a\xe0\xaf\xe8\x03\
   6.176 +\x50\xd7\xf8\xf0\xd7\xfb\xa5\x63\xa8\x3e\xc5\xbe\xeb\x75\x62\x3f\
   6.177 +\x79\x81\x15\x4d\x08\x38\x0d\x33\xec\xcc\xc2\xb2\xaa\xfc\x45\x29\
   6.178 +\xfe\x6c\x23\x76\x03\x60\x6a\x18\xe2\x66\x43\xd4\xdf\x6d\x4c\x70\
   6.179 +\xf5\x01\xda\x9f\x14\xf7\x4f\x34\x20\xf3\x04\x94\x76\xc1\x55\x20\
   6.180 +\x44\x82\x39\xea\xa6\x3e\x08\x22\x13\x7d\x80\x82\x5c\xfe\x38\xdc\
   6.181 +\x05\x2c\x25\x0e\x67\x13\x1c\xb0\x9a\xc1\x36\xd9\xe9\x39\x22\xdd\
   6.182 +\xcd\x6f\x4b\x99\x69\x13\xf9\xcb\x24\x89\x6e\x78\x32\x21\xa0\xe8\
   6.183 +\x63\x5f\xfd\x06\x43\x41\x7d\x1d\x01\x45\x06\x12\xd0\x7e\xb9\xc8\
   6.184 +\x5e\x40\xcb\x94\x00\x11\x2b\x62\x58\x7d\x00\x2d\x7f\x29\x64\x5b\
   6.185 +\x46\x02\x84\x4c\x44\xa2\xdc\x6a\xb9\x23\xf7\xc2\xce\xf9\x9e\x69\
   6.186 +\xb3\x10\xb0\x26\x9c\x49\x70\x92\x04\xa7\xd5\xff\x54\x66\xc9\x41\
   6.187 +\x51\x30\x81\x1c\x92\xf6\x5d\x05\x0a\x89\xe3\x21\x4e\x03\xf3\x8a\
   6.188 +\x09\x2c\xb2\x1c\x56\xc7\xc9\xa1\x3c\xdc\x93\xbe\x4d\xb4\x79\xa1\
   6.189 +\x04\x34\x9a\xc2\x69\x20\xe0\x24\x31\x81\xe1\x78\x1e\xa6\xea\x0a\
   6.190 +\x22\x42\x0c\xb0\x5c\xc0\x75\x51\x13\x00\xa8\x5c\xc0\x05\xa0\xf5\
   6.191 +\x55\x40\x45\xc0\xa3\x9e\x8f\xf9\xc3\x32\x78\xcc\x3e\xcb\xd0\x4f\
   6.192 +\xf8\x5f\x89\x01\x6c\xee\xd4\x1f\x50\x4f\x92\x83\x54\xad\x1f\xaf\
   6.193 +\x61\x59\x05\x9a\x2e\xcb\x10\x19\xa0\x84\xa2\x69\xe2\x1c\x07\x51\
   6.194 +\x7f\xc0\xfd\x83\x21\x75\x42\x7a\x10\x52\xf8\xf2\xfa\x2a\xc0\xef\
   6.195 +\x12\x50\x2a\xf9\x62\x02\x54\x69\xab\x6a\xd7\xd5\xbc\x6a\x4a\xdc\
   6.196 +\x9d\x4a\x21\xd4\xbd\x85\x4d\xcd\x28\x35\x71\x68\x3a\xb0\xed\x3d\
   6.197 +\x54\x4e\x4f\xbb\xf8\x86\x0d\x85\x39\x6f\xa5\x3e\x23\x6c\x4b\x03\
   6.198 +\xb2\x8d\x14\x3b\x51\x27\xa4\xa6\xb1\x4c\x95\xaf\x13\x02\x75\xd6\
   6.199 +\x25\x51\x24\x9e\x09\x54\x00\x44\xb0\xbe\x5e\x51\x2c\xbc\x0c\xbb\
   6.200 +\xd3\xa3\x42\x48\xd5\x3c\xc4\xe9\x73\xda\x20\x83\x23\xfa\x74\xc3\
   6.201 +\x46\x4a\xd7\xae\x15\xe0\x72\xaf\xfe\x07\xfb\x81\x99\xff\xf8\x37\
   6.202 +\xea\xbe\xf2\x0a\x1c\xe0\x0c\x71\x22\x7d\x69\xf3\x29\xfe\x76\xd0\
   6.203 +\x70\xdb\x39\x3f\xf1\x7b\x33\xb3\xc4\x63\x27\xb9\xc6\xe3\x1b\x9a\
   6.204 +\xc2\xa7\x3a\x13\xf5\x35\xbf\x7e\x1f\x80\xb2\xf7\xc2\x46\xf2\x5a\
   6.205 +\xa5\xee\x04\x7b\xfc\x80\x11\x95\x97\x99\x9c\x43\x28\x6e\x8c\x33\
   6.206 +\x09\x0a\xed\x18\x26\x16\xa0\x03\x6d\x07\x2e\x59\xb9\x12\x67\x80\
   6.207 +\x23\x64\xb0\x74\x73\xa3\xe1\xc6\x57\xce\x4c\x53\xbe\x7f\x1f\x75\
   6.208 +\x5e\x78\x9e\xf2\x7d\x7b\x11\x05\x4e\x39\x5c\x4c\x90\x44\xa4\xf2\
   6.209 +\x42\xa0\x9b\x22\x9d\x46\xa6\x0d\x71\xaa\x31\xb7\x73\x27\x65\x68\
   6.210 +\xc0\xe0\xed\x6d\x32\x38\x24\x27\xb8\xce\x79\x70\x9a\xea\x11\x02\
   6.211 +\x27\x51\xe5\x74\xb6\x90\x44\x9b\xeb\x99\xe9\xb8\x93\xeb\x76\x1d\
   6.212 +\x28\xa3\xe5\x8b\x3a\x41\xb9\x12\x00\x49\xd0\x77\xba\x66\x2d\x35\
   6.213 +\x01\x90\x06\xe0\xb8\x5a\x03\xc4\xcd\xa6\x80\x54\xff\xe4\x34\x75\
   6.214 +\x96\x4a\xec\x56\xb3\xd7\x77\x51\x7e\xe0\x6d\x2a\x0e\x1e\x44\xb0\
   6.215 +\x73\x94\xca\xcc\x2a\x3e\x8f\xc7\xa4\xc8\x34\x4c\x65\x92\x98\x29\
   6.216 +\x5c\xd3\xa9\xff\x5a\xca\x1a\xa5\x9f\xb9\x9c\x3c\x42\x9d\x43\x47\
   6.217 +\x28\xc4\x8b\x9c\xb2\x7f\x63\xdb\x02\x11\x4d\x1d\xcc\xc0\x00\x88\
   6.218 +\x91\x54\x88\x69\xe0\x79\x8a\x81\x41\x40\x92\xf1\x44\x85\xd9\x65\
   6.219 +\xe4\x53\x44\x76\x8d\xb9\x0e\xe5\xf8\x1c\xfa\x5f\xdc\x09\xca\x58\
   6.220 +\x31\xb3\x0d\x66\x69\xc7\x69\x41\x31\x71\x10\x6a\x0b\x60\x47\xa7\
   6.221 +\x31\xbb\x33\x00\x0e\x3b\x9e\x95\x65\x9a\xfc\x15\xc1\x52\x0a\x02\
   6.222 +\x5b\x1c\x43\x78\x8a\xfb\x01\x8f\x27\xbe\xa8\xd4\x5a\xef\x08\x3f\
   6.223 +\x7b\x20\x5b\x99\x59\x4f\x25\x13\x16\xd0\xca\x94\xb2\xe6\x22\xc3\
   6.224 +\x02\x42\x53\xa4\xe5\x36\xf4\xac\xc2\x21\x4d\x84\xf2\x84\xd8\x70\
   6.225 +\x20\xc1\xe5\xe7\xf0\xb0\x00\x01\x76\x64\x54\x6c\xb6\xa6\x01\xbd\
   6.226 +\xbe\xa2\xd8\xf5\x3a\x65\x87\x27\x69\xe6\xa5\xef\x13\x53\x15\x24\
   6.227 +\x19\xa4\x5e\x09\x4d\xda\x0b\x94\x6a\xce\xb1\x0a\x38\x44\x9b\xb1\
   6.228 +\xcc\x5f\xe3\xd2\xcc\x4e\x54\xf8\x70\xe8\x86\x03\x73\xd1\x39\x46\
   6.229 +\xaf\x19\xcb\xe2\x7d\x2f\x10\x55\xff\x38\x16\x88\xb1\xba\x01\xe7\
   6.230 +\x9c\xf4\xa4\x47\xcd\x42\x52\xd7\x4e\x1c\xb4\xfa\x98\xd4\xe8\xeb\
   6.231 +\xb9\x64\xc0\x50\x22\xf5\x7a\xbb\xad\x91\x06\x89\x43\x8a\x97\x8d\
   6.232 +\xa9\x27\xa2\x72\x71\xac\xb1\x53\x08\x78\xa6\xfa\xee\x90\x63\x83\
   6.233 +\xaa\xb0\x55\x3e\xaa\xa0\x63\x79\x64\x36\xa6\xf1\xec\x1d\xa0\xac\
   6.234 +\x12\x91\x24\x22\x42\x42\x85\x00\x29\x23\x88\x03\x0f\xe1\xb2\xf4\
   6.235 +\xfd\x2e\x02\xa2\x7a\x7f\xcc\xba\xb5\xa2\x58\xed\x7b\x29\xe1\x0f\
   6.236 +\x64\x9a\x99\x86\x3d\x32\x8e\x0d\xf2\x8f\x34\x68\x17\x69\xb0\xc2\
   6.237 +\x78\xad\x2b\x26\x2b\xc0\x5c\x18\xdc\x9d\x98\x40\x4e\x8f\xca\xf9\
   6.238 +\xdd\xae\xac\xd8\x3c\x9e\x1d\xa2\xd4\x6a\x5d\x16\xe1\x65\x00\xe6\
   6.239 +\x63\x00\xae\xcf\xbe\x81\xcc\x40\x9e\xe1\xc7\xda\x4c\x67\x16\xf6\
   6.240 +\x69\x14\x6f\x17\xde\x59\x1f\x22\xdb\x17\x70\xff\x72\x3f\xc9\x1d\
   6.241 +\xa4\xe3\x90\x29\x66\xec\x36\x57\x6a\x8c\x6f\x17\x98\x51\xd9\x0e\
   6.242 +\x1f\x9d\xa2\x55\x20\x61\xb3\x21\x6a\xf1\x22\x80\x63\xe6\x78\xc6\
   6.243 +\x17\x30\xee\x68\x10\x5d\x9a\x9e\xe5\x02\x3e\x7e\x9c\x18\x04\x68\
   6.244 +\x9c\x68\xaa\x1f\x3e\xde\x8e\x62\x61\xd3\x7f\x33\xb2\x00\xc0\xf9\
   6.245 +\xc3\x47\xaa\x76\x1d\xf0\xf9\xfc\x70\x42\xb4\xc6\xe8\x67\x22\xe8\
   6.246 +\x13\x00\x5c\x2f\x0f\x18\xbf\x91\x49\xc6\xbb\xf5\x7f\xf6\x6f\x46\
   6.247 +\x13\x88\xad\x9a\x73\x55\x68\xa9\xe5\x56\x45\x9b\x57\xbb\x6e\xb0\
   6.248 +\x4a\xb3\x9a\x56\x25\xf8\x80\x20\x21\xd3\xa7\xbf\x25\x96\x5b\xc1\
   6.249 +\xe8\xc7\xf7\x2f\x10\x4a\x3d\xc9\x4f\x81\x89\xe7\x90\x5e\xe0\x55\
   6.250 +\x84\x8f\x6b\xe6\xed\xc2\x36\x9b\x43\xa6\xad\xbe\x97\x1e\x58\xb5\
   6.251 +\x42\x03\x2a\xbb\x90\xc9\x94\x6e\xe3\x72\xd4\x5a\x1a\xf2\x84\x91\
   6.252 +\x8d\x9d\x9c\x90\x66\xda\xb8\x30\xa1\xec\x59\x66\x7a\xca\x45\xd0\
   6.253 +\x89\x12\x5e\x40\x1e\x0e\x04\x04\x33\xe0\xe5\x00\xae\x3d\xd4\x7b\
   6.254 +\xc5\xa0\x2c\xb4\x46\x56\xd0\x19\x8f\xfd\xab\x8b\xd3\x6d\x5e\x54\
   6.255 +\xf4\x9f\xd3\xc4\x1d\x5e\xbe\xf1\xb1\x8f\x10\x1d\x46\xf8\xda\x50\
   6.256 +\xcd\xb1\x7d\xc0\x2d\x6b\x42\x62\xc9\x43\x56\x03\xfb\x24\x65\x64\
   6.257 +\xfc\x93\xbf\x43\xfe\x73\xc8\xae\xff\x51\xde\x79\x89\x80\xeb\xeb\
   6.258 +\x71\x54\xe3\xd4\x47\x85\xc9\xc8\x28\x08\x18\x93\x70\xb6\xba\x0c\
   6.259 +\xa6\xa9\xab\xdf\x90\x3a\x0b\xad\xa8\x27\x3e\x21\x96\xd9\x35\xbd\
   6.260 +\x1f\xf2\xf7\xc1\x1f\x18\x67\xf3\xaa\x94\x07\x50\xf0\xa0\xff\x5c\
   6.261 +\xe1\xed\xc4\x42\x88\xbc\x30\x47\x21\x0e\x80\x2b\x12\xeb\xda\xd8\
   6.262 +\xbf\x46\xa9\x22\x7a\xd8\x52\x42\x6c\x94\x4a\x59\xea\x97\x4c\x53\
   6.263 +\xf3\x27\x75\xfb\xae\x8c\x6d\xf1\xf1\x59\x5f\x56\xf8\xc0\xf6\x01\
   6.264 +\x52\xac\x06\x62\x4d\x60\xc2\xa7\x7f\x8e\x86\xde\x92\x31\x40\x4a\
   6.265 +\x66\xe2\x4a\xa3\x72\xf5\x01\x5c\x19\x40\xa8\xe7\x09\x68\x40\x6c\
   6.266 +\x1f\x69\xa8\x54\x1c\x20\xf7\xb4\xb3\xdc\x09\x09\x6f\xe8\x21\x29\
   6.267 +\xea\xbc\x89\xb2\x2f\x21\x4f\xbe\x8c\x4c\x40\xee\xb5\xe0\x1d\x54\
   6.268 +\xf8\x43\xff\x61\x7d\x14\x19\x54\x39\x16\x60\x3f\xc0\x28\xd1\x0c\
   6.269 +\x52\x15\xbd\xea\xc0\xf5\xf2\xe0\x83\x06\x90\xed\x33\xcb\x0b\x02\
   6.270 +\x8e\xa2\x6a\x1f\xb5\x00\xd7\x1f\x40\x0e\x22\x6f\x42\x7d\x03\xa1\
   6.271 +\xd7\xba\x2e\x53\x96\x1a\xb7\xff\x25\x1e\x3c\x0e\x49\x21\x85\x0f\
   6.272 +\xe4\xac\x0e\xa0\x0e\x98\x22\xd8\x68\x77\x86\x9d\xbd\x73\x92\xb8\
   6.273 +\x08\x2f\x69\x34\xa9\xd1\x32\xd4\x94\x1d\x65\xef\x86\x45\xa5\xb2\
   6.274 +\x81\x69\xb6\x5a\xa8\x9b\xe8\xee\xb3\xe1\x77\x9a\xa9\xb4\xe5\x46\
   6.275 +\x1b\xc1\x56\xf7\x51\xb8\x6a\x84\x04\x3f\x56\xf8\x95\xf5\xeb\x90\
   6.276 +\x07\xaa\x1a\x0f\xb2\x85\xe9\x73\x9a\x14\x36\x82\x61\xb3\x78\x07\
   6.277 +\xd2\xef\xe0\x66\x95\x83\xaf\xe5\xa1\xc1\xfa\x6e\x50\x74\x07\xe2\
   6.278 +\xd2\x24\x41\x9a\x20\x35\x9a\x7a\x22\x5a\xb2\x0b\xc4\x17\x98\x48\
   6.279 +\x9c\x5d\x38\x7c\x8d\x4e\x50\xcb\xf0\xac\xb9\x7a\xb5\x3b\x37\x48\
   6.280 +\xd2\xc4\xa5\xa4\xa2\xa7\x40\x85\x88\xe4\x35\x65\xeb\x9f\xc5\xed\
   6.281 +\x49\x30\xcb\x38\x66\x05\x3f\x09\xb9\x23\x8e\x3a\x72\x96\x9e\x83\
   6.282 +\xd9\x7f\xa5\x19\xe3\x64\xb6\x4e\xfb\x5e\xc4\xcd\x67\x90\xfe\x35\
   6.283 +\xa4\xe0\x18\x9b\x04\x1a\x1c\x38\xf6\x83\x66\x15\xe4\x13\x4d\x13\
   6.284 +\x79\x96\x86\xed\x31\xee\x15\x8c\x5d\xb5\x5a\xf6\xf6\x3a\x93\x45\
   6.285 +\x51\x55\x23\xa9\x8f\x67\xad\x91\x11\x5d\x2d\x20\x04\xa0\xe1\x78\
   6.286 +\xcc\x42\x42\xca\x79\xee\x4f\x8d\xa3\xc8\xb3\xb0\x13\xe5\x08\xbe\
   6.287 +\x84\x24\x1e\xfc\xcb\x10\xd3\x3b\xfb\x9b\xe6\xfd\x08\x5e\x6d\x51\
   6.288 +\xc4\xa6\x62\x58\x2b\x7e\x11\xf2\x59\x48\x86\x87\x0d\x66\xcf\x2d\
   6.289 +\x80\x99\xf6\xa0\x9c\x14\x39\x02\xa2\xaa\x36\x02\x21\x4a\x4e\x20\
   6.290 +\x41\xf2\xc6\x93\x31\x3c\xec\xf2\x71\xba\x82\x8d\xe9\x5e\x80\x67\
   6.291 +\x67\x02\x18\x2f\x1e\x78\x2e\x69\xf5\x9b\x28\x94\x65\x31\xed\xcc\
   6.292 +\xbb\xef\x17\x5a\xb8\x36\x66\xd7\x64\x46\xec\x5c\xca\x17\x20\x77\
   6.293 +\x56\xc0\x57\x09\xd0\xeb\x35\x60\xe1\xb0\x36\xa8\xe1\xf0\x0a\x64\
   6.294 +\x67\x75\xcd\xfc\xf9\xd0\x20\x52\x75\x2a\xed\x36\x1b\x39\x8f\x1b\
   6.295 +\x1c\x74\x04\x10\x04\x69\x95\x04\xd5\x06\x4f\x86\x37\x8b\xaa\xa1\
   6.296 +\xd6\xf7\xf7\xcc\x3a\x93\x45\x2f\xf8\xdc\xa7\x19\xc0\xe6\x3e\xd5\
   6.297 +\xf7\x87\x24\xef\xfd\xe4\xc4\x68\x72\xd2\xe2\xe0\x86\x7d\x93\x19\
   6.298 +\xa4\xe1\xd7\xfb\x5f\x88\x6a\x5f\x05\x4f\xbd\x8e\xf9\xac\x0e\xd1\
   6.299 +\xae\x56\xa4\x48\xac\x74\x4a\x2b\xdc\xcc\x72\x66\xc8\x74\xad\x27\
   6.300 +\x21\x45\xca\x60\xdb\x5a\x63\x98\xe4\x68\x6c\x50\xb5\x01\xe0\xdd\
   6.301 +\xd9\x1d\x55\x35\xa2\x4e\x84\x31\x8b\x11\x10\x55\xb9\x88\xe0\x39\
   6.302 +\xcf\x34\xf5\xb1\x42\x48\x69\x7e\x4e\x0e\x41\xe5\xc5\xa7\x82\x57\
   6.303 +\x90\x60\x08\xe0\x99\x1e\x45\xfe\x97\x20\x54\x07\x7f\x8c\xe0\xea\
   6.304 +\xf5\x56\xfd\x0b\xe3\x3e\x2c\xff\x5b\x56\x4d\xc8\xc5\x08\xc8\xea\
   6.305 +\x33\x6e\x0f\x70\x7a\xf2\x06\x4a\x36\x6c\x20\x83\xad\x2e\x81\x00\
   6.306 +\x6e\x0a\x01\x9a\x12\x52\x10\x50\x21\x82\x8c\x88\x06\x19\x11\xbf\
   6.307 +\xf5\xf6\x1e\xc0\xab\xaa\xc7\x6f\x9e\x76\xe5\x9d\xa5\x57\xf7\x0e\
   6.308 +\x66\xfc\x30\x15\x7b\x71\xea\x7b\xe0\x80\x45\x1d\x66\xf6\x8a\xab\
   6.309 +\xeb\xfd\x3f\x20\x7f\x13\x24\x0b\x18\x6a\xe0\xeb\x04\xd4\x49\xe0\
   6.310 +\x1e\x4b\x1d\x47\x23\x9b\xe4\xcb\xd3\x08\x97\x39\xfe\x6e\x4f\x88\
   6.311 +\xb0\xdc\x48\xc8\x8c\x8d\x71\xba\x69\x33\x88\xd8\x48\x0c\x22\xb8\
   6.312 +\xa5\xcb\x98\x12\x02\x69\xa8\x66\x78\x32\xc2\xd9\x61\x24\x40\xc1\
   6.313 +\x43\x7a\x54\xbc\x9b\x29\x68\x05\xef\xec\xbc\x3c\x2c\xc0\xdf\xa4\
   6.314 +\x7c\x7c\xdc\xda\xa9\x23\x62\xf3\x02\xbe\xf0\xf3\x8c\x46\x29\x7c\
   6.315 +\x39\x5a\x1b\xaf\x81\xef\x4b\x80\x5e\x6f\xb4\xaa\x51\x4b\xf8\xb6\
   6.316 +\xb5\xb7\xa9\x2f\x43\x56\xa2\x2c\x47\x6a\xac\x55\xd7\x81\x53\x62\
   6.317 +\x4e\xe4\x47\x51\x78\x0d\x9d\xe0\x8b\x16\x66\x64\x34\x9a\x47\xb3\
   6.318 +\x15\xc9\x80\x50\x2a\x64\x24\xde\xe6\xad\x7a\xf5\x2c\x17\xa0\x10\
   6.319 +\xd8\x63\xb7\x07\xf4\x34\xd4\x1c\xc7\xde\xc5\x9b\xe3\x94\xef\xd9\
   6.320 +\x4d\xe5\xc4\x41\x0b\xfb\x67\xd2\x6f\x7f\x97\x3e\x7a\x3e\x0a\x34\
   6.321 +\xb7\xcb\x46\x67\x11\x87\xb7\xfc\x1f\x4d\xed\x8e\x24\x04\xff\xe4\
   6.322 +\x7e\x90\x84\xf4\x6c\x09\x2a\x50\xf6\x93\xd2\x51\x08\x3a\x02\x11\
   6.323 +\x00\xcc\x09\xde\xc5\x25\xa7\x9c\x02\x22\x4e\xa5\x64\xed\x3a\x32\
   6.324 +\xb2\xbc\x61\x05\xe0\xf6\xa0\x7e\x51\xba\xe5\x09\x31\x46\x54\x5e\
   6.325 +\x67\x79\xbe\x03\x99\x87\xe7\x9d\x71\xdb\xe2\xf2\xd0\x04\x15\x3f\
   6.326 +\xdc\x0f\xe0\x6f\x52\xb1\x6f\xaf\xcc\x3e\x80\x17\x4c\x5c\xed\x13\
   6.327 +\xf9\x27\x91\xbf\x0d\xf2\x03\xf2\xbb\xdb\x2a\xf8\x13\xf8\xd9\xdc\
   6.328 +\x9e\x8a\x26\x40\xd8\xcd\x78\x69\x8c\x03\x7b\x0b\xe4\xf7\x51\xbe\
   6.329 +\x9e\x74\x40\xa5\x27\xcb\xe8\xdb\x66\x8e\xab\x05\xde\x36\x19\x90\
   6.330 +\xe2\xf2\x2b\x57\x8a\x66\xa8\x56\x18\xa3\x6a\xdf\xe9\xb8\x73\x7f\
   6.331 +\xa8\x35\x80\x1f\xd2\x17\x1d\x13\x90\xa9\x23\x16\xc4\xe8\x4a\xa9\
   6.332 +\xc0\xc9\x6b\x9d\x64\xdf\x46\xd9\xef\xe0\xc9\x83\xae\x6f\xee\x33\
   6.333 +\xf3\xc7\xfb\xc3\xc9\xf1\x01\x01\x55\x3b\x15\x67\xdf\xd9\xa8\x0b\
   6.334 +\x34\x2c\x7d\x0a\xe9\x1a\x4f\x44\x20\x83\x6d\xa9\x64\x48\x39\x08\
   6.335 +\x61\xd8\x7f\x5c\x36\x4d\x12\xde\x00\xc7\x65\x4e\xd7\x76\x50\xec\
   6.336 +\x9d\x57\x9c\x6d\xe3\x83\x50\xb9\x3b\x88\x87\x7f\x81\xdc\x7d\x28\
   6.337 +\x9b\x08\xab\xf7\xc2\xde\xfe\x44\x08\xa8\x13\x51\xbd\xaa\x1d\x8f\
   6.338 +\x41\x6e\x44\xee\x16\xdc\x6c\xab\xc4\x39\xd1\x69\x6a\xc8\x2f\xb2\
   6.339 +\xc0\x15\xc8\xeb\xf9\x9c\xa9\x7c\x8e\xc8\xfd\x74\x96\xd8\x1d\xde\
   6.340 +\x1c\xf4\x75\xb8\xcf\xac\xf7\x27\xe0\x84\x48\xa8\x0f\x22\x81\x6c\
   6.341 +\x27\x4b\xd7\x22\xbd\xda\x86\x1f\x4f\x03\xdc\xd2\xfb\x0b\xf6\xad\
   6.342 +\x3f\x9e\x66\xdd\xc8\x3c\x06\xd9\x41\xea\x78\xa9\xcf\xac\x1f\x27\
   6.343 +\x01\x27\x4e\x84\x81\x14\x01\xaa\xbf\x3f\x13\xf7\x97\x20\xbd\xd8\
   6.344 +\x6b\xc6\x66\x8a\x3f\x9f\x6f\x92\x5e\x1d\xc8\xb4\x9f\xd5\x3d\x90\
   6.345 +\x17\xe5\xa5\x85\x00\x86\xbc\x2e\x66\xe0\x9a\x8c\x04\x97\x27\x06\
   6.346 +\x3c\x5e\xff\x07\xfa\x11\xf1\x94\xb7\x77\xfd\x50\x00\x00\x00\x22\
   6.347 +\x7a\x54\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x00\x78\xda\
   6.348 +\x2b\x2f\x2f\xd7\xcb\xcc\xcb\x2e\x4e\x4e\x2c\x48\xd5\xcb\x2f\x4a\
   6.349 +\x07\x00\x36\xd8\x06\x58\x10\x53\xca\x5c\x00\x00\x00\x00\x49\x45\
   6.350 +\x4e\x44\xae\x42\x60\x82\
   6.351  \x00\x00\x1a\xb6\
   6.352  \x89\
   6.353  \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
   6.354 @@ -8682,6 +9017,11 @@
   6.355  \x00\x6f\
   6.356  \x00\x70\x00\x65\x00\x6e\x00\x73\x00\x65\x00\x63\x00\x75\x00\x72\x00\x69\x00\x74\x00\x79\x00\x5f\x00\x6c\x00\x61\x00\x75\x00\x6e\
   6.357  \x00\x63\x00\x68\x00\x5f\x00\x36\x00\x34\x00\x2e\x00\x70\x00\x6e\x00\x67\
   6.358 +\x00\x14\
   6.359 +\x02\x93\x52\xe7\
   6.360 +\x00\x65\
   6.361 +\x00\x6d\x00\x62\x00\x6c\x00\x65\x00\x6d\x00\x2d\x00\x69\x00\x6d\x00\x70\x00\x6f\x00\x72\x00\x74\x00\x61\x00\x6e\x00\x74\x00\x2e\
   6.362 +\x00\x70\x00\x6e\x00\x67\
   6.363  \x00\x15\
   6.364  \x0d\x88\xf5\x07\
   6.365  \x00\x6e\
   6.366 @@ -8711,9 +9051,10 @@
   6.367  qt_resource_struct = "\
   6.368  \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
   6.369  \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
   6.370 -\x00\x00\x00\x1e\x00\x02\x00\x00\x00\x16\x00\x00\x00\x03\
   6.371 +\x00\x00\x00\x1e\x00\x02\x00\x00\x00\x17\x00\x00\x00\x03\
   6.372  \x00\x00\x00\xb0\x00\x00\x00\x00\x00\x01\x00\x00\x9f\x7e\
   6.373 -\x00\x00\x02\xfe\x00\x00\x00\x00\x00\x01\x00\x01\xb7\x09\
   6.374 +\x00\x00\x03\x2c\x00\x00\x00\x00\x00\x01\x00\x01\xcb\xd4\
   6.375 +\x00\x00\x02\xce\x00\x00\x00\x00\x00\x01\x00\x01\x9c\x4f\
   6.376  \x00\x00\x02\x06\x00\x00\x00\x00\x00\x01\x00\x01\x51\xa7\
   6.377  \x00\x00\x02\x94\x00\x00\x00\x00\x00\x01\x00\x01\x83\x53\
   6.378  \x00\x00\x02\x36\x00\x00\x00\x00\x00\x01\x00\x01\x66\x1d\
   6.379 @@ -8724,14 +9065,14 @@
   6.380  \x00\x00\x02\x56\x00\x00\x00\x00\x00\x01\x00\x01\x6a\xcc\
   6.381  \x00\x00\x02\x76\x00\x00\x00\x00\x00\x01\x00\x01\x7a\x70\
   6.382  \x00\x00\x01\x3e\x00\x00\x00\x00\x00\x01\x00\x00\xd8\xea\
   6.383 -\x00\x00\x03\x52\x00\x00\x00\x00\x00\x01\x00\x01\xe8\xb8\
   6.384 -\x00\x00\x03\x88\x00\x00\x00\x00\x00\x01\x00\x01\xfc\x9b\
   6.385 +\x00\x00\x03\x80\x00\x00\x00\x00\x00\x01\x00\x01\xfd\x83\
   6.386 +\x00\x00\x03\xb6\x00\x00\x00\x00\x00\x01\x00\x02\x11\x66\
   6.387  \x00\x00\x01\xc2\x00\x00\x00\x00\x00\x01\x00\x01\x07\xb0\
   6.388  \x00\x00\x01\x5c\x00\x00\x00\x00\x00\x01\x00\x00\xe3\xfa\
   6.389  \x00\x00\x00\xee\x00\x00\x00\x00\x00\x01\x00\x00\xb7\xea\
   6.390  \x00\x00\x01\xa0\x00\x00\x00\x00\x00\x01\x00\x00\xfe\xef\
   6.391 -\x00\x00\x03\x30\x00\x00\x00\x00\x00\x01\x00\x01\xcf\xa5\
   6.392 -\x00\x00\x02\xce\x00\x00\x00\x00\x00\x01\x00\x01\x9c\x4f\
   6.393 +\x00\x00\x03\x5e\x00\x00\x00\x00\x00\x01\x00\x01\xe4\x70\
   6.394 +\x00\x00\x02\xfc\x00\x00\x00\x00\x00\x01\x00\x01\xb1\x1a\
   6.395  \x00\x00\x01\x14\x00\x00\x00\x00\x00\x01\x00\x00\xcb\xf1\
   6.396  \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
   6.397  "
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/OpenSecurity/bin/ui/ui_FormatDriveDialog.py	Wed Jun 25 21:49:09 2014 +0200
     7.3 @@ -0,0 +1,116 @@
     7.4 +# -*- coding: utf-8 -*-
     7.5 +
     7.6 +# Form implementation generated from reading ui file 'FormatDriveDialog.ui'
     7.7 +#
     7.8 +# Created: Wed Jun 25 21:47:35 2014
     7.9 +#      by: PyQt4 UI code generator 4.10.3
    7.10 +#
    7.11 +# WARNING! All changes made in this file will be lost!
    7.12 +
    7.13 +from PyQt4 import QtCore, QtGui
    7.14 +
    7.15 +try:
    7.16 +    _fromUtf8 = QtCore.QString.fromUtf8
    7.17 +except AttributeError:
    7.18 +    def _fromUtf8(s):
    7.19 +        return s
    7.20 +
    7.21 +try:
    7.22 +    _encoding = QtGui.QApplication.UnicodeUTF8
    7.23 +    def _translate(context, text, disambig):
    7.24 +        return QtGui.QApplication.translate(context, text, disambig, _encoding)
    7.25 +except AttributeError:
    7.26 +    def _translate(context, text, disambig):
    7.27 +        return QtGui.QApplication.translate(context, text, disambig)
    7.28 +
    7.29 +class Ui_FormatDriveDialog(object):
    7.30 +    def setupUi(self, FormatDriveDialog):
    7.31 +        FormatDriveDialog.setObjectName(_fromUtf8("FormatDriveDialog"))
    7.32 +        FormatDriveDialog.resize(420, 120)
    7.33 +        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
    7.34 +        sizePolicy.setHorizontalStretch(0)
    7.35 +        sizePolicy.setVerticalStretch(0)
    7.36 +        sizePolicy.setHeightForWidth(FormatDriveDialog.sizePolicy().hasHeightForWidth())
    7.37 +        FormatDriveDialog.setSizePolicy(sizePolicy)
    7.38 +        icon = QtGui.QIcon()
    7.39 +        icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/opensecurity/gfx/opensecurity_icon_64.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
    7.40 +        FormatDriveDialog.setWindowIcon(icon)
    7.41 +        self.lyMain = QtGui.QVBoxLayout(FormatDriveDialog)
    7.42 +        self.lyMain.setObjectName(_fromUtf8("lyMain"))
    7.43 +        self.lyContent = QtGui.QHBoxLayout()
    7.44 +        self.lyContent.setSpacing(16)
    7.45 +        self.lyContent.setObjectName(_fromUtf8("lyContent"))
    7.46 +        self.lblIcon = QtGui.QLabel(FormatDriveDialog)
    7.47 +        self.lblIcon.setText(_fromUtf8(""))
    7.48 +        self.lblIcon.setPixmap(QtGui.QPixmap(_fromUtf8(":/opensecurity/gfx/emblem-important.png")))
    7.49 +        self.lblIcon.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
    7.50 +        self.lblIcon.setObjectName(_fromUtf8("lblIcon"))
    7.51 +        self.lyContent.addWidget(self.lblIcon)
    7.52 +        self.lyCredentials = QtGui.QGridLayout()
    7.53 +        self.lyCredentials.setSpacing(4)
    7.54 +        self.lyCredentials.setObjectName(_fromUtf8("lyCredentials"))
    7.55 +        self.lblText = QtGui.QLabel(FormatDriveDialog)
    7.56 +        self.lblText.setTextFormat(QtCore.Qt.RichText)
    7.57 +        self.lblText.setObjectName(_fromUtf8("lblText"))
    7.58 +        self.lyCredentials.addWidget(self.lblText, 0, 0, 1, 2)
    7.59 +        self.wdCredentialsSpacer = QtGui.QWidget(FormatDriveDialog)
    7.60 +        self.wdCredentialsSpacer.setObjectName(_fromUtf8("wdCredentialsSpacer"))
    7.61 +        self.lyCredentials.addWidget(self.wdCredentialsSpacer, 3, 0, 1, 2)
    7.62 +        self.lblPassword = QtGui.QLabel(FormatDriveDialog)
    7.63 +        self.lblPassword.setObjectName(_fromUtf8("lblPassword"))
    7.64 +        self.lyCredentials.addWidget(self.lblPassword, 1, 0, 1, 1)
    7.65 +        self.lblKeyfile = QtGui.QLabel(FormatDriveDialog)
    7.66 +        self.lblKeyfile.setObjectName(_fromUtf8("lblKeyfile"))
    7.67 +        self.lyCredentials.addWidget(self.lblKeyfile, 2, 0, 1, 1)
    7.68 +        self.edtKeyfile = QtGui.QLineEdit(FormatDriveDialog)
    7.69 +        self.edtKeyfile.setObjectName(_fromUtf8("edtKeyfile"))
    7.70 +        self.lyCredentials.addWidget(self.edtKeyfile, 2, 1, 1, 1)
    7.71 +        self.btnBrowse = QtGui.QToolButton(FormatDriveDialog)
    7.72 +        self.btnBrowse.setObjectName(_fromUtf8("btnBrowse"))
    7.73 +        self.lyCredentials.addWidget(self.btnBrowse, 2, 2, 1, 1)
    7.74 +        self.edtPassword = QtGui.QLineEdit(FormatDriveDialog)
    7.75 +        self.edtPassword.setEchoMode(QtGui.QLineEdit.Password)
    7.76 +        self.edtPassword.setObjectName(_fromUtf8("edtPassword"))
    7.77 +        self.lyCredentials.addWidget(self.edtPassword, 1, 1, 1, 2)
    7.78 +        self.lyContent.addLayout(self.lyCredentials)
    7.79 +        self.lyMain.addLayout(self.lyContent)
    7.80 +        self.lyButtons = QtGui.QHBoxLayout()
    7.81 +        self.lyButtons.setObjectName(_fromUtf8("lyButtons"))
    7.82 +        spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
    7.83 +        self.lyButtons.addItem(spacerItem)
    7.84 +        self.btnAbout = QtGui.QPushButton(FormatDriveDialog)
    7.85 +        self.btnAbout.setMinimumSize(QtCore.QSize(100, 0))
    7.86 +        self.btnAbout.setObjectName(_fromUtf8("btnAbout"))
    7.87 +        self.lyButtons.addWidget(self.btnAbout)
    7.88 +        self.btnCancel = QtGui.QPushButton(FormatDriveDialog)
    7.89 +        self.btnCancel.setMinimumSize(QtCore.QSize(100, 0))
    7.90 +        self.btnCancel.setObjectName(_fromUtf8("btnCancel"))
    7.91 +        self.lyButtons.addWidget(self.btnCancel)
    7.92 +        self.btnOk = QtGui.QPushButton(FormatDriveDialog)
    7.93 +        self.btnOk.setMinimumSize(QtCore.QSize(100, 0))
    7.94 +        self.btnOk.setDefault(True)
    7.95 +        self.btnOk.setObjectName(_fromUtf8("btnOk"))
    7.96 +        self.lyButtons.addWidget(self.btnOk)
    7.97 +        self.lyMain.addLayout(self.lyButtons)
    7.98 +        self.lblPassword.setBuddy(self.edtPassword)
    7.99 +        self.lblKeyfile.setBuddy(self.edtKeyfile)
   7.100 +
   7.101 +        self.retranslateUi(FormatDriveDialog)
   7.102 +        QtCore.QMetaObject.connectSlotsByName(FormatDriveDialog)
   7.103 +        FormatDriveDialog.setTabOrder(self.edtPassword, self.edtKeyfile)
   7.104 +        FormatDriveDialog.setTabOrder(self.edtKeyfile, self.btnBrowse)
   7.105 +        FormatDriveDialog.setTabOrder(self.btnBrowse, self.btnAbout)
   7.106 +        FormatDriveDialog.setTabOrder(self.btnAbout, self.btnCancel)
   7.107 +        FormatDriveDialog.setTabOrder(self.btnCancel, self.btnOk)
   7.108 +
   7.109 +    def retranslateUi(self, FormatDriveDialog):
   7.110 +        FormatDriveDialog.setWindowTitle(_translate("FormatDriveDialog", "OpenSecuirty Format Drive", None))
   7.111 +        self.lblText.setText(_translate("FormatDriveDialog", "<b>Attention!</b>TextLabel", None))
   7.112 +        self.lblPassword.setText(_translate("FormatDriveDialog", "&Password:", None))
   7.113 +        self.lblKeyfile.setText(_translate("FormatDriveDialog", "&Keyfile:", None))
   7.114 +        self.btnBrowse.setText(_translate("FormatDriveDialog", "...", None))
   7.115 +        self.btnAbout.setText(_translate("FormatDriveDialog", "&About", None))
   7.116 +        self.btnCancel.setText(_translate("FormatDriveDialog", "&Cancel", None))
   7.117 +        self.btnOk.setText(_translate("FormatDriveDialog", "&Ok", None))
   7.118 +
   7.119 +import opensecurity_rc