diff --git a/TODO b/TODO index 73b4c72..704592e 100644 --- a/TODO +++ b/TODO @@ -47,13 +47,10 @@ TODO ✓ Navigation ✓ Editing: Name ✓ Deletion + ✓ Cache next and previous images Set context menu for definitions and the like Search document using QTextCursor? Comic view keyboard shortcuts - Comic view modes - Continuous paging - Double pages - Cache next and previous images Filetypes: ✓ cbz, cbr support ✓ Keep font settings enabled but only for background color @@ -81,6 +78,9 @@ TODO txt, doc, chm, djvu, fb2 support Include icons for filetype emblems Drag and drop support for the library + Comic view modes + Continuous paging + Double pages Leave comic images on disk in case tab isn't closed and files are remembered Ignore a / the / numbers for sorting purposes ? Add only one file type if multiple are present diff --git a/__main__.py b/__main__.py index b4300f0..50982d8 100755 --- a/__main__.py +++ b/__main__.py @@ -33,6 +33,7 @@ from settings import Settings from settingsdialog import SettingsUI from metadatadialog import MetadataUI +from definitionsdialog import DefinitionsUI class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): @@ -73,6 +74,9 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): # Initialize metadata dialog self.metadataDialog = MetadataUI(self) + # Initialize definition view dialog + self.definitionDialog = DefinitionsUI(self) + # Statusbar widgets self.statusMessage.setObjectName('statusMessage') self.statusBar.addPermanentWidget(self.statusMessage) @@ -388,8 +392,8 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): self.tabWidget.widget(self.tabWidget.currentIndex()).add_bookmark() def test_function(self): - print('Caesar si viveret, ad remum dareris') - self.metadataDialog.show() + # print('Caesar si viveret, ad remum dareris') + self.definitionDialog.find_definition('draft') def resizeEvent(self, event=None): if event: @@ -964,10 +968,6 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): self.settingsDialog.hide() def generate_library_context_menu(self, position): - # TODO - # The library might have multiple items selected - # Make sure the context menu actions are carried out on each - index = self.sender().indexAt(position) if not index.isValid(): return @@ -1142,6 +1142,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): self.hide() self.metadataDialog.hide() self.settingsDialog.hide() + self.definitionDialog.hide() self.temp_dir.remove() self.settings['last_open_books'] = [] diff --git a/definitionsdialog.py b/definitionsdialog.py new file mode 100644 index 0000000..3045a7f --- /dev/null +++ b/definitionsdialog.py @@ -0,0 +1,119 @@ +#!/usr/bin/env python3 + +# This file is a part of Lector, a Qt based ebook reader +# Copyright (C) 2017 BasioMeusPuga + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import requests +from PyQt5 import QtWidgets, QtCore, QtGui + +from resources import definitions + + +class DefinitionsUI(QtWidgets.QDialog, definitions.Ui_Dialog): + def __init__(self, parent): + super(DefinitionsUI, self).__init__() + self.setupUi(self) + + self.setWindowFlags( + QtCore.Qt.Popup | + QtCore.Qt.FramelessWindowHint) + + radius = 15 + path = QtGui.QPainterPath() + path.addRoundedRect(QtCore.QRectF(self.rect()), radius, radius) + mask = QtGui.QRegion(path.toFillPolygon().toPolygon()) + self.setMask(mask) + + foreground = QtGui.QColor().fromRgb(230, 230, 230) + background = QtGui.QColor().fromRgb(0, 0, 0) + + self.setStyleSheet( + "QDialog {{background-color: {0}}}".format(background.name())) + self.definitionView.setStyleSheet( + "QTextBrowser {{color: {0}; background-color: {1}}}".format( + foreground.name(), background.name())) + + self.app_id = 'bb7a91f9' + self.app_key = 'fefacdf6775c347b52e9efa2efe642ef' + self.language = 'en' + + self.root_url = 'https://od-api.oxforddictionaries.com:443/api/v1/inflections/' + self.define_url = 'https://od-api.oxforddictionaries.com:443/api/v1/entries/' + + self.root_url += self.language + '/' + self.define_url += self.language + '/' + + def api_call(self, url, word): + url = url + word.lower() + + r = requests.get( + url, + headers={'app_id': self.app_id, 'app_key': self.app_key}) + + if r.status_code != 200: + print('A firm nope on the dictionary finding thing') + return None + + return r.json() + + def find_definition(self, word): + word_root_json = self.api_call(self.root_url, word) + if not word_root_json: + return + word_root = word_root_json['results'][0]['lexicalEntries'][0]['inflectionOf'][0]['id'] + + definition_json = self.api_call(self.define_url, word_root) + + definitions = {} + for i in definition_json['results'][0]['lexicalEntries']: + category = i['lexicalCategory'] + this_sense = i['entries'][0]['senses'] + for j in this_sense: + + try: + this_definition = j['definitions'][0].capitalize() + except KeyError: + # The API also reports crossReferenceMarkers here + pass + + try: + definitions[category].add(this_definition) + except KeyError: + definitions[category] = set() + definitions[category].add(this_definition) + + self.set_text(word, word_root, definitions) + + def set_text(self, word, word_root, definitions): + html_string = '' + + # Word heading + html_string += f'

{word}

\n' + + # Word root + html_string += f'

Word root: {word_root}

\n' + + for i in definitions.items(): + category = i[0] + html_string += f'

{category}:

\n
    \n' + + for j in i[1]: + html_string += f'
  1. {j}
  2. \n' + + html_string += '
