diff --git a/.gitignore b/.gitignore
index bbd6044..ed83f3f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,5 @@ dev_iDeLUCS/*
.DS_Store
Results/
*/__pycache__/*
+build/*
+dist/*
diff --git a/GUI_iDeLUCS.py b/GUI_iDeLUCS.py
index 113ea42..1f84c80 100644
--- a/GUI_iDeLUCS.py
+++ b/GUI_iDeLUCS.py
@@ -16,17 +16,18 @@
sys.stdout.write("\r... loading libraries [20%]..........")
sys.stdout.flush()
-from src import models
-from src.utils import SummaryFasta, PlotPolygon, plot_confusion_matrix, \
+from idelucs import LossFunctions, kmers_non_cython, PytorchUtils, ResNet, utils
+from idelucs import models
+from idelucs.utils import SummaryFasta, PlotPolygon, plot_confusion_matrix, \
compute_results
-from src.utils_GUI import define_ToolTips
+from idelucs.utils_GUI import define_ToolTips
import numpy as np
import torch
import random
import pandas as pd
import os
import csv
-from src.utils import label_features
+from idelucs.utils import label_features
sys.stdout.write("\r... loading libraries [50%]..........")
sys.stdout.flush()
import umap
diff --git a/README.md b/README.md
index 3e0fda8..5aab9cf 100644
--- a/README.md
+++ b/README.md
@@ -32,6 +32,18 @@ $ pip install -r requirements.txt
$ python iDeLUCS.py -h
```
+### (Optional) Using the GUI on Apple Silicon-based Macs
+The current `pip` distribution of `PyQt5` does not support Apple Silicon. However, to make it work we can use the `brew` distribution of `PyQt5` and then point to that distribution from within the `virtualenv`.
+1. Ensure that `homebrew` is installed correctly.
+2. `brew install PyQt5`
+3. Run `brew --prefix PyQt5` to see where `PyQt5` is installed.
+4. Append `/lib/python3.9/site-packages/PyQt5` to the end of the string returned from the previous command.
+5. Navigate to the root `iDeLUCS` folder.
+6. Establish a symbolic link between the `brew` installed `PyQt5` package and the virtual environment's `site-packages` folder.
+ - Example: `ln -s /opt/homebrew/opt/pyqt@5/lib/python3.9/site-packages/PyQt5 /Users/shaneding/Desktop/iDeLUCS/dev_iDeLUCS/lib/python3.10/site-packages`
+
+If the above does not work, try seeing what different versions of python are inside `/opt/homebrew/opt/pyqt@5/lib` and try linking to a different version.
+
### Clustering parameters
iDeLUCS assigns a cluster identifier to all the DNA sequences present in a sigle FASTA file. The path to this file must be provided as input in both the CLI and the GUI versions of iDeLUCS. There are several hyperparameters that are required to perform the clustering. The user may use the default values or select a specific one depending on the amount of information that is available about the dataset.
diff --git a/Unsupervised.py b/Unsupervised.py
index ba26610..b942a68 100644
--- a/Unsupervised.py
+++ b/Unsupervised.py
@@ -8,7 +8,7 @@
from sklearn import mixture
from sklearn.cluster import KMeans
-from src.utils import SummaryFasta, compute_results, kmersFasta
+from idelucs.utils import SummaryFasta, compute_results, kmersFasta
import argparse
import time
diff --git a/dist/Loading.gif b/dist/Loading.gif
deleted file mode 100644
index baa56ed..0000000
Binary files a/dist/Loading.gif and /dev/null differ
diff --git a/dist/breeze.qrc b/dist/breeze.qrc
deleted file mode 100644
index e65d2a8..0000000
--- a/dist/breeze.qrc
+++ /dev/null
@@ -1,118 +0,0 @@
-
-
- dark/branch_closed.svg
- dark/branch_closed_hover.svg
- dark/branch_end.svg
- dark/branch_end_arrow.svg
- dark/branch_more.svg
- dark/branch_more_arrow.svg
- dark/branch_open.svg
- dark/branch_open_hover.svg
- dark/calendar_next.svg
- dark/calendar_previous.svg
- dark/checkbox_checked.svg
- dark/checkbox_checked_disabled.svg
- dark/checkbox_indeterminate.svg
- dark/checkbox_indeterminate_disabled.svg
- dark/checkbox_unchecked.svg
- dark/checkbox_unchecked_disabled.svg
- dark/close.svg
- dark/close_hover.svg
- dark/close_pressed.svg
- dark/dialog_cancel.svg
- dark/dialog_close.svg
- dark/dialog_discard.svg
- dark/dialog_help.svg
- dark/dialog_no.svg
- dark/dialog_ok.svg
- dark/dialog_open.svg
- dark/dialog_reset.svg
- dark/dialog_save.svg
- dark/down_arrow.svg
- dark/down_arrow_disabled.svg
- dark/down_arrow_hover.svg
- dark/hmovetoolbar.svg
- dark/hseptoolbar.svg
- dark/left_arrow.svg
- dark/left_arrow_disabled.svg
- dark/message_critical.svg
- dark/message_information.svg
- dark/message_question.svg
- dark/message_warning.svg
- dark/radio_checked.svg
- dark/radio_checked_disabled.svg
- dark/radio_unchecked.svg
- dark/radio_unchecked_disabled.svg
- dark/right_arrow.svg
- dark/right_arrow_disabled.svg
- dark/sizegrip.svg
- dark/stylesheet.qss
- dark/transparent.svg
- dark/undock.svg
- dark/undock_hover.svg
- dark/undock_hover_pressed.svg
- dark/up_arrow.svg
- dark/up_arrow_disabled.svg
- dark/up_arrow_hover.svg
- dark/vline.svg
- dark/vmovetoolbar.svg
- dark/vseptoolbar.svg
- light/branch_closed.svg
- light/branch_closed_hover.svg
- light/branch_end.svg
- light/branch_end_arrow.svg
- light/branch_more.svg
- light/branch_more_arrow.svg
- light/branch_open.svg
- light/branch_open_hover.svg
- light/calendar_next.svg
- light/calendar_previous.svg
- light/checkbox_checked.svg
- light/checkbox_checked_disabled.svg
- light/checkbox_indeterminate.svg
- light/checkbox_indeterminate_disabled.svg
- light/checkbox_unchecked.svg
- light/checkbox_unchecked_disabled.svg
- light/close.svg
- light/close_hover.svg
- light/close_pressed.svg
- light/dialog_cancel.svg
- light/dialog_close.svg
- light/dialog_discard.svg
- light/dialog_help.svg
- light/dialog_no.svg
- light/dialog_ok.svg
- light/dialog_open.svg
- light/dialog_reset.svg
- light/dialog_save.svg
- light/down_arrow.svg
- light/down_arrow_disabled.svg
- light/down_arrow_hover.svg
- light/hmovetoolbar.svg
- light/hseptoolbar.svg
- light/left_arrow.svg
- light/left_arrow_disabled.svg
- light/message_critical.svg
- light/message_information.svg
- light/message_question.svg
- light/message_warning.svg
- light/radio_checked.svg
- light/radio_checked_disabled.svg
- light/radio_unchecked.svg
- light/radio_unchecked_disabled.svg
- light/right_arrow.svg
- light/right_arrow_disabled.svg
- light/sizegrip.svg
- light/stylesheet.qss
- light/transparent.svg
- light/undock.svg
- light/undock_hover.svg
- light/undock_hover_pressed.svg
- light/up_arrow.svg
- light/up_arrow_disabled.svg
- light/up_arrow_hover.svg
- light/vline.svg
- light/vmovetoolbar.svg
- light/vseptoolbar.svg
-
-
diff --git a/dist/dark/branch_closed.svg b/dist/dark/branch_closed.svg
deleted file mode 100644
index e8e8d91..0000000
--- a/dist/dark/branch_closed.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/branch_closed_hover.svg b/dist/dark/branch_closed_hover.svg
deleted file mode 100644
index 71873dc..0000000
--- a/dist/dark/branch_closed_hover.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/branch_end.svg b/dist/dark/branch_end.svg
deleted file mode 100644
index 7e8888e..0000000
--- a/dist/dark/branch_end.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/dist/dark/branch_end_arrow.svg b/dist/dark/branch_end_arrow.svg
deleted file mode 100644
index d5aaabd..0000000
--- a/dist/dark/branch_end_arrow.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/dist/dark/branch_more.svg b/dist/dark/branch_more.svg
deleted file mode 100644
index a6d2b6e..0000000
--- a/dist/dark/branch_more.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/dist/dark/branch_more_arrow.svg b/dist/dark/branch_more_arrow.svg
deleted file mode 100644
index 6c4935a..0000000
--- a/dist/dark/branch_more_arrow.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/dist/dark/branch_open.svg b/dist/dark/branch_open.svg
deleted file mode 100644
index 031aa44..0000000
--- a/dist/dark/branch_open.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/branch_open_hover.svg b/dist/dark/branch_open_hover.svg
deleted file mode 100644
index 3081521..0000000
--- a/dist/dark/branch_open_hover.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/calendar_next.svg b/dist/dark/calendar_next.svg
deleted file mode 100644
index 6131893..0000000
--- a/dist/dark/calendar_next.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/calendar_previous.svg b/dist/dark/calendar_previous.svg
deleted file mode 100644
index 8382adf..0000000
--- a/dist/dark/calendar_previous.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/checkbox_checked.svg b/dist/dark/checkbox_checked.svg
deleted file mode 100644
index bbee00e..0000000
--- a/dist/dark/checkbox_checked.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/dist/dark/checkbox_checked_disabled.svg b/dist/dark/checkbox_checked_disabled.svg
deleted file mode 100644
index 0508e92..0000000
--- a/dist/dark/checkbox_checked_disabled.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/dist/dark/checkbox_indeterminate.svg b/dist/dark/checkbox_indeterminate.svg
deleted file mode 100644
index d891422..0000000
--- a/dist/dark/checkbox_indeterminate.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/dark/checkbox_indeterminate_disabled.svg b/dist/dark/checkbox_indeterminate_disabled.svg
deleted file mode 100644
index 2ba0edf..0000000
--- a/dist/dark/checkbox_indeterminate_disabled.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/dark/checkbox_unchecked.svg b/dist/dark/checkbox_unchecked.svg
deleted file mode 100644
index ec56272..0000000
--- a/dist/dark/checkbox_unchecked.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/dist/dark/checkbox_unchecked_disabled.svg b/dist/dark/checkbox_unchecked_disabled.svg
deleted file mode 100644
index bedb0fd..0000000
--- a/dist/dark/checkbox_unchecked_disabled.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/dist/dark/close.svg b/dist/dark/close.svg
deleted file mode 100644
index df9dde2..0000000
--- a/dist/dark/close.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/close_hover.svg b/dist/dark/close_hover.svg
deleted file mode 100644
index cc62728..0000000
--- a/dist/dark/close_hover.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/close_pressed.svg b/dist/dark/close_pressed.svg
deleted file mode 100644
index 1d4dc43..0000000
--- a/dist/dark/close_pressed.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/dialog_cancel.svg b/dist/dark/dialog_cancel.svg
deleted file mode 100644
index 226499f..0000000
--- a/dist/dark/dialog_cancel.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/dark/dialog_close.svg b/dist/dark/dialog_close.svg
deleted file mode 100644
index c2174c2..0000000
--- a/dist/dark/dialog_close.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/dark/dialog_discard.svg b/dist/dark/dialog_discard.svg
deleted file mode 100644
index b711b61..0000000
--- a/dist/dark/dialog_discard.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/dark/dialog_help.svg b/dist/dark/dialog_help.svg
deleted file mode 100644
index 46153b6..0000000
--- a/dist/dark/dialog_help.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/dark/dialog_no.svg b/dist/dark/dialog_no.svg
deleted file mode 100644
index e9f5245..0000000
--- a/dist/dark/dialog_no.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/dark/dialog_ok.svg b/dist/dark/dialog_ok.svg
deleted file mode 100644
index d236e77..0000000
--- a/dist/dark/dialog_ok.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/dark/dialog_open.svg b/dist/dark/dialog_open.svg
deleted file mode 100644
index 5fa68c3..0000000
--- a/dist/dark/dialog_open.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/dark/dialog_reset.svg b/dist/dark/dialog_reset.svg
deleted file mode 100644
index bb5839a..0000000
--- a/dist/dark/dialog_reset.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/dark/dialog_save.svg b/dist/dark/dialog_save.svg
deleted file mode 100644
index e85535f..0000000
--- a/dist/dark/dialog_save.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/dark/down_arrow.svg b/dist/dark/down_arrow.svg
deleted file mode 100644
index 358a36f..0000000
--- a/dist/dark/down_arrow.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/down_arrow_disabled.svg b/dist/dark/down_arrow_disabled.svg
deleted file mode 100644
index 6e3f650..0000000
--- a/dist/dark/down_arrow_disabled.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/down_arrow_hover.svg b/dist/dark/down_arrow_hover.svg
deleted file mode 100644
index 3a1c09a..0000000
--- a/dist/dark/down_arrow_hover.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/hmovetoolbar.svg b/dist/dark/hmovetoolbar.svg
deleted file mode 100644
index e28bea6..0000000
--- a/dist/dark/hmovetoolbar.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/dist/dark/hseptoolbar.svg b/dist/dark/hseptoolbar.svg
deleted file mode 100644
index 6962c39..0000000
--- a/dist/dark/hseptoolbar.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/dist/dark/left_arrow.svg b/dist/dark/left_arrow.svg
deleted file mode 100644
index 086d4ea..0000000
--- a/dist/dark/left_arrow.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/left_arrow_disabled.svg b/dist/dark/left_arrow_disabled.svg
deleted file mode 100644
index 626235b..0000000
--- a/dist/dark/left_arrow_disabled.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/message_critical.svg b/dist/dark/message_critical.svg
deleted file mode 100644
index 2cab82b..0000000
--- a/dist/dark/message_critical.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/dist/dark/message_information.svg b/dist/dark/message_information.svg
deleted file mode 100644
index 3394b28..0000000
--- a/dist/dark/message_information.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/dist/dark/message_question.svg b/dist/dark/message_question.svg
deleted file mode 100644
index 96b4e33..0000000
--- a/dist/dark/message_question.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/dist/dark/message_warning.svg b/dist/dark/message_warning.svg
deleted file mode 100644
index 0675a66..0000000
--- a/dist/dark/message_warning.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/dist/dark/radio_checked.svg b/dist/dark/radio_checked.svg
deleted file mode 100644
index 5b1ebec..0000000
--- a/dist/dark/radio_checked.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/dist/dark/radio_checked_disabled.svg b/dist/dark/radio_checked_disabled.svg
deleted file mode 100644
index f6449bc..0000000
--- a/dist/dark/radio_checked_disabled.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/dist/dark/radio_unchecked.svg b/dist/dark/radio_unchecked.svg
deleted file mode 100644
index a84b48f..0000000
--- a/dist/dark/radio_unchecked.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/dist/dark/radio_unchecked_disabled.svg b/dist/dark/radio_unchecked_disabled.svg
deleted file mode 100644
index 14602a1..0000000
--- a/dist/dark/radio_unchecked_disabled.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/dist/dark/right_arrow.svg b/dist/dark/right_arrow.svg
deleted file mode 100644
index 82a5ead..0000000
--- a/dist/dark/right_arrow.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/right_arrow_disabled.svg b/dist/dark/right_arrow_disabled.svg
deleted file mode 100644
index 5ee3433..0000000
--- a/dist/dark/right_arrow_disabled.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/sizegrip.svg b/dist/dark/sizegrip.svg
deleted file mode 100644
index 415c874..0000000
--- a/dist/dark/sizegrip.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/stylesheet.qss b/dist/dark/stylesheet.qss
deleted file mode 100644
index 976ba7b..0000000
--- a/dist/dark/stylesheet.qss
+++ /dev/null
@@ -1,1963 +0,0 @@
-/*
- * BreezeDark stylesheet.
- *
- * :author: Colin Duquesnoy
- * :editor: Alex Huszagh
- * :license: MIT, see LICENSE.md
- *
- * This is originally a fork of QDarkStyleSheet, and is based on Breeze/
- * BreezeDark color scheme, but is in no way affiliated with KDE.
- *
- * ---------------------------------------------------------------------
- * The MIT License (MIT)
- *
- * Copyright (c) <2013-2014>
- * Copyright (c) <2015-2021>
- *
- * 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.
- * ---------------------------------------------------------------------
- */
-
-/**
- * MAIN STYLESHEET
- * ---------------
- */
-
-QToolTip
-{
- /* 0.2ex is the smallest value that's not ignored on Windows. */
- border: 0.04em solid #eff0f1;
- background-color: #31363b;
- alternate-background-color: #31363b;
- color: #eff0f1;
- padding: 0.1em;
- opacity: 200;
-}
-
-QWidget
-{
- color: #eff0f1;
- background-color: #31363b;
- selection-background-color: #3daee9;
- selection-color: #eff0f1;
- background-clip: border;
- border-image: none;
-}
-
-QWidget:disabled
-{
- color: #454545;
- background-color: #31363b;
-}
-
-QWidget:disabled:hover
-{
- background-color: #31363b;
-}
-
-QCheckBox
-{
- spacing: 0.23em;
- outline: none;
- color: #eff0f1;
- margin-bottom: 0.09em;
- opacity: 200;
-}
-
-QCheckBox:disabled
-{
- color: #b0b0b0;
-}
-
-QGroupBox
-{
- /* Need to make sure the groupbox doesn't compress below the title. */
- min-height: 1.2em;
- border: 0.04em solid #76797c;
- border-radius: 0.09em;
- /**
- * This gives us enough space at the top to ensure we can move the
- * title to be inside the guidelines, and the padding at the top
- * ensures we have space below the title.
- */
- margin-top: 0.5em;
- padding-top: 1em;
-}
-
-QGroupBox:focus
-{
- border: 0.04em solid #76797c;
- border-radius: 0.09em;
-}
-
-QGroupBox::title
-{
- /* We need to move 0.6em up to be inside the lines, +1em for padding. */
- top: -1.6em;
- subcontrol-origin: content;
- subcontrol-position: top center;
- background: #31363b;
- padding-left: 0.2em;
- padding-right: 0.2em;
-}
-
-QCheckBox::indicator,
-QTreeView::indicator
-{
- width: 1em;
- height: 1em;
-}
-
-QCheckBox::indicator:unchecked,
-QCheckBox::indicator:unchecked:focus,
-QTreeView::indicator:unchecked,
-QTreeView::indicator:unchecked:focus
-{
- border-image: url(:/dark/checkbox_unchecked_disabled.svg);
-}
-
-QCheckBox::indicator:unchecked:hover,
-QCheckBox::indicator:unchecked:pressed,
-QTreeView::indicator:unchecked:hover,
-QTreeView::indicator:unchecked:pressed,
-QGroupBox::indicator:unchecked,
-QGroupBox::indicator:unchecked:hover,
-QGroupBox::indicator:unchecked:focus,
-QGroupBox::indicator:unchecked:pressed
-{
- border: none;
- border-image: url(:/dark/checkbox_unchecked.svg);
-}
-
-QCheckBox::indicator:checked,
-QTreeView::indicator:checked,
-QGroupBox::indicator:checked
-{
- border-image: url(:/dark/checkbox_checked.svg);
-}
-
-QCheckBox::indicator:checked:hover,
-QCheckBox::indicator:checked:focus,
-QCheckBox::indicator:checked:pressed,
-QTreeView::indicator:checked:hover,
-QTreeView::indicator:checked:focus,
-QTreeView::indicator:checked:pressed,
-QGroupBox::indicator:checked:hover,
-QGroupBox::indicator:checked:focus,
-QGroupBox::indicator:checked:pressed
-{
- border: none;
- border-image: url(:/dark/checkbox_checked.svg);
-}
-
-QCheckBox::indicator:indeterminate,
-QTreeView::indicator:indeterminate
-{
- border-image: url(:/dark/checkbox_indeterminate.svg);
-}
-
-QCheckBox::indicator:indeterminate:focus,
-QCheckBox::indicator:indeterminate:hover,
-QCheckBox::indicator:indeterminate:pressed,
-QTreeView::indicator:indeterminate:focus,
-QTreeView::indicator:indeterminate:hover,
-QTreeView::indicator:indeterminate:pressed
-{
- border-image: url(:/dark/checkbox_indeterminate.svg);
-}
-
-QCheckBox::indicator:indeterminate:disabled,
-QTreeView::indicator:indeterminate:disabled
-{
- border-image: url(:/dark/checkbox_indeterminate_disabled.svg);
-}
-
-QCheckBox::indicator:checked:disabled,
-QTreeView::indicator:checked:disabled,
-QGroupBox::indicator:checked:disabled
-{
- border-image: url(:/dark/checkbox_checked_disabled.svg);
-}
-
-QCheckBox::indicator:unchecked:disabled,
-QTreeView::indicator:unchecked:disabled,
-QGroupBox::indicator:unchecked:disabled
-{
- border-image: url(:/dark/checkbox_unchecked_disabled.svg);
-}
-
-QRadioButton
-{
- spacing: 0.23em;
- outline: none;
- color: #eff0f1;
- margin-bottom: 0.09em;
-}
-
-QRadioButton:disabled
-{
- color: #76797c;
-}
-
-QRadioButton::indicator
-{
- width: 1em;
- height: 1em;
-}
-
-QRadioButton::indicator:unchecked,
-QRadioButton::indicator:unchecked:focus
-{
- border-image: url(:/dark/radio_unchecked_disabled.svg);
-}
-
-QRadioButton::indicator:unchecked:hover,
-QRadioButton::indicator:unchecked:pressed
-{
- border: none;
- outline: none;
- border-image: url(:/dark/radio_unchecked.svg);
-}
-
-QRadioButton::indicator:checked
-{
- border: none;
- outline: none;
- border-image: url(:/dark/radio_checked.svg);
-}
-
-QRadioButton::indicator:checked:hover,
-QRadioButton::indicator:checked:focus,
-QRadioButton::indicator:checked:pressed
-{
- border: none;
- outline: none;
- border-image: url(:/dark/radio_checked.svg);
-}
-
-QRadioButton::indicator:checked:disabled
-{
- outline: none;
- border-image: url(:/dark/radio_checked_disabled.svg);
-}
-
-QRadioButton::indicator:unchecked:disabled
-{
- border-image: url(:/dark/radio_unchecked_disabled.svg);
-}
-
-QMenuBar
-{
- background-color: #31363b;
- color: #eff0f1;
-}
-
-QMenuBar::item
-{
- background: transparent;
-}
-
-QMenuBar::item:selected
-{
- background: transparent;
-}
-
-QMenuBar::item:disabled
-{
- color: #76797c;
-}
-
-QMenuBar::item:pressed
-{
- background-color: #3daee9;
- color: #eff0f1;
- margin-bottom: -0.09em;
- padding-bottom: 0.09em;
-}
-
-QMenu
-{
- color: #eff0f1;
- margin: 0.09em;
-}
-
-QMenu::icon
-{
- margin: 0.23em;
-}
-
-QMenu::item
-{
- /* Add extra padding on the right for the QMenu arrow */
- padding: 0.23em 1.5em 0.23em 1.3em;
- border: 0.09em solid transparent;
- background: transparent;
-}
-
-QMenu::item:selected
-{
- color: #eff0f1;
- background-color: #3daee9;
-}
-
-QMenu::item:selected:disabled
-{
- background-color: #31363b;
-}
-
-QMenu::item:disabled
-{
- color: #76797c;
-}
-
-QMenu::indicator
-{
- width: 1em;
- height: 1em;
-}
-
-QMenu::indicator:non-exclusive:unchecked
-{
- border-image: url(:/dark/checkbox_unchecked_disabled.svg);
-}
-
-QMenu::indicator:non-exclusive:unchecked:selected
-{
- border-image: url(:/dark/checkbox_unchecked_disabled.svg);
-}
-
-QMenu::indicator:non-exclusive:checked
-{
- border-image: url(:/dark/checkbox_checked.svg);
-}
-
-QMenu::indicator:non-exclusive:checked:selected
-{
- border-image: url(:/dark/checkbox_checked.svg);
-}
-
-QMenu::indicator:exclusive:unchecked
-{
- border-image: url(:/dark/radio_unchecked_disabled.svg);
-}
-
-QMenu::indicator:exclusive:unchecked:selected
-{
- border-image: url(:/dark/radio_unchecked_disabled.svg);
-}
-
-QMenu::indicator:exclusive:checked
-{
- border-image: url(:/dark/radio_checked.svg);
-}
-
-QMenu::indicator:exclusive:checked:selected
-{
- border-image: url(:/dark/radio_checked.svg);
-}
-
-QMenu::right-arrow
-{
- margin: 0.23em;
- border-image: url(:/dark/right_arrow.svg);
- width: 0.5em;
- height: 0.8em;
-}
-
-QMenu::right-arrow:disabled
-{
- border-image: url(:/dark/right_arrow_disabled.svg);
-}
-
-QAbstractItemView
-{
- alternate-background-color: #31363b;
- color: #eff0f1;
- border: 0.09em solid #31363b;
- border-radius: 0.09em;
-}
-
-QMenuBar::item:focus:!disabled
-{
- border: 0.04em solid #3daee9;
-}
-
-QTabWidget:focus,
-QCheckBox:focus,
-QRadioButton:focus,
-QSlider:focus
-{
- border: none;
-}
-
-QLineEdit
-{
- background-color: #1d2023;
- padding: 0.23em;
- border-style: solid;
- border: 0.04em solid #76797c;
- border-radius: 0.09em;
- color: #eff0f1;
-}
-
-QAbstractScrollArea
-{
- border-radius: 0.09em;
- border: 0.09em solid #76797c;
- background-color: transparent;
-}
-
-/**
- * This is the background for the box in the bottom-right corner
- * whene both scrollbars are active.
- */
-QAbstractScrollArea::corner
-{
- background: #31363b;
-}
-
-/**
- * Can't do the KDE style of where the scrollbar handle
- * becomes light on the hover, and only when the handle
- * is hovered does it become stylized. This is because
- * both the handle and the background events are treated
- * together.
- */
-QScrollBar:horizontal
-{
- background-color: #1d2023;
- height: 0.65em;
- margin: 0.13em 0.65em 0.13em 0.65em;
- border: 0.04em transparent #1d2023;
- border-radius: 0.17em;
-}
-
-QScrollBar:horizontal:hover
-{
- background-color: #76797c;
-}
-
-QScrollBar::handle:horizontal
-{
- background-color: #3daee9;
- border: 0.04em solid #3daee9;
- min-width: 0.5em;
- border-radius: 0.17em;
-}
-
-QScrollBar::handle:horizontal:hover
-{
- background-color: #3daee9;
- border: 0.04em solid #3daee9;
-}
-
-QScrollBar::add-line:horizontal
-{
- margin: 0em 0.13em 0em 0.13em;
- border-image: url(:/dark/transparent.svg);
- width: 0.41em;
- height: 0.41em;
- subcontrol-position: right;
- subcontrol-origin: margin;
-}
-
-QScrollBar::sub-line:horizontal
-{
- margin: 0em 0.13em 0em 0.13em;
- border-image: url(:/dark/transparent.svg);
- width: 0.41em;
- height: 0.41em;
- subcontrol-position: left;
- subcontrol-origin: margin;
-}
-
-QScrollBar::add-line:horizontal:hover,
-QScrollBar::add-line:horizontal:on
-{
- border-image: url(:/dark/transparent.svg);
- width: 0.41em;
- height: 0.41em;
- subcontrol-position: right;
- subcontrol-origin: margin;
-}
-
-QScrollBar::sub-line:horizontal:hover,
-QScrollBar::sub-line:horizontal:on
-{
- border-image: url(:/dark/transparent.svg);
- width: 0.41em;
- height: 0.41em;
- subcontrol-position: left;
- subcontrol-origin: margin;
-}
-
-QScrollBar::up-arrow:horizontal,
-QScrollBar::down-arrow:horizontal
-{
- background: none;
-}
-
-QScrollBar::add-page:horizontal,
-QScrollBar::sub-page:horizontal
-{
- background: none;
-}
-
-QScrollBar:vertical
-{
- background-color: #1d2023;
- width: 0.65em;
- margin: 0.65em 0.13em 0.65em 0.13em;
- border: 0.04em transparent #1d2023;
- border-radius: 0.17em;
-}
-
-QScrollBar:vertical:hover
-{
- background-color: #76797c;
-}
-
-QScrollBar::handle:vertical
-{
- background-color: #3daee9;
- border: 0.04em solid #3daee9;
- min-height: 0.5em;
- border-radius: 0.17em;
-}
-
-QScrollBar::handle:vertical:hover
-{
- background-color: #3daee9;
- border: 0.04em solid #3daee9;
-}
-
-QScrollBar::sub-line:vertical
-{
- margin: 0.13em 0em 0.13em 0em;
- border-image: url(:/dark/transparent.svg);
- height: 0.41em;
- width: 0.41em;
- subcontrol-position: top;
- subcontrol-origin: margin;
-}
-
-QScrollBar::add-line:vertical
-{
- margin: 0.13em 0em 0.13em 0em;
- border-image: url(:/dark/transparent.svg);
- height: 0.41em;
- width: 0.41em;
- subcontrol-position: bottom;
- subcontrol-origin: margin;
-}
-
-QScrollBar::sub-line:vertical:hover,
-QScrollBar::sub-line:vertical:on
-{
- border-image: url(:/dark/transparent.svg);
- height: 0.41em;
- width: 0.41em;
- subcontrol-position: top;
- subcontrol-origin: margin;
-}
-
-QScrollBar::add-line:vertical:hover,
-QScrollBar::add-line:vertical:on
-{
- border-image: url(:/dark/transparent.svg);
- height: 0.41em;
- width: 0.41em;
- subcontrol-position: bottom;
- subcontrol-origin: margin;
-}
-
-QScrollBar::up-arrow:vertical,
-QScrollBar::down-arrow:vertical
-{
- background: none;
-}
-
-QScrollBar::add-page:vertical,
-QScrollBar::sub-page:vertical
-{
- background: none;
-}
-
-QTextEdit
-{
- background-color: #1d2023;
- color: #eff0f1;
- border: 0.04em solid #76797c;
-}
-
-QPlainTextEdit
-{
- background-color: #1d2023;
- color: #eff0f1;
- border-radius: 0.09em;
- border: 0.04em solid #76797c;
-}
-
-QSizeGrip
-{
- border-image: url(:/dark/sizegrip.svg);
- width: 0.5em;
- height: 0.5em;
-}
-
-/**
- * Set the separator to be transparent, since the dock has a border.
- * On PyQt6, neither the border nor the background seem to be respected.
- */
-QMainWindow::separator
-{
- border: 0.09em transparent #76797c;
- background: transparent;
-}
-
-QMenu::separator
-{
- height: 0.09em;
- background-color: #76797c;
- padding-left: 0.2em;
- margin-top: 0.2em;
- margin-bottom: 0.2em;
- margin-left: 0.41em;
- margin-right: 0.41em;
-}
-
-QFrame[frameShape="2"], /* QFrame::Panel == 0x0003 */
-QFrame[frameShape="3"], /* QFrame::WinPanel == 0x0003 */
-QFrame[frameShape="4"], /* QFrame::HLine == 0x0004 */
-QFrame[frameShape="5"], /* QFrame::VLine == 0x0005 */
-QFrame[frameShape="6"] /* QFrame::StyledPanel == 0x0006 */
-{
- border-width: 0.04em;
- padding: 0.09em;
- border-style: solid;
- border-color: #31363b;
- background-color: #76797c;
- border-radius: 0.23em;
-}
-
-/* Provide highlighting for frame objects. */
-QFrame[frameShape="2"]:hover,
-QFrame[frameShape="3"]:hover,
-QFrame[frameShape="4"]:hover,
-QFrame[frameShape="5"]:hover,
-QFrame[frameShape="6"]:hover
-{
- border: 0.04em solid #3daee9;
-}
-
-/* Don't provide an outline if we have a widget that takes up the space. */
-QFrame[frameShape] QAbstractItemView:hover
-{
- border: 0em solid black;
-}
-
-/**
- * Note: I can't really change the background of the toolbars
- * independently, since KDE Breeze has different colors for the
- * window bar and the rest of the UI. The top toolbar uses
- * the window style, and the rest use the application style,
- * which we can't do.
- */
-QToolBar
-{
- font-weight: bold;
-}
-
-QToolBar:horizontal
-{
- background: 0.09em solid #31363b;
-}
-
-QToolBar:vertical
-{
- background: 0.09em solid #31363b;
-}
-
-QToolBar::handle:horizontal
-{
- border-image: url(:/dark/hmovetoolbar.svg);
-}
-
-QToolBar::handle:vertical
-{
- border-image: url(:/dark/vmovetoolbar.svg);
-}
-
-QToolBar::separator:horizontal
-{
- border-image: url(:/dark/hseptoolbar.svg);
-}
-
-QToolBar::separator:vertical
-{
- border-image: url(:/dark/vseptoolbar.svg);
-}
-
-QToolBar QToolButton
-{
- font-weight: bold;
- min-height: 1em;
- min-width: 2em;
- border: 0.04em transparent black;
- padding-left: 0.2em;
- padding-right: 0.3em;
-}
-
-QToolBar QToolButton:hover
-{
- border: 0.04em solid #3daee9;
-}
-
-QToolBar QToolButton:pressed
-{
- border: 0.04em solid #3daee9;
- /* The padding doesn't inherit from `QToolBar QToolButton`, so leave it in. */
- padding-left: 0.2em;
- padding-right: 0.3em;
-}
-
-QPushButton
-{
- color: #eff0f1;
- background-color: #31363b;
- border: 0.04em solid #76797c;
- padding: 0.23em;
- border-radius: 0.09em;
- outline: none;
- min-height: 1.1em;
-}
-
-QComboBox:open,
-QPushButton:open
-{
- border-width: 0.04em;
- border-color: #76797c;
-}
-
-QComboBox:closed,
-QPushButton:closed
-{
- border-width: 0.04em;
- border-color: #76797c;
-}
-
-QPushButton:disabled
-{
- background-color: #31363b;
- border-width: 0.04em;
- border-color: #76797c;
- border-style: solid;
- padding-top: 0.23em;
- padding-bottom: 0.23em;
- padding-left: 1ex;
- padding-right: 1ex;
- border-radius: 0.04em;
- color: #454545;
-}
-
-QPushButton:focus
-{
- color: #eff0f1;
-}
-
-QPushButton:pressed
-{
- background-color: #454a4f;
- padding-top: -0.65em;
- padding-bottom: -0.74em;
- color: #eff0f1;
-}
-
-QComboBox
-{
- border: 0.04em solid #76797c;
- border-radius: 0.09em;
- padding: 0.23em;
- min-width: 2.5em;
-}
-
-QComboBox:editable
-{
- background-color: #1d2023;
-}
-
-QPushButton:checked
-{
- background-color: #626568;
- border: 0.04em solid #76797c;
- color: #eff0f1;
-}
-
-QPushButton:hover
-{
- background-color: #31363b;
- border: 0.04em solid #3daee9;
- color: #eff0f1;
-}
-
-QPushButton:checked:hover
-{
- background-color: #626568;
- border: 0.04em solid #3daee9;
- color: #eff0f1;
-}
-
-QComboBox:hover,
-QComboBox:focus,
-QAbstractSpinBox:hover,
-QAbstractSpinBox:focus,
-QLineEdit:hover,
-QLineEdit:focus,
-QTextEdit:hover,
-QTextEdit:focus,
-QPlainTextEdit:hover,
-QPlainTextEdit:focus,
-QAbstractView:hover,
-QTreeView:hover,
-QTreeView:focus
-{
- border: 0.04em solid #3daee9;
- color: #eff0f1;
-}
-
-QComboBox:hover:pressed:!editable,
-QPushButton:hover:pressed,
-QAbstractSpinBox:hover:pressed,
-QLineEdit:hover:pressed,
-QTextEdit:hover:pressed,
-QPlainTextEdit:hover:pressed,
-QAbstractView:hover:pressed,
-QTreeView:hover:pressed
-{
- background-color: #31363b;
-}
-
-QComboBox:hover:pressed:editable
-{
- background-color: #1d2023;
-}
-
-QComboBox QAbstractItemView
-{
- /* This happens for the drop-down menu always, whether editable or not.*/
- background-color: #1d2023;
- selection-background-color: #2a79a3;
- outline-color: 0em;
- border-radius: 0.09em;
-}
-
-QComboBox::drop-down
-{
- subcontrol-origin: padding;
- subcontrol-position: top right;
- width: 0.65em;
-
- border-left-width: 0em;
- border-left-style: solid;
- border-top-right-radius: 0.13em;
- border-bottom-right-radius: 0.13em;
-}
-
-QComboBox::down-arrow
-{
- border-image: url(:/dark/down_arrow_disabled.svg);
- width: 0.8em;
- height: 0.5em;
- margin-right: 0.41em;
-}
-
-QComboBox::down-arrow:on,
-QComboBox::down-arrow:hover,
-QComboBox::down-arrow:focus
-{
- border-image: url(:/dark/down_arrow.svg);
- width: 0.8em;
- height: 0.5em;
- margin-right: 0.41em;
-}
-
-QAbstractSpinBox
-{
- padding: 0.23em;
- border: 0.09em solid #76797c;
- background-color: #1d2023;
- color: #eff0f1;
- border-radius: 0.09em;
- min-width: 3em;
- min-height: 1em;
-}
-
-QAbstractSpinBox:hover
-{
- border: 0.09em solid #3daee9;
-}
-
-QAbstractSpinBox:up-button,
-QAbstractSpinBox:up-button:hover
-{
- background-color: transparent;
- subcontrol-origin: padding;
- subcontrol-position: center right;
- padding-right: 0.1em;
- width: 0.8em;
- height: 0.5em;
-}
-
-QAbstractSpinBox:down-button,
-QAbstractSpinBox:down-button:hover
-{
- background-color: transparent;
- subcontrol-origin: padding;
- subcontrol-position: center left;
- padding-left: 0.1em;
- width: 0.8em;
- height: 0.5em;
-}
-
-QAbstractSpinBox::up-arrow
-{
- border-image: url(:/dark/up_arrow.svg);
-}
-
-QAbstractSpinBox::up-arrow:disabled,
-QAbstractSpinBox::up-arrow:off
-{
- border-image: url(:/dark/up_arrow_disabled.svg);
-}
-
-QAbstractSpinBox::up-arrow:hover
-{
- border-image: url(:/dark/up_arrow_hover.svg);
-}
-
-QAbstractSpinBox::down-arrow
-{
- border-image: url(:/dark/down_arrow.svg);
-}
-
-QAbstractSpinBox::down-arrow:disabled,
-QAbstractSpinBox::down-arrow:off
-{
- border-image: url(:/dark/down_arrow_disabled.svg);
-}
-
-QAbstractSpinBox::down-arrow:!off:!disabled:hover
-{
- border-image: url(:/dark/down_arrow_hover.svg);
-}
-
-QDoubleSpinBox
-{
- min-width: 4em;
-}
-
-/**
- * `QCalendarWidget QAbstractItemView:enabled` sets the color, background
- * color, and selection color for active dates in the view.
- * `QCalendarWidget QAbstractItemView:enabled` sets the disabled dates.
- */
-QCalendarWidget QAbstractItemView:enabled
-{
- color: #eff0f1;
- selection-color: #eff0f1;
- selection-background-color: #3daee9;
-}
-
-/* Won't take hover events. */
-QCalendarWidget QToolButton#qt_calendar_nextmonth
-{
- border-image: url(:/dark/calendar_next.svg);
- width: 0.5em;
- height: 0.8em;
- icon-size: 0px;
-}
-
-QCalendarWidget QToolButton#qt_calendar_prevmonth
-{
- border-image: url(:/dark/calendar_previous.svg);
- width: 0.5em;
- height: 0.8em;
- icon-size: 0px;
-}
-
-QCalendarWidget QSpinBox
-{
- max-height: 1.5em;
- min-width: 3.5em;
- margin: 0em;
- margin-top: 0.2em;
- padding: 0em;
- outline: 0em;
- padding-left: 0.5em;
-}
-
-QLabel
-{
- border: 0em solid black;
-}
-
-/* BORDERS */
-QTabWidget::pane
-{
- padding: 0.23em;
- margin: 0.04em;
-}
-
-QTabWidget::pane:top
-{
- border: 0.04em solid #76797c;
- top: -0.04em;
-}
-
-QTabWidget::pane:bottom
-{
- border: 0.04em solid #76797c;
- bottom: -0.04em;
-}
-
-QTabWidget::pane:left
-{
- border: 0.04em solid #76797c;
- left: -0.04em;
-}
-
-QTabWidget::pane:right
-{
- border: 0.04em solid #76797c;
- right: -0.04em;
-}
-
-QTabBar
-{
- qproperty-drawBase: 0;
- left: 0.23em;
- border-radius: 0.13em;
- /**
- * Note: this is the underline for each tab title. It's not
- * documented, and this took forever to track down. At least
- * 10 hours have been wasted trying to turn off this line,
- * do not deleted this comment.
- */
- selection-color: transparent;
-}
-
-QTabBar:focus
-{
- border: 0em transparent black;
-}
-
-QTabBar::close-button
-{
- /* Doesn't seem possible to resize these buttons */
- border-image: url(:/dark/transparent.svg);
- image: url(:/dark/close.svg);
- background: transparent;
-}
-
-QTabBar::close-button:hover
-{
- image: url(:/dark/close_hover.svg);
-}
-
-QTabBar::close-button:pressed
-{
- image: url(:/dark/close_pressed.svg);
-}
-
-/* TOP TABS */
-QTabBar::tab:top,
-QTabBar::tab:top:last,
-QTabBar::tab:top:only-one
-{
- color: #eff0f1;
- border: 0.04em transparent black;
- border-left: 0.04em solid #76797c;
- border-right: 0.04em solid #76797c;
- border-top: 0.09em solid #3daee9;
- background-color: #31363b;
- padding: 0.23em;
- min-width: 50px;
- border-radius: 0.09em;
- border-bottom-left-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:top:!selected
-{
- color: #eff0f1;
- background-color: #2c3034;
- border: 0.04em transparent black;
- border-right: 0.04em solid #76797c;
- border-bottom: 0.04em solid #76797c;
- border-radius: 0.09em;
- border-bottom-left-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:top:next-selected
-{
- border-right: 0.04em transparent #2c3034;
- border-bottom-left-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:top:!selected:hover
-{
- background-color: rgba(61, 173, 232, 0.1);
- border-radius: 0.09em;
- border-bottom-left-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:top:!selected:first:hover
-{
- background-color: rgba(61, 173, 232, 0.1);
- border-radius: 0.09em;
- border-bottom-left-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-/* BOTTOM TABS */
-QTabBar::tab:bottom,
-QTabBar::tab:bottom:last,
-QTabBar::tab:bottom:only-one
-{
- color: #eff0f1;
- border: 0.04em transparent black;
- border-left: 0.04em solid #76797c;
- border-right: 0.04em solid #76797c;
- border-bottom: 0.09em solid #3daee9;
- background-color: #31363b;
- padding: 0.23em;
- min-width: 50px;
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-top-right-radius: 0em;
-}
-
-QTabBar::tab:bottom:!selected
-{
- color: #eff0f1;
- background-color: #2c3034;
- border: 0.04em transparent black;
- border-top: 0.04em solid #76797c;
- border-right: 0.04em solid #76797c;
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-top-right-radius: 0em;
-}
-
-QTabBar::tab:bottom:next-selected
-{
- border-right: 0.04em transparent #2c3034;
- border-top-left-radius: 0em;
- border-top-right-radius: 0em;
-}
-
-QTabBar::tab:bottom:!selected:hover
-{
- background-color: rgba(61, 173, 232, 0.1);
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-top-right-radius: 0em;
-}
-
-QTabBar::tab:bottom:!selected:first:hover
-{
- background-color: rgba(61, 173, 232, 0.1);
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-top-right-radius: 0em;
-}
-
-/* LEFT TABS */
-QTabBar::tab:left,
-QTabBar::tab:left:last,
-QTabBar::tab:left:only-one
-{
- color: #eff0f1;
- border: 0.04em transparent black;
- border-top: 0.09em solid #3daee9;
- border-bottom: 0.04em solid #76797c;
- border-left: 0.04em solid #76797c;
- background-color: #31363b;
- padding: 0.23em;
- min-height: 50px;
- border-radius: 0.09em;
- border-top-right-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:left:!selected
-{
- color: #eff0f1;
- background-color: #2c3034;
- border: 0.04em transparent black;
- border-top: 0.04em solid #76797c;
- border-right: 0.04em solid #76797c;
- border-radius: 0.09em;
- border-top-right-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:left:previous-selected
-{
- border-top: 0.04em transparent #2c3034;
- border-top-right-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:left:!selected:hover
-{
- background-color: rgba(61, 173, 232, 0.1);
- border-radius: 0.09em;
- border-top-right-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:left:!selected:first:hover
-{
- background-color: rgba(61, 173, 232, 0.1);
- border-radius: 0.09em;
- border-top-right-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-/* RIGHT TABS */
-QTabBar::tab:right,
-QTabBar::tab:right:last,
-QTabBar::tab:right:only-one
-{
- color: #eff0f1;
- border: 0.04em transparent black;
- border-top: 0.09em solid #3daee9;
- border-bottom: 0.04em solid #76797c;
- border-right: 0.04em solid #76797c;
- background-color: #31363b;
- padding: 0.23em;
- min-height: 50px;
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-bottom-left-radius: 0em;
-}
-
-QTabBar::tab:right:!selected
-{
- color: #eff0f1;
- background-color: #2c3034;
- border: 0.04em transparent black;
- border-top: 0.04em solid #76797c;
- border-left: 0.04em solid #76797c;
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-bottom-left-radius: 0em;
-}
-
-QTabBar::tab:right:previous-selected
-{
- border-top: 0.04em transparent #2c3034;
- border-top-left-radius: 0em;
- border-bottom-left-radius: 0em;
-}
-
-QTabBar::tab:right:!selected:hover
-{
- background-color: rgba(61, 173, 232, 0.1);
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-bottom-left-radius: 0em;
-}
-
-QTabBar::tab:right:!selected:first:hover
-{
- background-color: rgba(61, 173, 232, 0.1);
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-bottom-left-radius: 0em;
-}
-
-QTabBar QToolButton::right-arrow:enabled
-{
- border-image: url(:/dark/right_arrow.svg);
- width: 0.5em;
- height: 0.8em;
-}
-
-QTabBar QToolButton::left-arrow:enabled
-{
- border-image: url(:/dark/left_arrow.svg);
- width: 0.5em;
- height: 0.8em;
-}
-
-QTabBar QToolButton::right-arrow:disabled
-{
- border-image: url(:/dark/right_arrow_disabled.svg);
- width: 0.5em;
- height: 0.8em;
-}
-
-QTabBar QToolButton::left-arrow:disabled
-{
- border-image: url(:/dark/left_arrow_disabled.svg);
- width: 0.5em;
- height: 0.8em;
-}
-
-QDockWidget
-{
- background: #31363b;
- /**
- * It doesn't seem possible to change the border of the
- * QDockWidget without changing the content margins.
- */
- /**
- * This is a bug fix so we can handle hover, pressed, and other events.
- * Reference: https://stackoverflow.com/questions/32145080/qdockwidget-float-close-button-hover-images
- */
- titlebar-close-icon: url(:/dark/transparent.svg);
- titlebar-normal-icon: url(:/dark/transparent.svg);
-}
-
-/**
- * Don't style the title, since it gives a weird, missing border
- * around the rest of the dock widget, which the remaining border
- * cannot be removed.
- *
- * There is a bug in Qt6, where the icons are small. It doesn't
- * change if we use `image` instead of `border-image`, nor if we
- * use `qproperty-icon`, etc. The icon seem to be half the size
- * of our desired values.
- */
-QDockWidget::close-button,
-QDockWidget::float-button
-{
- border: 0.04em solid transparent;
- border-radius: 0.09em;
- background: transparent;
- /* Maximum icon size for buttons */
- icon-size: 14px;
-}
-
-QDockWidget::float-button
-{
- border-image: url(:/dark/transparent.svg);
- image: url(:/dark/undock.svg);
-}
-
-QDockWidget::float-button:hover
-{
- image: url(:/dark/undock_hover.svg);
-}
-
-/* The :pressed events don't register, seems to be a Qt bug. */
-QDockWidget::float-button:pressed
-{
- image: url(:/dark/undock_hover.svg);
-}
-
-QDockWidget::close-button
-{
- border-image: url(:/dark/transparent.svg);
- image: url(:/dark/close.svg);
-}
-
-QDockWidget::close-button:hover
-{
- image: url(:/dark/close_hover.svg);
-}
-
-/* The :pressed events don't register, seems to be a Qt bug. */
-QDockWidget::close-button:pressed
-{
- image: url(:/dark/close_pressed.svg);
-}
-
-QTreeView,
-QListView
-{
- background-color: #1d2023;
- border: 0em solid black;
-}
-
-QTreeView:selected,
-QTreeView:!selected,
-QListView:selected,
-QListView:!selected
-{
- border: 0em solid black;
-}
-
-QTreeView::branch:has-siblings
-{
- border-image: url(:/dark/vline.svg);
- image: none;
-}
-
-/* These branch indicators don't scale */
-TreeView::branch:!has-siblings
-{
- border-image: none;
- image: none;
-}
-
-QTreeView::branch:has-siblings:adjoins-item
-{
- border-image: url(:/dark/branch_more.svg);
-}
-
-QTreeView::branch:!has-children:!has-siblings:adjoins-item
-{
- border-image: url(:/dark/branch_end.svg);
-}
-
-QTreeView::branch:has-children:!has-siblings:closed,
-QTreeView::branch:closed:has-children:has-siblings
-{
- image: url(:/dark/branch_closed.svg);
-}
-
-QTreeView::branch:has-children:!has-siblings:closed:hover,
-QTreeView::branch:closed:has-children:has-siblings:hover
-{
- image: url(:/dark/branch_closed_hover.svg);
-}
-
-QTreeView::branch:has-children:!has-siblings:closed,
-QTreeView::branch:open:has-children:!has-siblings
-{
- border-image: url(:/dark/branch_end_arrow.svg);
-}
-
-QTreeView::branch:closed:has-children:has-siblings,
-QTreeView::branch:open:has-children:has-siblings
-{
- border-image: url(:/dark/branch_more_arrow.svg);
-}
-
-QTreeView::branch:open:has-children:!has-siblings,
-QTreeView::branch:open:has-children:has-siblings
-{
- image: url(:/dark/branch_open.svg);
-}
-
-QTreeView::branch:open:has-children:!has-siblings:hover,
-QTreeView::branch:open:has-children:has-siblings:hover
-{
- image: url(:/dark/branch_open_hover.svg);
-}
-
-QListView
-{
- /* Give space for elements aligned left or right. */
- padding: 0.2em;
-}
-
-QTableView::item,
-QListView::item,
-QTreeView::item
-{
- padding: 0.13em;
- color: #eff0f1;
-}
-
-QTableView::item:!selected:hover,
-QListView::item:!selected:hover,
-QTreeView::item:!selected:hover
-{
- background-color: rgba(61, 173, 232, 0.1);
- outline: 0;
- color: #eff0f1;
- padding: 0.13em;
-}
-
-QSlider::handle:horizontal,
-QSlider::handle:vertical
-{
- background: #1d2023;
- border: 0.04em solid #626568;
- width: 0.7em;
- height: 0.7em;
- border-radius: 0.35em;
-}
-
-QSlider:horizontal
-{
- height: 2em;
-}
-
-QSlider:vertical
-{
- width: 2em;
-}
-
-QSlider::handle:horizontal
-{
- margin: -0.23em 0;
-}
-
-QSlider::handle:vertical
-{
- margin: 0 -0.23em;
-}
-
-QSlider::groove:horizontal,
-QSlider::groove:vertical
-{
- background: #2c3034;
- border: 0em solid #31363b;
- border-radius: 0.19em;
-}
-
-QSlider::groove:horizontal
-{
- height: 0.4em;
-}
-
-QSlider::groove:vertical
-{
- width: 0.4em;
-}
-
-QSlider::handle:horizontal:hover,
-QSlider::handle:horizontal:focus,
-QSlider::handle:vertical:hover,
-QSlider::handle:vertical:focus
-{
- border: 0.04em solid #3daee9;
-}
-
-QSlider::handle:horizontal:!focus:!hover,
-QSlider::handle:vertical:!focus:!hover
-{
- border: 0.04em solid #626568;
-}
-
-QSlider::sub-page:horizontal,
-QSlider::add-page:vertical
-{
- background: #3daee9;
- border-radius: 0.19em;
-}
-
-QSlider::add-page:horizontal,
-QSlider::sub-page:vertical
-{
- background: #626568;
- border-radius: 0.19em;
-}
-
-QToolButton
-{
- background-color: transparent;
- border: 0.04em solid #76797c;
- border-radius: 0.09em;
- margin: 0.23em;
- padding: 0.23em;
- padding-top: 0.1em;
- padding-right: 1.2em;
- min-height: 1.1em;
-}
-
-QToolButton::right-arrow,
-QToolButton::left-arrow,
-QToolButton::up-arrow,
-QToolButton::down-arrow
-{
- /* Undo the padding when we have an arrow */
- padding-right: -1.2em;
-}
-
-QToolButton::right-arrow
-{
- image: url(:/dark/right_arrow.svg);
-}
-
-QToolButton::left-arrow
-{
- image: url(:/dark/left_arrow.svg);
-}
-
-QToolButton::up-arrow
-{
- image: url(:/dark/up_arrow.svg);
-}
-
-QToolButton::down-arrow
-{
- image: url(:/dark/down_arrow.svg);
-}
-
-QToolButton:hover
-{
- border: 0.04em solid #3daee9;
-}
-
-QToolButton::menu-indicator
-{
- border-image: none;
- image: url(:/dark/down_arrow.svg);
- width: 0.8em;
- height: 0.5em;
- top: -0.7ex;
- left: -0.09em;
- padding-right: 0.09em;
-}
-
-QToolButton::menu-arrow
-{
- border-image: none;
- image: url(:/dark/down_arrow.svg);
- width: 0.8em;
- height: 0.5em;
- subcontrol-position: bottom right;
-}
-
-QToolButton::menu-button
-{
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
- /* 1ex width + 0.4ex for border + no text = 2ex allocated above */
- width: 1.3em;
- padding: 0.23em;
- outline: none;
-}
-
-QToolButton::menu-button::menu-arrow
-{
- left: -0.09em;
- subcontrol-position: bottom right;
-}
-
-QToolButton::menu-button:hover
-{
- background-color: transparent;
-}
-
-QToolButton:checked,
-QToolButton:pressed
-{
- background-color: #3daee9;
- padding: 0.23em;
- padding-right: 1.2em;
- min-height: 1.3em;
- outline: none;
-}
-
-QToolButton::menu-button:pressed
-{
- background-color: transparent;
- padding: 0.23em;
- outline: none;
-}
-
-QTableView
-{
- border: 0em solid black;
- gridline-color: #31363b;
- background-color: #1d2023;
-}
-
-QTableView:!selected,
-QTableView:selected
-{
- border: 0em solid black;
-}
-
-QTableView
-{
- border-radius: 0em;
-}
-
-QAbstractItemView::item
-{
- color: #eff0f1;
-}
-
-QAbstractItemView::item:pressed
-{
- background: #2a79a3;
- color: #eff0f1;
-}
-
-QAbstractItemView::item:selected:!active
-{
- background: rgba(61, 173, 232, 0.1);
-}
-
-/* Use background with qlineargradient to avoid ugly border on widget. */
-QAbstractItemView::item:selected:active
-{
- background: qlineargradient(
- x1: 0.5, y1: 0.5
- x2: 0.5, y2: 1,
- stop: 0 #2a79a3,
- stop: 1 #2a79a3
- );
- color: #eff0f1;
-}
-
-QAbstractItemView::item:selected:hover
-{
- background: qlineargradient(
- x1: 0.5, y1: 0.5
- x2: 0.5, y2: 1,
- stop: 0 #2f88b7,
- stop: 1 #2f88b7
- );
- color: #eff0f1;
-}
-
-QHeaderView
-{
- background-color: #31363b;
- border: 0.04em transparent;
- border-radius: 0em;
- margin: 0em;
- padding: 0em;
-}
-
-QHeaderView::section
-{
- background-color: #31363b;
- border: 0.04em solid #76797c;
- color: #eff0f1;
- padding: 0.23em;
- padding-top: 0.3em;
- border-radius: 0em;
- text-align: center;
-}
-
-QHeaderView::section::vertical::first,
-QHeaderView::section::vertical::only-one
-{
- border-top: 0.04em solid #76797c;
-}
-
-QHeaderView::section::vertical
-{
- border-top: transparent;
-}
-
-QHeaderView::section::horizontal::first,
-QHeaderView::section::horizontal::only-one
-{
- border-left: 0.04em solid #76797c;
-}
-
-QHeaderView::section::horizontal
-{
- border-left: transparent;
-}
-
-QHeaderView::section:checked
-{
- color: #ffffff;
- background-color: #334e5e;
-}
-
-/* Note that this doesn't work for QTreeView unless the header is clickable */
-QHeaderView::section:hover,
-QHeaderView::section::horizontal::first:hover,
-QHeaderView::section::horizontal::only-one:hover,
-QHeaderView::section::vertical::first:hover,
-QHeaderView::section::vertical::only-one:hover
-{
- border: 0.04em solid #3daee9;
-}
-
-QHeaderView::down-arrow
-{
- image: url(:/dark/down_arrow.svg);
- subcontrol-origin: margin;
- subcontrol-position: top center;
- padding-top: 0.2em;
- width: 0.8em;
- height: 0.5em;
-}
-
-QHeaderView::up-arrow
-{
- image: url(:/dark/up_arrow.svg);
- subcontrol-origin: margin;
- subcontrol-position: top center;
- padding-top: 0.2em;
- width: 0.8em;
- height: 0.5em;
-}
-
-QTableView QTableCornerButton::section
-{
- background-color: #31363b;
- border: 0.04em transparent #76797c;
- border-top: 0.04em solid #76797c;
- border-left: 0.04em solid #76797c;
- border-radius: 0em;
-}
-
-/* No hover event */
-QTableView QTableCornerButton:hover
-{
- border: 0.04em transparent #76797c;
-}
-
-QTableView QTableCornerButton::section:pressed
-{
- border: 0.04em solid #3daee9;
- border-radius: 0em;
-}
-
-QToolBox
-{
- padding: 0.23em;
- border: 0.09em transparent black;
-}
-
-QToolBox::tab
-{
- border-bottom: 0.09em solid #76797c;
- margin-left: 1.5em;
-}
-
-QToolBox::tab:selected,
-QToolBox::tab:hover
-{
- border-bottom: 0.09em solid #3daee9;
-}
-
-QSplitter::handle
-{
- border: 0.09em solid #2c3034;
- background: -0.5em solid #2c3034;
- max-width: 0em;
- max-height: 0em;
-}
-
-/**
- * It's not possible to get satisfactory rounded borders here.
- * If you set the border to be negative, while adjusting the
- * widths, you get an asymmetrical curve which produces an
- * unappealing border.
- */
-QProgressBar:horizontal,
-QProgressBar:vertical
-{
- background-color: #626568;
- border: 0.9em solid #31363b;
- border-radius: 0.13em;
- padding: 0em;
-}
-
-QProgressBar:horizontal
-{
- height: 0.2em;
- min-width: 6em;
- text-align: right;
- padding-left: -0.03em;
- padding-right: -0.03em;
- margin-top: 0.2em;
- margin-bottom: 0.2em;
- margin-right: 1.3em;
-}
-
-QProgressBar:vertical
-{
- width: 0.2em;
- min-height: 6em;
- text-align: bottom;
- padding-top: -0.03em;
- padding-bottom: -0.03em;
- margin-left: 0.2em;
- margin-right: 0.2em;
- margin-bottom: 0.41em;
-}
-
-QProgressBar::chunk:horizontal,
-QProgressBar::chunk:vertical
-{
- background-color: #3daee9;
- border: 0.9em transparent;
- border-radius: 0.08em;
-}
-
-QScrollArea,
-QScrollArea:focus,
-QScrollArea:hover
-{
- border: 0em solid black;
-}
-
-/* ICONS */
-/**
- * Qt's built-in icons can look pretty bad if the system theme
- * is a different color than the current one. For example, when
- * using a dark theme, with a light UI, the `Ok` button is greyed
- * out for an about dialog.
- *
- * QDialogButtonBox will apply for all standard buttons in all standard
- * widgets, such as QMessageBox, etc. However, we do need to override
- * standard icons elsewhere.
- *
- * The rest of the icons make little sense to implement:
- * Qt uses native window decorations.
- * Qt normally uses native file dialogs, which look nicer.
- * Media controls are used in custom widgets, which aren't standard.
- */
-QDialogButtonBox
-{
- dialogbuttonbox-buttons-have-icons: true;
-
- dialog-cancel-icon: url(:/dark/dialog_cancel.svg);
- dialog-close-icon: url(:/dark/dialog_close.svg);
- dialog-ok-icon: url(:/dark/dialog_ok.svg);
- dialog-open-icon: url(:/dark/dialog_open.svg);
- dialog-reset-icon: url(:/dark/dialog_reset.svg);
- dialog-save-icon: url(:/dark/dialog_save.svg);
- /**
- * No support yet for overriding saveall.
- * dialog-saveall-icon: url(:/dark/dialog_saveall.svg);
- */
- dialog-yes-icon: url(:/dark/dialog_ok.svg);
- dialog-help-icon: url(:/dark/dialog_help.svg);
- dialog-no-icon: url(:/dark/dialog_no.svg);
- dialog-apply-icon: url(:/dark/dialog_ok.svg);
- dialog-discard-icon: url(:/dark/dialog_discard.svg);
-}
-
-QMessageBox
-{
- messagebox-critical-icon: url(:/dark/message_critical.svg);
- messagebox-information-icon: url(:/dark/message_information.svg);
- messagebox-question-icon: url(:/dark/message_question.svg);
- messagebox-warning-icon: url(:/dark/message_warning.svg);
-}
-
-/* Set some styles for these custom dialog buttons */
-QDialogButtonBox QPushButton,
-QMessageBox QPushButton
-{
- min-height: 1.1em;
- min-width: 5em;
-}
diff --git a/dist/dark/transparent.svg b/dist/dark/transparent.svg
deleted file mode 100644
index 3a8ca5c..0000000
--- a/dist/dark/transparent.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/dist/dark/undock.svg b/dist/dark/undock.svg
deleted file mode 100644
index 886196c..0000000
--- a/dist/dark/undock.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/undock_hover.svg b/dist/dark/undock_hover.svg
deleted file mode 100644
index 5f1c72c..0000000
--- a/dist/dark/undock_hover.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/undock_hover_pressed.svg b/dist/dark/undock_hover_pressed.svg
deleted file mode 100644
index 1fa8d5c..0000000
--- a/dist/dark/undock_hover_pressed.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/up_arrow.svg b/dist/dark/up_arrow.svg
deleted file mode 100644
index b6ec618..0000000
--- a/dist/dark/up_arrow.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/up_arrow_disabled.svg b/dist/dark/up_arrow_disabled.svg
deleted file mode 100644
index de13ac2..0000000
--- a/dist/dark/up_arrow_disabled.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/up_arrow_hover.svg b/dist/dark/up_arrow_hover.svg
deleted file mode 100644
index 6f33e68..0000000
--- a/dist/dark/up_arrow_hover.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/vline.svg b/dist/dark/vline.svg
deleted file mode 100644
index 2ecc5ce..0000000
--- a/dist/dark/vline.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/dark/vmovetoolbar.svg b/dist/dark/vmovetoolbar.svg
deleted file mode 100644
index e626a33..0000000
--- a/dist/dark/vmovetoolbar.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/dist/dark/vseptoolbar.svg b/dist/dark/vseptoolbar.svg
deleted file mode 100644
index 3ab1a7b..0000000
--- a/dist/dark/vseptoolbar.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/dist/light/branch_closed.svg b/dist/light/branch_closed.svg
deleted file mode 100644
index 5365e9e..0000000
--- a/dist/light/branch_closed.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/branch_closed_hover.svg b/dist/light/branch_closed_hover.svg
deleted file mode 100644
index 91f8e3a..0000000
--- a/dist/light/branch_closed_hover.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/branch_end.svg b/dist/light/branch_end.svg
deleted file mode 100644
index 70ea5fd..0000000
--- a/dist/light/branch_end.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/dist/light/branch_end_arrow.svg b/dist/light/branch_end_arrow.svg
deleted file mode 100644
index 5f25d55..0000000
--- a/dist/light/branch_end_arrow.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/dist/light/branch_more.svg b/dist/light/branch_more.svg
deleted file mode 100644
index 543a353..0000000
--- a/dist/light/branch_more.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/dist/light/branch_more_arrow.svg b/dist/light/branch_more_arrow.svg
deleted file mode 100644
index 6681447..0000000
--- a/dist/light/branch_more_arrow.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/dist/light/branch_open.svg b/dist/light/branch_open.svg
deleted file mode 100644
index 5ef0d33..0000000
--- a/dist/light/branch_open.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/branch_open_hover.svg b/dist/light/branch_open_hover.svg
deleted file mode 100644
index 233530b..0000000
--- a/dist/light/branch_open_hover.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/calendar_next.svg b/dist/light/calendar_next.svg
deleted file mode 100644
index 5c2e0d5..0000000
--- a/dist/light/calendar_next.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/calendar_previous.svg b/dist/light/calendar_previous.svg
deleted file mode 100644
index 04ebc9c..0000000
--- a/dist/light/calendar_previous.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/checkbox_checked.svg b/dist/light/checkbox_checked.svg
deleted file mode 100644
index 506f020..0000000
--- a/dist/light/checkbox_checked.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/dist/light/checkbox_checked_disabled.svg b/dist/light/checkbox_checked_disabled.svg
deleted file mode 100644
index fd8fa46..0000000
--- a/dist/light/checkbox_checked_disabled.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/dist/light/checkbox_indeterminate.svg b/dist/light/checkbox_indeterminate.svg
deleted file mode 100644
index 580d522..0000000
--- a/dist/light/checkbox_indeterminate.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/light/checkbox_indeterminate_disabled.svg b/dist/light/checkbox_indeterminate_disabled.svg
deleted file mode 100644
index a8b22cd..0000000
--- a/dist/light/checkbox_indeterminate_disabled.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/light/checkbox_unchecked.svg b/dist/light/checkbox_unchecked.svg
deleted file mode 100644
index 2e46929..0000000
--- a/dist/light/checkbox_unchecked.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/dist/light/checkbox_unchecked_disabled.svg b/dist/light/checkbox_unchecked_disabled.svg
deleted file mode 100644
index af0f0b3..0000000
--- a/dist/light/checkbox_unchecked_disabled.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/dist/light/close.svg b/dist/light/close.svg
deleted file mode 100644
index 13caf6f..0000000
--- a/dist/light/close.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/close_hover.svg b/dist/light/close_hover.svg
deleted file mode 100644
index 8e2d0ab..0000000
--- a/dist/light/close_hover.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/close_pressed.svg b/dist/light/close_pressed.svg
deleted file mode 100644
index 850141a..0000000
--- a/dist/light/close_pressed.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/dialog_cancel.svg b/dist/light/dialog_cancel.svg
deleted file mode 100644
index 4bd6495..0000000
--- a/dist/light/dialog_cancel.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/light/dialog_close.svg b/dist/light/dialog_close.svg
deleted file mode 100644
index 6f1aa21..0000000
--- a/dist/light/dialog_close.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/light/dialog_discard.svg b/dist/light/dialog_discard.svg
deleted file mode 100644
index 2d6d096..0000000
--- a/dist/light/dialog_discard.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/light/dialog_help.svg b/dist/light/dialog_help.svg
deleted file mode 100644
index 8640730..0000000
--- a/dist/light/dialog_help.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/light/dialog_no.svg b/dist/light/dialog_no.svg
deleted file mode 100644
index 6c4ed77..0000000
--- a/dist/light/dialog_no.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/light/dialog_ok.svg b/dist/light/dialog_ok.svg
deleted file mode 100644
index 7756ff1..0000000
--- a/dist/light/dialog_ok.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/light/dialog_open.svg b/dist/light/dialog_open.svg
deleted file mode 100644
index 65f282d..0000000
--- a/dist/light/dialog_open.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/light/dialog_reset.svg b/dist/light/dialog_reset.svg
deleted file mode 100644
index 4af3b6b..0000000
--- a/dist/light/dialog_reset.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/light/dialog_save.svg b/dist/light/dialog_save.svg
deleted file mode 100644
index 346dc52..0000000
--- a/dist/light/dialog_save.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/dist/light/down_arrow.svg b/dist/light/down_arrow.svg
deleted file mode 100644
index 213c94a..0000000
--- a/dist/light/down_arrow.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/down_arrow_disabled.svg b/dist/light/down_arrow_disabled.svg
deleted file mode 100644
index a3ae7e5..0000000
--- a/dist/light/down_arrow_disabled.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/down_arrow_hover.svg b/dist/light/down_arrow_hover.svg
deleted file mode 100644
index 6fa931a..0000000
--- a/dist/light/down_arrow_hover.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/hmovetoolbar.svg b/dist/light/hmovetoolbar.svg
deleted file mode 100644
index 87e684f..0000000
--- a/dist/light/hmovetoolbar.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/dist/light/hseptoolbar.svg b/dist/light/hseptoolbar.svg
deleted file mode 100644
index c495226..0000000
--- a/dist/light/hseptoolbar.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/dist/light/left_arrow.svg b/dist/light/left_arrow.svg
deleted file mode 100644
index fcc49e8..0000000
--- a/dist/light/left_arrow.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/left_arrow_disabled.svg b/dist/light/left_arrow_disabled.svg
deleted file mode 100644
index e23269e..0000000
--- a/dist/light/left_arrow_disabled.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/message_critical.svg b/dist/light/message_critical.svg
deleted file mode 100644
index 5ab2260..0000000
--- a/dist/light/message_critical.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/dist/light/message_information.svg b/dist/light/message_information.svg
deleted file mode 100644
index 8c7639b..0000000
--- a/dist/light/message_information.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/dist/light/message_question.svg b/dist/light/message_question.svg
deleted file mode 100644
index 8e12e7b..0000000
--- a/dist/light/message_question.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/dist/light/message_warning.svg b/dist/light/message_warning.svg
deleted file mode 100644
index 166c159..0000000
--- a/dist/light/message_warning.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/dist/light/radio_checked.svg b/dist/light/radio_checked.svg
deleted file mode 100644
index 58dad54..0000000
--- a/dist/light/radio_checked.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/dist/light/radio_checked_disabled.svg b/dist/light/radio_checked_disabled.svg
deleted file mode 100644
index 62a922c..0000000
--- a/dist/light/radio_checked_disabled.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/dist/light/radio_unchecked.svg b/dist/light/radio_unchecked.svg
deleted file mode 100644
index 2d6ba2e..0000000
--- a/dist/light/radio_unchecked.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/dist/light/radio_unchecked_disabled.svg b/dist/light/radio_unchecked_disabled.svg
deleted file mode 100644
index abd1b6e..0000000
--- a/dist/light/radio_unchecked_disabled.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/dist/light/right_arrow.svg b/dist/light/right_arrow.svg
deleted file mode 100644
index 344441b..0000000
--- a/dist/light/right_arrow.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/right_arrow_disabled.svg b/dist/light/right_arrow_disabled.svg
deleted file mode 100644
index 2f81873..0000000
--- a/dist/light/right_arrow_disabled.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/sizegrip.svg b/dist/light/sizegrip.svg
deleted file mode 100644
index a0cd535..0000000
--- a/dist/light/sizegrip.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/stylesheet.qss b/dist/light/stylesheet.qss
deleted file mode 100644
index c8444d8..0000000
--- a/dist/light/stylesheet.qss
+++ /dev/null
@@ -1,1962 +0,0 @@
-/*
- * BreezeDark stylesheet.
- *
- * :author: Colin Duquesnoy
- * :editor: Alex Huszagh
- * :license: MIT, see LICENSE.md
- *
- * This is originally a fork of QDarkStyleSheet, and is based on Breeze/
- * BreezeDark color scheme, but is in no way affiliated with KDE.
- *
- * ---------------------------------------------------------------------
- * The MIT License (MIT)
- *
- * Copyright (c) <2013-2014>
- * Copyright (c) <2015-2021>
- *
- * 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.
- * ---------------------------------------------------------------------
- */
-
-/**
- * MAIN STYLESHEET
- * ---------------
- */
-
-QToolTip
-{
- /* 0.2ex is the smallest value that's not ignored on Windows. */
- border: 0.04em solid #31363b;
- background-color: #eff0f1;
- alternate-background-color: #eaebec;
- color: #31363b;
- padding: 0.1em;
- opacity: 200;
-}
-
-QWidget
-{
- color: #31363b;
- background-color: #eff0f1;
- selection-background-color: rgba(51, 164, 223, 0.5);
- selection-color: #31363b;
- background-clip: border;
- border-image: none;
-}
-
-QWidget:disabled
-{
- color: #b4b4b4;
- background-color: #eff0f1;
-}
-
-QWidget:disabled:hover
-{
- background-color: #eff0f1;
-}
-
-QCheckBox
-{
- spacing: 0.23em;
- outline: none;
- color: #31363b;
- margin-bottom: 0.09em;
- opacity: 200;
-}
-
-QCheckBox:disabled
-{
- color: #bab9b8;
-}
-
-QGroupBox
-{
- /* Need to make sure the groupbox doesn't compress below the title. */
- min-height: 1.2em;
- border: 0.04em solid #bab9b8;
- border-radius: 0.09em;
- /**
- * This gives us enough space at the top to ensure we can move the
- * title to be inside the guidelines, and the padding at the top
- * ensures we have space below the title.
- */
- margin-top: 0.5em;
- padding-top: 1em;
-}
-
-QGroupBox:focus
-{
- border: 0.04em solid #bab9b8;
- border-radius: 0.09em;
-}
-
-QGroupBox::title
-{
- /* We need to move 0.6em up to be inside the lines, +1em for padding. */
- top: -1.6em;
- subcontrol-origin: content;
- subcontrol-position: top center;
- background: #eff0f1;
- padding-left: 0.2em;
- padding-right: 0.2em;
-}
-
-QCheckBox::indicator,
-QTreeView::indicator
-{
- width: 1em;
- height: 1em;
-}
-
-QCheckBox::indicator:unchecked,
-QCheckBox::indicator:unchecked:focus,
-QTreeView::indicator:unchecked,
-QTreeView::indicator:unchecked:focus
-{
- border-image: url(:/light/checkbox_unchecked_disabled.svg);
-}
-
-QCheckBox::indicator:unchecked:hover,
-QCheckBox::indicator:unchecked:pressed,
-QTreeView::indicator:unchecked:hover,
-QTreeView::indicator:unchecked:pressed,
-QGroupBox::indicator:unchecked,
-QGroupBox::indicator:unchecked:hover,
-QGroupBox::indicator:unchecked:focus,
-QGroupBox::indicator:unchecked:pressed
-{
- border: none;
- border-image: url(:/light/checkbox_unchecked.svg);
-}
-
-QCheckBox::indicator:checked,
-QTreeView::indicator:checked,
-QGroupBox::indicator:checked
-{
- border-image: url(:/light/checkbox_checked.svg);
-}
-
-QCheckBox::indicator:checked:hover,
-QCheckBox::indicator:checked:focus,
-QCheckBox::indicator:checked:pressed,
-QTreeView::indicator:checked:hover,
-QTreeView::indicator:checked:focus,
-QTreeView::indicator:checked:pressed,
-QGroupBox::indicator:checked:hover,
-QGroupBox::indicator:checked:focus,
-QGroupBox::indicator:checked:pressed
-{
- border: none;
- border-image: url(:/light/checkbox_checked.svg);
-}
-
-QCheckBox::indicator:indeterminate,
-QTreeView::indicator:indeterminate
-{
- border-image: url(:/light/checkbox_indeterminate.svg);
-}
-
-QCheckBox::indicator:indeterminate:focus,
-QCheckBox::indicator:indeterminate:hover,
-QCheckBox::indicator:indeterminate:pressed,
-QTreeView::indicator:indeterminate:focus,
-QTreeView::indicator:indeterminate:hover,
-QTreeView::indicator:indeterminate:pressed
-{
- border-image: url(:/light/checkbox_indeterminate.svg);
-}
-
-QCheckBox::indicator:indeterminate:disabled,
-QTreeView::indicator:indeterminate:disabled
-{
- border-image: url(:/light/checkbox_indeterminate_disabled.svg);
-}
-
-QCheckBox::indicator:checked:disabled,
-QTreeView::indicator:checked:disabled,
-QGroupBox::indicator:checked:disabled
-{
- border-image: url(:/light/checkbox_checked_disabled.svg);
-}
-
-QCheckBox::indicator:unchecked:disabled,
-QTreeView::indicator:unchecked:disabled,
-QGroupBox::indicator:unchecked:disabled
-{
- border-image: url(:/light/checkbox_unchecked_disabled.svg);
-}
-
-QRadioButton
-{
- spacing: 0.23em;
- outline: none;
- color: #31363b;
- margin-bottom: 0.09em;
-}
-
-QRadioButton:disabled
-{
- color: #bab9b8;
-}
-
-QRadioButton::indicator
-{
- width: 1em;
- height: 1em;
-}
-
-QRadioButton::indicator:unchecked,
-QRadioButton::indicator:unchecked:focus
-{
- border-image: url(:/light/radio_unchecked_disabled.svg);
-}
-
-QRadioButton::indicator:unchecked:hover,
-QRadioButton::indicator:unchecked:pressed
-{
- border: none;
- outline: none;
- border-image: url(:/light/radio_unchecked.svg);
-}
-
-QRadioButton::indicator:checked
-{
- border: none;
- outline: none;
- border-image: url(:/light/radio_checked.svg);
-}
-
-QRadioButton::indicator:checked:hover,
-QRadioButton::indicator:checked:focus,
-QRadioButton::indicator:checked:pressed
-{
- border: none;
- outline: none;
- border-image: url(:/light/radio_checked.svg);
-}
-
-QRadioButton::indicator:checked:disabled
-{
- outline: none;
- border-image: url(:/light/radio_checked_disabled.svg);
-}
-
-QRadioButton::indicator:unchecked:disabled
-{
- border-image: url(:/light/radio_unchecked_disabled.svg);
-}
-
-QMenuBar
-{
- background-color: #eff0f1;
- color: #31363b;
-}
-
-QMenuBar::item
-{
- background: transparent;
-}
-
-QMenuBar::item:selected
-{
- background: transparent;
-}
-
-QMenuBar::item:disabled
-{
- color: #bab9b8;
-}
-
-QMenuBar::item:pressed
-{
- background-color: rgba(51, 164, 223, 0.5);
- color: #31363b;
- margin-bottom: -0.09em;
- padding-bottom: 0.09em;
-}
-
-QMenu
-{
- color: #31363b;
- margin: 0.09em;
-}
-
-QMenu::icon
-{
- margin: 0.23em;
-}
-
-QMenu::item
-{
- /* Add extra padding on the right for the QMenu arrow */
- padding: 0.23em 1.5em 0.23em 1.3em;
- border: 0.09em solid transparent;
- background: transparent;
-}
-
-QMenu::item:selected
-{
- color: #31363b;
- background-color: rgba(51, 164, 223, 0.5);
-}
-
-QMenu::item:selected:disabled
-{
- background-color: #eff0f1;
-}
-
-QMenu::item:disabled
-{
- color: #bab9b8;
-}
-
-QMenu::indicator
-{
- width: 1em;
- height: 1em;
-}
-
-QMenu::indicator:non-exclusive:unchecked
-{
- border-image: url(:/light/checkbox_unchecked_disabled.svg);
-}
-
-QMenu::indicator:non-exclusive:unchecked:selected
-{
- border-image: url(:/light/checkbox_unchecked_disabled.svg);
-}
-
-QMenu::indicator:non-exclusive:checked
-{
- border-image: url(:/light/checkbox_checked.svg);
-}
-
-QMenu::indicator:non-exclusive:checked:selected
-{
- border-image: url(:/light/checkbox_checked.svg);
-}
-
-QMenu::indicator:exclusive:unchecked
-{
- border-image: url(:/light/radio_unchecked_disabled.svg);
-}
-
-QMenu::indicator:exclusive:unchecked:selected
-{
- border-image: url(:/light/radio_unchecked_disabled.svg);
-}
-
-QMenu::indicator:exclusive:checked
-{
- border-image: url(:/light/radio_checked.svg);
-}
-
-QMenu::indicator:exclusive:checked:selected
-{
- border-image: url(:/light/radio_checked.svg);
-}
-
-QMenu::right-arrow
-{
- margin: 0.23em;
- border-image: url(:/light/right_arrow.svg);
- width: 0.5em;
- height: 0.8em;
-}
-
-QMenu::right-arrow:disabled
-{
- border-image: url(:/light/right_arrow_disabled.svg);
-}
-
-QAbstractItemView
-{
- alternate-background-color: #eff0f1;
- color: #31363b;
- border: 0.09em solid #bab9b8;
- border-radius: 0.09em;
-}
-
-QMenuBar::item:focus:!disabled
-{
- border: 0.04em solid rgba(51, 164, 223, 0.5);
-}
-
-QTabWidget:focus,
-QCheckBox:focus,
-QRadioButton:focus,
-QSlider:focus
-{
- border: none;
-}
-
-QLineEdit
-{
- background-color: #eff0f1;
- padding: 0.23em;
- border-style: solid;
- border: 0.04em solid #bab9b8;
- border-radius: 0.09em;
- color: #31363b;
-}
-
-QAbstractScrollArea
-{
- border-radius: 0.09em;
- border: 0.09em solid #bab9b8;
- background-color: transparent;
-}
-
-/**
- * This is the background for the box in the bottom-right corner
- * whene both scrollbars are active.
- */
-QAbstractScrollArea::corner
-{
- background: #eff0f1;
-}
-
-/**
- * Can't do the KDE style of where the scrollbar handle
- * becomes light on the hover, and only when the handle
- * is hovered does it become stylized. This is because
- * both the handle and the background events are treated
- * together.
- */
-QScrollBar:horizontal
-{
- background-color: #eff0f1;
- height: 0.65em;
- margin: 0.13em 0.65em 0.13em 0.65em;
- border: 0.04em transparent #eff0f1;
- border-radius: 0.17em;
-}
-
-QScrollBar:horizontal:hover
-{
- background-color: #c7c7c6;
-}
-
-QScrollBar::handle:horizontal
-{
- background-color: rgba(51, 164, 223, 0.8);
- border: 0.04em solid rgba(51, 164, 223, 0.8);
- min-width: 0.5em;
- border-radius: 0.17em;
-}
-
-QScrollBar::handle:horizontal:hover
-{
- background-color: rgba(51, 164, 223, 0.8);
- border: 0.04em solid rgba(51, 164, 223, 0.8);
-}
-
-QScrollBar::add-line:horizontal
-{
- margin: 0em 0.13em 0em 0.13em;
- border-image: url(:/light/transparent.svg);
- width: 0.41em;
- height: 0.41em;
- subcontrol-position: right;
- subcontrol-origin: margin;
-}
-
-QScrollBar::sub-line:horizontal
-{
- margin: 0em 0.13em 0em 0.13em;
- border-image: url(:/light/transparent.svg);
- width: 0.41em;
- height: 0.41em;
- subcontrol-position: left;
- subcontrol-origin: margin;
-}
-
-QScrollBar::add-line:horizontal:hover,
-QScrollBar::add-line:horizontal:on
-{
- border-image: url(:/light/transparent.svg);
- width: 0.41em;
- height: 0.41em;
- subcontrol-position: right;
- subcontrol-origin: margin;
-}
-
-QScrollBar::sub-line:horizontal:hover,
-QScrollBar::sub-line:horizontal:on
-{
- border-image: url(:/light/transparent.svg);
- width: 0.41em;
- height: 0.41em;
- subcontrol-position: left;
- subcontrol-origin: margin;
-}
-
-QScrollBar::up-arrow:horizontal,
-QScrollBar::down-arrow:horizontal
-{
- background: none;
-}
-
-QScrollBar::add-page:horizontal,
-QScrollBar::sub-page:horizontal
-{
- background: none;
-}
-
-QScrollBar:vertical
-{
- background-color: #eff0f1;
- width: 0.65em;
- margin: 0.65em 0.13em 0.65em 0.13em;
- border: 0.04em transparent #eff0f1;
- border-radius: 0.17em;
-}
-
-QScrollBar:vertical:hover
-{
- background-color: #c7c7c6;
-}
-
-QScrollBar::handle:vertical
-{
- background-color: rgba(51, 164, 223, 0.8);
- border: 0.04em solid rgba(51, 164, 223, 0.8);
- min-height: 0.5em;
- border-radius: 0.17em;
-}
-
-QScrollBar::handle:vertical:hover
-{
- background-color: rgba(51, 164, 223, 0.8);
- border: 0.04em solid rgba(51, 164, 223, 0.8);
-}
-
-QScrollBar::sub-line:vertical
-{
- margin: 0.13em 0em 0.13em 0em;
- border-image: url(:/light/transparent.svg);
- height: 0.41em;
- width: 0.41em;
- subcontrol-position: top;
- subcontrol-origin: margin;
-}
-
-QScrollBar::add-line:vertical
-{
- margin: 0.13em 0em 0.13em 0em;
- border-image: url(:/light/transparent.svg);
- height: 0.41em;
- width: 0.41em;
- subcontrol-position: bottom;
- subcontrol-origin: margin;
-}
-
-QScrollBar::sub-line:vertical:hover,
-QScrollBar::sub-line:vertical:on
-{
- border-image: url(:/light/transparent.svg);
- height: 0.41em;
- width: 0.41em;
- subcontrol-position: top;
- subcontrol-origin: margin;
-}
-
-QScrollBar::add-line:vertical:hover,
-QScrollBar::add-line:vertical:on
-{
- border-image: url(:/light/transparent.svg);
- height: 0.41em;
- width: 0.41em;
- subcontrol-position: bottom;
- subcontrol-origin: margin;
-}
-
-QScrollBar::up-arrow:vertical,
-QScrollBar::down-arrow:vertical
-{
- background: none;
-}
-
-QScrollBar::add-page:vertical,
-QScrollBar::sub-page:vertical
-{
- background: none;
-}
-
-QTextEdit
-{
- background-color: #eff0f1;
- color: #31363b;
- border: 0.04em solid #bab9b8;
-}
-
-QPlainTextEdit
-{
- background-color: #eff0f1;
- color: #31363b;
- border-radius: 0.09em;
- border: 0.04em solid #bab9b8;
-}
-
-QSizeGrip
-{
- border-image: url(:/light/sizegrip.svg);
- width: 0.5em;
- height: 0.5em;
-}
-
-/**
- * Set the separator to be transparent, since the dock has a border.
- * On PyQt6, neither the border nor the background seem to be respected.
- */
-QMainWindow::separator
-{
- border: 0.09em transparent #bab9b8;
- background: transparent;
-}
-
-QMenu::separator
-{
- height: 0.09em;
- background-color: #bab9b8;
- padding-left: 0.2em;
- margin-top: 0.2em;
- margin-bottom: 0.2em;
- margin-left: 0.41em;
- margin-right: 0.41em;
-}
-
-QFrame[frameShape="2"], /* QFrame::Panel == 0x0003 */
-QFrame[frameShape="3"], /* QFrame::WinPanel == 0x0003 */
-QFrame[frameShape="4"], /* QFrame::HLine == 0x0004 */
-QFrame[frameShape="5"], /* QFrame::VLine == 0x0005 */
-QFrame[frameShape="6"] /* QFrame::StyledPanel == 0x0006 */
-{
- border-width: 0.04em;
- padding: 0.09em;
- border-style: solid;
- border-color: #eff0f1;
- background-color: #bab9b8;
- border-radius: 0.23em;
-}
-
-/* Provide highlighting for frame objects. */
-QFrame[frameShape="2"]:hover,
-QFrame[frameShape="3"]:hover,
-QFrame[frameShape="4"]:hover,
-QFrame[frameShape="5"]:hover,
-QFrame[frameShape="6"]:hover
-{
- border: 0.04em solid rgba(51, 164, 223, 0.5);
-}
-
-/* Don't provide an outline if we have a widget that takes up the space. */
-QFrame[frameShape] QAbstractItemView:hover
-{
- border: 0em solid black;
-}
-
-/**
- * Note: I can't really change the background of the toolbars
- * independently, since KDE Breeze has different colors for the
- * window bar and the rest of the UI. The top toolbar uses
- * the window style, and the rest use the application style,
- * which we can't do.
- */
-QToolBar
-{
- font-weight: bold;
-}
-
-QToolBar:horizontal
-{
- background: 0.09em solid #eff0f1;
-}
-
-QToolBar:vertical
-{
- background: 0.09em solid #eff0f1;
-}
-
-QToolBar::handle:horizontal
-{
- border-image: url(:/light/hmovetoolbar.svg);
-}
-
-QToolBar::handle:vertical
-{
- border-image: url(:/light/vmovetoolbar.svg);
-}
-
-QToolBar::separator:horizontal
-{
- border-image: url(:/light/hseptoolbar.svg);
-}
-
-QToolBar::separator:vertical
-{
- border-image: url(:/light/vseptoolbar.svg);
-}
-
-QToolBar QToolButton
-{
- font-weight: bold;
- min-height: 1em;
- min-width: 2em;
- border: 0.04em transparent black;
- padding-left: 0.2em;
- padding-right: 0.3em;
-}
-
-QToolBar QToolButton:hover
-{
- border: 0.04em solid rgba(51, 164, 223, 0.5);
-}
-
-QToolBar QToolButton:pressed
-{
- border: 0.04em solid rgba(51, 164, 223, 0.5);
- /* The padding doesn't inherit from `QToolBar QToolButton`, so leave it in. */
- padding-left: 0.2em;
- padding-right: 0.3em;
-}
-
-QPushButton
-{
- color: #31363b;
- background-color: #eaebec;
- border: 0.04em solid #bab9b8;
- padding: 0.23em;
- border-radius: 0.09em;
- outline: none;
- min-height: 1.1em;
-}
-
-QComboBox:open,
-QPushButton:open
-{
- border-width: 0.04em;
- border-color: #bab9b8;
-}
-
-QComboBox:closed,
-QPushButton:closed
-{
- border-width: 0.04em;
- border-color: #bab9b8;
-}
-
-QPushButton:disabled
-{
- background-color: #eff0f1;
- border-width: 0.04em;
- border-color: #bab9b8;
- border-style: solid;
- padding-top: 0.23em;
- padding-bottom: 0.23em;
- padding-left: 1ex;
- padding-right: 1ex;
- border-radius: 0.04em;
- color: #b4b4b4;
-}
-
-QPushButton:focus
-{
- color: #31363b;
-}
-
-QPushButton:pressed
-{
- background-color: #bedfec;
- padding-top: -0.65em;
- padding-bottom: -0.74em;
- color: #31363b;
-}
-
-QComboBox
-{
- border: 0.04em solid #bab9b8;
- border-radius: 0.09em;
- padding: 0.23em;
- min-width: 2.5em;
-}
-
-QComboBox:editable
-{
- background-color: #eff0f1;
-}
-
-QPushButton:checked
-{
- background-color: #c7c7c6;
- border: 0.04em solid #bab9b8;
- color: #31363b;
-}
-
-QPushButton:hover
-{
- background-color: #eaebec;
- border: 0.04em solid rgba(51, 164, 223, 0.5);
- color: #31363b;
-}
-
-QPushButton:checked:hover
-{
- background-color: #c7c7c6;
- border: 0.04em solid rgba(51, 164, 223, 0.5);
- color: #31363b;
-}
-
-QComboBox:hover,
-QComboBox:focus,
-QAbstractSpinBox:hover,
-QAbstractSpinBox:focus,
-QLineEdit:hover,
-QLineEdit:focus,
-QTextEdit:hover,
-QTextEdit:focus,
-QPlainTextEdit:hover,
-QPlainTextEdit:focus,
-QAbstractView:hover,
-QTreeView:hover,
-QTreeView:focus
-{
- border: 0.04em solid rgba(51, 164, 223, 0.5);
- color: #31363b;
-}
-
-QComboBox:hover:pressed:!editable,
-QPushButton:hover:pressed,
-QAbstractSpinBox:hover:pressed,
-QLineEdit:hover:pressed,
-QTextEdit:hover:pressed,
-QPlainTextEdit:hover:pressed,
-QAbstractView:hover:pressed,
-QTreeView:hover:pressed
-{
- background-color: #eff0f1;
-}
-
-QComboBox:hover:pressed:editable
-{
- background-color: #eff0f1;
-}
-
-QComboBox QAbstractItemView
-{
- /* This happens for the drop-down menu always, whether editable or not.*/
- background-color: #eff0f1;
- selection-background-color: rgba(45, 147, 200, 0.5);
- outline-color: 0em;
- border-radius: 0.09em;
-}
-
-QComboBox::drop-down
-{
- subcontrol-origin: padding;
- subcontrol-position: top right;
- width: 0.65em;
-
- border-left-width: 0em;
- border-left-style: solid;
- border-top-right-radius: 0.13em;
- border-bottom-right-radius: 0.13em;
-}
-
-QComboBox::down-arrow
-{
- border-image: url(:/light/down_arrow_disabled.svg);
- width: 0.8em;
- height: 0.5em;
- margin-right: 0.41em;
-}
-
-QComboBox::down-arrow:on,
-QComboBox::down-arrow:hover,
-QComboBox::down-arrow:focus
-{
- border-image: url(:/light/down_arrow.svg);
- width: 0.8em;
- height: 0.5em;
- margin-right: 0.41em;
-}
-
-QAbstractSpinBox
-{
- padding: 0.23em;
- border: 0.09em solid #bab9b8;
- background-color: #eff0f1;
- color: #31363b;
- border-radius: 0.09em;
- min-width: 3em;
- min-height: 1em;
-}
-
-QAbstractSpinBox:hover
-{
- border: 0.09em solid rgba(51, 164, 223, 0.5);
-}
-
-QAbstractSpinBox:up-button,
-QAbstractSpinBox:up-button:hover
-{
- background-color: transparent;
- subcontrol-origin: padding;
- subcontrol-position: center right;
- padding-right: 0.1em;
- width: 0.8em;
- height: 0.5em;
-}
-
-QAbstractSpinBox:down-button,
-QAbstractSpinBox:down-button:hover
-{
- background-color: transparent;
- subcontrol-origin: padding;
- subcontrol-position: center left;
- padding-left: 0.1em;
- width: 0.8em;
- height: 0.5em;
-}
-
-QAbstractSpinBox::up-arrow
-{
- border-image: url(:/light/up_arrow.svg);
-}
-
-QAbstractSpinBox::up-arrow:disabled,
-QAbstractSpinBox::up-arrow:off
-{
- border-image: url(:/light/up_arrow_disabled.svg);
-}
-
-QAbstractSpinBox::up-arrow:hover
-{
- border-image: url(:/light/up_arrow_hover.svg);
-}
-
-QAbstractSpinBox::down-arrow
-{
- border-image: url(:/light/down_arrow.svg);
-}
-
-QAbstractSpinBox::down-arrow:disabled,
-QAbstractSpinBox::down-arrow:off
-{
- border-image: url(:/light/down_arrow_disabled.svg);
-}
-
-QAbstractSpinBox::down-arrow:!off:!disabled:hover
-{
- border-image: url(:/light/down_arrow_hover.svg);
-}
-
-QDoubleSpinBox
-{
- min-width: 4em;
-}
-
-/**
- * `QCalendarWidget QAbstractItemView:enabled` sets the color, background
- * color, and selection color for active dates in the view.
- * `QCalendarWidget QAbstractItemView:enabled` sets the disabled dates.
- */
-QCalendarWidget QAbstractItemView:enabled
-{
- color: #31363b;
- selection-color: #31363b;
- selection-background-color: rgba(51, 164, 223, 0.5);
-}
-
-/* Won't take hover events. */
-QCalendarWidget QToolButton#qt_calendar_nextmonth
-{
- border-image: url(:/light/calendar_next.svg);
- width: 0.5em;
- height: 0.8em;
- icon-size: 0px;
-}
-
-QCalendarWidget QToolButton#qt_calendar_prevmonth
-{
- border-image: url(:/light/calendar_previous.svg);
- width: 0.5em;
- height: 0.8em;
- icon-size: 0px;
-}
-
-QCalendarWidget QSpinBox
-{
- max-height: 1.5em;
- min-width: 3.5em;
- margin: 0em;
- margin-top: 0.2em;
- padding: 0em;
- outline: 0em;
- padding-left: 0.5em;
-}
-
-QLabel
-{
- border: 0em solid black;
-}
-
-/* BORDERS */
-QTabWidget::pane
-{
- padding: 0.23em;
- margin: 0.04em;
-}
-
-QTabWidget::pane:top
-{
- border: 0.04em solid #bab9b8;
- top: -0.04em;
-}
-
-QTabWidget::pane:bottom
-{
- border: 0.04em solid #bab9b8;
- bottom: -0.04em;
-}
-
-QTabWidget::pane:left
-{
- border: 0.04em solid #bab9b8;
- left: -0.04em;
-}
-
-QTabWidget::pane:right
-{
- border: 0.04em solid #bab9b8;
- right: -0.04em;
-}
-
-QTabBar
-{
- qproperty-drawBase: 0;
- left: 0.23em;
- border-radius: 0.13em;
- /**
- * Note: this is the underline for each tab title. It's not
- * documented, and this took forever to track down. At least
- * 10 hours have been wasted trying to turn off this line,
- * do not deleted this comment.
- */
- selection-color: transparent;
-}
-
-QTabBar:focus
-{
- border: 0em transparent black;
-}
-
-QTabBar::close-button
-{
- /* Doesn't seem possible to resize these buttons */
- border-image: url(:/light/transparent.svg);
- image: url(:/light/close.svg);
- background: transparent;
-}
-
-QTabBar::close-button:hover
-{
- image: url(:/light/close_hover.svg);
-}
-
-QTabBar::close-button:pressed
-{
- image: url(:/light/close_pressed.svg);
-}
-
-/* TOP TABS */
-QTabBar::tab:top,
-QTabBar::tab:top:last,
-QTabBar::tab:top:only-one
-{
- color: #31363b;
- border: 0.04em transparent black;
- border-left: 0.04em solid #bab9b8;
- border-right: 0.04em solid #bab9b8;
- border-top: 0.09em solid rgba(51, 164, 223, 0.5);
- background-color: #eff0f1;
- padding: 0.23em;
- min-width: 50px;
- border-radius: 0.09em;
- border-bottom-left-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:top:!selected
-{
- color: #31363b;
- background-color: #d9d8d7;
- border: 0.04em transparent black;
- border-right: 0.04em solid #bab9b8;
- border-bottom: 0.04em solid #bab9b8;
- border-radius: 0.09em;
- border-bottom-left-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:top:next-selected
-{
- border-right: 0.04em transparent #d9d8d7;
- border-bottom-left-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:top:!selected:hover
-{
- background-color: rgba(61, 173, 232, 0.2);
- border-radius: 0.09em;
- border-bottom-left-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:top:!selected:first:hover
-{
- background-color: rgba(61, 173, 232, 0.2);
- border-radius: 0.09em;
- border-bottom-left-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-/* BOTTOM TABS */
-QTabBar::tab:bottom,
-QTabBar::tab:bottom:last,
-QTabBar::tab:bottom:only-one
-{
- color: #31363b;
- border: 0.04em transparent black;
- border-left: 0.04em solid #bab9b8;
- border-right: 0.04em solid #bab9b8;
- border-bottom: 0.09em solid rgba(51, 164, 223, 0.5);
- background-color: #eff0f1;
- padding: 0.23em;
- min-width: 50px;
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-top-right-radius: 0em;
-}
-
-QTabBar::tab:bottom:!selected
-{
- color: #31363b;
- background-color: #d9d8d7;
- border: 0.04em transparent black;
- border-top: 0.04em solid #bab9b8;
- border-right: 0.04em solid #bab9b8;
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-top-right-radius: 0em;
-}
-
-QTabBar::tab:bottom:next-selected
-{
- border-right: 0.04em transparent #d9d8d7;
- border-top-left-radius: 0em;
- border-top-right-radius: 0em;
-}
-
-QTabBar::tab:bottom:!selected:hover
-{
- background-color: rgba(61, 173, 232, 0.2);
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-top-right-radius: 0em;
-}
-
-QTabBar::tab:bottom:!selected:first:hover
-{
- background-color: rgba(61, 173, 232, 0.2);
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-top-right-radius: 0em;
-}
-
-/* LEFT TABS */
-QTabBar::tab:left,
-QTabBar::tab:left:last,
-QTabBar::tab:left:only-one
-{
- color: #31363b;
- border: 0.04em transparent black;
- border-top: 0.09em solid rgba(51, 164, 223, 0.5);
- border-bottom: 0.04em solid #bab9b8;
- border-left: 0.04em solid #bab9b8;
- background-color: #eff0f1;
- padding: 0.23em;
- min-height: 50px;
- border-radius: 0.09em;
- border-top-right-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:left:!selected
-{
- color: #31363b;
- background-color: #d9d8d7;
- border: 0.04em transparent black;
- border-top: 0.04em solid #bab9b8;
- border-right: 0.04em solid #bab9b8;
- border-radius: 0.09em;
- border-top-right-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:left:previous-selected
-{
- border-top: 0.04em transparent #d9d8d7;
- border-top-right-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:left:!selected:hover
-{
- background-color: rgba(61, 173, 232, 0.2);
- border-radius: 0.09em;
- border-top-right-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-QTabBar::tab:left:!selected:first:hover
-{
- background-color: rgba(61, 173, 232, 0.2);
- border-radius: 0.09em;
- border-top-right-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-/* RIGHT TABS */
-QTabBar::tab:right,
-QTabBar::tab:right:last,
-QTabBar::tab:right:only-one
-{
- color: #31363b;
- border: 0.04em transparent black;
- border-top: 0.09em solid rgba(51, 164, 223, 0.5);
- border-bottom: 0.04em solid #bab9b8;
- border-right: 0.04em solid #bab9b8;
- background-color: #eff0f1;
- padding: 0.23em;
- min-height: 50px;
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-bottom-left-radius: 0em;
-}
-
-QTabBar::tab:right:!selected
-{
- color: #31363b;
- background-color: #d9d8d7;
- border: 0.04em transparent black;
- border-top: 0.04em solid #bab9b8;
- border-left: 0.04em solid #bab9b8;
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-bottom-left-radius: 0em;
-}
-
-QTabBar::tab:right:previous-selected
-{
- border-top: 0.04em transparent #d9d8d7;
- border-top-left-radius: 0em;
- border-bottom-left-radius: 0em;
-}
-
-QTabBar::tab:right:!selected:hover
-{
- background-color: rgba(61, 173, 232, 0.2);
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-bottom-left-radius: 0em;
-}
-
-QTabBar::tab:right:!selected:first:hover
-{
- background-color: rgba(61, 173, 232, 0.2);
- border-radius: 0.09em;
- border-top-left-radius: 0em;
- border-bottom-left-radius: 0em;
-}
-
-QTabBar QToolButton::right-arrow:enabled
-{
- border-image: url(:/light/right_arrow.svg);
- width: 0.5em;
- height: 0.8em;
-}
-
-QTabBar QToolButton::left-arrow:enabled
-{
- border-image: url(:/light/left_arrow.svg);
- width: 0.5em;
- height: 0.8em;
-}
-
-QTabBar QToolButton::right-arrow:disabled
-{
- border-image: url(:/light/right_arrow_disabled.svg);
- width: 0.5em;
- height: 0.8em;
-}
-
-QTabBar QToolButton::left-arrow:disabled
-{
- border-image: url(:/light/left_arrow_disabled.svg);
- width: 0.5em;
- height: 0.8em;
-}
-
-QDockWidget
-{
- background: #eaebec;
- /**
- * It doesn't seem possible to change the border of the
- * QDockWidget without changing the content margins.
- */
- /**
- * This is a bug fix so we can handle hover, pressed, and other events.
- * Reference: https://stackoverflow.com/questions/32145080/qdockwidget-float-close-button-hover-images
- */
- titlebar-close-icon: url(:/light/transparent.svg);
- titlebar-normal-icon: url(:/light/transparent.svg);
-}
-
-/**
- * Don't style the title, since it gives a weird, missing border
- * around the rest of the dock widget, which the remaining border
- * cannot be removed.
- *
- * There is a bug in Qt6, where the icons are small. It doesn't
- * change if we use `image` instead of `border-image`, nor if we
- * use `qproperty-icon`, etc. The icon seem to be half the size
- * of our desired values.
- */
-QDockWidget::close-button,
-QDockWidget::float-button
-{
- border: 0.04em solid transparent;
- border-radius: 0.09em;
- background: transparent;
- /* Maximum icon size for buttons */
- icon-size: 14px;
-}
-
-QDockWidget::float-button
-{
- border-image: url(:/light/transparent.svg);
- image: url(:/light/undock.svg);
-}
-
-QDockWidget::float-button:hover
-{
- image: url(:/light/undock_hover.svg);
-}
-
-/* The :pressed events don't register, seems to be a Qt bug. */
-QDockWidget::float-button:pressed
-{
- image: url(:/light/undock_hover.svg);
-}
-
-QDockWidget::close-button
-{
- border-image: url(:/light/transparent.svg);
- image: url(:/light/close.svg);
-}
-
-QDockWidget::close-button:hover
-{
- image: url(:/light/close_hover.svg);
-}
-
-/* The :pressed events don't register, seems to be a Qt bug. */
-QDockWidget::close-button:pressed
-{
- image: url(:/light/close_pressed.svg);
-}
-
-QTreeView,
-QListView
-{
- background-color: #eff0f1;
- border: 0em solid black;
-}
-
-QTreeView:selected,
-QTreeView:!selected,
-QListView:selected,
-QListView:!selected
-{
- border: 0em solid black;
-}
-
-QTreeView::branch:has-siblings
-{
- border-image: url(:/light/vline.svg);
- image: none;
-}
-
-/* These branch indicators don't scale */
-TreeView::branch:!has-siblings
-{
- border-image: none;
- image: none;
-}
-
-QTreeView::branch:has-siblings:adjoins-item
-{
- border-image: url(:/light/branch_more.svg);
-}
-
-QTreeView::branch:!has-children:!has-siblings:adjoins-item
-{
- border-image: url(:/light/branch_end.svg);
-}
-
-QTreeView::branch:has-children:!has-siblings:closed,
-QTreeView::branch:closed:has-children:has-siblings
-{
- image: url(:/light/branch_closed.svg);
-}
-
-QTreeView::branch:has-children:!has-siblings:closed:hover,
-QTreeView::branch:closed:has-children:has-siblings:hover
-{
- image: url(:/light/branch_closed_hover.svg);
-}
-
-QTreeView::branch:has-children:!has-siblings:closed,
-QTreeView::branch:open:has-children:!has-siblings
-{
- border-image: url(:/light/branch_end_arrow.svg);
-}
-
-QTreeView::branch:closed:has-children:has-siblings,
-QTreeView::branch:open:has-children:has-siblings
-{
- border-image: url(:/light/branch_more_arrow.svg);
-}
-
-QTreeView::branch:open:has-children:!has-siblings,
-QTreeView::branch:open:has-children:has-siblings
-{
- image: url(:/light/branch_open.svg);
-}
-
-QTreeView::branch:open:has-children:!has-siblings:hover,
-QTreeView::branch:open:has-children:has-siblings:hover
-{
- image: url(:/light/branch_open_hover.svg);
-}
-
-QListView
-{
- /* Give space for elements aligned left or right. */
- padding: 0.2em;
-}
-
-QTableView::item,
-QListView::item,
-QTreeView::item
-{
- padding: 0.13em;
- color: #31363b;
-}
-
-QTableView::item:!selected:hover,
-QListView::item:!selected:hover,
-QTreeView::item:!selected:hover
-{
- background-color: rgba(61, 173, 232, 0.2);
- outline: 0;
- color: #31363b;
- padding: 0.13em;
-}
-
-QSlider::handle:horizontal,
-QSlider::handle:vertical
-{
- background: #eff0f1;
- border: 0.04em solid rgba(106, 105, 105, 0.7);
- width: 0.7em;
- height: 0.7em;
- border-radius: 0.35em;
-}
-
-QSlider:horizontal
-{
- height: 2em;
-}
-
-QSlider:vertical
-{
- width: 2em;
-}
-
-QSlider::handle:horizontal
-{
- margin: -0.23em 0;
-}
-
-QSlider::handle:vertical
-{
- margin: 0 -0.23em;
-}
-
-QSlider::groove:horizontal,
-QSlider::groove:vertical
-{
- background: #d9d8d7;
- border: 0em solid #eff0f1;
- border-radius: 0.19em;
-}
-
-QSlider::groove:horizontal
-{
- height: 0.4em;
-}
-
-QSlider::groove:vertical
-{
- width: 0.4em;
-}
-
-QSlider::handle:horizontal:hover,
-QSlider::handle:horizontal:focus,
-QSlider::handle:vertical:hover,
-QSlider::handle:vertical:focus
-{
- border: 0.04em solid #3daef3;
-}
-
-QSlider::handle:horizontal:!focus:!hover,
-QSlider::handle:vertical:!focus:!hover
-{
- border: 0.04em solid rgba(106, 105, 105, 0.7);
-}
-
-QSlider::sub-page:horizontal,
-QSlider::add-page:vertical
-{
- background: #3daef3;
- border-radius: 0.19em;
-}
-
-QSlider::add-page:horizontal,
-QSlider::sub-page:vertical
-{
- background: rgba(106, 105, 105, 0.7);
- border-radius: 0.19em;
-}
-
-QToolButton
-{
- background-color: transparent;
- border: 0.04em solid #bab9b8;
- border-radius: 0.09em;
- margin: 0.23em;
- padding: 0.23em;
- padding-top: 0.1em;
- padding-right: 1.2em;
- min-height: 1.1em;
-}
-
-QToolButton::right-arrow,
-QToolButton::left-arrow,
-QToolButton::up-arrow,
-QToolButton::down-arrow
-{
- /* Undo the padding when we have an arrow */
- padding-right: -1.2em;
-}
-
-QToolButton::right-arrow
-{
- image: url(:/light/right_arrow.svg);
-}
-
-QToolButton::left-arrow
-{
- image: url(:/light/left_arrow.svg);
-}
-
-QToolButton::up-arrow
-{
- image: url(:/light/up_arrow.svg);
-}
-
-QToolButton::down-arrow
-{
- image: url(:/light/down_arrow.svg);
-}
-
-QToolButton:hover
-{
- border: 0.04em solid rgba(51, 164, 223, 0.5);
-}
-
-QToolButton::menu-indicator
-{
- border-image: none;
- image: url(:/light/down_arrow.svg);
- width: 0.8em;
- height: 0.5em;
- top: -0.7ex;
- left: -0.09em;
- padding-right: 0.09em;
-}
-
-QToolButton::menu-arrow
-{
- border-image: none;
- image: url(:/light/down_arrow.svg);
- width: 0.8em;
- height: 0.5em;
- subcontrol-position: bottom right;
-}
-
-QToolButton::menu-button
-{
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
- /* 1ex width + 0.4ex for border + no text = 2ex allocated above */
- width: 1.3em;
- padding: 0.23em;
- outline: none;
-}
-
-QToolButton::menu-button::menu-arrow
-{
- left: -0.09em;
- subcontrol-position: bottom right;
-}
-
-QToolButton::menu-button:hover
-{
- background-color: transparent;
-}
-
-QToolButton:checked,
-QToolButton:pressed
-{
- background-color: rgba(51, 164, 223, 0.5);
- padding: 0.23em;
- padding-right: 1.2em;
- min-height: 1.3em;
- outline: none;
-}
-
-QToolButton::menu-button:pressed
-{
- background-color: transparent;
- padding: 0.23em;
- outline: none;
-}
-
-QTableView
-{
- border: 0em solid black;
- gridline-color: #bab9b8;
- background-color: #eff0f1;
-}
-
-QTableView:!selected,
-QTableView:selected
-{
- border: 0em solid black;
-}
-
-QTableView
-{
- border-radius: 0em;
-}
-
-QAbstractItemView::item
-{
- color: #31363b;
-}
-
-QAbstractItemView::item:pressed
-{
- background: rgba(45, 147, 200, 0.5);
- color: #31363b;
-}
-
-QAbstractItemView::item:selected:!active
-{
- background: rgba(61, 173, 232, 0.2);
-}
-
-/* Use background with qlineargradient to avoid ugly border on widget. */
-QAbstractItemView::item:selected:active
-{
- background: qlineargradient(
- x1: 0.5, y1: 0.5
- x2: 0.5, y2: 1,
- stop: 0 rgba(45, 147, 200, 0.5),
- stop: 1 rgba(45, 147, 200, 0.5)
- );
- color: #31363b;
-}
-
-QAbstractItemView::item:selected:hover
-{
- background: qlineargradient(
- x1: 0.5, y1: 0.5
- x2: 0.5, y2: 1,
- stop: 0 rgba(71, 184, 243, 0.6),
- stop: 1 rgba(71, 184, 243, 0.6)
- );
- color: #31363b;
-}
-
-QHeaderView
-{
- background-color: #eff0f1;
- border: 0.04em transparent;
- border-radius: 0em;
- margin: 0em;
- padding: 0em;
-}
-
-QHeaderView::section
-{
- background-color: #eff0f1;
- border: 0.04em solid #bab9b8;
- color: #31363b;
- padding: 0.23em;
- padding-top: 0.3em;
- border-radius: 0em;
- text-align: center;
-}
-
-QHeaderView::section::vertical::first,
-QHeaderView::section::vertical::only-one
-{
- border-top: 0.04em solid #bab9b8;
-}
-
-QHeaderView::section::vertical
-{
- border-top: transparent;
-}
-
-QHeaderView::section::horizontal::first,
-QHeaderView::section::horizontal::only-one
-{
- border-left: 0.04em solid #bab9b8;
-}
-
-QHeaderView::section::horizontal
-{
- border-left: transparent;
-}
-
-QHeaderView::section:checked
-{
- color: #272b2f;
- background-color: #b9dae7;
-}
-
-/* Note that this doesn't work for QTreeView unless the header is clickable */
-QHeaderView::section:hover,
-QHeaderView::section::horizontal::first:hover,
-QHeaderView::section::horizontal::only-one:hover,
-QHeaderView::section::vertical::first:hover,
-QHeaderView::section::vertical::only-one:hover
-{
- border: 0.04em solid rgba(51, 164, 223, 0.5);
-}
-
-QHeaderView::down-arrow
-{
- image: url(:/light/down_arrow.svg);
- subcontrol-origin: margin;
- subcontrol-position: top center;
- padding-top: 0.2em;
- width: 0.8em;
- height: 0.5em;
-}
-
-QHeaderView::up-arrow
-{
- image: url(:/light/up_arrow.svg);
- subcontrol-origin: margin;
- subcontrol-position: top center;
- padding-top: 0.2em;
- width: 0.8em;
- height: 0.5em;
-}
-
-QTableView QTableCornerButton::section
-{
- background-color: #eff0f1;
- border: 0.04em transparent #bab9b8;
- border-top: 0.04em solid #bab9b8;
- border-left: 0.04em solid #bab9b8;
- border-radius: 0em;
-}
-
-/* No hover event */
-QTableView QTableCornerButton:hover
-{
- border: 0.04em transparent #bab9b8;
-}
-
-QTableView QTableCornerButton::section:pressed
-{
- border: 0.04em solid rgba(51, 164, 223, 0.5);
- border-radius: 0em;
-}
-
-QToolBox
-{
- padding: 0.23em;
- border: 0.09em transparent black;
-}
-
-QToolBox::tab
-{
- border-bottom: 0.09em solid #bab9b8;
- margin-left: 1.5em;
-}
-
-QToolBox::tab:selected,
-QToolBox::tab:hover
-{
- border-bottom: 0.09em solid rgba(51, 164, 223, 0.5);
-}
-
-QSplitter::handle
-{
- border: 0.09em solid #d9d8d7;
- background: -0.5em solid #d9d8d7;
- max-width: 0em;
- max-height: 0em;
-}
-
-/**
- * It's not possible to get satisfactory rounded borders here.
- * If you set the border to be negative, while adjusting the
- * widths, you get an asymmetrical curve which produces an
- * unappealing border.
- */
-QProgressBar:horizontal,
-QProgressBar:vertical
-{
- background-color: rgba(106, 105, 105, 0.7);
- border: 0.9em solid #FFFFFF;
- border-radius: 0.13em;
- padding: 0em;
-}
-
-QProgressBar:horizontal
-{
- height: 0.2em;
- min-width: 6em;
- text-align: right;
- padding-left: -0.03em;
- padding-right: -0.03em;
- margin-top: 0.2em;
- margin-bottom: 0.2em;
- margin-right: 1.3em;
-}
-
-QProgressBar:vertical
-{
- width: 0.2em;
- min-height: 6em;
- text-align: bottom;
- padding-top: -0.03em;
- padding-bottom: -0.03em;
- margin-left: 0.2em;
- margin-right: 0.2em;
- margin-bottom: 0.41em;
-}
-QProgressBar::chunk:horizontal,
-QProgressBar::chunk:vertical
-{
- background-color: #3daef3;
- border: 0.9em transparent;
- border-radius: 0.08em;
-}
-
-QScrollArea,
-QScrollArea:focus,
-QScrollArea:hover
-{
- border: 0em solid black;
-}
-
-/* ICONS */
-/**
- * Qt's built-in icons can look pretty bad if the system theme
- * is a different color than the current one. For example, when
- * using a dark theme, with a light UI, the `Ok` button is greyed
- * out for an about dialog.
- *
- * QDialogButtonBox will apply for all standard buttons in all standard
- * widgets, such as QMessageBox, etc. However, we do need to override
- * standard icons elsewhere.
- *
- * The rest of the icons make little sense to implement:
- * Qt uses native window decorations.
- * Qt normally uses native file dialogs, which look nicer.
- * Media controls are used in custom widgets, which aren't standard.
- */
-QDialogButtonBox
-{
- dialogbuttonbox-buttons-have-icons: true;
-
- dialog-cancel-icon: url(:/light/dialog_cancel.svg);
- dialog-close-icon: url(:/light/dialog_close.svg);
- dialog-ok-icon: url(:/light/dialog_ok.svg);
- dialog-open-icon: url(:/light/dialog_open.svg);
- dialog-reset-icon: url(:/light/dialog_reset.svg);
- dialog-save-icon: url(:/light/dialog_save.svg);
- /**
- * No support yet for overriding saveall.
- * dialog-saveall-icon: url(:/light/dialog_saveall.svg);
- */
- dialog-yes-icon: url(:/light/dialog_ok.svg);
- dialog-help-icon: url(:/light/dialog_help.svg);
- dialog-no-icon: url(:/light/dialog_no.svg);
- dialog-apply-icon: url(:/light/dialog_ok.svg);
- dialog-discard-icon: url(:/light/dialog_discard.svg);
-}
-
-QMessageBox
-{
- messagebox-critical-icon: url(:/light/message_critical.svg);
- messagebox-information-icon: url(:/light/message_information.svg);
- messagebox-question-icon: url(:/light/message_question.svg);
- messagebox-warning-icon: url(:/light/message_warning.svg);
-}
-
-/* Set some styles for these custom dialog buttons */
-QDialogButtonBox QPushButton,
-QMessageBox QPushButton
-{
- min-height: 1.1em;
- min-width: 5em;
-}
diff --git a/dist/light/transparent.svg b/dist/light/transparent.svg
deleted file mode 100644
index 3a8ca5c..0000000
--- a/dist/light/transparent.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/dist/light/undock.svg b/dist/light/undock.svg
deleted file mode 100644
index 886196c..0000000
--- a/dist/light/undock.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/undock_hover.svg b/dist/light/undock_hover.svg
deleted file mode 100644
index 3a031ba..0000000
--- a/dist/light/undock_hover.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/undock_hover_pressed.svg b/dist/light/undock_hover_pressed.svg
deleted file mode 100644
index c39c8ad..0000000
--- a/dist/light/undock_hover_pressed.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/up_arrow.svg b/dist/light/up_arrow.svg
deleted file mode 100644
index 4f65d32..0000000
--- a/dist/light/up_arrow.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/up_arrow_disabled.svg b/dist/light/up_arrow_disabled.svg
deleted file mode 100644
index e409602..0000000
--- a/dist/light/up_arrow_disabled.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/up_arrow_hover.svg b/dist/light/up_arrow_hover.svg
deleted file mode 100644
index 4a33aac..0000000
--- a/dist/light/up_arrow_hover.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/vline.svg b/dist/light/vline.svg
deleted file mode 100644
index 5d35af3..0000000
--- a/dist/light/vline.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/dist/light/vmovetoolbar.svg b/dist/light/vmovetoolbar.svg
deleted file mode 100644
index b714234..0000000
--- a/dist/light/vmovetoolbar.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/dist/light/vseptoolbar.svg b/dist/light/vseptoolbar.svg
deleted file mode 100644
index 1510cdf..0000000
--- a/dist/light/vseptoolbar.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/iDeLUCS.egg-info/PKG-INFO b/iDeLUCS.egg-info/PKG-INFO
new file mode 100644
index 0000000..4cea78c
--- /dev/null
+++ b/iDeLUCS.egg-info/PKG-INFO
@@ -0,0 +1,14 @@
+Metadata-Version: 2.1
+Name: iDeLUCS
+Version: 0.0.3
+Summary: iDeLUCS Python package
+Author: Pablo Millana
+Author-email: pmillana@uwaterloo.ca
+Keywords: python,clustering,sequences,latent representations
+Classifier: Intended Audience :: Education
+Classifier: Programming Language :: Python :: 3
+Classifier: Operating System :: MacOS :: MacOS X
+Classifier: Operating System :: Microsoft :: Windows
+License-File: LICENCE.md
+
+Unsupervised clustering of sequences using latent representations
diff --git a/iDeLUCS.egg-info/SOURCES.txt b/iDeLUCS.egg-info/SOURCES.txt
new file mode 100644
index 0000000..44a655a
--- /dev/null
+++ b/iDeLUCS.egg-info/SOURCES.txt
@@ -0,0 +1,17 @@
+LICENCE.md
+README.md
+iDeLUCS.py
+setup.py
+iDeLUCS.egg-info/PKG-INFO
+iDeLUCS.egg-info/SOURCES.txt
+iDeLUCS.egg-info/dependency_links.txt
+iDeLUCS.egg-info/requires.txt
+iDeLUCS.egg-info/top_level.txt
+idelucs/LossFunctions.py
+idelucs/PytorchUtils.py
+idelucs/ResNet.py
+idelucs/__init__.py
+idelucs/kmers_non_cython.py
+idelucs/models.py
+idelucs/utils.py
+idelucs/utils_GUI.py
\ No newline at end of file
diff --git a/iDeLUCS.egg-info/dependency_links.txt b/iDeLUCS.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/iDeLUCS.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/iDeLUCS.egg-info/requires.txt b/iDeLUCS.egg-info/requires.txt
new file mode 100644
index 0000000..c57e8fc
--- /dev/null
+++ b/iDeLUCS.egg-info/requires.txt
@@ -0,0 +1,10 @@
+numpy
+torch
+cython
+matplotlib
+pandas
+torchvision
+scikit-learn
+scipy
+umap-learn
+tqdm
diff --git a/iDeLUCS.egg-info/top_level.txt b/iDeLUCS.egg-info/top_level.txt
new file mode 100644
index 0000000..917796b
--- /dev/null
+++ b/iDeLUCS.egg-info/top_level.txt
@@ -0,0 +1,2 @@
+iDeLUCS
+idelucs
diff --git a/iDeLUCS.py b/iDeLUCS.py
index 5ccd9ca..ec42369 100644
--- a/iDeLUCS.py
+++ b/iDeLUCS.py
@@ -1,10 +1,10 @@
import pandas as pd
import os
-from src import models
+from idelucs import models
import numpy as np
import matplotlib.pyplot as plt
-from src.utils import SummaryFasta, plot_confusion_matrix, \
+from idelucs.utils import SummaryFasta, plot_confusion_matrix, \
label_features, compute_results, generate_csv_mapping
import argparse
diff --git a/src/LossFunctions.py b/idelucs/LossFunctions.py
similarity index 100%
rename from src/LossFunctions.py
rename to idelucs/LossFunctions.py
diff --git a/src/PytorchUtils.py b/idelucs/PytorchUtils.py
similarity index 100%
rename from src/PytorchUtils.py
rename to idelucs/PytorchUtils.py
diff --git a/src/ResNet.py b/idelucs/ResNet.py
similarity index 100%
rename from src/ResNet.py
rename to idelucs/ResNet.py
diff --git a/idelucs/__init__.py b/idelucs/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/kmers.pyx b/idelucs/kmers.pyx
similarity index 100%
rename from src/kmers.pyx
rename to idelucs/kmers.pyx
diff --git a/idelucs/kmers_non_cython.py b/idelucs/kmers_non_cython.py
new file mode 100644
index 0000000..c7f55f6
--- /dev/null
+++ b/idelucs/kmers_non_cython.py
@@ -0,0 +1,49 @@
+def kmer_counts(seq, k, counts):
+
+ """
+ Adapted from VAMB: https://github.com/RasmussenLab/vamb
+
+ seq is expected to be np.uint8 of bytevalues of the contig.
+ Only values 64, 67, 71, 84 (A, C, G, T) are accepted, all
+ others are skipped. The counts vector is expected to be an
+ array of 4^k 32-bit integers.
+ """
+
+ k_mer = 0
+ bp, bp_code, i = 0, 0, 0
+ countdown = k-1
+ contiglength = len(seq)
+ size = (1 << (2 * k)) - 1
+
+ encoding = [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 0, 4, 1, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]
+
+
+
+ for i in range(contiglength):
+ bp = seq[i]
+ bp_code = encoding[bp]
+
+ if bp_code == 4:
+ countdown = k
+
+ k_mer = ((k_mer << 2) | bp_code) & size
+
+ if countdown == 0:
+ counts[k_mer] += 1
+ else:
+ countdown -= 1
\ No newline at end of file
diff --git a/src/models.py b/idelucs/models.py
similarity index 97%
rename from src/models.py
rename to idelucs/models.py
index f19255b..8176669 100644
--- a/src/models.py
+++ b/idelucs/models.py
@@ -8,12 +8,12 @@
sys.path.append('src/')
sys.path.append('../src/')
-from LossFunctions import IID_loss, info_nce_loss
+from idelucs.LossFunctions import IID_loss, info_nce_loss
from torch.utils.data import DataLoader
-from PytorchUtils import NetLinear, myNet
-from ResNet import ResNet18, ConvNet
+from idelucs.PytorchUtils import NetLinear, myNet
+from idelucs.ResNet import ResNet18, ConvNet
-from utils import SequenceDataset, create_dataloader
+from idelucs.utils import SequenceDataset, create_dataloader
# Random Seeds for reproducibility.
torch.manual_seed(0)
diff --git a/src/utils.py b/idelucs/utils.py
similarity index 99%
rename from src/utils.py
rename to idelucs/utils.py
index 0bc01b7..c7fc513 100644
--- a/src/utils.py
+++ b/idelucs/utils.py
@@ -3,7 +3,8 @@
import pyximport
pyximport.install()
-from kmers import kmer_counts, cgr
+# from kmers import kmer_counts
+from idelucs.kmers_non_cython import kmer_counts
import random, itertools
import numpy as np
diff --git a/src/utils_GUI.py b/idelucs/utils_GUI.py
similarity index 100%
rename from src/utils_GUI.py
rename to idelucs/utils_GUI.py
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..ce3e08b
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,39 @@
+from setuptools import setup, find_packages
+
+VERSION = '0.0.3'
+DESCRIPTION = 'iDeLUCS Python package'
+LONG_DESCRIPTION = 'Unsupervised clustering of sequences using latent representations'
+
+# Setting up
+setup(
+ # the name must match the folder name 'verysimplemodule'
+ name="iDeLUCS",
+ version=VERSION,
+ author="Pablo Millana",
+ author_email="pmillana@uwaterloo.ca",
+ description=DESCRIPTION,
+ long_description=LONG_DESCRIPTION,
+ packages=find_packages(),
+ install_requires=[
+ "numpy",
+ "torch",
+ "cython",
+ "matplotlib",
+ "pandas",
+ "torchvision",
+ "scikit-learn",
+ "scipy",
+ "umap-learn",
+ "tqdm"
+ ], # add any additional packages that
+ # needs to be installed along with your package. Eg: 'caer'
+
+ keywords=['python', 'clustering', 'sequences', 'latent representations'],
+ py_modules=["iDeLUCS"],
+ classifiers= [
+ "Intended Audience :: Education",
+ "Programming Language :: Python :: 3",
+ "Operating System :: MacOS :: MacOS X",
+ "Operating System :: Microsoft :: Windows",
+ ]
+)
\ No newline at end of file
diff --git a/test_fcgr_rep.py b/test_fcgr_rep.py
index 4c8d19b..77ebd34 100644
--- a/test_fcgr_rep.py
+++ b/test_fcgr_rep.py
@@ -1,7 +1,7 @@
import pyximport
pyximport.install()
-from src.kmers import kmer_counts, cgr
+from idelucs.kmers import kmer_counts, cgr
import numpy as np
test_seq = bytearray("AACAAACTTTTTTAACTCAACTCCCCTATTGAATGTACCCCCCCCTTCCCCCCCAGGGGGGGTATACTATGCATAATCGTGCATACATTTATATTCCACATATATTATGGTACCAGTACTATATACTATAATCGTACTAAACCCATTACATGTATACGGACATTACACCACAGCCCCATTCCTCCCAATGTACACTCCATGCACTGCCCCAAGACCAGAACCACTACTTCCCCTTCACCTGCTAACCAACCCTCAAGTCACCATACTATGAATGGTTACAGGACATACATGCAATACCAGGCACTTCCCCATTTGGTTATGCTCGACGTACCAGATGGATTTATTGATCGTACACCTCACGAGAGATCAGCAACCCCTGCCCGTAATGTACTTTATGACTAGCTTCAGGCCCATTCTTTCCCCCTACACCCCTCGCCCCTCTTGCTCTTTTGCGCCTCTGGTTCCTCGGTCAGGAACATCCCATGCTTAACTCCTGAACTTTCTCACTTTTCACGAAGTCATCTGTGCATTATTCTCCCCTATTTAGTCCGTGATCGCGGCATCTTCTTTCTTCATTGCTGTTGGTTCCTCTTTTTTCTGGGGCTTCTTCACAGGTTGCCCTTCACAGTGCAGGTGCGGAGTGCTATTCAAGTGAAGCCTGGACTACTCCTGCGTTGCGTCCTATTCTAGTACTCTCGTGTCCCTCAATGAGACGGTTTGCGTGTATGGGGAATCATTTTGACACTGATGCACTTTGGATCGCATTTGGTTATGGCTCTTCCACCCCCCCGCTAAATGGGGCTATTTAGTGAATGCTTGTCGGACATATTTTTACGAATTTTCACTTCCTCTATTTTCTCCACAAAACTAGGAGATTCACCACAATTTTTTCTTTAGTTTTTTGTTATTTTTTTTAAAAACATTTTTAAAAAACTAAATTAAACTAAAACTACCGCATAAAAACCCCCAAACCACAAAAACGTTTCGTTTAGTATATATACATTGTTACATTCACCATTTTTATTAGAGAAACTCCACTACTAAACTTTCTTTTCCAAAAACAAAAATTACATTGGACAAAACCCTACAAACAAACATTATTTATATTGATGACAAACAAATGGCTCAATTCTCCTACCTCCAACAGCCTCCATAGCTTAATCCAAAGCATGGCACTGAAGATGCCAAGACGGTACCTATAATACCTGTGGGCAAAAGACTTAGTCCTAACCTTGCTATTGATTTTTGCTAGACATATACATGCAAGTATCCGCACGCCAGTGAGAATGCCCTGACACCTCCAATAAGAATAAAGGAGCAGGTATCAGGCACACCCGAGAGTAGCCCAAGACACCTTGCCTTAGCCACGCCCCCACGGGTATTCAGCAGTAATTAACCTTAAGCAATAAGTGTAAACTTGACTTAGCCATAGCAATTCAGGGTTGGTAAATCTTGTGCCAGCCACCGCGGTCATACAAGAGACCCAAATCAATAGCCACCCGGCGTAAAGAGTGGCCAGATGTTATCCCACTGCCTAAGATCAAAATGCAACTAAGCTGTCATAAGCCCAAGATTCACTTAAGCCCCTTCAAACCATCTTAGCCCCACGACTAATTTTACCCCACGAAAGCCAGGGCACAAACTGGGATTAGATACCCCACTATGCCTGGCCCTAAATCTAGATGCTCAAATACCCATGCATCCGCCCGAGAACTACGAGCACAAACGCTTAAAACTCTAAGGACTTGGCGGTGCCCCAAACCCACCTAGAGGAGCCTGTTCTATAATCGATAGTCCACGATTCACCCAACCACCCCTTGCCAACACAGCCTACATACCGCCGTCGCCAGTCCACCTAAAATGAAAGATCAACAGTGGGCTCAATAGTCCACCACTAACAAGACAGGTCAAGGTATAGCCCATGGGGTGGAAGAAATGGGCTACATTTTCTACCATAGAATAAACGAAAGAGGACGTGAAACCCGTCCTTGGAAGGAGGATTTAGCAGTAAAGCAGGATCATACTCCCCTAAGCCTGCTTTAAGACGGCCCTGGGGCACGTACATACCGCCCGTCACCCTCTTCATAGGCCCCAATATTAATAAATAATACCTGCATCTAAGCCAAAGACGAGGCAAGTCGTAACAAGGTAAGCGTACCGGAAGGTGCGCTTAGACCACCGAGACGTAGCTATAAACCCCAAAGCATTCAGCTTACACCTGAAAGATATCTTCCAGAACAAGATCGTCTTGACTTGCCCTACCTCTAGCCCAACCATCACACTACCTCTCTTCATCAAAAACACATTTCCGCAGCAAACCAAAACATTCTAACCCTCTCTTAGTATAGGCGATAGAAAAGATTTCTGGCGCAATAGAGGTCTAACCGTACCGTAAGGGAAAGATGAAATAATAATGAAAACCAAAAGCAAAAAACAGTAAAGACCAACCCTTGTACCTCTTGCATCATGATTTAGCAAGAACAACCAAGCAAAGTGCACTAAAGTTTGCCCTCCCGAAACCCAAGCGAGCTACCTGAGAGCAGCTAAAATTGAGCAAACCCGTCTCTGTCGCAAAAGAGTGGGGCGACTCTCTGGTAGAGGTGAAAAGCCAACCGAGCTGGGTGATAGCTGGTTGCCTGCCAAATGAATCTAAGTTCCCCCTTAGTCTACTCTCTAAGGATATTCATCTAAACCCCACACATGTCAGGACTAAGAGCAACTCGACGGGGGTACAGCCCCTTCGAAAAAGAATACAATCTCCTCCAGCGGATAATACCCTTTTACCCCTTACCGTGGGCCTTAAAGCAGCCATCAACAAAAGAGTGCGTCAAAGCTCCCCCATCAAAAATCCAAAAACCAATTTGACTCCCTCACCCAAAGCAGGCCAACCTATGAAAATAGAAGGATTAATGCTAAAATGAGTAACTCGGAATTCTCCTCACAGCGCAAACTTACATCAACTTATTATTAACAGCCTAACTTATACCCAAACTCCAACAAGAACACGTATTCAACCTAACCTGTTACACCGACTCAGGAGCGCCCACATAGATGATTAAAATCTGCAAAAGGAACTCGGCAAGCCAAAGACCCGACTGTTTACCAAAAACATAGCCTTTAGCAAACAACAAGTATTAAAGGTGATGCCTGCCCAGTGACCCATAAAGTTTAACGGCCGCGGTATCCTAACCGTGCGAAGGTAGCGCAATCAATTGTCCCATAAATTGAGACTTGTATGAATGGCTAAACGAGGTCTTAACTGTCTCTTGCAGATCATCAGTGAAATTAGTATTCCCGTGCAAAAACGAGAATGTGACCATAAGACGAGAAGACCCTGTGGAACTTAAAAATAACAATCACCTCCTCACCAGCACCCCCCCCCCCCGGGGGGGCCTACCTGTATACAATACCTGATTGACATTTTTCGGTTGGGGCGACCTTGGAGAAAAACAAATCCTCCAAACCTGCAGACCATAACTCTTCACCAAGATTAACCCATCAAAGTACTAATAGTAACTTAGACCCAATATAATTGATCAATGAACCAAGCTACCCCAGGGATAACAGCGCAATCTCCTCCAAGAGCCCATATCGACAAGGAGGTTTACGACCTCGATGTTGGATCAGGACACCCTAATGGTGCAGCCGCTATTAAGGGTTCGTTTGTTCAACGATTAACAGTCCTACGTGATCTGAGTTCAGACCGGAGCAATCCAGGTCGGTTTCTATCTATGAATTAACTCCTCCTAGTACGAAAGGACCGGAGAAGTGGGGTCAATGCCATAAAGTACACCCCAGCTTATAAGCAATGAACTCAGCTCAATTGCCAAAAGCCCCACACACACCTAATTCCTAGAAAAGGAACAGCTAGCGTGGCAGAGCTCGGCAAATGCAAAAGGCTTAAGCCCTTTATCCAGAGGTTCAAATCCTCTCCCTAGCTCCTCCCCCAATATGACCTCATCCTCCCTAATAAGCCTCTTAGCCATAACCTTATCCTATGTACTCCCAATTCTAATCGCCGTGGCCTTCTTAACACTTGTAGAACGAAAAATCCTCAGCTACATACAGGCCCGAAAGGGCCCAAACATCGTGGGCCCTTTTGGTCTACTCCAGCCTGTCGCGGATGGAGTGAAATTGTTCATTAAAGAGCCCATCCGTCCATCCACCTCTTCCCCCTTCCTCTTCACCATAACACCTGTCCTAGCCCTCCTACTAGCCCTCACCATCTGGACGCCCCTCCCACTACCCTTCCCCCTTGCAGACCTGAACCTAGGCCTGCTATTCCTCCTGGCCATGTCAAGTCTAACTGTCTACTCCCTGCTCTGATCCGGATGAGCTTCAAACTCCAAATACGCCCTAATCGGAGCCCTTCGTGCTGTTGCTCAGACAATCTCATATGAAGTTACCCTGGCCATCATCCTTCTATCCACAATTATATTATGCGGGAACTACTCCTTAAGCACTCTAGCCACCACCCAAGAACCCATCTACCTTATTTTTCCCTCATGGCCTCTAGCAATAATATGATTTATTTCTACCCTCGCTGAGACTAACCGTGCCCCATTCGACCTCACAGAAGGAGAATCTGAACTTGTCTCAGGGTTCAACGTTGAATATGCCGCCGGACCATTTGCCCTGTTCTTCCTAGCAGAATACGCTAACATCATGTTAATAAACACGCTAACAACCATCCTATTCCTCAACCCTAGCTTTTTAAGCCTCCCATCCGAACTATTCTCCGTTGCACTAGCTACAAAAACCCTTCTACTCTCATCCTCATTCCTATGGATCCGAGCCTCATACCCACGATTCCGCTATGACCAACTAATGCACCTCCTATGAAAAAACTTCCTACCCCTAACCCTAGCCCTATGTCTATGACACACCAGCATACCAATTAGCTACGCCGGTCTACCCCCAATCTAAGGCAGCGTGCCTGAACATAAAGGATCACTATGATAAAGTGAACATAGAGGTACAATAATCCTCTCGCTTCCTTTTAACTTAGAAAAGTAGGAATCGAACCTACACAAAAGAGATCAAAACTCTTCATACTCCCCTTATATTATTTTCTAGTAGGGTCAGCTAACCAAGCTATCGGGCCCATACCCCGAAAATGATGGTCTAACCCCTTCCCCTACTAATGAACCCTCATGCAAAACTAGCCTTCACCGCAAGTTTACTGCTAGGAACCAGCATTACCATCTCTAGTAACCATTGAATCTTAGCTTGAGCCGGCCTAGAAATCAACACCTTAGCCATCATTCCCCTTATCTCCAAATCTCACCACCCTCGAGCAATTGAAGCAACCATCAAATACTTCCTTACCCAATCAGCCGCATCAGCCTTAATTCTGTTCTCAAGCTTAGCCAATGCCTGATCCACAGGCCAATGAGACATCACACAATTAAACCACCCCACATCCTGCCTAGTACTGACCATAGCAATCGCAATCAAATTAGGACTAGTCCCATTCCACTTCTGATTCCCGGAAGTACTTCAAGGCTCTTCAATAATTACCGCCCTACTACTCTCGACTCTCATAAAACTACCCCCAATCACCCTTCTCCTCATTACATCACAATCCCTTAACCCCCCACTACTCACCCTTCTAGCAATCTCCTCCGCACTAATCGGGGGCTGAATAGGCCTTAACCAGACACAGACACGAAAAATCCTAGCTTTCTCATCCATCTCACACCTAGGCTGAATAATCATTGTTATCACCTACAACCCCCATCTCACCCTCCTCACCTTTACCCTCTATACAGTAATAACAACAACCGTGTTCCTATCCCTCAATCAAATCAAAGTCCTAAAACTGTCAACAATACTCATCTCATGAACAAAAACACCCACACTAAACGCAGCCATAATACTAACACTCCTATCCTTAGCAGGCCTCCCGCCCCTAACAGGCTTCATGCCAAAATGATTCATCATCCAAGAGCTTACTAAGCAAGAAATAACCCCCACAGCCACAATTATCACCATGCTATCACTCTTAGGCCTATTTTTCTACCTCCGCCTCGCATACCATTCAACAATCACACTCCCACCCAACTCATCCAACCACATAAAACTCTGACGAACCAACAAAACACCAAACACCTCTACAGCCATCCTATCCGCCCTATCAACTTCCCTGCTACCTTTGTCTCCCCTAATTATCACCATATTCTAGAAACTTAGGATTAAACCGCCGCCTAAACCAAAGGCCTTCAAAGCCTTAAATAAGAGTTAAACTCTCTTAGTTTCTGCCATGCTAAGACTAACAGGGCATTAACCTGTATCTTCTGAATGCAAACCAGATGCTTTAATTAAGCTAAAGCCTTTATCTAGGCAGATGGGCCTCGATCCCATACAATTCTAGTTAACAGCTAGACGCCACAACCCCTTGGCTTCTGCCTACAAGACCCTGGCACGCTCTTGCGCACATCAATGAGCTTGCAACTCACCATGAACTTCACCACAGGGTCGATAAGAAGAGGAATCAAACCTCTGTAAAAAGGACTACAGCCTAACGCTTCAACACTCAGCCATCTTACCTGTGACCTTCATCAACCGATGATTATTCTCAACTAACCACAAAGATATCGGCACTCTTTATCTAATTTTCGGCACATGAGCAGGCATAGTCGGCACAGCACTTAGCCTGTTAATTCGCGCAGAACTGGGGCAACCAGGAACACTTTTGGGAGACGACCAAATTTACAATGTAATCGTCACAGCCCATGCCTTCGTTATAATTTTCTTCATAGTTATGCCAATCATAATCGGAGGCTTTGGGAACTGACTAGTTCCTCTCATAATTGGTGCCCCAGACATAGCATTCCCACGCATGAACAACATAAGCTTCTGACTTCTTCCTCCCTCTTTTCTTCTCCTACTAGCTTCCTCCACCGTAGAAGCTGGGGCCGGTACTGGATGAACTGTCTATCCCCCCTTAGCCGGAAATCTCGCCCATGCCGGTGCATCAGTAGACCTAGCCATCTTCTCCCTTCATCTCGCAGGTGTATCATCTATTTTAGGGGCTATTAACTTCATCACCACCATTATTAACATAAAACCCCCCGCACTGTCACAGTACCAAACACCCCTATTCGTTTGATCTGTCCTCATTACTGCTATTCTCCTACTACTTTCTCTACCTGTCCTAGCCGCCGGAATTACAATACTACTCACCGACCGCAACCTTAACACTACATTCTTCGACCCTGCAGGGGGAGGGGATCCAATCCTCTACCAACATCTGTTCTGATTCTTCGGCCACCCTGAAGTTTATATTCTCATCCTTCCGGGTTTCGGAATAATCTCTCATGTAGTAGCTTACTACGCAGGGAAAAAAGAACCATTTGGCTACATAGGAATAGTGTGAGCAATACTATCAATCGGATTCTTGGGCTTTATTGTATGGGCCCATCACATATTCACAGTGGGAATAGACGTGGACACCCGAGCTTACTTTACATCTGCCACTATGATCATCGCTATCCCAACCGGTATTAAGGTCTTTAGCTGACTCGCAACCTTACATGGAGGGACAATCAAATGAGATCCGCCCATGCTATGAGCCTTAGGATTCATCTTCTTATTTACTATCGGAGGCTTAACAGGAATTGTCCTAGCCAACTCATCGCTAGATATTGCCCTCCACGATACCTACTACGTAGTTGCCCACTTCCACTATGTTCTCTCAATAGGGGCAGTTTTCGCCATTCTAGCAGGATTCACTCACTGATTCCCCCTTTTCACAGGCTTCACTCTCCACCCCTCATGAACTAAAGCACACTTCGGAGTAATATTCACAGGAGTAAACCTAACTTTCTTCCCACAACACTTCCTAGGCCTAGCTGGCATGCCCCGACGATACTCAGACTATCCGGACGCCTACACATTATGAAACACATTATCCTCAATCGGCTCCCTAATCTCAATAACAGCTGTAATCATGCTCATATTCATCGTCTGAGAAGCTTTCTCAGCAAAGCGAAAAGTACTTCAGCCCGAATTAACTTCCACTAACATCGAATGAATCCACGGCTGCCCCCCTCCATACCACACCTTCGAGGAACCAGCCTTTGTCCAAGTACAAGAAAGGAAGGAATCGAACCCTCACATGCTGGTTTCAAGCCAACCGCATCAAACCAATTAATGCTTCTTTCTCATGAGCTGTTAGTAAACCAATTACATAGACTTGTCAAGGCTAAATCACAGGTGCAAACCCTGTACACCTCACATGGCAAACCACTCCCAACTAGGATTTCAAGATGCCTCATCCCCCATCATAGAAGAACTTGTTGAATTCCACGACCACGCCCTAATAGTAGCATTGGCGATCTGTAGCCTAGTCCTCTACCTTCTTACCCTTATACTCATAGGAAAACTATCATCAAATACTGTAGACGCCCAAGAAATCGAATTAATCTGAACTATCCTTCCTGCCGTTGTCCTAGTCCTACTTGCCCTCCCCTCCCTGCAAATCCTCTACATAATAGATGAAATTGATGAACCCGATCTTACCCTAAAAGCCATCGGCCACCAATGATACTGAACTTATGAGTACACTGACTTCAAAGATCTTTCATTCGACTCTTACATAACCCCAACAACAGACCTCCCCCAAGGCCACTTCCGCCTCCTAGAAGTCGACCACCGCATTGTAGTCCCAATAGAGTCACCCATCCGAATAATCATTACCGCTGACGATGTACTTCACTCATGAGCCGTCCCAACCCTCGGGGTAAAAACAGACGCAATTCCAGGACGATTAAATCAAACTTCCTTCATTACCACTCGGCCAGGAGTGTTTTACGGACAATGCTCAGAAATCTGCGGAGCTAACCACAGTTTCATGCCCATCGTAGTAGAATCTACCCCTCTCAAACATTTTGAAGCCTGAACTTCTCTTTTATCATCCTAACCATTAAGAAGCTATGAACCAGCACTAGCCTTTTAAGCTAGAGAAAGAGGAGATTTCCCCCTCCTTAATGGTATGCCTCAGCTAAACCCCAACCCATGATTCATTACCATAATCCTAACCTGATTCACCTTCTCCCTACTTATTCAACCCAAACTACTATCGTTTATCCCCACAAATAACCCCACAAACAAAACCATAACAACAAAACCCACCCCCTGAACTTGACCATGAACCTAAGCTTCTTCGACCAATTTTCAAGCCCATACCTCCTAGGCATGCCACTAATCCTCCCATCCCTTCTTCTCCCGACCCTCCTACTCCCATCACCGGGACGCCGGTGGGTCAATAACCGTCTTTCTACCATTCAACTCTGGTTTATTCACCTAATTACGAAACAACTAATAACCCCCCTAAACAAAGCAGGTCACAAATGAGCCCTTCTCCTAATTTCCCTTATCTTAATACTCCTCTCCATCAACCTACTTGGCCTCCTCCCATACACCTTTACCCCCACCACCCAATTATCGATAAACATAGCCCTAGCCTTTCCCCTATGACTTGCCACTTTGCTAATCGGATTACGAAATCAACCCTCCGCATCCCTAGGCCACCTCCTCCCTGAGGGAACACCCACCCCATTAATTCCAGCCCTAATCATAATCGAAACAACCAGCCTTCTCATCCGACCTTTAGCCCTAGGAGTACGCCTGACAGCTAACCTCACAGCTGGCCATTTACTTATCCAACTCATCTCCACAGCCACAATTACCCTCTTACCAATAATACCATCAATCTCTCTCCTAACAGCAATCATCCTCTTTCTACTGACCATCCTAGAAGTAGCAGTAGCTATGATCCAAGCCTATGTCTTTGTTCTCCTACTAAGCCTATACTTACAAGAAAATATCTAATGGCACACCAAGCACATTCCTACCACATAGTCGACCCAAGCCCATGACCAATCTTCGGCGCAGCCGCAGCACTACTAACCACCTCAGGCTTAATCATGTGATTCCACTTCAACTCATCAGCCCTGCTATCAATAGGCCTTCTTTCTATACTTCTAGTTATACTGCAATGATGACGGGATGTAGTTCGAGAAAGCACCTTCCAAGGCCACCACACCCCAACTGTCCAAAAAGGCCTACGATACGGCATGATCCTCTTCATTACATCAGAAGCCTTCTTCTTCCTAGGCTTCTTCTGAGCCTTCTTCCACTCAAGCCTAGCCCCCACACCAGAACTAGGGGGACAATGACCCCCTACAGGAATTAGCCCCCTAAACCCCCTCGAAGTCCCCCTTCTAAACACAGCAATCCTCCTAGCCTCCGGCGTTACCGTGACATGAGCCCACCATAGCATTACCGAAGGAAACCGAAAACAAGCCATCCACGCACTAACCCTCACCATTATCCTAGGATTCTACTTCACTGCCCTACAGGCAATAGAATATCATGAAGCTTCATTTTCAATCGCTGATAGCGTTTATGGCTCCACTTTCTTCGTCGCCACAGGATTCCATGGGCTACACGTAATCATCGGATCGTCCTTCCTATCAGTCTGTCTTCTACGACTAATCAAATTCCACTTTACATCAAATCATCATTTCGGATTTGAAGCAGCAGCCTGATACTGACACTTCGTAGACATTATCTGACTCTTCCTCTATATATCAATATACTGATGAGGATCCTGCTCTTCTAGTATACTCATTACAATTGACTTCCAATCTTTAAAATCTGGCGCAAATCCAGAGAAGAGCAATGAATTCACTCACATTCATACTATCATCATCTTTTCTACTAAGCACTGCACTAACCACCCTGAACTTCTGACTCGCCCAAATAACCCCAGACACAGAAAAACTATCCCCATATGAATGTGGATTTGACCCCCTAGGATCCGCCCGACTCCCATTCTCAATCCGATTCTTCCTCAGTAGCCATCCTATTCCTTCTATTCGACCTAGAAATCGCCCTACTCCTCCCCCTCCCATGAGCCATTCAACTTCAATCACCCACTACAACCCTCACCTGAGCTACCACTATCATTACCCTCCTCACACTTGGCCTCATTTACGAGTGGATGCAAGGAGGCCTAGAATGAGCAGAATAACAGAAAGCTAGTCTAACTAAGACAGCTGGTTTCGGCCCAGCAAATTATAGATACCATCTATAGCTTTCTTATGTCTCCCCTTCACTTTAGCTTCTACTCTGCATTCACATTCAGCTGCCTAGGATTAGCATTCCACCGAACCCACCTTATCTCCGCCCTTCTTTGCTTGGAAAGCATAATACTATCCATATTCATCCCCCTCTCAATATGGCCCATCGAGAACCAGACCCCATCATTCACCCTCGTACCCATCCTCATACTAGCTTTCTCAGCATGCGAAGCTGGTGCCGGCCTAGCTATACTAGTAGCTTCAACCCGAACACATGGTTCCGACCACCTACACAACCTAAACCTCCTACAATGCTAAAAATCATCCTACCAACAACTATACTCCTACCAATAACCCTGCTATCCCCAGCAAAATCCATATGAACTAACACCACAGCCCACAGCCTCCTAATCGCCCTAATTAGCCTACACTGACTGGTCCCATCATACTACCCCTCAAAAAACTTAGCCCATTGAGCAGGTATTGACCAAATCTCAGCACCTCTGCTAGTCCTCTCCTGCTGATTCCTCCCGCTCATAATCTTGGCCAGCCAAGGCCATTTGCAATACGAACCCCATGTACGAAAACAAATATTCATCTCTACCCTCGTCATCATCCAACCATTTATCATCCTGGCCTTTTCAGCAACAGAACTCATACTATTCTACATCTCATTCGAAGCAACCCTAATCCCAACCCTAATCTTAATTACACGCTGAGGAAACCAACCCGAACGACTCAGCGCAGGCATTTACCTCCTCTTCTACACCTTAATTAGCTCCCTACCACTACTAATCTCCATCCTCTACCTTCACTCAAAAACAGGGACACTCCACCTTCCTGTCCTCAAACTCACCCACCCAAATCCATCAACCCCATGAACAGGCTTGTTATCAAGCCTAGCCCTCCTAATAGCATTTATAGTCAAGGCCCCCCTATATGGCTTGCACCTATGACTGCCTAAAGCCCACGTAGAGGCACCAATTGCAGGCTCAATACTGCTCGCTGCCCTACTACTTAAGCTAGGGGGGTATGGCATCATACGAGCCACCCTACTAATTGAACCCCCATCCAACCACCTACACTACCCCTTCTTAACCTTGGCCTTGTGGGGCGCCTTAATAACTAGTTCCATCTGTCTACGTCAAACTGACCTAAAATCCCTCATCGCCTACTCATCCGTAAGCCACATAGGCCTGGTAATTGCCGCAGGCATAATCCAAACTCAATGATCGTTTTCAGGAGCAATAATCCTCATAATCTCCCATGGACTAACATCCTCCCTTCTATTCTGCCTAGCGAACACAAACTACGAACGAACACACAGCCGCATTCTCATCCTCACACGAGGCCTACAACCCCTCCTACCATTAATGTCAACATGATGGCTCCTAGCCAACCTAACTAACATAGCCCTACCCCCAACAACCAATTTAATAGCAGAATTAACAATCATAGTCGCCCTCTTTAACTGATCACCCCTTACAATCATCCTGACCGGAATCGCAACACTCTTAACCGCTTGCTACACCTTATACATACTACTGTCCACCCAGCGAGGAACCCTACCAACCCACATCACAACAGCCTCAAACTCAAACACACGAGAGCACCTCCTAATAACCCTCCACATCATCCCAATATTAGCCCTCATTCTTAAACCAGAGTTAATCTCAGCAACCCCTCTATGCAAACATAGTTTAATTCAAACATTAGATTGTGATTCTAAAAATAGGAGCTCAAACCTTCTTGTTCGCCGAGGGGAGGCTAAGCCAGCAAGAACTGCTAATTCCTGCATCCGAGCTTTAAACCTCGGCCCCCTTAACTTTTAAAGGATAAAAGTAATCCATTGGTCTTAGGAACCACCCATCTTGGTGCAATTCCAAGTAAAAGTAGTGGAAACAGTACTACTCCTAAACACTTTTACACTACTAACCCTATTTATCCTCCTCACCCCAATCATCCTATCCCCCCTACTTAATCTCAAAAACCCCCCACAATCAATCCCCCAAACCATTAAAACTGCCTTCCTAATCAGCCTCATTCCAACAACCATCTTCCTCCACTCAGGCATAGAAAGCATCACCACCTACTGAGAATGGCAACTCACCCAAAACTTCAAAATCCCAATCTCCTTAAAAATAGACCTATATTCCATAGTATTCTTCCCCATTGCACTGTTTGTAACCTGATCTATCCTAGAATTTTCGACATGGTACATAGCCTCCGAACCCTTTATCATAAAATTCTTCACCTTTCTCCTTATTTTCCTCATCGCCATATTAACCCTCACAATCGCAAACAACATATTCCTTCTATTTATCGGCTGAGAGGGAGTAGGAATCATATCGTTCCTCCTCATCGGCTGATGACAAGGACGGGCCGAAGCCAACACAGCTGCACTCCAGGCCATAATCTACAATCGAATCGGAGACATCGGCCTAATCCTAAGCATAGCATGACTAGCCTCAACACTAAACACCTGAGAAATTCAACAAGCCATTCAACCAAACCAAACGCCTACCCTCCCTCTTTTAGGACTAATCCTAGCCGCTACAGGAAAATCAGCCCAATTCGGCCTCCACCCATGACTCCCTGCAGCAATAGAGGGCCCAACTCCAGTCTCCGCCCTACTCCACTCCAGCACCATAGTAGTGGCCGGAATCTTCTTACTCATTCGCACTCACCCTATCTTAACCTCAAATAAACTAGCCCTAACCTCATGCCTATGCCTAGGCGCCCTATCAACATTATTCGCTGCCACCTGCGCCCTCACCCAAAATGACATCAAAAAAATCATTGCCTTCTCTACCTCAAGCCAACTAGGCCTCATAATAGTTACAATCGGACTAGATCTCCCCCAACTTGCTTTCCTCCACATCTCAACTCACGCATTCTTCAAAGCCATACTATTCCTATGTTCTGGCCTAATCATCCACAGCCTAAATGGAGAACAAGACATTCGCAAAATGGGATGCCTACAAAAAACCCTCCCAATAACCACCTCCTGCCTAACCATCGGCAACCTCGCCCTAATAGGCACTCCATTCCTAGCGGGCTTCTACTCAAAAGACCTAATCATTGAAAACCTAAACACCTCATACATTAACACCTGGGCCCTTCTCCTTACACTACTTGCCACATCCTTCACCGCAACTTACAGCCTCCGCATGACTCTCCTAGTCCAAACAGGACACACCCGAACCCCCACAATCACACCCATCAATGAAAACACATCCTCAGCCATCCTACCTATCATTCGACTAGCTTTCGGCAGCATCACAGCCGGCTTATTAATCTCATCACTCACCCTTCCCATGAAAACACCCCCAATAACCATACCTACTATTACAAAAACTGCTGCCATTGCCGTCACAGCCCTTGGGATCATCCTCGCCCTAGAACTCTCAAACATAACACACACCCTCACCCTCCCAAAACAAAGCCCTCTTACAAATTTCTCCTCTTCACTAGGCTACTTCAACCCCCTAATACATCGAACTAACCCTGCAATCCTCCTAAATACCGGACAAAAAATTGCCTCCCACTTAATCGACATAACATGGTACAAAAAAATAGGCCCTGAAGGCCTTGCCAACCTCCATCTCATCATAAGTAAAACCTCCACGACCCTTCATACAGGTCTAATCAAATCCTACCTAGGATCCTTCGCCCTAACAATCCTCACAACAATCCTACTAACCCAAAAATAAAGTTTAATGGCACCCAACATCCGAAAATCACACCCCCTACTAAAAATAATCAATAACTCCCTAATCGACCTGCCCGCCCCATCCAACATCTCCGCTTGATGGAACTTCGGCTCCCTGTTAGCAGTATGCCTCGCTACTCAAATCCTCACCGGCCTCCTACTGGCCATACATTATACCGCAGATACTTCCCTAGCTTTCTCCTCCGTAGCCCACACATGCCGAAACGTACAGTACGGCTGACTCATCCGAAACCTTCATGCAAATGGCGCCTCATTCTTCTTCATTTGCATCTTCCTTCACATCGGACGCGGCCTCTACTACGGCTCCTACCTATACAAAGAGACATGAAACACCGGAGTTATCCTACTCCTCACCCTCATAGCAACCGCTTTTGTAGGGTACGTCCTCCCATGAGGACAAATATCATTTTGAGGGGCTACCGTCATCACAAATCTATTCTCAGCAATCCCTTACATCGGACAAACCCTAGTGGAGTGGGCCTGAGGAGGATTCTCAGTTGACAACCCAACCCTCACCCGATTCTTCGCCCTACACTTCCTCCTCCCCTTCGTAATTGCAGGAATTACTATCACCCACCTCATATTCCTACACGAATCAGGCTCAAACAACCCACTAGGCATCTCATCTAATTCCGACAAAATCCCATTCCACCCATACTACTCCCTCAAAGACATCCTAGGCCTAGCACTTATATTCACCCCATTCCTAATACTAGCCCTATTCTCACCTAACCTTCTGGGCGACCCAGAAAACTTCACCCCAGCAAACCCACTAGTAACCCCACCTCACATTAAACCAGAATGATACTTCCTATTTGCCTATGCTATCCTACGCTCAATCCCAAATAAACTCGGAGGCGTCCTAGCACTAGCAGCCTCGGTACTCATCCTCCTCCTCATTCCCTTCCTTCACAAATCCAAACAACGAACTATAACCTTCCGCCCACTTTCCCAGGCCCTATTTTGATTGCTAGTTGCCAACCTTCTCATCTTAACTTGAGTAGGAAGCCAACCAGTAGAGCACCCATTCATCATCATCGGCCAAATAGCATCATTCTCATACTTCACCATCCTACTAATCCTCTTCCCCGCAGTCGGAACCCTAGAAAACAAAATACTTAACTACTAGTACTCTAATAGTTTATGAAAAACATTGGTCTTGTAAACCAAAAACTGAAGACTACACCCTTCTTAGAGTAACTCAGAAAAAAAGGACTTAAACCTTTCTCTCCAGCTCCCAAAGCTGGTATTTTAAATAAACTATTCTCTGAAACCCCTAAACCGCCCGAATCGCCCCCCGAGACAACCCACGTACAAGCTCCAGCACAACAAACAACACCAACAACAAACCTCACCCCGCCACTAAAAACAACCCAGCCCCACATGAATAAAACACCGCCACCCCACTGAAATCCAACCGAACTAAAGATATCCCCCCACTATCAACAGTAACCACTACAACCTTCCAAAAATCAACAAATCCTGCCAAAAACGCCCCAACACAAACCACCAAAACAAACCCCAACCCATAACCAGCTACCCGCCAATCTCCCCAAGCCTCAGGATATGGATCTGCCGCCAAAGACACAGAGTAAACAAAAACTACCAGCATACCCCCCAAATAGACCATAAACAATGCCAAAGAAATAAAAGAAACGCCTAAGCTCACTAACCACCCGCACCCAACTACAGATGCTAGCACTAACCCCACCACACCATAATAAGGAGAGGGGTTAGATGCTACAGCTAAAACCCCTAATATAAAACAGACCCCAAGAAAAATCACGAAATAAGTCATATGTTCCCGCTTGGATAGACCCCAAGGACTACGGCTTGAAAAGCCATTGTTGTTCTCAACTACGGGAAC", "utf-8")