\n' + + self.definitionView.setHtml(html_string) + self.show() diff --git a/metadatadialog.py b/metadatadialog.py index ad54ee9..37a4169 100644 --- a/metadatadialog.py +++ b/metadatadialog.py @@ -29,19 +29,11 @@ class MetadataUI(QtWidgets.QDialog, metadata.Ui_Dialog): super(MetadataUI, self).__init__() self.setupUi(self) - self.parent = parent self.setWindowFlags( QtCore.Qt.Popup | QtCore.Qt.FramelessWindowHint) - self.database_path = self.parent.database_path - - self.book_index = None - self.book_year = None - self.previous_position = None - self.cover_for_database = None - - radius = 20.0 + radius = 15 path = QtGui.QPainterPath() path.addRoundedRect(QtCore.QRectF(self.rect()), radius, radius) mask = QtGui.QRegion(path.toFillPolygon().toPolygon()) @@ -55,8 +47,14 @@ class MetadataUI(QtWidgets.QDialog, metadata.Ui_Dialog): self.coverView.setStyleSheet( "QGraphicsView {{color: {0}; background-color: {1}}}".format( foreground.name(), background.name())) - self.okButton.setStyleSheet( - "QToolButton {background-color: red}") + + self.parent = parent + self.database_path = self.parent.database_path + + self.book_index = None + self.book_year = None + self.previous_position = None + self.cover_for_database = None self.coverView.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.coverView.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) diff --git a/resources/definitions.py b/resources/definitions.py new file mode 100644 index 0000000..7e1dd24 --- /dev/null +++ b/resources/definitions.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'raw/definition.ui' +# +# Created by: PyQt5 UI code generator 5.10.1 +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore, QtGui, QtWidgets + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(729, 318) + self.gridLayout = QtWidgets.QGridLayout(Dialog) + self.gridLayout.setObjectName("gridLayout") + self.verticalLayout = QtWidgets.QVBoxLayout() + self.verticalLayout.setObjectName("verticalLayout") + self.definitionView = QtWidgets.QTextBrowser(Dialog) + self.definitionView.setFrameShape(QtWidgets.QFrame.NoFrame) + self.definitionView.setFrameShadow(QtWidgets.QFrame.Plain) + self.definitionView.setObjectName("definitionView") + self.verticalLayout.addWidget(self.definitionView) + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacerItem) + self.okButton = QtWidgets.QPushButton(Dialog) + self.okButton.setText("") + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/images/checkmark.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.okButton.setIcon(icon) + self.okButton.setIconSize(QtCore.QSize(24, 24)) + self.okButton.setFlat(True) + self.okButton.setObjectName("okButton") + self.horizontalLayout.addWidget(self.okButton) + self.pronounceButton = QtWidgets.QPushButton(Dialog) + self.pronounceButton.setText("") + icon1 = QtGui.QIcon() + icon1.addPixmap(QtGui.QPixmap(":/images/QMPlay2.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.pronounceButton.setIcon(icon1) + self.pronounceButton.setIconSize(QtCore.QSize(24, 24)) + self.pronounceButton.setFlat(True) + self.pronounceButton.setObjectName("pronounceButton") + self.horizontalLayout.addWidget(self.pronounceButton) + spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacerItem1) + self.verticalLayout.addLayout(self.horizontalLayout) + self.gridLayout.addLayout(self.verticalLayout, 0, 0, 1, 1) + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.okButton.setToolTip(_translate("Dialog", "WERDS")) + self.pronounceButton.setToolTip(_translate("Dialog", "Play pronunciation of root word")) diff --git a/resources/raw/QMPlay2.svg b/resources/raw/QMPlay2.svg new file mode 100644 index 0000000..1d00077 --- /dev/null +++ b/resources/raw/QMPlay2.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/resources/raw/definition.ui b/resources/raw/definition.ui new file mode 100644 index 0000000..74e762e --- /dev/null +++ b/resources/raw/definition.ui @@ -0,0 +1,113 @@ + + + Dialog + + + + 0 + 0 + 729 + 318 + + + + Dialog + + + + + + + + QFrame::NoFrame + + + QFrame::Plain + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + WERDS + + + + + + + :/images/checkmark.svg:/images/checkmark.svg + + + + 24 + 24 + + + + true + + + + + + + Play pronunciation of root word + + + + + + + :/images/QMPlay2.svg:/images/QMPlay2.svg + + + + 24 + 24 + + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + diff --git a/resources/raw/resources.qrc b/resources/raw/resources.qrc index 5b4ab63..9d46946 100644 --- a/resources/raw/resources.qrc +++ b/resources/raw/resources.qrc @@ -1,5 +1,6 @@ + QMPlay2.svg color.svg blank.png gray-shadow.png diff --git a/resources/resources.py b/resources/resources.py index c30dca2..f4dc96c 100644 --- a/resources/resources.py +++ b/resources/resources.py @@ -9,30 +9,6 @@ from PyQt5 import QtCore qt_resource_data = b"\ -\x00\x00\x01\x55\ -\x3c\ -\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ -\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x34\ -\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x34\x22\x20\x76\x65\ -\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x76\x69\x65\x77\ -\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x31\x36\x20\x31\x36\x22\x3e\ -\x0a\x20\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\ -\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x30\x20\x2d\x31\x30\x33\ -\x36\x2e\x34\x29\x22\x3e\x0a\x20\x20\x3c\x63\x69\x72\x63\x6c\x65\ -\x20\x66\x69\x6c\x6c\x3d\x22\x23\x34\x63\x61\x66\x35\x30\x22\x20\ -\x63\x78\x3d\x22\x38\x22\x20\x63\x79\x3d\x22\x31\x30\x34\x34\x2e\ -\x34\x22\x20\x72\x3d\x22\x37\x22\x2f\x3e\x0a\x20\x20\x3c\x70\x61\ -\x74\x68\x20\x66\x69\x6c\x6c\x3d\x22\x23\x66\x66\x66\x22\x20\x64\ -\x3d\x22\x6d\x31\x31\x2e\x35\x33\x35\x20\x31\x30\x34\x30\x2e\x38\ -\x2d\x34\x2e\x32\x34\x32\x32\x20\x34\x2e\x32\x34\x32\x32\x2d\x32\ -\x2e\x38\x32\x38\x31\x2d\x32\x2e\x38\x32\x38\x31\x2d\x31\x2e\x34\ -\x31\x34\x31\x20\x31\x2e\x34\x31\x34\x31\x20\x32\x2e\x38\x32\x38\ -\x31\x20\x32\x2e\x38\x32\x38\x31\x20\x31\x2e\x34\x31\x34\x31\x20\ -\x31\x2e\x34\x31\x34\x31\x20\x35\x2e\x36\x35\x36\x33\x2d\x35\x2e\ -\x36\x35\x36\x33\x2d\x31\x2e\x34\x31\x34\x31\x2d\x31\x2e\x34\x31\ -\x34\x31\x7a\x22\x2f\x3e\x0a\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\ -\x76\x67\x3e\x0a\ \x00\x00\x00\xb1\ \x00\ \x00\x02\x97\x78\x9c\xeb\x0c\xf0\x73\xe7\xe5\x92\xe2\x62\x60\x60\ @@ -47,6 +23,119 @@ qt_resource_data = b"\ \x76\x11\x86\x51\x30\x22\xc0\x87\xb4\xcd\x8d\x0c\x8c\x9e\x1e\xcf\ \xbe\x83\x78\x9e\xae\x7e\x2e\xeb\x9c\x12\x9a\x00\x8a\x79\x2e\x80\ \ +\x00\x00\x00\xa3\ +\x00\ +\x00\x09\x38\x78\x9c\xeb\x0c\xf0\x73\xe7\xe5\x92\xe2\x62\x60\x60\ +\xe0\xf5\xf4\x70\x09\x62\x60\x60\x5c\xc2\xc0\xc0\x14\xc1\xc1\x06\ +\x14\xd1\xfd\x32\xe9\x14\x90\xe2\x2c\xf0\x88\x2c\x66\x60\x10\x2a\ +\x01\x61\xc6\x7b\x69\xf2\x15\x0c\x0c\x1c\xaf\x3c\x5d\x1c\x43\x2a\ +\xe6\xbc\xbd\x6a\xc8\x78\xc0\x80\xe7\xc0\x86\x35\x12\x87\xe7\x9f\ +\xe2\x5a\x6c\xa7\xc2\xf2\xef\xcf\xdb\x77\xf6\x0c\x1f\x6e\x54\xca\ +\x32\x30\x18\xb7\xb1\x38\xb4\x28\x32\x4e\x48\xf0\x60\x50\x91\x10\ +\x62\xe0\x04\x72\x9b\x46\xb9\xa3\xdc\x51\xee\x28\x77\x94\x3b\xca\ +\x1d\xe5\x8e\x72\x07\x39\xb7\x80\x91\xc5\x87\x6d\xf5\xcd\x67\x8b\ +\x6a\x80\x4d\x21\x06\x4f\x57\x3f\x97\x75\x4e\x09\x4d\x00\xf2\xfe\ +\xe3\x9e\ +\x00\x00\x06\x1b\ +\x00\ +\x00\x2e\x4f\x78\x9c\xed\x9a\x5d\x6f\xdb\x36\x14\x86\xef\xfb\x2b\ +\x04\xf5\xa6\xc5\x6c\x89\xa4\x24\x8a\x32\xec\x14\x1b\x8a\x0e\xbb\ +\x18\x06\xac\xed\x06\xec\x8e\x26\x29\x5b\xab\x2c\x19\x92\x1c\x27\ +\xf9\xf5\x23\x65\xeb\xc3\x36\xad\xfa\xa3\x32\x9a\x74\x36\xd2\x9a\ +\x3c\x87\x87\x87\x2f\x1f\x1e\x49\x4e\xc6\xef\x1e\x16\xb1\x71\x2f\ +\xb2\x3c\x4a\x93\x89\x09\x2d\x60\x1a\x22\x61\x29\x8f\x92\xd9\xc4\ +\xfc\xfc\xe9\xc3\x90\x98\x46\x5e\xd0\x84\xd3\x38\x4d\xc4\xc4\x4c\ +\x52\xf3\xdd\xdd\xab\x71\x7e\x3f\x7b\x65\x18\x86\x1c\x9c\xe4\x23\ +\xce\x26\xe6\xbc\x28\x96\x23\xdb\x5e\xae\xb2\xd8\x4a\xb3\x99\xcd\ +\x99\x2d\x62\xb1\x10\x49\x91\xdb\xd0\x82\xb6\xd9\xb8\xb3\xc6\x9d\ +\x65\x82\x16\xd1\xbd\x60\xe9\x62\x91\x26\x79\x39\x32\xc9\x5f\xb7\ +\x9c\x33\x1e\xd6\xde\xeb\xf5\xda\x5a\x3b\xa5\x13\x0c\x82\xc0\x06\ +\xc8\x46\x68\x28\x3d\x86\xf9\x63\x52\xd0\x87\xe1\xee\x50\x99\xa3\ +\x6e\x28\x02\x00\xd8\xd2\xd6\x78\x9e\xe6\x35\x7a\x88\xa3\xe4\xcb\ +\xd1\x64\x4a\x6b\x7b\x76\xa9\xe1\x52\xfe\xd4\x03\xaa\x0e\x2b\x4f\ +\x57\x19\x13\xa1\x1c\x29\xac\x44\x14\xf6\xfb\x4f\xef\x6b\xe3\x10\ +\x58\xbc\xe0\xad\x30\x32\x68\xce\xe8\x52\xec\xcc\x5b\x75\x6e\xf4\ +\xa2\x0b\x91\x2f\x29\x13\xb9\x5d\xf5\x97\xe3\xd7\x11\x2f\xe6\x13\ +\x13\xa1\xb2\x35\x17\xd1\x6c\x5e\xd4\xcd\xd6\x8e\xc3\x4d\x47\x24\ +\xd6\xbf\xa4\x0f\x13\x13\x18\xc0\x40\xc8\xd8\xfa\x45\x7c\x62\x4a\ +\x15\x02\x50\xb6\xaa\x2c\x47\x3c\x65\x6a\xda\x89\xc9\xd2\x38\xcd\ +\x86\x0b\x9a\xd0\x59\xb9\xd9\x56\x25\x59\x95\xca\xa8\x9e\x09\x58\ +\x01\xb2\x90\xe1\x31\x47\x10\xc0\x07\x06\x02\xd0\x1f\x02\x32\x04\ +\xd8\xbc\x93\x23\xc6\x0b\x51\x50\x4e\x0b\xaa\x46\x6f\x26\xae\x7a\ +\x02\xb7\xf4\x90\x3e\x72\xaf\x47\x7f\xbe\xff\xb0\x69\xc9\x36\x63\ +\xa3\xbf\xd3\xec\xcb\xb6\x29\x5f\xca\x81\x4e\xd3\x95\x5c\xa9\x79\ +\x57\x77\x8f\x39\x1b\x49\xbd\x17\xb4\xb8\x8b\x16\x32\x53\xb5\xb1\ +\x3f\x49\x7d\xc7\x76\x63\xd8\x71\x2e\x1e\x97\xa2\x09\xba\x09\x9b\ +\x89\xcd\xc6\x69\x59\xe7\x6c\x11\xa9\x41\xf6\xc7\x22\x8a\xe3\xdf\ +\xd4\x24\xa6\x61\xd7\x79\xda\xdb\x44\xb7\xcb\xb0\x5b\xeb\x18\xdb\ +\xd5\x32\xcb\x56\x2d\xb1\xd2\x97\xab\x5d\xd9\xc4\x58\xca\x88\xa5\ +\xd8\x13\xf3\x75\x58\xbe\xcc\x8d\x61\x9a\x66\x5c\x64\x95\x09\x97\ +\xaf\x1d\x53\x2a\xd9\x90\xb9\xc9\xad\xde\x76\xa7\xd3\x7f\x05\x2b\ +\x8a\x34\x16\x19\x4d\xd4\x7a\x20\xd8\x5a\x66\x99\x64\x46\xd7\xbf\ +\x8a\xb8\xd0\x19\xea\x5d\x56\xe9\xd5\x13\x69\xad\xf9\x9c\xf2\x74\ +\x2d\x01\xdc\x37\xae\xa3\x44\x1a\x86\x5b\x5c\x21\x42\xde\x11\x8f\ +\x0a\x61\x1f\xfb\x66\x03\x49\xad\x53\x50\x45\xce\xe7\xe9\x5a\xad\ +\x64\x62\x86\x34\xce\xc5\x7e\xb4\xa7\x34\x5d\xa8\x25\x58\x3e\x92\ +\x6f\x67\xdf\xcc\xd4\x19\xb0\x90\x1f\x60\x0c\xc1\x41\xb2\x4c\xe9\ +\x08\x8f\x24\x28\x47\x7a\x3e\x39\x62\x54\x03\xdd\x63\xc6\x05\x7d\ +\x88\x16\xd1\x93\xe0\x1a\xf1\xd8\x2a\xcb\xe4\xc9\x1a\xc6\xf4\x51\ +\x64\xd5\x69\xdc\xb0\x35\xe6\x22\xcc\x1b\x29\x54\xcb\xc5\xd5\x59\ +\x91\xf5\x48\xd0\xec\xd7\x8c\xf2\x48\x0e\xaf\x68\x56\x7e\xbb\x16\ +\x17\xd5\xcb\x94\x45\x07\x36\x9c\xc8\x16\x9a\x98\xa4\x6e\x3d\xc2\ +\x9d\x16\x6a\x7b\xce\xb6\xc1\x3e\x27\x51\x21\xeb\xe9\x2a\x17\xd9\ +\x47\x55\x93\xfe\x48\x3e\xcb\x1d\xa8\xcf\x41\x5e\xa4\xcb\xe6\x5c\ +\xa5\x61\x98\x8b\xa2\x59\x72\xb9\x79\xd2\x63\x58\xd1\x2c\x08\x24\ +\xbe\xdf\xb2\x96\xe5\x48\x7a\xa0\xf6\xe1\xd2\x07\xb5\x1c\xe8\x1c\ +\x8b\xcb\x39\xe4\x84\x69\xe2\xba\x27\xc4\xf5\xf0\xd1\xb8\x98\x7b\ +\xfe\x14\x6a\xe2\xe2\x13\xe2\xfa\xde\xb1\xb0\x88\xfa\x84\xe9\xc2\ +\x92\xaf\x87\x85\xc7\x82\x02\x48\x38\x9b\x6a\x82\x42\x50\x47\x1d\ +\xdb\xbb\xa8\x9c\x4f\x96\x7b\x29\x59\x5e\xdf\x68\x79\xd0\xc3\x3a\ +\x4d\x25\x35\x57\xb1\x25\x5c\x19\x58\xc7\x96\x5c\xd2\x55\x70\x09\ +\x1f\x0a\xa4\x0d\xec\x5f\x45\x97\x20\x0e\x80\x42\x17\x37\xb8\x02\ +\x2f\x81\x1d\x04\x74\x51\x11\xfc\x86\x78\xe1\x5d\xbc\xbc\xef\xa6\ +\x72\x4d\x05\x0b\x00\xd0\x2d\xff\x94\x12\xd3\x81\x57\x20\x18\x01\ +\x54\x17\xf8\x94\x1a\xd3\x81\x97\x0f\xa7\x81\xc3\x75\x81\x4f\xa8\ +\x32\x1d\x78\x39\x1e\x75\x49\xa8\x89\xeb\x80\xeb\xaa\x57\xc8\x74\ +\x32\x38\xe8\x1b\xe2\x45\x2e\xc6\xab\xef\xf2\xc5\x20\x63\x5a\xbe\ +\x9c\x53\xaa\x4c\xd7\xa5\x31\x64\x5c\x1f\xf8\x94\x2a\xd3\xc1\x57\ +\x08\x8e\x65\x7c\x42\x99\xe9\xe0\x2b\x94\x57\xf2\xd6\x46\xb5\xae\ +\xe5\xf0\x0a\xbe\x42\xe4\xb1\x1d\x91\xea\xa8\xce\x85\x7c\xd5\xb7\ +\x73\x69\x1c\xcb\xdb\xef\x89\x49\xe3\x35\x7d\xcc\x1b\xa4\xd4\xf3\ +\xe3\x68\x9e\x09\xf9\xbc\xfb\xba\xa3\xd0\x69\x40\xf5\x02\x70\x22\ +\x6e\x47\x70\xde\x05\x78\x0f\x6e\x6d\xb5\xfc\x24\x9f\x04\x72\xf5\ +\xe4\x24\x9f\xd2\x68\x91\x45\x0f\x6f\x80\x45\x40\x00\x30\x74\x83\ +\x01\x50\xef\xa6\x09\x2d\x0f\xf9\x1e\x20\xb0\xf9\xf4\xb6\x11\xb1\ +\x17\xb9\x50\xb7\x5c\xe8\x12\xb9\x5e\xae\x5a\xa4\x5b\x2d\xb7\x67\ +\xb8\x0e\x6b\xe5\x77\xae\x97\xdb\xad\x17\xee\x97\xae\x67\x27\xd7\ +\x57\x6a\x17\xf9\xbf\x76\x9d\x5e\xbb\x30\xb8\xa8\xd4\xbf\x5c\xb5\ +\x3a\x6b\x17\x06\x17\x55\xfa\x1f\xb6\x76\x61\x70\x51\xad\x7f\xc1\ +\x72\x75\xd6\x2e\x0c\x2e\x2a\xf5\x3f\x6e\xed\xba\xa8\xd4\xbf\x5c\ +\xb5\xba\x6b\x17\xec\xfb\xa6\xfe\xd9\x1d\xc6\xee\xda\x05\x7b\xbe\ +\xab\x7f\x76\x72\x75\xd7\x2e\xd8\xf7\x6d\xfd\x73\x93\xab\xbb\x76\ +\xc1\x9e\xef\xea\x9f\x9b\x5a\x5f\xa9\x5d\x7d\xdf\xd4\x3f\xbb\xc3\ +\xd8\x5d\xbb\x50\xcf\x77\xf5\xbd\xc9\x35\xb6\xd5\x2f\x1d\xcb\x4f\ +\xb3\xcd\x14\xc5\x41\x60\x68\x21\x07\x97\x31\x37\x9f\xa0\x05\x21\ +\xda\xfc\xfb\x76\x9b\x97\xd2\x64\x46\x48\xf5\xab\xcb\x59\x95\x6d\ +\x2b\x58\x96\x16\xb4\x10\x6f\xa0\x37\x20\x03\xf2\x76\x47\xcd\x99\ +\x87\x9b\x2f\x52\x97\xb4\x98\x57\x46\xf5\xa5\xde\x63\x2c\x26\x66\ +\x18\xc5\xf1\x68\x95\xc5\x6f\xf6\x37\xc6\x0b\x40\x13\xcb\x30\xd4\ +\x1f\x1d\x18\x64\x00\x8d\x7b\xc3\x37\xe6\xf2\xe7\x67\xc3\x1f\xf8\ +\x06\x28\xdf\xaa\xff\x9f\x96\xb3\x9a\x5a\xcd\xe6\x92\x76\x67\x83\ +\x49\x92\x48\x4c\xd2\x6c\xc8\x56\xd9\x3d\x2d\x56\x99\x50\xdf\xe7\ +\xb6\xbe\x92\x3c\x37\x53\xb4\x97\xe9\xef\x65\x46\xed\x0c\xe1\x80\ +\x94\x59\x3f\x69\xb2\xf4\xc0\x6d\xb2\x74\x35\x7a\x92\x52\x4f\xda\ +\xca\xd4\x1f\x0c\x8f\xa4\x89\x6e\x93\x26\x3e\x48\x53\x89\xb7\x9b\ +\xa2\x6f\xfc\x65\x10\xed\x96\x7b\xee\x05\x59\x8e\xed\xd9\x3e\xdf\ +\xdb\x3c\xb7\x7f\x39\x31\x02\x96\xbf\x0b\x36\xbe\x02\x6c\x72\x35\ +\xd8\xde\x4d\xc0\xc6\x60\xff\x08\x9e\x07\x36\xbe\x09\xd8\x18\xec\ +\x1f\xbf\x33\xc1\xc6\x37\x01\x5b\x3e\xc1\x5f\x05\x36\xee\x0b\x6c\ +\xa7\xb9\x04\x1d\x16\x75\x57\x57\xd4\xfd\x8b\xd9\x97\xcf\xe5\x57\ +\xb3\x8f\x6f\xc4\xfe\xfe\x29\x3d\x8f\x7d\xff\x36\xec\x43\xdd\x45\ +\xf2\x0c\xf6\xfd\xdb\xb0\x0f\x0f\x8f\xe8\x39\xec\xfb\xbd\xb1\xdf\ +\x81\x3e\x06\x1a\xf4\xc9\xe5\xe8\x43\xdd\xf5\xf7\x3c\xf4\xfd\xdb\ +\xa0\x0f\xf7\x0f\xe9\x79\xe8\x93\x1b\xa1\xaf\xbb\x8c\x9e\x81\x3e\ +\xb9\x0d\xfa\xe8\xf0\x84\x9e\x83\x3e\xb9\x02\xfd\xf2\xbf\xb1\xfa\ +\x93\xda\xbb\x57\xff\x01\x6d\x02\x15\x3b\ \x00\x00\x45\x13\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -1155,6 +1244,99 @@ qt_resource_data = b"\ \x00\x00\xd2\x04\x2f\x00\x00\x69\x82\x17\x00\x80\xb4\x2f\xb6\xe1\ \xd6\x4d\xdd\x20\x9a\xae\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ +\x00\x00\x01\x55\ +\x3c\ +\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ +\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x34\ +\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x34\x22\x20\x76\x65\ +\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x76\x69\x65\x77\ +\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x31\x36\x20\x31\x36\x22\x3e\ +\x0a\x20\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\ +\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x30\x20\x2d\x31\x30\x33\ +\x36\x2e\x34\x29\x22\x3e\x0a\x20\x20\x3c\x63\x69\x72\x63\x6c\x65\ +\x20\x66\x69\x6c\x6c\x3d\x22\x23\x34\x63\x61\x66\x35\x30\x22\x20\ +\x63\x78\x3d\x22\x38\x22\x20\x63\x79\x3d\x22\x31\x30\x34\x34\x2e\ +\x34\x22\x20\x72\x3d\x22\x37\x22\x2f\x3e\x0a\x20\x20\x3c\x70\x61\ +\x74\x68\x20\x66\x69\x6c\x6c\x3d\x22\x23\x66\x66\x66\x22\x20\x64\ +\x3d\x22\x6d\x31\x31\x2e\x35\x33\x35\x20\x31\x30\x34\x30\x2e\x38\ +\x2d\x34\x2e\x32\x34\x32\x32\x20\x34\x2e\x32\x34\x32\x32\x2d\x32\ +\x2e\x38\x32\x38\x31\x2d\x32\x2e\x38\x32\x38\x31\x2d\x31\x2e\x34\ +\x31\x34\x31\x20\x31\x2e\x34\x31\x34\x31\x20\x32\x2e\x38\x32\x38\ +\x31\x20\x32\x2e\x38\x32\x38\x31\x20\x31\x2e\x34\x31\x34\x31\x20\ +\x31\x2e\x34\x31\x34\x31\x20\x35\x2e\x36\x35\x36\x33\x2d\x35\x2e\ +\x36\x35\x36\x33\x2d\x31\x2e\x34\x31\x34\x31\x2d\x31\x2e\x34\x31\ +\x34\x31\x7a\x22\x2f\x3e\x0a\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\ +\x76\x67\x3e\x0a\ +\x00\x00\x04\x27\ +\x3c\ +\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ +\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x34\ +\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x34\x22\x20\x76\x65\ +\x72\x73\x69\x6f\x6e\x3d\x22\x31\x22\x3e\x0a\x20\x3c\x70\x61\x74\ +\x68\x20\x66\x69\x6c\x6c\x3d\x22\x23\x34\x66\x34\x66\x34\x66\x22\ +\x20\x64\x3d\x22\x6d\x33\x2e\x38\x31\x30\x32\x20\x32\x2e\x30\x30\ +\x30\x36\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\ +\x20\x30\x20\x30\x20\x30\x20\x2d\x31\x2e\x38\x31\x30\x32\x20\x31\ +\x2e\x35\x36\x38\x38\x76\x31\x36\x2e\x38\x36\x33\x61\x31\x2e\x37\ +\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\x20\x30\x20\x30\x20\x30\ +\x20\x32\x2e\x36\x35\x33\x36\x20\x31\x2e\x33\x35\x38\x6c\x38\x2e\ +\x32\x33\x31\x34\x2d\x34\x2e\x32\x31\x35\x20\x38\x2e\x32\x33\x31\ +\x2d\x34\x2e\x32\x31\x35\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\ +\x35\x36\x39\x34\x20\x30\x20\x30\x20\x30\x20\x30\x20\x2d\x32\x2e\ +\x37\x31\x38\x32\x6c\x2d\x38\x2e\x32\x33\x31\x2d\x34\x2e\x32\x31\ +\x36\x31\x2d\x38\x2e\x32\x33\x31\x34\x2d\x34\x2e\x32\x31\x35\x36\ +\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\x20\x30\ +\x20\x30\x20\x30\x20\x2d\x30\x2e\x38\x34\x33\x34\x20\x2d\x30\x2e\ +\x32\x30\x39\x37\x7a\x22\x2f\x3e\x0a\x20\x3c\x70\x61\x74\x68\x20\ +\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x2e\x32\x22\x20\x64\x3d\x22\ +\x6d\x35\x20\x35\x2e\x35\x76\x31\x34\x6c\x36\x2e\x38\x33\x32\x2d\ +\x33\x2e\x36\x37\x39\x20\x36\x2e\x31\x36\x38\x2d\x33\x2e\x33\x32\ +\x31\x2d\x36\x2e\x31\x36\x38\x2d\x33\x2e\x33\x32\x31\x33\x2d\x36\ +\x2e\x38\x33\x32\x2d\x33\x2e\x36\x37\x38\x37\x7a\x22\x2f\x3e\x0a\ +\x20\x3c\x70\x61\x74\x68\x20\x66\x69\x6c\x6c\x3d\x22\x23\x30\x30\ +\x65\x33\x38\x32\x22\x20\x64\x3d\x22\x6d\x35\x20\x35\x76\x31\x34\ +\x6c\x36\x2e\x38\x33\x32\x2d\x33\x2e\x36\x37\x39\x20\x36\x2e\x31\ +\x36\x38\x2d\x33\x2e\x33\x32\x31\x2d\x36\x2e\x31\x36\x38\x2d\x33\ +\x2e\x33\x32\x31\x33\x2d\x36\x2e\x38\x33\x32\x2d\x33\x2e\x36\x37\ +\x38\x37\x7a\x22\x2f\x3e\x0a\x20\x3c\x70\x61\x74\x68\x20\x66\x69\ +\x6c\x6c\x3d\x22\x23\x66\x66\x66\x22\x20\x6f\x70\x61\x63\x69\x74\ +\x79\x3d\x22\x2e\x31\x22\x20\x64\x3d\x22\x6d\x33\x2e\x38\x31\x30\ +\x35\x20\x32\x2e\x30\x30\x30\x32\x61\x31\x2e\x37\x36\x39\x31\x20\ +\x31\x2e\x35\x36\x39\x34\x20\x30\x20\x30\x20\x30\x20\x2d\x31\x2e\ +\x38\x31\x30\x35\x20\x31\x2e\x35\x36\x39\x33\x76\x30\x2e\x35\x61\ +\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\x20\x30\x20\ +\x30\x20\x31\x20\x31\x2e\x38\x31\x30\x35\x20\x2d\x31\x2e\x35\x36\ +\x39\x33\x20\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\ +\x20\x30\x20\x30\x20\x31\x20\x30\x2e\x38\x34\x32\x38\x20\x30\x2e\ +\x32\x30\x39\x39\x6c\x38\x2e\x32\x33\x31\x34\x20\x34\x2e\x32\x31\ +\x35\x38\x20\x38\x2e\x32\x33\x30\x35\x20\x34\x2e\x32\x31\x35\x38\ +\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\x20\x30\ +\x20\x30\x20\x31\x20\x30\x2e\x38\x36\x31\x33\x33\x20\x31\x2e\x31\ +\x30\x37\x34\x20\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\ +\x34\x20\x30\x20\x30\x20\x30\x20\x2d\x30\x2e\x38\x36\x31\x33\x33\ +\x20\x2d\x31\x2e\x36\x30\x37\x34\x6c\x2d\x38\x2e\x32\x33\x2d\x34\ +\x2e\x32\x31\x36\x31\x2d\x38\x2e\x32\x33\x31\x37\x2d\x34\x2e\x32\ +\x31\x35\x38\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\ +\x34\x20\x30\x20\x30\x20\x30\x20\x2d\x30\x2e\x38\x34\x32\x38\x20\ +\x2d\x30\x2e\x32\x30\x39\x39\x7a\x22\x2f\x3e\x0a\x20\x3c\x70\x61\ +\x74\x68\x20\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x2e\x32\x22\x20\ +\x64\x3d\x22\x6d\x32\x31\x2e\x39\x37\x37\x20\x31\x32\x2e\x32\x34\ +\x39\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\x20\ +\x30\x20\x30\x20\x31\x20\x2d\x30\x2e\x38\x36\x31\x33\x33\x20\x31\ +\x2e\x31\x31\x30\x34\x6c\x2d\x38\x2e\x32\x33\x30\x35\x20\x34\x2e\ +\x32\x31\x35\x38\x2d\x38\x2e\x32\x33\x31\x34\x20\x34\x2e\x32\x31\ +\x34\x38\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\x35\x36\x39\x34\ +\x20\x30\x20\x30\x20\x31\x20\x2d\x32\x2e\x36\x35\x34\x20\x2d\x31\ +\x2e\x33\x35\x38\x76\x30\x2e\x35\x61\x31\x2e\x37\x36\x39\x31\x20\ +\x31\x2e\x35\x36\x39\x34\x20\x30\x20\x30\x20\x30\x20\x32\x2e\x36\ +\x35\x33\x33\x20\x31\x2e\x33\x35\x38\x34\x6c\x38\x2e\x32\x33\x31\ +\x34\x2d\x34\x2e\x32\x31\x34\x38\x20\x38\x2e\x32\x33\x30\x35\x2d\ +\x34\x2e\x32\x31\x35\x38\x61\x31\x2e\x37\x36\x39\x31\x20\x31\x2e\ +\x35\x36\x39\x34\x20\x30\x20\x30\x20\x30\x20\x30\x2e\x38\x36\x31\ +\x33\x33\x20\x2d\x31\x2e\x36\x31\x30\x34\x7a\x22\x2f\x3e\x0a\x3c\ +\x2f\x73\x76\x67\x3e\x0a\ \x00\x00\x01\xb6\ \x3c\ \x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\ @@ -1185,119 +1367,6 @@ qt_resource_data = b"\ \x72\x6d\x3d\x22\x73\x63\x61\x6c\x65\x28\x2d\x31\x29\x22\x2f\x3e\ \x0a\x20\x20\x3c\x2f\x67\x3e\x0a\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\ \x73\x76\x67\x3e\x0a\ -\x00\x00\x06\x1b\ -\x00\ -\x00\x2e\x4f\x78\x9c\xed\x9a\x5d\x6f\xdb\x36\x14\x86\xef\xfb\x2b\ -\x04\xf5\xa6\xc5\x6c\x89\xa4\x24\x8a\x32\xec\x14\x1b\x8a\x0e\xbb\ -\x18\x06\xac\xed\x06\xec\x8e\x26\x29\x5b\xab\x2c\x19\x92\x1c\x27\ -\xf9\xf5\x23\x65\xeb\xc3\x36\xad\xfa\xa3\x32\x9a\x74\x36\xd2\x9a\ -\x3c\x87\x87\x87\x2f\x1f\x1e\x49\x4e\xc6\xef\x1e\x16\xb1\x71\x2f\ -\xb2\x3c\x4a\x93\x89\x09\x2d\x60\x1a\x22\x61\x29\x8f\x92\xd9\xc4\ -\xfc\xfc\xe9\xc3\x90\x98\x46\x5e\xd0\x84\xd3\x38\x4d\xc4\xc4\x4c\ -\x52\xf3\xdd\xdd\xab\x71\x7e\x3f\x7b\x65\x18\x86\x1c\x9c\xe4\x23\ -\xce\x26\xe6\xbc\x28\x96\x23\xdb\x5e\xae\xb2\xd8\x4a\xb3\x99\xcd\ -\x99\x2d\x62\xb1\x10\x49\x91\xdb\xd0\x82\xb6\xd9\xb8\xb3\xc6\x9d\ -\x65\x82\x16\xd1\xbd\x60\xe9\x62\x91\x26\x79\x39\x32\xc9\x5f\xb7\ -\x9c\x33\x1e\xd6\xde\xeb\xf5\xda\x5a\x3b\xa5\x13\x0c\x82\xc0\x06\ -\xc8\x46\x68\x28\x3d\x86\xf9\x63\x52\xd0\x87\xe1\xee\x50\x99\xa3\ -\x6e\x28\x02\x00\xd8\xd2\xd6\x78\x9e\xe6\x35\x7a\x88\xa3\xe4\xcb\ -\xd1\x64\x4a\x6b\x7b\x76\xa9\xe1\x52\xfe\xd4\x03\xaa\x0e\x2b\x4f\ -\x57\x19\x13\xa1\x1c\x29\xac\x44\x14\xf6\xfb\x4f\xef\x6b\xe3\x10\ -\x58\xbc\xe0\xad\x30\x32\x68\xce\xe8\x52\xec\xcc\x5b\x75\x6e\xf4\ -\xa2\x0b\x91\x2f\x29\x13\xb9\x5d\xf5\x97\xe3\xd7\x11\x2f\xe6\x13\ -\x13\xa1\xb2\x35\x17\xd1\x6c\x5e\xd4\xcd\xd6\x8e\xc3\x4d\x47\x24\ -\xd6\xbf\xa4\x0f\x13\x13\x18\xc0\x40\xc8\xd8\xfa\x45\x7c\x62\x4a\ -\x15\x02\x50\xb6\xaa\x2c\x47\x3c\x65\x6a\xda\x89\xc9\xd2\x38\xcd\ -\x86\x0b\x9a\xd0\x59\xb9\xd9\x56\x25\x59\x95\xca\xa8\x9e\x09\x58\ -\x01\xb2\x90\xe1\x31\x47\x10\xc0\x07\x06\x02\xd0\x1f\x02\x32\x04\ -\xd8\xbc\x93\x23\xc6\x0b\x51\x50\x4e\x0b\xaa\x46\x6f\x26\xae\x7a\ -\x02\xb7\xf4\x90\x3e\x72\xaf\x47\x7f\xbe\xff\xb0\x69\xc9\x36\x63\ -\xa3\xbf\xd3\xec\xcb\xb6\x29\x5f\xca\x81\x4e\xd3\x95\x5c\xa9\x79\ -\x57\x77\x8f\x39\x1b\x49\xbd\x17\xb4\xb8\x8b\x16\x32\x53\xb5\xb1\ -\x3f\x49\x7d\xc7\x76\x63\xd8\x71\x2e\x1e\x97\xa2\x09\xba\x09\x9b\ -\x89\xcd\xc6\x69\x59\xe7\x6c\x11\xa9\x41\xf6\xc7\x22\x8a\xe3\xdf\ -\xd4\x24\xa6\x61\xd7\x79\xda\xdb\x44\xb7\xcb\xb0\x5b\xeb\x18\xdb\ -\xd5\x32\xcb\x56\x2d\xb1\xd2\x97\xab\x5d\xd9\xc4\x58\xca\x88\xa5\ -\xd8\x13\xf3\x75\x58\xbe\xcc\x8d\x61\x9a\x66\x5c\x64\x95\x09\x97\ -\xaf\x1d\x53\x2a\xd9\x90\xb9\xc9\xad\xde\x76\xa7\xd3\x7f\x05\x2b\ -\x8a\x34\x16\x19\x4d\xd4\x7a\x20\xd8\x5a\x66\x99\x64\x46\xd7\xbf\ -\x8a\xb8\xd0\x19\xea\x5d\x56\xe9\xd5\x13\x69\xad\xf9\x9c\xf2\x74\ -\x2d\x01\xdc\x37\xae\xa3\x44\x1a\x86\x5b\x5c\x21\x42\xde\x11\x8f\ -\x0a\x61\x1f\xfb\x66\x03\x49\xad\x53\x50\x45\xce\xe7\xe9\x5a\xad\ -\x64\x62\x86\x34\xce\xc5\x7e\xb4\xa7\x34\x5d\xa8\x25\x58\x3e\x92\ -\x6f\x67\xdf\xcc\xd4\x19\xb0\x90\x1f\x60\x0c\xc1\x41\xb2\x4c\xe9\ -\x08\x8f\x24\x28\x47\x7a\x3e\x39\x62\x54\x03\xdd\x63\xc6\x05\x7d\ -\x88\x16\xd1\x93\xe0\x1a\xf1\xd8\x2a\xcb\xe4\xc9\x1a\xc6\xf4\x51\ -\x64\xd5\x69\xdc\xb0\x35\xe6\x22\xcc\x1b\x29\x54\xcb\xc5\xd5\x59\ -\x91\xf5\x48\xd0\xec\xd7\x8c\xf2\x48\x0e\xaf\x68\x56\x7e\xbb\x16\ -\x17\xd5\xcb\x94\x45\x07\x36\x9c\xc8\x16\x9a\x98\xa4\x6e\x3d\xc2\ -\x9d\x16\x6a\x7b\xce\xb6\xc1\x3e\x27\x51\x21\xeb\xe9\x2a\x17\xd9\ -\x47\x55\x93\xfe\x48\x3e\xcb\x1d\xa8\xcf\x41\x5e\xa4\xcb\xe6\x5c\ -\xa5\x61\x98\x8b\xa2\x59\x72\xb9\x79\xd2\x63\x58\xd1\x2c\x08\x24\ -\xbe\xdf\xb2\x96\xe5\x48\x7a\xa0\xf6\xe1\xd2\x07\xb5\x1c\xe8\x1c\ -\x8b\xcb\x39\xe4\x84\x69\xe2\xba\x27\xc4\xf5\xf0\xd1\xb8\x98\x7b\ -\xfe\x14\x6a\xe2\xe2\x13\xe2\xfa\xde\xb1\xb0\x88\xfa\x84\xe9\xc2\ -\x92\xaf\x87\x85\xc7\x82\x02\x48\x38\x9b\x6a\x82\x42\x50\x47\x1d\ -\xdb\xbb\xa8\x9c\x4f\x96\x7b\x29\x59\x5e\xdf\x68\x79\xd0\xc3\x3a\ -\x4d\x25\x35\x57\xb1\x25\x5c\x19\x58\xc7\x96\x5c\xd2\x55\x70\x09\ -\x1f\x0a\xa4\x0d\xec\x5f\x45\x97\x20\x0e\x80\x42\x17\x37\xb8\x02\ -\x2f\x81\x1d\x04\x74\x51\x11\xfc\x86\x78\xe1\x5d\xbc\xbc\xef\xa6\ -\x72\x4d\x05\x0b\x00\xd0\x2d\xff\x94\x12\xd3\x81\x57\x20\x18\x01\ -\x54\x17\xf8\x94\x1a\xd3\x81\x97\x0f\xa7\x81\xc3\x75\x81\x4f\xa8\ -\x32\x1d\x78\x39\x1e\x75\x49\xa8\x89\xeb\x80\xeb\xaa\x57\xc8\x74\ -\x32\x38\xe8\x1b\xe2\x45\x2e\xc6\xab\xef\xf2\xc5\x20\x63\x5a\xbe\ -\x9c\x53\xaa\x4c\xd7\xa5\x31\x64\x5c\x1f\xf8\x94\x2a\xd3\xc1\x57\ -\x08\x8e\x65\x7c\x42\x99\xe9\xe0\x2b\x94\x57\xf2\xd6\x46\xb5\xae\ -\xe5\xf0\x0a\xbe\x42\xe4\xb1\x1d\x91\xea\xa8\xce\x85\x7c\xd5\xb7\ -\x73\x69\x1c\xcb\xdb\xef\x89\x49\xe3\x35\x7d\xcc\x1b\xa4\xd4\xf3\ -\xe3\x68\x9e\x09\xf9\xbc\xfb\xba\xa3\xd0\x69\x40\xf5\x02\x70\x22\ -\x6e\x47\x70\xde\x05\x78\x0f\x6e\x6d\xb5\xfc\x24\x9f\x04\x72\xf5\ -\xe4\x24\x9f\xd2\x68\x91\x45\x0f\x6f\x80\x45\x40\x00\x30\x74\x83\ -\x01\x50\xef\xa6\x09\x2d\x0f\xf9\x1e\x20\xb0\xf9\xf4\xb6\x11\xb1\ -\x17\xb9\x50\xb7\x5c\xe8\x12\xb9\x5e\xae\x5a\xa4\x5b\x2d\xb7\x67\ -\xb8\x0e\x6b\xe5\x77\xae\x97\xdb\xad\x17\xee\x97\xae\x67\x27\xd7\ -\x57\x6a\x17\xf9\xbf\x76\x9d\x5e\xbb\x30\xb8\xa8\xd4\xbf\x5c\xb5\ -\x3a\x6b\x17\x06\x17\x55\xfa\x1f\xb6\x76\x61\x70\x51\xad\x7f\xc1\ -\x72\x75\xd6\x2e\x0c\x2e\x2a\xf5\x3f\x6e\xed\xba\xa8\xd4\xbf\x5c\ -\xb5\xba\x6b\x17\xec\xfb\xa6\xfe\xd9\x1d\xc6\xee\xda\x05\x7b\xbe\ -\xab\x7f\x76\x72\x75\xd7\x2e\xd8\xf7\x6d\xfd\x73\x93\xab\xbb\x76\ -\xc1\x9e\xef\xea\x9f\x9b\x5a\x5f\xa9\x5d\x7d\xdf\xd4\x3f\xbb\xc3\ -\xd8\x5d\xbb\x50\xcf\x77\xf5\xbd\xc9\x35\xb6\xd5\x2f\x1d\xcb\x4f\ -\xb3\xcd\x14\xc5\x41\x60\x68\x21\x07\x97\x31\x37\x9f\xa0\x05\x21\ -\xda\xfc\xfb\x76\x9b\x97\xd2\x64\x46\x48\xf5\xab\xcb\x59\x95\x6d\ -\x2b\x58\x96\x16\xb4\x10\x6f\xa0\x37\x20\x03\xf2\x76\x47\xcd\x99\ -\x87\x9b\x2f\x52\x97\xb4\x98\x57\x46\xf5\xa5\xde\x63\x2c\x26\x66\ -\x18\xc5\xf1\x68\x95\xc5\x6f\xf6\x37\xc6\x0b\x40\x13\xcb\x30\xd4\ -\x1f\x1d\x18\x64\x00\x8d\x7b\xc3\x37\xe6\xf2\xe7\x67\xc3\x1f\xf8\ -\x06\x28\xdf\xaa\xff\x9f\x96\xb3\x9a\x5a\xcd\xe6\x92\x76\x67\x83\ -\x49\x92\x48\x4c\xd2\x6c\xc8\x56\xd9\x3d\x2d\x56\x99\x50\xdf\xe7\ -\xb6\xbe\x92\x3c\x37\x53\xb4\x97\xe9\xef\x65\x46\xed\x0c\xe1\x80\ -\x94\x59\x3f\x69\xb2\xf4\xc0\x6d\xb2\x74\x35\x7a\x92\x52\x4f\xda\ -\xca\xd4\x1f\x0c\x8f\xa4\x89\x6e\x93\x26\x3e\x48\x53\x89\xb7\x9b\ -\xa2\x6f\xfc\x65\x10\xed\x96\x7b\xee\x05\x59\x8e\xed\xd9\x3e\xdf\ -\xdb\x3c\xb7\x7f\x39\x31\x02\x96\xbf\x0b\x36\xbe\x02\x6c\x72\x35\ -\xd8\xde\x4d\xc0\xc6\x60\xff\x08\x9e\x07\x36\xbe\x09\xd8\x18\xec\ -\x1f\xbf\x33\xc1\xc6\x37\x01\x5b\x3e\xc1\x5f\x05\x36\xee\x0b\x6c\ -\xa7\xb9\x04\x1d\x16\x75\x57\x57\xd4\xfd\x8b\xd9\x97\xcf\xe5\x57\ -\xb3\x8f\x6f\xc4\xfe\xfe\x29\x3d\x8f\x7d\xff\x36\xec\x43\xdd\x45\ -\xf2\x0c\xf6\xfd\xdb\xb0\x0f\x0f\x8f\xe8\x39\xec\xfb\xbd\xb1\xdf\ -\x81\x3e\x06\x1a\xf4\xc9\xe5\xe8\x43\xdd\xf5\xf7\x3c\xf4\xfd\xdb\ -\xa0\x0f\xf7\x0f\xe9\x79\xe8\x93\x1b\xa1\xaf\xbb\x8c\x9e\x81\x3e\ -\xb9\x0d\xfa\xe8\xf0\x84\x9e\x83\x3e\xb9\x02\xfd\xf2\xbf\xb1\xfa\ -\x93\xda\xbb\x57\xff\x01\x6d\x02\x15\x3b\ -\x00\x00\x00\xa3\ -\x00\ -\x00\x09\x38\x78\x9c\xeb\x0c\xf0\x73\xe7\xe5\x92\xe2\x62\x60\x60\ -\xe0\xf5\xf4\x70\x09\x62\x60\x60\x5c\xc2\xc0\xc0\x14\xc1\xc1\x06\ -\x14\xd1\xfd\x32\xe9\x14\x90\xe2\x2c\xf0\x88\x2c\x66\x60\x10\x2a\ -\x01\x61\xc6\x7b\x69\xf2\x15\x0c\x0c\x1c\xaf\x3c\x5d\x1c\x43\x2a\ -\xe6\xbc\xbd\x6a\xc8\x78\xc0\x80\xe7\xc0\x86\x35\x12\x87\xe7\x9f\ -\xe2\x5a\x6c\xa7\xc2\xf2\xef\xcf\xdb\x77\xf6\x0c\x1f\x6e\x54\xca\ -\x32\x30\x18\xb7\xb1\x38\xb4\x28\x32\x4e\x48\xf0\x60\x50\x91\x10\ -\x62\xe0\x04\x72\x9b\x46\xb9\xa3\xdc\x51\xee\x28\x77\x94\x3b\xca\ -\x1d\xe5\x8e\x72\x07\x39\xb7\x80\x91\xc5\x87\x6d\xf5\xcd\x67\x8b\ -\x6a\x80\x4d\x21\x06\x4f\x57\x3f\x97\x75\x4e\x09\x4d\x00\xf2\xfe\ -\xe3\x9e\ " qt_resource_name = b"\ @@ -1305,59 +1374,66 @@ qt_resource_name = b"\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ -\x00\x0d\ -\x0b\x5d\x1f\x07\ -\x00\x63\ -\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x6d\x00\x61\x00\x72\x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x09\ \x08\x4e\x85\x07\ \x00\x62\ \x00\x6c\x00\x61\x00\x6e\x00\x6b\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x0c\ -\x02\xea\x4d\x87\ -\x00\x4e\ -\x00\x6f\x00\x74\x00\x46\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x09\ -\x09\x65\x83\xe7\ -\x00\x65\ -\x00\x72\x00\x72\x00\x6f\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x09\ -\x03\x65\x8e\x07\ -\x00\x63\ -\x00\x6f\x00\x6c\x00\x6f\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x0f\ \x0a\xe2\xd1\x87\ \x00\x67\ \x00\x72\x00\x61\x00\x79\x00\x2d\x00\x73\x00\x68\x00\x61\x00\x64\x00\x6f\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x09\ +\x03\x65\x8e\x07\ +\x00\x63\ +\x00\x6f\x00\x6c\x00\x6f\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0c\ +\x02\xea\x4d\x87\ +\x00\x4e\ +\x00\x6f\x00\x74\x00\x46\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0d\ +\x0b\x5d\x1f\x07\ +\x00\x63\ +\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x6d\x00\x61\x00\x72\x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0b\ +\x08\x69\x14\x87\ +\x00\x51\ +\x00\x4d\x00\x50\x00\x6c\x00\x61\x00\x79\x00\x32\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x09\ +\x09\x65\x83\xe7\ +\x00\x65\ +\x00\x72\x00\x72\x00\x6f\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\ " qt_resource_struct_v1 = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\ -\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x02\x0e\ -\x00\x00\x00\x80\x00\x01\x00\x00\x00\x01\x00\x00\x48\xdf\ -\x00\x00\x00\x32\x00\x01\x00\x00\x00\x01\x00\x00\x01\x59\ -\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x47\x25\ -\x00\x00\x00\x98\x00\x01\x00\x00\x00\x01\x00\x00\x4e\xfe\ -\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x02\ +\x00\x00\x00\x66\x00\x00\x00\x00\x00\x01\x00\x00\x07\x7b\ +\x00\x00\x00\x4e\x00\x01\x00\x00\x00\x01\x00\x00\x01\x5c\ +\x00\x00\x00\x12\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x01\x00\x00\x4d\xeb\ +\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x01\x00\x00\x52\x16\ +\x00\x00\x00\x2a\x00\x01\x00\x00\x00\x01\x00\x00\x00\xb5\ +\x00\x00\x00\x84\x00\x00\x00\x00\x00\x01\x00\x00\x4c\x92\ " qt_resource_struct_v2 = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x02\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x02\x0e\ +\x00\x00\x00\x66\x00\x00\x00\x00\x00\x01\x00\x00\x07\x7b\ \x00\x00\x01\x5f\xb9\x9f\xca\xd0\ -\x00\x00\x00\x80\x00\x01\x00\x00\x00\x01\x00\x00\x48\xdf\ +\x00\x00\x00\x4e\x00\x01\x00\x00\x00\x01\x00\x00\x01\x5c\ \x00\x00\x01\x61\xf1\x68\x3f\x43\ -\x00\x00\x00\x32\x00\x01\x00\x00\x00\x01\x00\x00\x01\x59\ +\x00\x00\x00\x12\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x01\x60\x5a\x92\x05\xe5\ -\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x47\x25\ +\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x01\x00\x00\x4d\xeb\ +\x00\x00\x01\x61\x94\x8b\x8c\xc8\ +\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x01\x00\x00\x52\x16\ \x00\x00\x01\x5f\x7e\xcc\x7f\x20\ -\x00\x00\x00\x98\x00\x01\x00\x00\x00\x01\x00\x00\x4e\xfe\ +\x00\x00\x00\x2a\x00\x01\x00\x00\x00\x01\x00\x00\x00\xb5\ \x00\x00\x01\x5f\xf0\x1d\xc2\x38\ -\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x00\x84\x00\x00\x00\x00\x00\x01\x00\x00\x4c\x92\ \x00\x00\x01\x5f\x7e\xcc\x7f\x20\ "